ETH Price: $3,168.79 (-7.80%)
Gas: 12 Gwei

Token

EXPENDABLES INU (EXPENDABLES)
 

Overview

Max Total Supply

100,000,000,000 EXPENDABLES

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
154,903,200.95 EXPENDABLES

Value
$0.00
0xd34c67c72bda980aee4fe669c1f31228ba69e826
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:
EXPENDABLESINU

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

    IncrediblesInu

    @t.me/EXPENDABLESINU

*/

pragma solidity ^0.8.10;

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

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

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

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

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

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

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

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

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

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

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _transferOwnership(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner() {
        _transferOwnership(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner() {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

contract EXPENDABLESINU 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 _isBot;

    uint256 private constant _MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e11 * 10**9;
    uint256 private _rTotal = (_MAX - (_MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    string private constant _name = "EXPENDABLES INU";
    string private constant _symbol = "EXPENDABLES";
    
    uint private constant _decimals = 9;
    uint256 private _teamFee = 5;
    uint256 private _previousteamFee = _teamFee;

    address payable private _feeAddress;

    // Uniswap Pair
    IUniswapV2Router02 private _uniswapV2Router;
    address private _uniswapV2Pair;

    bool private _initialized = false;
    bool private _noTaxMode = false;
    bool private _inSwap = false;
    bool private _tradingOpen = false;
    uint256 private _launchTime;
    uint256 private _initialLimitDuration;

    modifier lockTheSwap() {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    modifier handleFees(bool takeFee) {
        if (!takeFee) _removeAllFees();
        _;
        if (!takeFee) _restoreAllFees();
    }
    
    constructor () {
        _rOwned[_msgSender()] = _rTotal;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[payable(0x000000000000000000000000000000000000dEaD)] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _removeAllFees() private {
        require(_teamFee > 0);

        _previousteamFee = _teamFee;
        _teamFee = 0;
    }
    
    function _restoreAllFees() private {
        _teamFee = _previousteamFee;
    }

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!_isBot[from], "Your address has been marked as a bot, please contact staff to appeal your case.");
        
        bool takeFee = false;
        if (
            !_isExcludedFromFee[from] 
            && !_isExcludedFromFee[to] 
            && !_noTaxMode 
            && (from == _uniswapV2Pair || to == _uniswapV2Pair)
        ) {
            require(_tradingOpen, 'Trading has not yet been opened.');
            takeFee = true;

            if (from == _uniswapV2Pair && to != address(_uniswapV2Router) && _initialLimitDuration > block.timestamp) {
                uint walletBalance = balanceOf(address(to));
                require(amount.add(walletBalance) <= _tTotal.mul(5).div(100));
            }

            if (block.timestamp == _launchTime) _isBot[to] = true;

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!_inSwap && from != _uniswapV2Pair) {
                if (contractTokenBalance > 0) {
                    if (contractTokenBalance > balanceOf(_uniswapV2Pair).mul(5).div(100))
                        contractTokenBalance = balanceOf(_uniswapV2Pair).mul(5).div(100);
                    
                    _swapTokensForEth(contractTokenBalance);
                }
            }
        }
                
        _tokenTransfer(from, to, amount, takeFee);
    }

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

    function _tokenTransfer(address sender, address recipient, uint256 tAmount, bool takeFee) private handleFees(takeFee) {
        (uint256 rAmount, uint256 rTransferAmount, uint256 tTransferAmount, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 

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

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

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

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

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

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

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

        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
    
    function initContract(address payable feeAddress) external onlyOwner() {
        require(!_initialized,"Contract has already been initialized");
        IUniswapV2Router02 uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        _uniswapV2Router = uniswapV2Router;

        _feeAddress = feeAddress;
        _isExcludedFromFee[_feeAddress] = true;

        _initialized = true;
    }

    function openTrading() external onlyOwner() {
        require(_initialized, "Contract must be initialized first");
        _tradingOpen = true;
        _launchTime = block.timestamp;
        _initialLimitDuration = _launchTime + (60 minutes);
    }

    function setFeeWallet(address payable feeWalletAddress) external onlyOwner() {
        _isExcludedFromFee[_feeAddress] = false;

        _feeAddress = feeWalletAddress;
        _isExcludedFromFee[_feeAddress] = true;
    }

    function excludeFromFee(address payable ad) external onlyOwner() {
        _isExcludedFromFee[ad] = true;
    }
    
    function includeToFee(address payable ad) external onlyOwner() {
        _isExcludedFromFee[ad] = false;
    }
    
    function setNoTaxMode(bool onoff) external onlyOwner() {
        _noTaxMode = onoff;
    }
    
    function setTeamFee(uint256 fee) external onlyOwner() {
        require(fee <= 10, "Team fee cannot be larger than 10%");
        _teamFee = fee;
    }
    
    function setBots(address[] memory bots_) public onlyOwner() {
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != _uniswapV2Pair && bots_[i] != address(_uniswapV2Router)) {
                _isBot[bots_[i]] = true;
            }
        }
    }
    
    function delBots(address[] memory bots_) public onlyOwner() {
        for (uint i = 0; i < bots_.length; i++) {
            _isBot[bots_[i]] = false;
        }
    }
    
    function isBot(address ad) public view returns (bool) {
        return _isBot[ad];
    }

    function isExcludedFromFee(address ad) public view returns (bool) {
        return _isExcludedFromFee[ad];
    }
    
    function swapFeesManual() external onlyOwner() {
        uint256 contractBalance = balanceOf(address(this));
        _swapTokensForEth(contractBalance);
    }
    
    function withdrawFees() external {
        uint256 contractETHBalance = address(this).balance;
        _feeAddress.transfer(contractETHBalance);
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"ad","type":"address"}],"name":"includeToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"feeAddress","type":"address"}],"name":"initContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"feeWalletAddress","type":"address"}],"name":"setFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setNoTaxMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFeesManual","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"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405268056bc75e2d631000006000196200001d91906200039e565b6000196200002c919062000405565b60065560056008556008546009556000600c60146101000a81548160ff0219169083151502179055506000600c60156101000a81548160ff0219169083151502179055506000600c60166101000a81548160ff0219169083151502179055506000600c60176101000a81548160ff021916908315150217905550348015620000b357600080fd5b50620000d4620000c86200027060201b60201c565b6200027860201b60201c565b60065460016000620000eb6200027060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200013f6200033c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620001fa6200027060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef68056bc75e2d6310000060405162000262919062000451565b60405180910390a36200046e565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620003ab8262000365565b9150620003b88362000365565b925082620003cb57620003ca6200036f565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004128262000365565b91506200041f8362000365565b925082821015620004355762000434620003d6565b5b828203905092915050565b6200044b8162000365565b82525050565b600060208201905062000468600083018462000440565b92915050565b613c10806200047e6000396000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063b515566a1161008a578063cf9d4afa11610064578063cf9d4afa1461050d578063dd62ed3e14610536578063e6ec64ec14610573578063f2fde38b1461059c57610171565b8063b515566a146104a4578063c9567bf9146104cd578063cf0848f7146104e457610171565b806370a0823114610394578063715018a6146103d15780638da5cb5b146103e857806390d49b9d1461041357806395d89b411461043c578063a9059cbb1461046757610171565b806331c2d8471161012357806331c2d847146102885780633bbac579146102b1578063437823ec146102ee578063476343ee146103175780634b740b161461032e5780635342acb41461035757610171565b806306d8ea6b1461017657806306fdde031461018d578063095ea7b3146101b857806318160ddd146101f557806323b872dd14610220578063313ce5671461025d57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105c5565b005b34801561019957600080fd5b506101a261065a565b6040516101af9190612ae7565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612bb1565b610697565b6040516101ec9190612c0c565b60405180910390f35b34801561020157600080fd5b5061020a6106b5565b6040516102179190612c36565b60405180910390f35b34801561022c57600080fd5b5061024760048036038101906102429190612c51565b6106c6565b6040516102549190612c0c565b60405180910390f35b34801561026957600080fd5b5061027261079f565b60405161027f9190612c36565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa9190612dec565b6107a8565b005b3480156102bd57600080fd5b506102d860048036038101906102d39190612e35565b6108b9565b6040516102e59190612c0c565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190612ea0565b61090f565b005b34801561032357600080fd5b5061032c6109e6565b005b34801561033a57600080fd5b5061035560048036038101906103509190612ef9565b610a57565b005b34801561036357600080fd5b5061037e60048036038101906103799190612e35565b610af0565b60405161038b9190612c0c565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b69190612e35565b610b46565b6040516103c89190612c36565b60405180910390f35b3480156103dd57600080fd5b506103e6610b97565b005b3480156103f457600080fd5b506103fd610c1f565b60405161040a9190612f35565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190612ea0565b610c48565b005b34801561044857600080fd5b50610451610dfc565b60405161045e9190612ae7565b60405180910390f35b34801561047357600080fd5b5061048e60048036038101906104899190612bb1565b610e39565b60405161049b9190612c0c565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190612dec565b610e57565b005b3480156104d957600080fd5b506104e261104e565b005b3480156104f057600080fd5b5061050b60048036038101906105069190612ea0565b611153565b005b34801561051957600080fd5b50610534600480360381019061052f9190612ea0565b61122a565b005b34801561054257600080fd5b5061055d60048036038101906105589190612f50565b6115c4565b60405161056a9190612c36565b60405180910390f35b34801561057f57600080fd5b5061059a60048036038101906105959190612f90565b61164b565b005b3480156105a857600080fd5b506105c360048036038101906105be9190612e35565b611715565b005b6105cd61180d565b73ffffffffffffffffffffffffffffffffffffffff166105eb610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063890613009565b60405180910390fd5b600061064c30610b46565b905061065781611815565b50565b60606040518060400160405280600f81526020017f455850454e4441424c455320494e550000000000000000000000000000000000815250905090565b60006106ab6106a461180d565b8484611a8e565b6001905092915050565b600068056bc75e2d63100000905090565b60006106d3848484611c59565b610794846106df61180d565b61078f85604051806060016040528060288152602001613bb360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061074561180d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229f9092919063ffffffff16565b611a8e565b600190509392505050565b60006009905090565b6107b061180d565b73ffffffffffffffffffffffffffffffffffffffff166107ce610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081b90613009565b60405180910390fd5b60005b81518110156108b55760006005600084848151811061084957610848613029565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108ad90613087565b915050610827565b5050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61091761180d565b73ffffffffffffffffffffffffffffffffffffffff16610935610c1f565b73ffffffffffffffffffffffffffffffffffffffff161461098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290613009565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000479050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a53573d6000803e3d6000fd5b5050565b610a5f61180d565b73ffffffffffffffffffffffffffffffffffffffff16610a7d610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90613009565b60405180910390fd5b80600c60156101000a81548160ff02191690831515021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610b90600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612303565b9050919050565b610b9f61180d565b73ffffffffffffffffffffffffffffffffffffffff16610bbd610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a90613009565b60405180910390fd5b610c1d6000612371565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c5061180d565b73ffffffffffffffffffffffffffffffffffffffff16610c6e610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbb90613009565b60405180910390fd5b600060046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600b81526020017f455850454e4441424c4553000000000000000000000000000000000000000000815250905090565b6000610e4d610e4661180d565b8484611c59565b6001905092915050565b610e5f61180d565b73ffffffffffffffffffffffffffffffffffffffff16610e7d610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90613009565b60405180910390fd5b60005b815181101561104a57600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f2b57610f2a613029565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610fbf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f9e57610f9d613029565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561103757600160056000848481518110610fdd57610fdc613029565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061104290613087565b915050610ed6565b5050565b61105661180d565b73ffffffffffffffffffffffffffffffffffffffff16611074610c1f565b73ffffffffffffffffffffffffffffffffffffffff16146110ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c190613009565b60405180910390fd5b600c60149054906101000a900460ff16611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613142565b60405180910390fd5b6001600c60176101000a81548160ff02191690831515021790555042600d81905550610e10600d5461114b9190613162565b600e81905550565b61115b61180d565b73ffffffffffffffffffffffffffffffffffffffff16611179610c1f565b73ffffffffffffffffffffffffffffffffffffffff16146111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c690613009565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61123261180d565b73ffffffffffffffffffffffffffffffffffffffff16611250610c1f565b73ffffffffffffffffffffffffffffffffffffffff16146112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d90613009565b60405180910390fd5b600c60149054906101000a900460ff16156112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed9061322a565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137e919061325f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611409919061325f565b6040518363ffffffff1660e01b815260040161142692919061328c565b6020604051808303816000875af1158015611445573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611469919061325f565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff0219169083151502179055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61165361180d565b73ffffffffffffffffffffffffffffffffffffffff16611671610c1f565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be90613009565b60405180910390fd5b600a81111561170b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170290613327565b60405180910390fd5b8060088190555050565b61171d61180d565b73ffffffffffffffffffffffffffffffffffffffff1661173b610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178890613009565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f8906133b9565b60405180910390fd5b61180a81612371565b50565b600033905090565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561184d5761184c612ca9565b5b60405190808252806020026020018201604052801561187b5781602001602082028036833780820191505090505b509050308160008151811061189357611892613029565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e919061325f565b8160018151811061197257611971613029565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119d930600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a8e565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a3d9594939291906134dc565b600060405180830381600087803b158015611a5757600080fd5b505af1158015611a6b573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af5906135a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b659061363a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c4c9190612c36565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc0906136cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d309061375e565b60405180910390fd5b60008111611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d73906137f0565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e00906138a8565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611eaf5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ec85750600c60159054906101000a900460ff16155b8015611f795750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f785750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b1561228d57600c60179054906101000a900460ff16611fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc490613914565b60405180910390fd5b60019050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561207c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612089575042600e54115b156120eb57600061209984610b46565b90506120cb60646120bd600568056bc75e2d6310000061243590919063ffffffff16565b6124b090919063ffffffff16565b6120de82856124fa90919063ffffffff16565b11156120e957600080fd5b505b600d5442141561214e576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600061215930610b46565b9050600c60169054906101000a900460ff161580156121c65750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561228b57600081111561228a5761222560646122176005612209600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b46565b61243590919063ffffffff16565b6124b090919063ffffffff16565b8111156122805761227d606461226f6005612261600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b46565b61243590919063ffffffff16565b6124b090919063ffffffff16565b90505b61228981611815565b5b5b505b61229984848484612558565b50505050565b60008383111582906122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de9190612ae7565b60405180910390fd5b50600083856122f69190613934565b9050809150509392505050565b600060065482111561234a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612341906139da565b60405180910390fd5b600061235461272f565b905061236981846124b090919063ffffffff16565b915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083141561244857600090506124aa565b6000828461245691906139fa565b90508284826124659190613a83565b146124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c90613b26565b60405180910390fd5b809150505b92915050565b60006124f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061275a565b905092915050565b60008082846125099190613162565b90508381101561254e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254590613b92565b60405180910390fd5b8091505092915050565b8080612567576125666127bd565b5b600080600080612576876127df565b93509350935093506125d084600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282e90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061266583600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126b181612878565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270e9190612c36565b60405180910390a3505050508061272857612727612935565b5b5050505050565b600080600061273c612940565b9150915061275381836124b090919063ffffffff16565b9250505090565b600080831182906127a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127989190612ae7565b60405180910390fd5b50600083856127b09190613a83565b9050809150509392505050565b6000600854116127cc57600080fd5b6008546009819055506000600881905550565b6000806000806000806127f4876008546129a2565b91509150600061280261272f565b90506000806128128a85856129f5565b9150915081818686985098509850985050505050509193509193565b600061287083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061229f565b905092915050565b600061288261272f565b90506000612899828461243590919063ffffffff16565b90506128ed81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600954600881905550565b60008060006006549050600068056bc75e2d63100000905061297668056bc75e2d631000006006546124b090919063ffffffff16565b8210156129955760065468056bc75e2d6310000093509350505061299e565b81819350935050505b9091565b60008060006129cd60646129bf868861243590919063ffffffff16565b6124b090919063ffffffff16565b905060006129e4828761282e90919063ffffffff16565b905080829350935050509250929050565b6000806000612a0d848761243590919063ffffffff16565b90506000612a24858761243590919063ffffffff16565b90506000612a3b828461282e90919063ffffffff16565b9050828194509450505050935093915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a88578082015181840152602081019050612a6d565b83811115612a97576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ab982612a4e565b612ac38185612a59565b9350612ad3818560208601612a6a565b612adc81612a9d565b840191505092915050565b60006020820190508181036000830152612b018184612aae565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b4882612b1d565b9050919050565b612b5881612b3d565b8114612b6357600080fd5b50565b600081359050612b7581612b4f565b92915050565b6000819050919050565b612b8e81612b7b565b8114612b9957600080fd5b50565b600081359050612bab81612b85565b92915050565b60008060408385031215612bc857612bc7612b13565b5b6000612bd685828601612b66565b9250506020612be785828601612b9c565b9150509250929050565b60008115159050919050565b612c0681612bf1565b82525050565b6000602082019050612c216000830184612bfd565b92915050565b612c3081612b7b565b82525050565b6000602082019050612c4b6000830184612c27565b92915050565b600080600060608486031215612c6a57612c69612b13565b5b6000612c7886828701612b66565b9350506020612c8986828701612b66565b9250506040612c9a86828701612b9c565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ce182612a9d565b810181811067ffffffffffffffff82111715612d0057612cff612ca9565b5b80604052505050565b6000612d13612b09565b9050612d1f8282612cd8565b919050565b600067ffffffffffffffff821115612d3f57612d3e612ca9565b5b602082029050602081019050919050565b600080fd5b6000612d68612d6384612d24565b612d09565b90508083825260208201905060208402830185811115612d8b57612d8a612d50565b5b835b81811015612db45780612da08882612b66565b845260208401935050602081019050612d8d565b5050509392505050565b600082601f830112612dd357612dd2612ca4565b5b8135612de3848260208601612d55565b91505092915050565b600060208284031215612e0257612e01612b13565b5b600082013567ffffffffffffffff811115612e2057612e1f612b18565b5b612e2c84828501612dbe565b91505092915050565b600060208284031215612e4b57612e4a612b13565b5b6000612e5984828501612b66565b91505092915050565b6000612e6d82612b1d565b9050919050565b612e7d81612e62565b8114612e8857600080fd5b50565b600081359050612e9a81612e74565b92915050565b600060208284031215612eb657612eb5612b13565b5b6000612ec484828501612e8b565b91505092915050565b612ed681612bf1565b8114612ee157600080fd5b50565b600081359050612ef381612ecd565b92915050565b600060208284031215612f0f57612f0e612b13565b5b6000612f1d84828501612ee4565b91505092915050565b612f2f81612b3d565b82525050565b6000602082019050612f4a6000830184612f26565b92915050565b60008060408385031215612f6757612f66612b13565b5b6000612f7585828601612b66565b9250506020612f8685828601612b66565b9150509250929050565b600060208284031215612fa657612fa5612b13565b5b6000612fb484828501612b9c565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ff3602083612a59565b9150612ffe82612fbd565b602082019050919050565b6000602082019050818103600083015261302281612fe6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061309282612b7b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130c5576130c4613058565b5b600182019050919050565b7f436f6e7472616374206d75737420626520696e697469616c697a65642066697260008201527f7374000000000000000000000000000000000000000000000000000000000000602082015250565b600061312c602283612a59565b9150613137826130d0565b604082019050919050565b6000602082019050818103600083015261315b8161311f565b9050919050565b600061316d82612b7b565b915061317883612b7b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131ad576131ac613058565b5b828201905092915050565b7f436f6e74726163742068617320616c7265616479206265656e20696e6974696160008201527f6c697a6564000000000000000000000000000000000000000000000000000000602082015250565b6000613214602583612a59565b915061321f826131b8565b604082019050919050565b6000602082019050818103600083015261324381613207565b9050919050565b60008151905061325981612b4f565b92915050565b60006020828403121561327557613274612b13565b5b60006132838482850161324a565b91505092915050565b60006040820190506132a16000830185612f26565b6132ae6020830184612f26565b9392505050565b7f5465616d206665652063616e6e6f74206265206c6172676572207468616e203160008201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b6000613311602283612a59565b915061331c826132b5565b604082019050919050565b6000602082019050818103600083015261334081613304565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133a3602683612a59565b91506133ae82613347565b604082019050919050565b600060208201905081810360008301526133d281613396565b9050919050565b6000819050919050565b6000819050919050565b60006134086134036133fe846133d9565b6133e3565b612b7b565b9050919050565b613418816133ed565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61345381612b3d565b82525050565b6000613465838361344a565b60208301905092915050565b6000602082019050919050565b60006134898261341e565b6134938185613429565b935061349e8361343a565b8060005b838110156134cf5781516134b68882613459565b97506134c183613471565b9250506001810190506134a2565b5085935050505092915050565b600060a0820190506134f16000830188612c27565b6134fe602083018761340f565b8181036040830152613510818661347e565b905061351f6060830185612f26565b61352c6080830184612c27565b9695505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613592602483612a59565b915061359d82613536565b604082019050919050565b600060208201905081810360008301526135c181613585565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613624602283612a59565b915061362f826135c8565b604082019050919050565b6000602082019050818103600083015261365381613617565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136b6602583612a59565b91506136c18261365a565b604082019050919050565b600060208201905081810360008301526136e5816136a9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613748602383612a59565b9150613753826136ec565b604082019050919050565b600060208201905081810360008301526137778161373b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006137da602983612a59565b91506137e58261377e565b604082019050919050565b60006020820190508181036000830152613809816137cd565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742c20706c6561736520636f6e7461637420737461666620746f206160208201527f707065616c20796f757220636173652e00000000000000000000000000000000604082015250565b6000613892605083612a59565b915061389d82613810565b606082019050919050565b600060208201905081810360008301526138c181613885565b9050919050565b7f54726164696e6720686173206e6f7420796574206265656e206f70656e65642e600082015250565b60006138fe602083612a59565b9150613909826138c8565b602082019050919050565b6000602082019050818103600083015261392d816138f1565b9050919050565b600061393f82612b7b565b915061394a83612b7b565b92508282101561395d5761395c613058565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006139c4602a83612a59565b91506139cf82613968565b604082019050919050565b600060208201905081810360008301526139f3816139b7565b9050919050565b6000613a0582612b7b565b9150613a1083612b7b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a4957613a48613058565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a8e82612b7b565b9150613a9983612b7b565b925082613aa957613aa8613a54565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b10602183612a59565b9150613b1b82613ab4565b604082019050919050565b60006020820190508181036000830152613b3f81613b03565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b7c601b83612a59565b9150613b8782613b46565b602082019050919050565b60006020820190508181036000830152613bab81613b6f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220868efca88eb53a556cf6494f5f058ae6e4f9a8b62922a868a0de9ea80c02f27864736f6c634300080a0033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c806370a08231116100d1578063b515566a1161008a578063cf9d4afa11610064578063cf9d4afa1461050d578063dd62ed3e14610536578063e6ec64ec14610573578063f2fde38b1461059c57610171565b8063b515566a146104a4578063c9567bf9146104cd578063cf0848f7146104e457610171565b806370a0823114610394578063715018a6146103d15780638da5cb5b146103e857806390d49b9d1461041357806395d89b411461043c578063a9059cbb1461046757610171565b806331c2d8471161012357806331c2d847146102885780633bbac579146102b1578063437823ec146102ee578063476343ee146103175780634b740b161461032e5780635342acb41461035757610171565b806306d8ea6b1461017657806306fdde031461018d578063095ea7b3146101b857806318160ddd146101f557806323b872dd14610220578063313ce5671461025d57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105c5565b005b34801561019957600080fd5b506101a261065a565b6040516101af9190612ae7565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da9190612bb1565b610697565b6040516101ec9190612c0c565b60405180910390f35b34801561020157600080fd5b5061020a6106b5565b6040516102179190612c36565b60405180910390f35b34801561022c57600080fd5b5061024760048036038101906102429190612c51565b6106c6565b6040516102549190612c0c565b60405180910390f35b34801561026957600080fd5b5061027261079f565b60405161027f9190612c36565b60405180910390f35b34801561029457600080fd5b506102af60048036038101906102aa9190612dec565b6107a8565b005b3480156102bd57600080fd5b506102d860048036038101906102d39190612e35565b6108b9565b6040516102e59190612c0c565b60405180910390f35b3480156102fa57600080fd5b5061031560048036038101906103109190612ea0565b61090f565b005b34801561032357600080fd5b5061032c6109e6565b005b34801561033a57600080fd5b5061035560048036038101906103509190612ef9565b610a57565b005b34801561036357600080fd5b5061037e60048036038101906103799190612e35565b610af0565b60405161038b9190612c0c565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b69190612e35565b610b46565b6040516103c89190612c36565b60405180910390f35b3480156103dd57600080fd5b506103e6610b97565b005b3480156103f457600080fd5b506103fd610c1f565b60405161040a9190612f35565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190612ea0565b610c48565b005b34801561044857600080fd5b50610451610dfc565b60405161045e9190612ae7565b60405180910390f35b34801561047357600080fd5b5061048e60048036038101906104899190612bb1565b610e39565b60405161049b9190612c0c565b60405180910390f35b3480156104b057600080fd5b506104cb60048036038101906104c69190612dec565b610e57565b005b3480156104d957600080fd5b506104e261104e565b005b3480156104f057600080fd5b5061050b60048036038101906105069190612ea0565b611153565b005b34801561051957600080fd5b50610534600480360381019061052f9190612ea0565b61122a565b005b34801561054257600080fd5b5061055d60048036038101906105589190612f50565b6115c4565b60405161056a9190612c36565b60405180910390f35b34801561057f57600080fd5b5061059a60048036038101906105959190612f90565b61164b565b005b3480156105a857600080fd5b506105c360048036038101906105be9190612e35565b611715565b005b6105cd61180d565b73ffffffffffffffffffffffffffffffffffffffff166105eb610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161063890613009565b60405180910390fd5b600061064c30610b46565b905061065781611815565b50565b60606040518060400160405280600f81526020017f455850454e4441424c455320494e550000000000000000000000000000000000815250905090565b60006106ab6106a461180d565b8484611a8e565b6001905092915050565b600068056bc75e2d63100000905090565b60006106d3848484611c59565b610794846106df61180d565b61078f85604051806060016040528060288152602001613bb360289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061074561180d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229f9092919063ffffffff16565b611a8e565b600190509392505050565b60006009905090565b6107b061180d565b73ffffffffffffffffffffffffffffffffffffffff166107ce610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081b90613009565b60405180910390fd5b60005b81518110156108b55760006005600084848151811061084957610848613029565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108ad90613087565b915050610827565b5050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b61091761180d565b73ffffffffffffffffffffffffffffffffffffffff16610935610c1f565b73ffffffffffffffffffffffffffffffffffffffff161461098b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098290613009565b60405180910390fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000479050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a53573d6000803e3d6000fd5b5050565b610a5f61180d565b73ffffffffffffffffffffffffffffffffffffffff16610a7d610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90613009565b60405180910390fd5b80600c60156101000a81548160ff02191690831515021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000610b90600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612303565b9050919050565b610b9f61180d565b73ffffffffffffffffffffffffffffffffffffffff16610bbd610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610c13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0a90613009565b60405180910390fd5b610c1d6000612371565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c5061180d565b73ffffffffffffffffffffffffffffffffffffffff16610c6e610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610cc4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbb90613009565b60405180910390fd5b600060046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60606040518060400160405280600b81526020017f455850454e4441424c4553000000000000000000000000000000000000000000815250905090565b6000610e4d610e4661180d565b8484611c59565b6001905092915050565b610e5f61180d565b73ffffffffffffffffffffffffffffffffffffffff16610e7d610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90613009565b60405180910390fd5b60005b815181101561104a57600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f2b57610f2a613029565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015610fbf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610f9e57610f9d613029565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b1561103757600160056000848481518110610fdd57610fdc613029565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061104290613087565b915050610ed6565b5050565b61105661180d565b73ffffffffffffffffffffffffffffffffffffffff16611074610c1f565b73ffffffffffffffffffffffffffffffffffffffff16146110ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c190613009565b60405180910390fd5b600c60149054906101000a900460ff16611119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111090613142565b60405180910390fd5b6001600c60176101000a81548160ff02191690831515021790555042600d81905550610e10600d5461114b9190613162565b600e81905550565b61115b61180d565b73ffffffffffffffffffffffffffffffffffffffff16611179610c1f565b73ffffffffffffffffffffffffffffffffffffffff16146111cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c690613009565b60405180910390fd5b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61123261180d565b73ffffffffffffffffffffffffffffffffffffffff16611250610c1f565b73ffffffffffffffffffffffffffffffffffffffff16146112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d90613009565b60405180910390fd5b600c60149054906101000a900460ff16156112f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ed9061322a565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561135a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137e919061325f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611409919061325f565b6040518363ffffffff1660e01b815260040161142692919061328c565b6020604051808303816000875af1158015611445573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611469919061325f565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160046000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60146101000a81548160ff0219169083151502179055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61165361180d565b73ffffffffffffffffffffffffffffffffffffffff16611671610c1f565b73ffffffffffffffffffffffffffffffffffffffff16146116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be90613009565b60405180910390fd5b600a81111561170b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170290613327565b60405180910390fd5b8060088190555050565b61171d61180d565b73ffffffffffffffffffffffffffffffffffffffff1661173b610c1f565b73ffffffffffffffffffffffffffffffffffffffff1614611791576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178890613009565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611801576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f8906133b9565b60405180910390fd5b61180a81612371565b50565b600033905090565b6001600c60166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561184d5761184c612ca9565b5b60405190808252806020026020018201604052801561187b5781602001602082028036833780820191505090505b509050308160008151811061189357611892613029565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e919061325f565b8160018151811061197257611971613029565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119d930600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611a8e565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611a3d9594939291906134dc565b600060405180830381600087803b158015611a5757600080fd5b505af1158015611a6b573d6000803e3d6000fd5b50505050506000600c60166101000a81548160ff02191690831515021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af5906135a8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b659061363a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c4c9190612c36565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc0906136cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d309061375e565b60405180910390fd5b60008111611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d73906137f0565b60405180910390fd5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e00906138a8565b60405180910390fd5b6000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611eaf5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ec85750600c60159054906101000a900460ff16155b8015611f795750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611f785750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b1561228d57600c60179054906101000a900460ff16611fcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc490613914565b60405180910390fd5b60019050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561207c5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612089575042600e54115b156120eb57600061209984610b46565b90506120cb60646120bd600568056bc75e2d6310000061243590919063ffffffff16565b6124b090919063ffffffff16565b6120de82856124fa90919063ffffffff16565b11156120e957600080fd5b505b600d5442141561214e576001600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600061215930610b46565b9050600c60169054906101000a900460ff161580156121c65750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561228b57600081111561228a5761222560646122176005612209600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b46565b61243590919063ffffffff16565b6124b090919063ffffffff16565b8111156122805761227d606461226f6005612261600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610b46565b61243590919063ffffffff16565b6124b090919063ffffffff16565b90505b61228981611815565b5b5b505b61229984848484612558565b50505050565b60008383111582906122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de9190612ae7565b60405180910390fd5b50600083856122f69190613934565b9050809150509392505050565b600060065482111561234a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612341906139da565b60405180910390fd5b600061235461272f565b905061236981846124b090919063ffffffff16565b915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008083141561244857600090506124aa565b6000828461245691906139fa565b90508284826124659190613a83565b146124a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249c90613b26565b60405180910390fd5b809150505b92915050565b60006124f283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061275a565b905092915050565b60008082846125099190613162565b90508381101561254e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254590613b92565b60405180910390fd5b8091505092915050565b8080612567576125666127bd565b5b600080600080612576876127df565b93509350935093506125d084600160008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461282e90919063ffffffff16565b600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061266583600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506126b181612878565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161270e9190612c36565b60405180910390a3505050508061272857612727612935565b5b5050505050565b600080600061273c612940565b9150915061275381836124b090919063ffffffff16565b9250505090565b600080831182906127a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127989190612ae7565b60405180910390fd5b50600083856127b09190613a83565b9050809150509392505050565b6000600854116127cc57600080fd5b6008546009819055506000600881905550565b6000806000806000806127f4876008546129a2565b91509150600061280261272f565b90506000806128128a85856129f5565b9150915081818686985098509850985050505050509193509193565b600061287083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061229f565b905092915050565b600061288261272f565b90506000612899828461243590919063ffffffff16565b90506128ed81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124fa90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b600954600881905550565b60008060006006549050600068056bc75e2d63100000905061297668056bc75e2d631000006006546124b090919063ffffffff16565b8210156129955760065468056bc75e2d6310000093509350505061299e565b81819350935050505b9091565b60008060006129cd60646129bf868861243590919063ffffffff16565b6124b090919063ffffffff16565b905060006129e4828761282e90919063ffffffff16565b905080829350935050509250929050565b6000806000612a0d848761243590919063ffffffff16565b90506000612a24858761243590919063ffffffff16565b90506000612a3b828461282e90919063ffffffff16565b9050828194509450505050935093915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a88578082015181840152602081019050612a6d565b83811115612a97576000848401525b50505050565b6000601f19601f8301169050919050565b6000612ab982612a4e565b612ac38185612a59565b9350612ad3818560208601612a6a565b612adc81612a9d565b840191505092915050565b60006020820190508181036000830152612b018184612aae565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b4882612b1d565b9050919050565b612b5881612b3d565b8114612b6357600080fd5b50565b600081359050612b7581612b4f565b92915050565b6000819050919050565b612b8e81612b7b565b8114612b9957600080fd5b50565b600081359050612bab81612b85565b92915050565b60008060408385031215612bc857612bc7612b13565b5b6000612bd685828601612b66565b9250506020612be785828601612b9c565b9150509250929050565b60008115159050919050565b612c0681612bf1565b82525050565b6000602082019050612c216000830184612bfd565b92915050565b612c3081612b7b565b82525050565b6000602082019050612c4b6000830184612c27565b92915050565b600080600060608486031215612c6a57612c69612b13565b5b6000612c7886828701612b66565b9350506020612c8986828701612b66565b9250506040612c9a86828701612b9c565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ce182612a9d565b810181811067ffffffffffffffff82111715612d0057612cff612ca9565b5b80604052505050565b6000612d13612b09565b9050612d1f8282612cd8565b919050565b600067ffffffffffffffff821115612d3f57612d3e612ca9565b5b602082029050602081019050919050565b600080fd5b6000612d68612d6384612d24565b612d09565b90508083825260208201905060208402830185811115612d8b57612d8a612d50565b5b835b81811015612db45780612da08882612b66565b845260208401935050602081019050612d8d565b5050509392505050565b600082601f830112612dd357612dd2612ca4565b5b8135612de3848260208601612d55565b91505092915050565b600060208284031215612e0257612e01612b13565b5b600082013567ffffffffffffffff811115612e2057612e1f612b18565b5b612e2c84828501612dbe565b91505092915050565b600060208284031215612e4b57612e4a612b13565b5b6000612e5984828501612b66565b91505092915050565b6000612e6d82612b1d565b9050919050565b612e7d81612e62565b8114612e8857600080fd5b50565b600081359050612e9a81612e74565b92915050565b600060208284031215612eb657612eb5612b13565b5b6000612ec484828501612e8b565b91505092915050565b612ed681612bf1565b8114612ee157600080fd5b50565b600081359050612ef381612ecd565b92915050565b600060208284031215612f0f57612f0e612b13565b5b6000612f1d84828501612ee4565b91505092915050565b612f2f81612b3d565b82525050565b6000602082019050612f4a6000830184612f26565b92915050565b60008060408385031215612f6757612f66612b13565b5b6000612f7585828601612b66565b9250506020612f8685828601612b66565b9150509250929050565b600060208284031215612fa657612fa5612b13565b5b6000612fb484828501612b9c565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612ff3602083612a59565b9150612ffe82612fbd565b602082019050919050565b6000602082019050818103600083015261302281612fe6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061309282612b7b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130c5576130c4613058565b5b600182019050919050565b7f436f6e7472616374206d75737420626520696e697469616c697a65642066697260008201527f7374000000000000000000000000000000000000000000000000000000000000602082015250565b600061312c602283612a59565b9150613137826130d0565b604082019050919050565b6000602082019050818103600083015261315b8161311f565b9050919050565b600061316d82612b7b565b915061317883612b7b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131ad576131ac613058565b5b828201905092915050565b7f436f6e74726163742068617320616c7265616479206265656e20696e6974696160008201527f6c697a6564000000000000000000000000000000000000000000000000000000602082015250565b6000613214602583612a59565b915061321f826131b8565b604082019050919050565b6000602082019050818103600083015261324381613207565b9050919050565b60008151905061325981612b4f565b92915050565b60006020828403121561327557613274612b13565b5b60006132838482850161324a565b91505092915050565b60006040820190506132a16000830185612f26565b6132ae6020830184612f26565b9392505050565b7f5465616d206665652063616e6e6f74206265206c6172676572207468616e203160008201527f3025000000000000000000000000000000000000000000000000000000000000602082015250565b6000613311602283612a59565b915061331c826132b5565b604082019050919050565b6000602082019050818103600083015261334081613304565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006133a3602683612a59565b91506133ae82613347565b604082019050919050565b600060208201905081810360008301526133d281613396565b9050919050565b6000819050919050565b6000819050919050565b60006134086134036133fe846133d9565b6133e3565b612b7b565b9050919050565b613418816133ed565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61345381612b3d565b82525050565b6000613465838361344a565b60208301905092915050565b6000602082019050919050565b60006134898261341e565b6134938185613429565b935061349e8361343a565b8060005b838110156134cf5781516134b68882613459565b97506134c183613471565b9250506001810190506134a2565b5085935050505092915050565b600060a0820190506134f16000830188612c27565b6134fe602083018761340f565b8181036040830152613510818661347e565b905061351f6060830185612f26565b61352c6080830184612c27565b9695505050505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613592602483612a59565b915061359d82613536565b604082019050919050565b600060208201905081810360008301526135c181613585565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613624602283612a59565b915061362f826135c8565b604082019050919050565b6000602082019050818103600083015261365381613617565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006136b6602583612a59565b91506136c18261365a565b604082019050919050565b600060208201905081810360008301526136e5816136a9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613748602383612a59565b9150613753826136ec565b604082019050919050565b600060208201905081810360008301526137778161373b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006137da602983612a59565b91506137e58261377e565b604082019050919050565b60006020820190508181036000830152613809816137cd565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742c20706c6561736520636f6e7461637420737461666620746f206160208201527f707065616c20796f757220636173652e00000000000000000000000000000000604082015250565b6000613892605083612a59565b915061389d82613810565b606082019050919050565b600060208201905081810360008301526138c181613885565b9050919050565b7f54726164696e6720686173206e6f7420796574206265656e206f70656e65642e600082015250565b60006138fe602083612a59565b9150613909826138c8565b602082019050919050565b6000602082019050818103600083015261392d816138f1565b9050919050565b600061393f82612b7b565b915061394a83612b7b565b92508282101561395d5761395c613058565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006139c4602a83612a59565b91506139cf82613968565b604082019050919050565b600060208201905081810360008301526139f3816139b7565b9050919050565b6000613a0582612b7b565b9150613a1083612b7b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a4957613a48613058565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a8e82612b7b565b9150613a9983612b7b565b925082613aa957613aa8613a54565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613b10602183612a59565b9150613b1b82613ab4565b604082019050919050565b60006020820190508181036000830152613b3f81613b03565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b7c601b83612a59565b9150613b8782613b46565b602082019050919050565b60006020820190508181036000830152613bab81613b6f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220868efca88eb53a556cf6494f5f058ae6e4f9a8b62922a868a0de9ea80c02f27864736f6c634300080a0033

Deployed Bytecode Sourcemap

3832:10867:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14333:161;;;;;;;;;;;;;:::i;:::-;;5570:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6422:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5846:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6591:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5756:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13928:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14109:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13122:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14506:153;;;;;;;;;;;;;:::i;:::-;;13371:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14207:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5949:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2823:105;;;;;;;;;;;;;:::i;:::-;;2600:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12887:227;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5661:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6096:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13641:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12626:253;;;;;;;;;;;;;:::i;:::-;;13247:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12069:549;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6271:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13475:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2936:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14333:161;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14391:23:::1;14417:24;14435:4;14417:9;:24::i;:::-;14391:50;;14452:34;14470:15;14452:17;:34::i;:::-;14380:114;14333:161::o:0;5570:83::-;5607:13;5640:5;;;;;;;;;;;;;;;;;5633:12;;5570:83;:::o;6422:161::-;6497:4;6514:39;6523:12;:10;:12::i;:::-;6537:7;6546:6;6514:8;:39::i;:::-;6571:4;6564:11;;6422:161;;;;:::o;5846:95::-;5899:7;4301:12;5919:14;;5846:95;:::o;6591:313::-;6689:4;6706:36;6716:6;6724:9;6735:6;6706:9;:36::i;:::-;6753:121;6762:6;6770:12;:10;:12::i;:::-;6784:89;6822:6;6784:89;;;;;;;;;;;;;;;;;:11;:19;6796:6;6784:19;;;;;;;;;;;;;;;:33;6804:12;:10;:12::i;:::-;6784:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6753:8;:121::i;:::-;6892:4;6885:11;;6591:313;;;;;:::o;5756:82::-;5797:4;4567:1;5814:16;;5756:82;:::o;13928:169::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14004:6:::1;13999:91;14020:5;:12;14016:1;:16;13999:91;;;14073:5;14054:6;:16;14061:5;14067:1;14061:8;;;;;;;;:::i;:::-;;;;;;;;14054:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;14034:3;;;;;:::i;:::-;;;;13999:91;;;;13928:169:::0;:::o;14109:90::-;14157:4;14181:6;:10;14188:2;14181:10;;;;;;;;;;;;;;;;;;;;;;;;;14174:17;;14109:90;;;:::o;13122:113::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13223:4:::1;13198:18;:22;13217:2;13198:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;13122:113:::0;:::o;14506:153::-;14550:26;14579:21;14550:50;;14611:11;;;;;;;;;;;:20;;:40;14632:18;14611:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14539:120;14506:153::o;13371:92::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13450:5:::1;13437:10;;:18;;;;;;;;;;;;;;;;;;13371:92:::0;:::o;14207:114::-;14267:4;14291:18;:22;14310:2;14291:22;;;;;;;;;;;;;;;;;;;;;;;;;14284:29;;14207:114;;;:::o;5949:139::-;6015:7;6042:38;6063:7;:16;6071:7;6063:16;;;;;;;;;;;;;;;;6042:20;:38::i;:::-;6035:45;;5949:139;;;:::o;2823:105::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2890:30:::1;2917:1;2890:18;:30::i;:::-;2823:105::o:0;2600:87::-;2646:7;2673:6;;;;;;;;;;;2666:13;;2600:87;:::o;12887:227::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13009:5:::1;12975:18;:31;12994:11;;;;;;;;;;;12975:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;13041:16;13027:11;;:30;;;;;;;;;;;;;;;;;;13102:4;13068:18;:31;13087:11;;;;;;;;;;;13068:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;12887:227:::0;:::o;5661:87::-;5700:13;5733:7;;;;;;;;;;;;;;;;;5726:14;;5661:87;:::o;6096:167::-;6174:4;6191:42;6201:12;:10;:12::i;:::-;6215:9;6226:6;6191:9;:42::i;:::-;6251:4;6244:11;;6096:167;;;;:::o;13641:275::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13717:6:::1;13712:197;13733:5;:12;13729:1;:16;13712:197;;;13783:14;;;;;;;;;;;13771:26;;:5;13777:1;13771:8;;;;;;;;:::i;:::-;;;;;;;;:26;;;;:67;;;;;13821:16;;;;;;;;;;;13801:37;;:5;13807:1;13801:8;;;;;;;;:::i;:::-;;;;;;;;:37;;;;13771:67;13767:131;;;13878:4;13859:6;:16;13866:5;13872:1;13866:8;;;;;;;;:::i;:::-;;;;;;;;13859:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;13767:131;13747:3;;;;;:::i;:::-;;;;13712:197;;;;13641:275:::0;:::o;12626:253::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12689:12:::1;;;;;;;;;;;12681:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;12766:4;12751:12;;:19;;;;;;;;;;;;;;;;;;12795:15;12781:11;:29;;;;12860:10;12845:11;;:26;;;;:::i;:::-;12821:21;:50;;;;12626:253::o:0;13247:112::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13346:5:::1;13321:18;:22;13340:2;13321:22;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;13247:112:::0;:::o;12069:549::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12160:12:::1;;;;;;;;;;;12159:13;12151:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;12224:34;12280:42;12224:99;;12369:15;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12351:55;;;12415:4;12422:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12351:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12334:14;;:111;;;;;;;;;;;;;;;;;;12477:15;12458:16;;:34;;;;;;;;;;;;;;;;;;12519:10;12505:11;;:24;;;;;;;;;;;;;;;;;;12574:4;12540:18;:31;12559:11;;;;;;;;;;;12540:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;12606:4;12591:12;;:19;;;;;;;;;;;;;;;;;;12140:478;12069:549:::0;:::o;6271:143::-;6352:7;6379:11;:18;6391:5;6379:18;;;;;;;;;;;;;;;:27;6398:7;6379:27;;;;;;;;;;;;;;;;6372:34;;6271:143;;;;:::o;13475:154::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13555:2:::1;13548:3;:9;;13540:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13618:3;13607:8;:14;;;;13475:154:::0;:::o;2936:203::-;2746:12;:10;:12::i;:::-;2735:23;;:7;:5;:7::i;:::-;:23;;;2727:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3047:1:::1;3027:22;;:8;:22;;;;3019:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3103:28;3122:8;3103:18;:28::i;:::-;2936:203:::0;:::o;123:98::-;176:7;203:10;196:17;;123:98;:::o;9444:489::-;5093:4;5083:7;;:14;;;;;;;;;;;;;;;;;;9525:21:::1;9563:1;9549:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9525:40;;9594:4;9576;9581:1;9576:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9620:16;;;;;;;;;;;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9610:4;9615:1;9610:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;::::0;::::1;9654:63;9671:4;9686:16;;;;;;;;;;;9705:11;9654:8;:63::i;:::-;9728:16;;;;;;;;;;;:67;;;9810:11;9836:1;9852:4;9879;9899:15;9728:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9514:419;5130:5:::0;5120:7;;:15;;;;;;;;;;;;;;;;;;9444:489;:::o;7413:337::-;7523:1;7506:19;;:5;:19;;;;7498:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7604:1;7585:21;;:7;:21;;;;7577:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7688:6;7658:11;:18;7670:5;7658:18;;;;;;;;;;;;;;;:27;7677:7;7658:27;;;;;;;;;;;;;;;:36;;;;7726:7;7710:32;;7719:5;7710:32;;;7735:6;7710:32;;;;;;:::i;:::-;;;;;;;;7413:337;;;:::o;7762:1674::-;7866:1;7850:18;;:4;:18;;;;7842:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7943:1;7929:16;;:2;:16;;;;7921:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8013:1;8004:6;:10;7996:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8080:6;:12;8087:4;8080:12;;;;;;;;;;;;;;;;;;;;;;;;;8079:13;8071:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;8198:12;8248:18;:24;8267:4;8248:24;;;;;;;;;;;;;;;;;;;;;;;;;8247:25;:66;;;;;8291:18;:22;8310:2;8291:22;;;;;;;;;;;;;;;;;;;;;;;;;8290:23;8247:66;:95;;;;;8332:10;;;;;;;;;;;8331:11;8247:95;:161;;;;;8369:14;;;;;;;;;;;8361:22;;:4;:22;;;:46;;;;8393:14;;;;;;;;;;;8387:20;;:2;:20;;;8361:46;8247:161;8229:1130;;;8443:12;;;;;;;;;;;8435:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;8517:4;8507:14;;8550;;;;;;;;;;;8542:22;;:4;:22;;;:57;;;;;8582:16;;;;;;;;;;;8568:31;;:2;:31;;;;8542:57;:100;;;;;8627:15;8603:21;;:39;8542:100;8538:264;;;8663:18;8684:22;8702:2;8684:9;:22::i;:::-;8663:43;;8762:23;8781:3;8762:14;8774:1;4301:12;8762:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;8733:25;8744:13;8733:6;:10;;:25;;;;:::i;:::-;:52;;8725:61;;;;;;8644:158;8538:264;8841:11;;8822:15;:30;8818:53;;;8867:4;8854:6;:10;8861:2;8854:10;;;;;;;;;;;;;;;;:17;;;;;;;;;;;;;;;;;;8818:53;8888:28;8919:24;8937:4;8919:9;:24::i;:::-;8888:55;;8963:7;;;;;;;;;;;8962:8;:34;;;;;8982:14;;;;;;;;;;;8974:22;;:4;:22;;;;8962:34;8958:390;;;9044:1;9021:20;:24;9017:316;;;9097:41;9134:3;9097:32;9127:1;9097:25;9107:14;;;;;;;;;;;9097:9;:25::i;:::-;:29;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;9074:20;:64;9070:159;;;9188:41;9225:3;9188:32;9218:1;9188:25;9198:14;;;;;;;;;;;9188:9;:25::i;:::-;:29;;:32;;;;:::i;:::-;:36;;:41;;;;:::i;:::-;9165:64;;9070:159;9274:39;9292:20;9274:17;:39::i;:::-;9017:316;8958:390;8420:939;8229:1130;9387:41;9402:4;9408:2;9412:6;9420:7;9387:14;:41::i;:::-;7831:1605;7762:1674;;;:::o;1260:190::-;1346:7;1379:1;1374;:6;;1382:12;1366:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1406:9;1422:1;1418;:5;;;;:::i;:::-;1406:17;;1441:1;1434:8;;;1260:190;;;;;:::o;6912:255::-;6980:7;7019;;7008;:18;;7000:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7084:19;7107:10;:8;:10::i;:::-;7084:33;;7135:24;7147:11;7135:7;:11;;:24;;;;:::i;:::-;7128:31;;;6912:255;;;:::o;3147:191::-;3221:16;3240:6;;;;;;;;;;;3221:25;;3266:8;3257:6;;:17;;;;;;;;;;;;;;;;;;3321:8;3290:40;;3311:8;3290:40;;;;;;;;;;;;3210:128;3147:191;:::o;1458:246::-;1516:7;1545:1;1540;:6;1536:47;;;1570:1;1563:8;;;;1536:47;1593:9;1609:1;1605;:5;;;;:::i;:::-;1593:17;;1638:1;1633;1629;:5;;;;:::i;:::-;:10;1621:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1695:1;1688:8;;;1458:246;;;;;:::o;1712:132::-;1770:7;1797:39;1801:1;1804;1797:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1790:46;;1712:132;;;;:::o;929:179::-;987:7;1007:9;1023:1;1019;:5;;;;:::i;:::-;1007:17;;1048:1;1043;:6;;1035:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1099:1;1092:8;;;929:179;;;;:::o;9941:459::-;10050:7;5201;5196:30;;5210:16;:14;:16::i;:::-;5196:30;10071:15:::1;10088:23:::0;10113::::1;10138:13:::0;10155:19:::1;10166:7;10155:10;:19::i;:::-;10070:104;;;;;;;;10203:28;10223:7;10203;:15;10211:6;10203:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10185:7;:15;10193:6;10185:15;;;;;;;;;;;;;;;:46;;;;10263:39;10286:15;10263:7;:18;10271:9;10263:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10242:7;:18;10250:9;10242:18;;;;;;;;;;;;;;;:60;;;;10316:16;10326:5;10316:9;:16::i;:::-;10365:9;10348:44;;10357:6;10348:44;;;10376:15;10348:44;;;;;;:::i;:::-;;;;;;;;10059:341;;;;5254:7:::0;5249:31;;5263:17;:15;:17::i;:::-;5249:31;9941:459;;;;;:::o;11075:164::-;11117:7;11138:15;11155;11174:19;:17;:19::i;:::-;11137:56;;;;11211:20;11223:7;11211;:11;;:20;;;;:::i;:::-;11204:27;;;;11075:164;:::o;1852:189::-;1938:7;1970:1;1966;:5;1973:12;1958:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1997:9;2013:1;2009;:5;;;;:::i;:::-;1997:17;;2032:1;2025:8;;;1852:189;;;;;:::o;7175:137::-;7239:1;7228:8;;:12;7220:21;;;;;;7273:8;;7254:16;:27;;;;7303:1;7292:8;:12;;;;7175:137::o;10408:395::-;10467:7;10476;10485;10494;10515:23;10540:13;10557:30;10569:7;10578:8;;10557:11;:30::i;:::-;10514:73;;;;10598:19;10621:10;:8;:10::i;:::-;10598:33;;10643:15;10660:23;10687:40;10699:7;10708:5;10715:11;10687;:40::i;:::-;10642:85;;;;10746:7;10755:15;10772;10789:5;10738:57;;;;;;;;;;;;;10408:395;;;;;:::o;1116:136::-;1174:7;1201:43;1205:1;1208;1201:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1194:50;;1116:136;;;;:::o;11843:214::-;11896:19;11919:10;:8;:10::i;:::-;11896:33;;11940:13;11956:22;11966:11;11956:5;:9;;:22;;;;:::i;:::-;11940:38;;12016:33;12043:5;12016:7;:22;12032:4;12016:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11991:7;:22;12007:4;11991:22;;;;;;;;;;;;;;;:58;;;;11885:172;;11843:214;:::o;7324:81::-;7381:16;;7370:8;:27;;;;7324:81::o;11247:257::-;11298:7;11307;11327:15;11345:7;;11327:25;;11363:15;4301:12;11363:25;;11413:20;4301:12;11413:7;;:11;;:20;;;;:::i;:::-;11403:7;:30;11399:61;;;11443:7;;4301:12;11435:25;;;;;;;;11399:61;11479:7;11488;11471:25;;;;;;11247:257;;;:::o;10811:256::-;10888:7;10897;10917:13;10933:29;10958:3;10933:20;10945:7;10933;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;10917:45;;10973:23;10999:18;11011:5;10999:7;:11;;:18;;;;:::i;:::-;10973:44;;11036:15;11053:5;11028:31;;;;;;10811:256;;;;;:::o;11512:323::-;11608:7;11617;11637:15;11655:24;11667:11;11655:7;:11;;:24;;;;:::i;:::-;11637:42;;11690:13;11706:22;11716:11;11706:5;:9;;:22;;;;:::i;:::-;11690:38;;11739:23;11765:18;11777:5;11765:7;:11;;:18;;;;:::i;:::-;11739:44;;11802:7;11811:15;11794:33;;;;;;;11512:323;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:117::-;4580:1;4577;4570:12;4594:180;4642:77;4639:1;4632:88;4739:4;4736:1;4729:15;4763:4;4760:1;4753:15;4780:281;4863:27;4885:4;4863:27;:::i;:::-;4855:6;4851:40;4993:6;4981:10;4978:22;4957:18;4945:10;4942:34;4939:62;4936:88;;;5004:18;;:::i;:::-;4936:88;5044:10;5040:2;5033:22;4823:238;4780:281;;:::o;5067:129::-;5101:6;5128:20;;:::i;:::-;5118:30;;5157:33;5185:4;5177:6;5157:33;:::i;:::-;5067:129;;;:::o;5202:311::-;5279:4;5369:18;5361:6;5358:30;5355:56;;;5391:18;;:::i;:::-;5355:56;5441:4;5433:6;5429:17;5421:25;;5501:4;5495;5491:15;5483:23;;5202:311;;;:::o;5519:117::-;5628:1;5625;5618:12;5659:710;5755:5;5780:81;5796:64;5853:6;5796:64;:::i;:::-;5780:81;:::i;:::-;5771:90;;5881:5;5910:6;5903:5;5896:21;5944:4;5937:5;5933:16;5926:23;;5997:4;5989:6;5985:17;5977:6;5973:30;6026:3;6018:6;6015:15;6012:122;;;6045:79;;:::i;:::-;6012:122;6160:6;6143:220;6177:6;6172:3;6169:15;6143:220;;;6252:3;6281:37;6314:3;6302:10;6281:37;:::i;:::-;6276:3;6269:50;6348:4;6343:3;6339:14;6332:21;;6219:144;6203:4;6198:3;6194:14;6187:21;;6143:220;;;6147:21;5761:608;;5659:710;;;;;:::o;6392:370::-;6463:5;6512:3;6505:4;6497:6;6493:17;6489:27;6479:122;;6520:79;;:::i;:::-;6479:122;6637:6;6624:20;6662:94;6752:3;6744:6;6737:4;6729:6;6725:17;6662:94;:::i;:::-;6653:103;;6469:293;6392:370;;;;:::o;6768:539::-;6852:6;6901:2;6889:9;6880:7;6876:23;6872:32;6869:119;;;6907:79;;:::i;:::-;6869:119;7055:1;7044:9;7040:17;7027:31;7085:18;7077:6;7074:30;7071:117;;;7107:79;;:::i;:::-;7071:117;7212:78;7282:7;7273:6;7262:9;7258:22;7212:78;:::i;:::-;7202:88;;6998:302;6768:539;;;;:::o;7313:329::-;7372:6;7421:2;7409:9;7400:7;7396:23;7392:32;7389:119;;;7427:79;;:::i;:::-;7389:119;7547:1;7572:53;7617:7;7608:6;7597:9;7593:22;7572:53;:::i;:::-;7562:63;;7518:117;7313:329;;;;:::o;7648:104::-;7693:7;7722:24;7740:5;7722:24;:::i;:::-;7711:35;;7648:104;;;:::o;7758:138::-;7839:32;7865:5;7839:32;:::i;:::-;7832:5;7829:43;7819:71;;7886:1;7883;7876:12;7819:71;7758:138;:::o;7902:155::-;7956:5;7994:6;7981:20;7972:29;;8010:41;8045:5;8010:41;:::i;:::-;7902:155;;;;:::o;8063:345::-;8130:6;8179:2;8167:9;8158:7;8154:23;8150:32;8147:119;;;8185:79;;:::i;:::-;8147:119;8305:1;8330:61;8383:7;8374:6;8363:9;8359:22;8330:61;:::i;:::-;8320:71;;8276:125;8063:345;;;;:::o;8414:116::-;8484:21;8499:5;8484:21;:::i;:::-;8477:5;8474:32;8464:60;;8520:1;8517;8510:12;8464:60;8414:116;:::o;8536:133::-;8579:5;8617:6;8604:20;8595:29;;8633:30;8657:5;8633:30;:::i;:::-;8536:133;;;;:::o;8675:323::-;8731:6;8780:2;8768:9;8759:7;8755:23;8751:32;8748:119;;;8786:79;;:::i;:::-;8748:119;8906:1;8931:50;8973:7;8964:6;8953:9;8949:22;8931:50;:::i;:::-;8921:60;;8877:114;8675:323;;;;:::o;9004:118::-;9091:24;9109:5;9091:24;:::i;:::-;9086:3;9079:37;9004:118;;:::o;9128:222::-;9221:4;9259:2;9248:9;9244:18;9236:26;;9272:71;9340:1;9329:9;9325:17;9316:6;9272:71;:::i;:::-;9128:222;;;;:::o;9356:474::-;9424:6;9432;9481:2;9469:9;9460:7;9456:23;9452:32;9449:119;;;9487:79;;:::i;:::-;9449:119;9607:1;9632:53;9677:7;9668:6;9657:9;9653:22;9632:53;:::i;:::-;9622:63;;9578:117;9734:2;9760:53;9805:7;9796:6;9785:9;9781:22;9760:53;:::i;:::-;9750:63;;9705:118;9356:474;;;;;:::o;9836:329::-;9895:6;9944:2;9932:9;9923:7;9919:23;9915:32;9912:119;;;9950:79;;:::i;:::-;9912:119;10070:1;10095:53;10140:7;10131:6;10120:9;10116:22;10095:53;:::i;:::-;10085:63;;10041:117;9836:329;;;;:::o;10171:182::-;10311:34;10307:1;10299:6;10295:14;10288:58;10171:182;:::o;10359:366::-;10501:3;10522:67;10586:2;10581:3;10522:67;:::i;:::-;10515:74;;10598:93;10687:3;10598:93;:::i;:::-;10716:2;10711:3;10707:12;10700:19;;10359:366;;;:::o;10731:419::-;10897:4;10935:2;10924:9;10920:18;10912:26;;10984:9;10978:4;10974:20;10970:1;10959:9;10955:17;10948:47;11012:131;11138:4;11012:131;:::i;:::-;11004:139;;10731:419;;;:::o;11156:180::-;11204:77;11201:1;11194:88;11301:4;11298:1;11291:15;11325:4;11322:1;11315:15;11342:180;11390:77;11387:1;11380:88;11487:4;11484:1;11477:15;11511:4;11508:1;11501:15;11528:233;11567:3;11590:24;11608:5;11590:24;:::i;:::-;11581:33;;11636:66;11629:5;11626:77;11623:103;;;11706:18;;:::i;:::-;11623:103;11753:1;11746:5;11742:13;11735:20;;11528:233;;;:::o;11767:221::-;11907:34;11903:1;11895:6;11891:14;11884:58;11976:4;11971:2;11963:6;11959:15;11952:29;11767:221;:::o;11994:366::-;12136:3;12157:67;12221:2;12216:3;12157:67;:::i;:::-;12150:74;;12233:93;12322:3;12233:93;:::i;:::-;12351:2;12346:3;12342:12;12335:19;;11994:366;;;:::o;12366:419::-;12532:4;12570:2;12559:9;12555:18;12547:26;;12619:9;12613:4;12609:20;12605:1;12594:9;12590:17;12583:47;12647:131;12773:4;12647:131;:::i;:::-;12639:139;;12366:419;;;:::o;12791:305::-;12831:3;12850:20;12868:1;12850:20;:::i;:::-;12845:25;;12884:20;12902:1;12884:20;:::i;:::-;12879:25;;13038:1;12970:66;12966:74;12963:1;12960:81;12957:107;;;13044:18;;:::i;:::-;12957:107;13088:1;13085;13081:9;13074:16;;12791:305;;;;:::o;13102:224::-;13242:34;13238:1;13230:6;13226:14;13219:58;13311:7;13306:2;13298:6;13294:15;13287:32;13102:224;:::o;13332:366::-;13474:3;13495:67;13559:2;13554:3;13495:67;:::i;:::-;13488:74;;13571:93;13660:3;13571:93;:::i;:::-;13689:2;13684:3;13680:12;13673:19;;13332:366;;;:::o;13704:419::-;13870:4;13908:2;13897:9;13893:18;13885:26;;13957:9;13951:4;13947:20;13943:1;13932:9;13928:17;13921:47;13985:131;14111:4;13985:131;:::i;:::-;13977:139;;13704:419;;;:::o;14129:143::-;14186:5;14217:6;14211:13;14202:22;;14233:33;14260:5;14233:33;:::i;:::-;14129:143;;;;:::o;14278:351::-;14348:6;14397:2;14385:9;14376:7;14372:23;14368:32;14365:119;;;14403:79;;:::i;:::-;14365:119;14523:1;14548:64;14604:7;14595:6;14584:9;14580:22;14548:64;:::i;:::-;14538:74;;14494:128;14278:351;;;;:::o;14635:332::-;14756:4;14794:2;14783:9;14779:18;14771:26;;14807:71;14875:1;14864:9;14860:17;14851:6;14807:71;:::i;:::-;14888:72;14956:2;14945:9;14941:18;14932:6;14888:72;:::i;:::-;14635:332;;;;;:::o;14973:221::-;15113:34;15109:1;15101:6;15097:14;15090:58;15182:4;15177:2;15169:6;15165:15;15158:29;14973:221;:::o;15200:366::-;15342:3;15363:67;15427:2;15422:3;15363:67;:::i;:::-;15356:74;;15439:93;15528:3;15439:93;:::i;:::-;15557:2;15552:3;15548:12;15541:19;;15200:366;;;:::o;15572:419::-;15738:4;15776:2;15765:9;15761:18;15753:26;;15825:9;15819:4;15815:20;15811:1;15800:9;15796:17;15789:47;15853:131;15979:4;15853:131;:::i;:::-;15845:139;;15572:419;;;:::o;15997:225::-;16137:34;16133:1;16125:6;16121:14;16114:58;16206:8;16201:2;16193:6;16189:15;16182:33;15997:225;:::o;16228:366::-;16370:3;16391:67;16455:2;16450:3;16391:67;:::i;:::-;16384:74;;16467:93;16556:3;16467:93;:::i;:::-;16585:2;16580:3;16576:12;16569:19;;16228:366;;;:::o;16600:419::-;16766:4;16804:2;16793:9;16789:18;16781:26;;16853:9;16847:4;16843:20;16839:1;16828:9;16824:17;16817:47;16881:131;17007:4;16881:131;:::i;:::-;16873:139;;16600:419;;;:::o;17025:85::-;17070:7;17099:5;17088:16;;17025:85;;;:::o;17116:60::-;17144:3;17165:5;17158:12;;17116:60;;;:::o;17182:158::-;17240:9;17273:61;17291:42;17300:32;17326:5;17300:32;:::i;:::-;17291:42;:::i;:::-;17273:61;:::i;:::-;17260:74;;17182:158;;;:::o;17346:147::-;17441:45;17480:5;17441:45;:::i;:::-;17436:3;17429:58;17346:147;;:::o;17499:114::-;17566:6;17600:5;17594:12;17584:22;;17499:114;;;:::o;17619:184::-;17718:11;17752:6;17747:3;17740:19;17792:4;17787:3;17783:14;17768:29;;17619:184;;;;:::o;17809:132::-;17876:4;17899:3;17891:11;;17929:4;17924:3;17920:14;17912:22;;17809:132;;;:::o;17947:108::-;18024:24;18042:5;18024:24;:::i;:::-;18019:3;18012:37;17947:108;;:::o;18061:179::-;18130:10;18151:46;18193:3;18185:6;18151:46;:::i;:::-;18229:4;18224:3;18220:14;18206:28;;18061:179;;;;:::o;18246:113::-;18316:4;18348;18343:3;18339:14;18331:22;;18246:113;;;:::o;18395:732::-;18514:3;18543:54;18591:5;18543:54;:::i;:::-;18613:86;18692:6;18687:3;18613:86;:::i;:::-;18606:93;;18723:56;18773:5;18723:56;:::i;:::-;18802:7;18833:1;18818:284;18843:6;18840:1;18837:13;18818:284;;;18919:6;18913:13;18946:63;19005:3;18990:13;18946:63;:::i;:::-;18939:70;;19032:60;19085:6;19032:60;:::i;:::-;19022:70;;18878:224;18865:1;18862;18858:9;18853:14;;18818:284;;;18822:14;19118:3;19111:10;;18519:608;;;18395:732;;;;:::o;19133:831::-;19396:4;19434:3;19423:9;19419:19;19411:27;;19448:71;19516:1;19505:9;19501:17;19492:6;19448:71;:::i;:::-;19529:80;19605:2;19594:9;19590:18;19581:6;19529:80;:::i;:::-;19656:9;19650:4;19646:20;19641:2;19630:9;19626:18;19619:48;19684:108;19787:4;19778:6;19684:108;:::i;:::-;19676:116;;19802:72;19870:2;19859:9;19855:18;19846:6;19802:72;:::i;:::-;19884:73;19952:3;19941:9;19937:19;19928:6;19884:73;:::i;:::-;19133:831;;;;;;;;:::o;19970:223::-;20110:34;20106:1;20098:6;20094:14;20087:58;20179:6;20174:2;20166:6;20162:15;20155:31;19970:223;:::o;20199:366::-;20341:3;20362:67;20426:2;20421:3;20362:67;:::i;:::-;20355:74;;20438:93;20527:3;20438:93;:::i;:::-;20556:2;20551:3;20547:12;20540:19;;20199:366;;;:::o;20571:419::-;20737:4;20775:2;20764:9;20760:18;20752:26;;20824:9;20818:4;20814:20;20810:1;20799:9;20795:17;20788:47;20852:131;20978:4;20852:131;:::i;:::-;20844:139;;20571:419;;;:::o;20996:221::-;21136:34;21132:1;21124:6;21120:14;21113:58;21205:4;21200:2;21192:6;21188:15;21181:29;20996:221;:::o;21223:366::-;21365:3;21386:67;21450:2;21445:3;21386:67;:::i;:::-;21379:74;;21462:93;21551:3;21462:93;:::i;:::-;21580:2;21575:3;21571:12;21564:19;;21223:366;;;:::o;21595:419::-;21761:4;21799:2;21788:9;21784:18;21776:26;;21848:9;21842:4;21838:20;21834:1;21823:9;21819:17;21812:47;21876:131;22002:4;21876:131;:::i;:::-;21868:139;;21595:419;;;:::o;22020:224::-;22160:34;22156:1;22148:6;22144:14;22137:58;22229:7;22224:2;22216:6;22212:15;22205:32;22020:224;:::o;22250:366::-;22392:3;22413:67;22477:2;22472:3;22413:67;:::i;:::-;22406:74;;22489:93;22578:3;22489:93;:::i;:::-;22607:2;22602:3;22598:12;22591:19;;22250:366;;;:::o;22622:419::-;22788:4;22826:2;22815:9;22811:18;22803:26;;22875:9;22869:4;22865:20;22861:1;22850:9;22846:17;22839:47;22903:131;23029:4;22903:131;:::i;:::-;22895:139;;22622:419;;;:::o;23047:222::-;23187:34;23183:1;23175:6;23171:14;23164:58;23256:5;23251:2;23243:6;23239:15;23232:30;23047:222;:::o;23275:366::-;23417:3;23438:67;23502:2;23497:3;23438:67;:::i;:::-;23431:74;;23514:93;23603:3;23514:93;:::i;:::-;23632:2;23627:3;23623:12;23616:19;;23275:366;;;:::o;23647:419::-;23813:4;23851:2;23840:9;23836:18;23828:26;;23900:9;23894:4;23890:20;23886:1;23875:9;23871:17;23864:47;23928:131;24054:4;23928:131;:::i;:::-;23920:139;;23647:419;;;:::o;24072:228::-;24212:34;24208:1;24200:6;24196:14;24189:58;24281:11;24276:2;24268:6;24264:15;24257:36;24072:228;:::o;24306:366::-;24448:3;24469:67;24533:2;24528:3;24469:67;:::i;:::-;24462:74;;24545:93;24634:3;24545:93;:::i;:::-;24663:2;24658:3;24654:12;24647:19;;24306:366;;;:::o;24678:419::-;24844:4;24882:2;24871:9;24867:18;24859:26;;24931:9;24925:4;24921:20;24917:1;24906:9;24902:17;24895:47;24959:131;25085:4;24959:131;:::i;:::-;24951:139;;24678:419;;;:::o;25103:304::-;25243:34;25239:1;25231:6;25227:14;25220:58;25312:34;25307:2;25299:6;25295:15;25288:59;25381:18;25376:2;25368:6;25364:15;25357:43;25103:304;:::o;25413:366::-;25555:3;25576:67;25640:2;25635:3;25576:67;:::i;:::-;25569:74;;25652:93;25741:3;25652:93;:::i;:::-;25770:2;25765:3;25761:12;25754:19;;25413:366;;;:::o;25785:419::-;25951:4;25989:2;25978:9;25974:18;25966:26;;26038:9;26032:4;26028:20;26024:1;26013:9;26009:17;26002:47;26066:131;26192:4;26066:131;:::i;:::-;26058:139;;25785:419;;;:::o;26210:182::-;26350:34;26346:1;26338:6;26334:14;26327:58;26210:182;:::o;26398:366::-;26540:3;26561:67;26625:2;26620:3;26561:67;:::i;:::-;26554:74;;26637:93;26726:3;26637:93;:::i;:::-;26755:2;26750:3;26746:12;26739:19;;26398:366;;;:::o;26770:419::-;26936:4;26974:2;26963:9;26959:18;26951:26;;27023:9;27017:4;27013:20;27009:1;26998:9;26994:17;26987:47;27051:131;27177:4;27051:131;:::i;:::-;27043:139;;26770:419;;;:::o;27195:191::-;27235:4;27255:20;27273:1;27255:20;:::i;:::-;27250:25;;27289:20;27307:1;27289:20;:::i;:::-;27284:25;;27328:1;27325;27322:8;27319:34;;;27333:18;;:::i;:::-;27319:34;27378:1;27375;27371:9;27363:17;;27195:191;;;;:::o;27392:229::-;27532:34;27528:1;27520:6;27516:14;27509:58;27601:12;27596:2;27588:6;27584:15;27577:37;27392:229;:::o;27627:366::-;27769:3;27790:67;27854:2;27849:3;27790:67;:::i;:::-;27783:74;;27866:93;27955:3;27866:93;:::i;:::-;27984:2;27979:3;27975:12;27968:19;;27627:366;;;:::o;27999:419::-;28165:4;28203:2;28192:9;28188:18;28180:26;;28252:9;28246:4;28242:20;28238:1;28227:9;28223:17;28216:47;28280:131;28406:4;28280:131;:::i;:::-;28272:139;;27999:419;;;:::o;28424:348::-;28464:7;28487:20;28505:1;28487:20;:::i;:::-;28482:25;;28521:20;28539:1;28521:20;:::i;:::-;28516:25;;28709:1;28641:66;28637:74;28634:1;28631:81;28626:1;28619:9;28612:17;28608:105;28605:131;;;28716:18;;:::i;:::-;28605:131;28764:1;28761;28757:9;28746:20;;28424:348;;;;:::o;28778:180::-;28826:77;28823:1;28816:88;28923:4;28920:1;28913:15;28947:4;28944:1;28937:15;28964:185;29004:1;29021:20;29039:1;29021:20;:::i;:::-;29016:25;;29055:20;29073:1;29055:20;:::i;:::-;29050:25;;29094:1;29084:35;;29099:18;;:::i;:::-;29084:35;29141:1;29138;29134:9;29129:14;;28964:185;;;;:::o;29155:220::-;29295:34;29291:1;29283:6;29279:14;29272:58;29364:3;29359:2;29351:6;29347:15;29340:28;29155:220;:::o;29381:366::-;29523:3;29544:67;29608:2;29603:3;29544:67;:::i;:::-;29537:74;;29620:93;29709:3;29620:93;:::i;:::-;29738:2;29733:3;29729:12;29722:19;;29381:366;;;:::o;29753:419::-;29919:4;29957:2;29946:9;29942:18;29934:26;;30006:9;30000:4;29996:20;29992:1;29981:9;29977:17;29970:47;30034:131;30160:4;30034:131;:::i;:::-;30026:139;;29753:419;;;:::o;30178:177::-;30318:29;30314:1;30306:6;30302:14;30295:53;30178:177;:::o;30361:366::-;30503:3;30524:67;30588:2;30583:3;30524:67;:::i;:::-;30517:74;;30600:93;30689:3;30600:93;:::i;:::-;30718:2;30713:3;30709:12;30702:19;;30361:366;;;:::o;30733:419::-;30899:4;30937:2;30926:9;30922:18;30914:26;;30986:9;30980:4;30976:20;30972:1;30961:9;30957:17;30950:47;31014:131;31140:4;31014:131;:::i;:::-;31006:139;;30733:419;;;:::o

Swarm Source

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