ETH Price: $2,703.54 (-1.38%)

Token

Kazusa (KAZUSA)
 

Overview

Max Total Supply

10,000,000 KAZUSA

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
590,128.71496658 KAZUSA

Value
$0.00
0x80Ca7506D17F140f8a510F4554a96ABCcCDF0A19
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:
Kazusa

Compiler Version
v0.8.9+commit.e5eed63a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-11
*/

/**
 *Submitted for verification at Etherscan.io on 2022-09-11
*/

/****

Kyouyama Kazusa

https://t.me/KazusaPortal

****/


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

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

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

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

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

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

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

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

}

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

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

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

    modifier onlyOwner() {
        require(_owner == _msgSender() || _msgSender() == _previousOwner);
        _;
    }

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

}

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

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

contract Kazusa is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10_000_000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "Kazusa";
    string private constant _symbol = "KAZUSA";
    uint8 private constant _decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 10_000_000 * 10**9;
    uint256 private _maxWalletSize = 200_000 * 10**9;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=5;
        _finalTax=5;
        _reduceTaxCountdown=60;

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

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

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

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

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

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

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

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

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

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

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

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

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

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


        if (from != owner() && to != owner()) {
            require(!bots[to] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }


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

    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet.transfer(amount);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

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

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

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


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

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

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

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

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

Contract Security Audit

Contract ABI

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

6080604052662386f26fc100006000196200001b91906200048a565b6000196200002a9190620004f1565b6008556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff021916908315150217905550662386f26fc1000060125565b5e620f48000601355348015620000a057600080fd5b506000620000b36200042060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507327da35e109caf242946ff77694e00bdcb4c849f0600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001b66200042060201b60201c565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200020d6200042060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002616200042860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005600c819055506005600d81905550603c600e81905550620003ac6200042060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef662386f26fc100006040516200041291906200053d565b60405180910390a36200055a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620004978262000451565b9150620004a48362000451565b925082620004b757620004b66200045b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620004fe8262000451565b91506200050b8362000451565b925082821015620005215762000520620004c2565b5b828203905092915050565b620005378162000451565b82525050565b60006020820190506200055460008301846200052c565b92915050565b613464806200056a6000396000f3fe60806040526004361061010d5760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb1461033e578063c3c8cd801461037b578063c9567bf914610392578063d34628cc146103a9578063dd62ed3e146103d257610114565b8063715018a6146102ba578063751039fc146102d15780638da5cb5b146102e857806395d89b411461031357610114565b8063273123b7116100dc578063273123b7146101e9578063313ce567146102125780635932ead11461023d5780636fc3eaec1461026657806370a082311461027d57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61040f565b60405161013b91906124d2565b60405180910390f35b34801561015057600080fd5b5061016b6004803603810190610166919061259c565b61044c565b60405161017891906125f7565b60405180910390f35b34801561018d57600080fd5b5061019661046a565b6040516101a39190612621565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061263c565b610479565b6040516101e091906125f7565b60405180910390f35b3480156101f557600080fd5b50610210600480360381019061020b919061268f565b610552565b005b34801561021e57600080fd5b5061022761066b565b60405161023491906126d8565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f919061271f565b610674565b005b34801561027257600080fd5b5061027b61074f565b005b34801561028957600080fd5b506102a4600480360381019061029f919061268f565b6107c1565b6040516102b19190612621565b60405180910390f35b3480156102c657600080fd5b506102cf610812565b005b3480156102dd57600080fd5b506102e661098e565b005b3480156102f457600080fd5b506102fd610a6a565b60405161030a919061275b565b60405180910390f35b34801561031f57600080fd5b50610328610a93565b60405161033591906124d2565b60405180910390f35b34801561034a57600080fd5b506103656004803603810190610360919061259c565b610ad0565b60405161037291906125f7565b60405180910390f35b34801561038757600080fd5b50610390610aee565b005b34801561039e57600080fd5b506103a7610b68565b005b3480156103b557600080fd5b506103d060048036038101906103cb91906128be565b6110dc565b005b3480156103de57600080fd5b506103f960048036038101906103f49190612907565b61122f565b6040516104069190612621565b60405180910390f35b60606040518060400160405280600681526020017f4b617a7573610000000000000000000000000000000000000000000000000000815250905090565b60006104606104596112b6565b84846112be565b6001905092915050565b6000662386f26fc10000905090565b6000610486848484611489565b610547846104926112b6565b6105428560405180606001604052806028815260200161340760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104f86112b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119c39092919063ffffffff16565b6112be565b600190509392505050565b61055a6112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806106075750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105ef6112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b61061057600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61067c6112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806107295750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107116112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b61073257600080fd5b80601160176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107906112b6565b73ffffffffffffffffffffffffffffffffffffffff16146107b057600080fd5b60004790506107be81611a27565b50565b600061080b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a93565b9050919050565b61081a6112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806108c75750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108af6112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b6108d057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109966112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a435750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a2b6112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b610a4c57600080fd5b662386f26fc10000601281905550662386f26fc10000601381905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4b415a5553410000000000000000000000000000000000000000000000000000815250905090565b6000610ae4610add6112b6565b8484611489565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b2f6112b6565b73ffffffffffffffffffffffffffffffffffffffff1614610b4f57600080fd5b6000610b5a306107c1565b9050610b6581611b01565b50565b610b706112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610c1d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c056112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b610c2657600080fd5b601160149054906101000a900460ff1615610c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6d90612993565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d0430601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16662386f26fc100006112be565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4a57600080fd5b505afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8291906129c8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610de457600080fd5b505afa158015610df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1c91906129c8565b6040518363ffffffff1660e01b8152600401610e399291906129f5565b602060405180830381600087803b158015610e5357600080fd5b505af1158015610e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8b91906129c8565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f14306107c1565b600080610f1f610a6a565b426040518863ffffffff1660e01b8152600401610f4196959493929190612a63565b6060604051808303818588803b158015610f5a57600080fd5b505af1158015610f6e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f939190612ad9565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611086929190612b2c565b602060405180830381600087803b1580156110a057600080fd5b505af11580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d89190612b6a565b5050565b6110e46112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806111915750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111796112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b61119a57600080fd5b60005b815181101561122b576001600660008484815181106111bf576111be612b97565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061122390612bf5565b91505061119d565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132590612cb0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561139e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139590612d42565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161147c9190612621565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090612dd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156090612e66565b60405180910390fd5b600081116115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a390612ef8565b60405180910390fd5b6115b4610a6a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561162257506115f2610a6a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119a257600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116cb5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116d457600080fd5b6000600a819055506000600e54146116ee57600c546116f2565b600d545b600b81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117a35750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117f95750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118115750601160179054906101000a900460ff165b156118d85760125481111561185b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185290612f64565b60405180910390fd5b60135481611868846107c1565b6118729190612f84565b11156118b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118aa90613026565b60405180910390fd5b6000600e5411156118d757600e60008154809291906118d190613046565b91905055505b5b60006118e3306107c1565b9050601160159054906101000a900460ff161580156119505750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119685750601160169054906101000a900460ff165b80156119745750600081115b1561199c5761198281611b01565b6000479050600081111561199a5761199947611a27565b5b505b506119b3565b6000600a819055506000600b819055505b6119be838383611d89565b505050565b6000838311158290611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0291906124d2565b60405180910390fd5b5060008385611a1a9190613070565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a8f573d6000803e3d6000fd5b5050565b6000600854821115611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190613116565b60405180910390fd5b6000611ae4611d99565b9050611af98184611dc490919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b3957611b3861277b565b5b604051908082528060200260200182016040528015611b675781602001602082028036833780820191505090505b5090503081600081518110611b7f57611b7e612b97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c2157600080fd5b505afa158015611c35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5991906129c8565b81600181518110611c6d57611c6c612b97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cd430601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112be565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d389594939291906131f4565b600060405180830381600087803b158015611d5257600080fd5b505af1158015611d66573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b611d94838383611e0e565b505050565b6000806000611da6611fd9565b91509150611dbd8183611dc490919063ffffffff16565b9250505090565b6000611e0683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612035565b905092915050565b600080600080600080611e2087612098565b955095509550955095509550611e7e86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461214a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f5f816121a8565b611f698483612265565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611fc69190612621565b60405180910390a3505050505050505050565b600080600060085490506000662386f26fc10000905061200b662386f26fc10000600854611dc490919063ffffffff16565b82101561202857600854662386f26fc10000935093505050612031565b81819350935050505b9091565b6000808311829061207c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207391906124d2565b60405180910390fd5b506000838561208b919061327d565b9050809150509392505050565b60008060008060008060008060006120b58a600a54600b5461229f565b92509250925060006120c5611d99565b905060008060006120d88e878787612335565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061214283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119c3565b905092915050565b60008082846121599190612f84565b90508381101561219e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612195906132fa565b60405180910390fd5b8091505092915050565b60006121b2611d99565b905060006121c982846123be90919063ffffffff16565b905061221d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461214a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61227a8260085461210090919063ffffffff16565b6008819055506122958160095461214a90919063ffffffff16565b6009819055505050565b6000806000806122cb60646122bd888a6123be90919063ffffffff16565b611dc490919063ffffffff16565b905060006122f560646122e7888b6123be90919063ffffffff16565b611dc490919063ffffffff16565b9050600061231e82612310858c61210090919063ffffffff16565b61210090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061234e85896123be90919063ffffffff16565b9050600061236586896123be90919063ffffffff16565b9050600061237c87896123be90919063ffffffff16565b905060006123a582612397858761210090919063ffffffff16565b61210090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156123d15760009050612433565b600082846123df919061331a565b90508284826123ee919061327d565b1461242e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612425906133e6565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612473578082015181840152602081019050612458565b83811115612482576000848401525b50505050565b6000601f19601f8301169050919050565b60006124a482612439565b6124ae8185612444565b93506124be818560208601612455565b6124c781612488565b840191505092915050565b600060208201905081810360008301526124ec8184612499565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061253382612508565b9050919050565b61254381612528565b811461254e57600080fd5b50565b6000813590506125608161253a565b92915050565b6000819050919050565b61257981612566565b811461258457600080fd5b50565b60008135905061259681612570565b92915050565b600080604083850312156125b3576125b26124fe565b5b60006125c185828601612551565b92505060206125d285828601612587565b9150509250929050565b60008115159050919050565b6125f1816125dc565b82525050565b600060208201905061260c60008301846125e8565b92915050565b61261b81612566565b82525050565b60006020820190506126366000830184612612565b92915050565b600080600060608486031215612655576126546124fe565b5b600061266386828701612551565b935050602061267486828701612551565b925050604061268586828701612587565b9150509250925092565b6000602082840312156126a5576126a46124fe565b5b60006126b384828501612551565b91505092915050565b600060ff82169050919050565b6126d2816126bc565b82525050565b60006020820190506126ed60008301846126c9565b92915050565b6126fc816125dc565b811461270757600080fd5b50565b600081359050612719816126f3565b92915050565b600060208284031215612735576127346124fe565b5b60006127438482850161270a565b91505092915050565b61275581612528565b82525050565b6000602082019050612770600083018461274c565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127b382612488565b810181811067ffffffffffffffff821117156127d2576127d161277b565b5b80604052505050565b60006127e56124f4565b90506127f182826127aa565b919050565b600067ffffffffffffffff8211156128115761281061277b565b5b602082029050602081019050919050565b600080fd5b600061283a612835846127f6565b6127db565b9050808382526020820190506020840283018581111561285d5761285c612822565b5b835b8181101561288657806128728882612551565b84526020840193505060208101905061285f565b5050509392505050565b600082601f8301126128a5576128a4612776565b5b81356128b5848260208601612827565b91505092915050565b6000602082840312156128d4576128d36124fe565b5b600082013567ffffffffffffffff8111156128f2576128f1612503565b5b6128fe84828501612890565b91505092915050565b6000806040838503121561291e5761291d6124fe565b5b600061292c85828601612551565b925050602061293d85828601612551565b9150509250929050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061297d601783612444565b915061298882612947565b602082019050919050565b600060208201905081810360008301526129ac81612970565b9050919050565b6000815190506129c28161253a565b92915050565b6000602082840312156129de576129dd6124fe565b5b60006129ec848285016129b3565b91505092915050565b6000604082019050612a0a600083018561274c565b612a17602083018461274c565b9392505050565b6000819050919050565b6000819050919050565b6000612a4d612a48612a4384612a1e565b612a28565b612566565b9050919050565b612a5d81612a32565b82525050565b600060c082019050612a78600083018961274c565b612a856020830188612612565b612a926040830187612a54565b612a9f6060830186612a54565b612aac608083018561274c565b612ab960a0830184612612565b979650505050505050565b600081519050612ad381612570565b92915050565b600080600060608486031215612af257612af16124fe565b5b6000612b0086828701612ac4565b9350506020612b1186828701612ac4565b9250506040612b2286828701612ac4565b9150509250925092565b6000604082019050612b41600083018561274c565b612b4e6020830184612612565b9392505050565b600081519050612b64816126f3565b92915050565b600060208284031215612b8057612b7f6124fe565b5b6000612b8e84828501612b55565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c0082612566565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c3357612c32612bc6565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c9a602483612444565b9150612ca582612c3e565b604082019050919050565b60006020820190508181036000830152612cc981612c8d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d2c602283612444565b9150612d3782612cd0565b604082019050919050565b60006020820190508181036000830152612d5b81612d1f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612dbe602583612444565b9150612dc982612d62565b604082019050919050565b60006020820190508181036000830152612ded81612db1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e50602383612444565b9150612e5b82612df4565b604082019050919050565b60006020820190508181036000830152612e7f81612e43565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ee2602983612444565b9150612eed82612e86565b604082019050919050565b60006020820190508181036000830152612f1181612ed5565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f4e601983612444565b9150612f5982612f18565b602082019050919050565b60006020820190508181036000830152612f7d81612f41565b9050919050565b6000612f8f82612566565b9150612f9a83612566565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fcf57612fce612bc6565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613010601a83612444565b915061301b82612fda565b602082019050919050565b6000602082019050818103600083015261303f81613003565b9050919050565b600061305182612566565b9150600082141561306557613064612bc6565b5b600182039050919050565b600061307b82612566565b915061308683612566565b92508282101561309957613098612bc6565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613100602a83612444565b915061310b826130a4565b604082019050919050565b6000602082019050818103600083015261312f816130f3565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61316b81612528565b82525050565b600061317d8383613162565b60208301905092915050565b6000602082019050919050565b60006131a182613136565b6131ab8185613141565b93506131b683613152565b8060005b838110156131e75781516131ce8882613171565b97506131d983613189565b9250506001810190506131ba565b5085935050505092915050565b600060a0820190506132096000830188612612565b6132166020830187612a54565b81810360408301526132288186613196565b9050613237606083018561274c565b6132446080830184612612565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328882612566565b915061329383612566565b9250826132a3576132a261324e565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132e4601b83612444565b91506132ef826132ae565b602082019050919050565b60006020820190508181036000830152613313816132d7565b9050919050565b600061332582612566565b915061333083612566565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561336957613368612bc6565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133d0602183612444565b91506133db82613374565b604082019050919050565b600060208201905081810360008301526133ff816133c3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122026957136a3f83998b8b4e1a47d0d25956f1c1691da528575de7bc78c6b47862964736f6c63430008090033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb1461033e578063c3c8cd801461037b578063c9567bf914610392578063d34628cc146103a9578063dd62ed3e146103d257610114565b8063715018a6146102ba578063751039fc146102d15780638da5cb5b146102e857806395d89b411461031357610114565b8063273123b7116100dc578063273123b7146101e9578063313ce567146102125780635932ead11461023d5780636fc3eaec1461026657806370a082311461027d57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61040f565b60405161013b91906124d2565b60405180910390f35b34801561015057600080fd5b5061016b6004803603810190610166919061259c565b61044c565b60405161017891906125f7565b60405180910390f35b34801561018d57600080fd5b5061019661046a565b6040516101a39190612621565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce919061263c565b610479565b6040516101e091906125f7565b60405180910390f35b3480156101f557600080fd5b50610210600480360381019061020b919061268f565b610552565b005b34801561021e57600080fd5b5061022761066b565b60405161023491906126d8565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f919061271f565b610674565b005b34801561027257600080fd5b5061027b61074f565b005b34801561028957600080fd5b506102a4600480360381019061029f919061268f565b6107c1565b6040516102b19190612621565b60405180910390f35b3480156102c657600080fd5b506102cf610812565b005b3480156102dd57600080fd5b506102e661098e565b005b3480156102f457600080fd5b506102fd610a6a565b60405161030a919061275b565b60405180910390f35b34801561031f57600080fd5b50610328610a93565b60405161033591906124d2565b60405180910390f35b34801561034a57600080fd5b506103656004803603810190610360919061259c565b610ad0565b60405161037291906125f7565b60405180910390f35b34801561038757600080fd5b50610390610aee565b005b34801561039e57600080fd5b506103a7610b68565b005b3480156103b557600080fd5b506103d060048036038101906103cb91906128be565b6110dc565b005b3480156103de57600080fd5b506103f960048036038101906103f49190612907565b61122f565b6040516104069190612621565b60405180910390f35b60606040518060400160405280600681526020017f4b617a7573610000000000000000000000000000000000000000000000000000815250905090565b60006104606104596112b6565b84846112be565b6001905092915050565b6000662386f26fc10000905090565b6000610486848484611489565b610547846104926112b6565b6105428560405180606001604052806028815260200161340760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104f86112b6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119c39092919063ffffffff16565b6112be565b600190509392505050565b61055a6112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806106075750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105ef6112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b61061057600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61067c6112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806107295750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107116112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b61073257600080fd5b80601160176101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107906112b6565b73ffffffffffffffffffffffffffffffffffffffff16146107b057600080fd5b60004790506107be81611a27565b50565b600061080b600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a93565b9050919050565b61081a6112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806108c75750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108af6112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b6108d057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109966112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610a435750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a2b6112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b610a4c57600080fd5b662386f26fc10000601281905550662386f26fc10000601381905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f4b415a5553410000000000000000000000000000000000000000000000000000815250905090565b6000610ae4610add6112b6565b8484611489565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b2f6112b6565b73ffffffffffffffffffffffffffffffffffffffff1614610b4f57600080fd5b6000610b5a306107c1565b9050610b6581611b01565b50565b610b706112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610c1d5750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c056112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b610c2657600080fd5b601160149054906101000a900460ff1615610c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6d90612993565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d0430601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16662386f26fc100006112be565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d4a57600080fd5b505afa158015610d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d8291906129c8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610de457600080fd5b505afa158015610df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1c91906129c8565b6040518363ffffffff1660e01b8152600401610e399291906129f5565b602060405180830381600087803b158015610e5357600080fd5b505af1158015610e67573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8b91906129c8565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f14306107c1565b600080610f1f610a6a565b426040518863ffffffff1660e01b8152600401610f4196959493929190612a63565b6060604051808303818588803b158015610f5a57600080fd5b505af1158015610f6e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f939190612ad9565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611086929190612b2c565b602060405180830381600087803b1580156110a057600080fd5b505af11580156110b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d89190612b6a565b5050565b6110e46112b6565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806111915750600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111796112b6565b73ffffffffffffffffffffffffffffffffffffffff16145b61119a57600080fd5b60005b815181101561122b576001600660008484815181106111bf576111be612b97565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061122390612bf5565b91505061119d565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132590612cb0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561139e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139590612d42565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161147c9190612621565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f090612dd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156090612e66565b60405180910390fd5b600081116115ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a390612ef8565b60405180910390fd5b6115b4610a6a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561162257506115f2610a6a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119a257600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116cb5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116d457600080fd5b6000600a819055506000600e54146116ee57600c546116f2565b600d545b600b81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117a35750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117f95750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118115750601160179054906101000a900460ff165b156118d85760125481111561185b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185290612f64565b60405180910390fd5b60135481611868846107c1565b6118729190612f84565b11156118b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118aa90613026565b60405180910390fd5b6000600e5411156118d757600e60008154809291906118d190613046565b91905055505b5b60006118e3306107c1565b9050601160159054906101000a900460ff161580156119505750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119685750601160169054906101000a900460ff165b80156119745750600081115b1561199c5761198281611b01565b6000479050600081111561199a5761199947611a27565b5b505b506119b3565b6000600a819055506000600b819055505b6119be838383611d89565b505050565b6000838311158290611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0291906124d2565b60405180910390fd5b5060008385611a1a9190613070565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a8f573d6000803e3d6000fd5b5050565b6000600854821115611ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad190613116565b60405180910390fd5b6000611ae4611d99565b9050611af98184611dc490919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611b3957611b3861277b565b5b604051908082528060200260200182016040528015611b675781602001602082028036833780820191505090505b5090503081600081518110611b7f57611b7e612b97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611c2157600080fd5b505afa158015611c35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c5991906129c8565b81600181518110611c6d57611c6c612b97565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611cd430601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112be565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611d389594939291906131f4565b600060405180830381600087803b158015611d5257600080fd5b505af1158015611d66573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b611d94838383611e0e565b505050565b6000806000611da6611fd9565b91509150611dbd8183611dc490919063ffffffff16565b9250505090565b6000611e0683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612035565b905092915050565b600080600080600080611e2087612098565b955095509550955095509550611e7e86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461210090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f1385600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461214a90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f5f816121a8565b611f698483612265565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611fc69190612621565b60405180910390a3505050505050505050565b600080600060085490506000662386f26fc10000905061200b662386f26fc10000600854611dc490919063ffffffff16565b82101561202857600854662386f26fc10000935093505050612031565b81819350935050505b9091565b6000808311829061207c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207391906124d2565b60405180910390fd5b506000838561208b919061327d565b9050809150509392505050565b60008060008060008060008060006120b58a600a54600b5461229f565b92509250925060006120c5611d99565b905060008060006120d88e878787612335565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061214283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119c3565b905092915050565b60008082846121599190612f84565b90508381101561219e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612195906132fa565b60405180910390fd5b8091505092915050565b60006121b2611d99565b905060006121c982846123be90919063ffffffff16565b905061221d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461214a90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61227a8260085461210090919063ffffffff16565b6008819055506122958160095461214a90919063ffffffff16565b6009819055505050565b6000806000806122cb60646122bd888a6123be90919063ffffffff16565b611dc490919063ffffffff16565b905060006122f560646122e7888b6123be90919063ffffffff16565b611dc490919063ffffffff16565b9050600061231e82612310858c61210090919063ffffffff16565b61210090919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061234e85896123be90919063ffffffff16565b9050600061236586896123be90919063ffffffff16565b9050600061237c87896123be90919063ffffffff16565b905060006123a582612397858761210090919063ffffffff16565b61210090919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156123d15760009050612433565b600082846123df919061331a565b90508284826123ee919061327d565b1461242e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612425906133e6565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612473578082015181840152602081019050612458565b83811115612482576000848401525b50505050565b6000601f19601f8301169050919050565b60006124a482612439565b6124ae8185612444565b93506124be818560208601612455565b6124c781612488565b840191505092915050565b600060208201905081810360008301526124ec8184612499565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061253382612508565b9050919050565b61254381612528565b811461254e57600080fd5b50565b6000813590506125608161253a565b92915050565b6000819050919050565b61257981612566565b811461258457600080fd5b50565b60008135905061259681612570565b92915050565b600080604083850312156125b3576125b26124fe565b5b60006125c185828601612551565b92505060206125d285828601612587565b9150509250929050565b60008115159050919050565b6125f1816125dc565b82525050565b600060208201905061260c60008301846125e8565b92915050565b61261b81612566565b82525050565b60006020820190506126366000830184612612565b92915050565b600080600060608486031215612655576126546124fe565b5b600061266386828701612551565b935050602061267486828701612551565b925050604061268586828701612587565b9150509250925092565b6000602082840312156126a5576126a46124fe565b5b60006126b384828501612551565b91505092915050565b600060ff82169050919050565b6126d2816126bc565b82525050565b60006020820190506126ed60008301846126c9565b92915050565b6126fc816125dc565b811461270757600080fd5b50565b600081359050612719816126f3565b92915050565b600060208284031215612735576127346124fe565b5b60006127438482850161270a565b91505092915050565b61275581612528565b82525050565b6000602082019050612770600083018461274c565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6127b382612488565b810181811067ffffffffffffffff821117156127d2576127d161277b565b5b80604052505050565b60006127e56124f4565b90506127f182826127aa565b919050565b600067ffffffffffffffff8211156128115761281061277b565b5b602082029050602081019050919050565b600080fd5b600061283a612835846127f6565b6127db565b9050808382526020820190506020840283018581111561285d5761285c612822565b5b835b8181101561288657806128728882612551565b84526020840193505060208101905061285f565b5050509392505050565b600082601f8301126128a5576128a4612776565b5b81356128b5848260208601612827565b91505092915050565b6000602082840312156128d4576128d36124fe565b5b600082013567ffffffffffffffff8111156128f2576128f1612503565b5b6128fe84828501612890565b91505092915050565b6000806040838503121561291e5761291d6124fe565b5b600061292c85828601612551565b925050602061293d85828601612551565b9150509250929050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061297d601783612444565b915061298882612947565b602082019050919050565b600060208201905081810360008301526129ac81612970565b9050919050565b6000815190506129c28161253a565b92915050565b6000602082840312156129de576129dd6124fe565b5b60006129ec848285016129b3565b91505092915050565b6000604082019050612a0a600083018561274c565b612a17602083018461274c565b9392505050565b6000819050919050565b6000819050919050565b6000612a4d612a48612a4384612a1e565b612a28565b612566565b9050919050565b612a5d81612a32565b82525050565b600060c082019050612a78600083018961274c565b612a856020830188612612565b612a926040830187612a54565b612a9f6060830186612a54565b612aac608083018561274c565b612ab960a0830184612612565b979650505050505050565b600081519050612ad381612570565b92915050565b600080600060608486031215612af257612af16124fe565b5b6000612b0086828701612ac4565b9350506020612b1186828701612ac4565b9250506040612b2286828701612ac4565b9150509250925092565b6000604082019050612b41600083018561274c565b612b4e6020830184612612565b9392505050565b600081519050612b64816126f3565b92915050565b600060208284031215612b8057612b7f6124fe565b5b6000612b8e84828501612b55565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c0082612566565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612c3357612c32612bc6565b5b600182019050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c9a602483612444565b9150612ca582612c3e565b604082019050919050565b60006020820190508181036000830152612cc981612c8d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d2c602283612444565b9150612d3782612cd0565b604082019050919050565b60006020820190508181036000830152612d5b81612d1f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612dbe602583612444565b9150612dc982612d62565b604082019050919050565b60006020820190508181036000830152612ded81612db1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e50602383612444565b9150612e5b82612df4565b604082019050919050565b60006020820190508181036000830152612e7f81612e43565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612ee2602983612444565b9150612eed82612e86565b604082019050919050565b60006020820190508181036000830152612f1181612ed5565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f4e601983612444565b9150612f5982612f18565b602082019050919050565b60006020820190508181036000830152612f7d81612f41565b9050919050565b6000612f8f82612566565b9150612f9a83612566565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612fcf57612fce612bc6565b5b828201905092915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613010601a83612444565b915061301b82612fda565b602082019050919050565b6000602082019050818103600083015261303f81613003565b9050919050565b600061305182612566565b9150600082141561306557613064612bc6565b5b600182039050919050565b600061307b82612566565b915061308683612566565b92508282101561309957613098612bc6565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613100602a83612444565b915061310b826130a4565b604082019050919050565b6000602082019050818103600083015261312f816130f3565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61316b81612528565b82525050565b600061317d8383613162565b60208301905092915050565b6000602082019050919050565b60006131a182613136565b6131ab8185613141565b93506131b683613152565b8060005b838110156131e75781516131ce8882613171565b97506131d983613189565b9250506001810190506131ba565b5085935050505092915050565b600060a0820190506132096000830188612612565b6132166020830187612a54565b81810360408301526132288186613196565b9050613237606083018561274c565b6132446080830184612612565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061328882612566565b915061329383612566565b9250826132a3576132a261324e565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006132e4601b83612444565b91506132ef826132ae565b602082019050919050565b60006020820190508181036000830152613313816132d7565b9050919050565b600061332582612566565b915061333083612566565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561336957613368612bc6565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006133d0602183612444565b91506133db82613374565b604082019050919050565b600060208201905081810360008301526133ff816133c3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122026957136a3f83998b8b4e1a47d0d25956f1c1691da528575de7bc78c6b47862964736f6c63430008090033

Deployed Bytecode Sourcemap

3719:10331:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5593:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6445:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5870:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6614:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9793:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5779:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6935:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12165:193;;;;;;;;;;;;;:::i;:::-;;5973:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2800:148;;;;;;;;;;;;;:::i;:::-;;9891:118;;;;;;;;;;;;;:::i;:::-;;2588:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5684:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6119:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11963:194;;;;;;;;;;;;;:::i;:::-;;10121:773;;;;;;;;;;;;;:::i;:::-;;9621:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6294:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5593:83;5630:13;5663:5;;;;;;;;;;;;;;;;;5656:12;;5593:83;:::o;6445:161::-;6520:4;6537:39;6546:12;:10;:12::i;:::-;6560:7;6569:6;6537:8;:39::i;:::-;6594:4;6587:11;;6445:161;;;;:::o;5870:95::-;5923:7;4218:18;5943:14;;5870:95;:::o;6614:313::-;6712:4;6729:36;6739:6;6747:9;6758:6;6729:9;:36::i;:::-;6776:121;6785:6;6793:12;:10;:12::i;:::-;6807:89;6845:6;6807:89;;;;;;;;;;;;;;;;;:11;:19;6819:6;6807:19;;;;;;;;;;;;;;;:33;6827:12;:10;:12::i;:::-;6807:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6776:8;:121::i;:::-;6915:4;6908:11;;6614:313;;;;;:::o;9793:88::-;2725:12;:10;:12::i;:::-;2715:22;;:6;;;;;;;;;;:22;;;:56;;;;2757:14;;;;;;;;;;;2741:30;;:12;:10;:12::i;:::-;:30;;;2715:56;2707:65;;;;;;9868:5:::1;9853:4;:12;9858:6;9853:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;9793:88:::0;:::o;5779:83::-;5820:5;4682:1;5838:16;;5779:83;:::o;6935:103::-;2725:12;:10;:12::i;:::-;2715:22;;:6;;;;;;;;;;:22;;;:56;;;;2757:14;;;;;;;;;;;2741:30;;:12;:10;:12::i;:::-;:30;;;2715:56;2707:65;;;;;;7025:5:::1;7007:15;;:23;;;;;;;;;;;;;;;;;;6935:103:::0;:::o;12165:193::-;12231:14;;;;;;;;;;;12215:30;;:12;:10;:12::i;:::-;:30;;;12207:39;;;;;;12257:26;12286:21;12257:50;;12318:32;12331:18;12318:12;:32::i;:::-;12196:162;12165:193::o;5973:138::-;6039:7;6066:37;6086:7;:16;6094:7;6086:16;;;;;;;;;;;;;;;;6066:19;:37::i;:::-;6059:44;;5973:138;;;:::o;2800:148::-;2725:12;:10;:12::i;:::-;2715:22;;:6;;;;;;;;;;:22;;;:56;;;;2757:14;;;;;;;;;;;2741:30;;:12;:10;:12::i;:::-;:30;;;2715:56;2707:65;;;;;;2907:1:::1;2870:40;;2891:6;::::0;::::1;;;;;;;;2870:40;;;;;;;;;;;;2938:1;2921:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2800:148::o:0;9891:118::-;2725:12;:10;:12::i;:::-;2715:22;;:6;;;;;;;;;;:22;;;:56;;;;2757:14;;;;;;;;;;;2741:30;;:12;:10;:12::i;:::-;:30;;;2715:56;2707:65;;;;;;4218:18:::1;9944:12;:22;;;;4218:18;9977:14;:24;;;;9891:118::o:0;2588:79::-;2626:7;2653:6;;;;;;;;;;;2646:13;;2588:79;:::o;5684:87::-;5723:13;5756:7;;;;;;;;;;;;;;;;;5749:14;;5684:87;:::o;6119:167::-;6197:4;6214:42;6224:12;:10;:12::i;:::-;6238:9;6249:6;6214:9;:42::i;:::-;6274:4;6267:11;;6119:167;;;;:::o;11963:194::-;12029:14;;;;;;;;;;;12013:30;;:12;:10;:12::i;:::-;:30;;;12005:39;;;;;;12055:23;12081:24;12099:4;12081:9;:24::i;:::-;12055:50;;12116:33;12133:15;12116:16;:33::i;:::-;11994:163;11963:194::o;10121:773::-;2725:12;:10;:12::i;:::-;2715:22;;:6;;;;;;;;;;:22;;;:56;;;;2757:14;;;;;;;;;;;2741:30;;:12;:10;:12::i;:::-;:30;;;2715:56;2707:65;;;;;;10185:11:::1;;;;;;;;;;;10184:12;10176:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10234:35;10291:42;10234:100;;10363:16;10345:15;;:34;;;;;;;;;;;;;;;;;;10390:58;10407:4;10422:15;;;;;;;;;;;4218:18;10390:8;:58::i;:::-;10493:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10475:56;;;10540:4;10547:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10475:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10459:13;;:112;;;;;;;;;;;;;;;;;;10582:15;;;;;;;;;;;:31;;;10621:21;10652:4;10658:24;10676:4;10658:9;:24::i;:::-;10683:1;10685::::0;10687:7:::1;:5;:7::i;:::-;10695:15;10582:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10736:4;10722:11;;:18;;;;;;;;;;;;;;;;;;10769:4;10751:15;;:22;;;;;;;;;;;;;;;;;;10800:4;10786:11;;:18;;;;;;;;;;;;;;;;;;10822:13;;;;;;;;;;;10815:29;;;10853:15;;;;;;;;;;;10871:14;10815:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10165:729;10121:773::o:0;9621:164::-;2725:12;:10;:12::i;:::-;2715:22;;:6;;;;;;;;;;:22;;;:56;;;;2757:14;;;;;;;;;;;2741:30;;:12;:10;:12::i;:::-;:30;;;2715:56;2707:65;;;;;;9695:6:::1;9690:88;9711:5;:12;9707:1;:16;9690:88;;;9762:4;9745;:14;9750:5;9756:1;9750:8;;;;;;;;:::i;:::-;;;;;;;;9745:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9725:3;;;;;:::i;:::-;;;;9690:88;;;;9621:164:::0;:::o;6294:143::-;6375:7;6402:11;:18;6414:5;6402:18;;;;;;;;;;;;;;;:27;6421:7;6402:27;;;;;;;;;;;;;;;;6395:34;;6294:143;;;;:::o;236:98::-;289:7;316:10;309:17;;236:98;:::o;7308:335::-;7418:1;7401:19;;:5;:19;;;;7393:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7499:1;7480:21;;:7;:21;;;;7472:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7581:6;7551:11;:18;7563:5;7551:18;;;;;;;;;;;;;;;:27;7570:7;7551:27;;;;;;;;;;;;;;;:36;;;;7619:7;7603:32;;7612:5;7603:32;;;7628:6;7603:32;;;;;;:::i;:::-;;;;;;;;7308:335;;;:::o;7651:1471::-;7755:1;7739:18;;:4;:18;;;;7731:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7832:1;7818:16;;:2;:16;;;;7810:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7902:1;7893:6;:10;7885:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7976:7;:5;:7::i;:::-;7968:15;;:4;:15;;;;:32;;;;;7993:7;:5;:7::i;:::-;7987:13;;:2;:13;;;;7968:32;7964:1108;;;8026:4;:8;8031:2;8026:8;;;;;;;;;;;;;;;;;;;;;;;;;8025:9;:22;;;;;8039:4;:8;8044:2;8039:8;;;;;;;;;;;;;;;;;;;;;;;;;8038:9;8025:22;8017:31;;;;;;8075:1;8063:9;:13;;;;8125:1;8104:19;;:22;8103:46;;8138:11;;8103:46;;;8128:9;;8103:46;8091:9;:58;;;;8176:13;;;;;;;;;;;8168:21;;:4;:21;;;:55;;;;;8207:15;;;;;;;;;;;8193:30;;:2;:30;;;;8168:55;:83;;;;;8229:18;:22;8248:2;8229:22;;;;;;;;;;;;;;;;;;;;;;;;;8227:24;8168:83;:102;;;;;8255:15;;;;;;;;;;;8168:102;8164:397;;;8338:12;;8328:6;:22;;8320:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8433:14;;8423:6;8407:13;8417:2;8407:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8399:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8520:1;8500:19;;:21;8497:49;;;8523:19;;:21;;;;;;;;;:::i;:::-;;;;;;8497:49;8164:397;8579:28;8610:24;8628:4;8610:9;:24::i;:::-;8579:55;;8654:6;;;;;;;;;;;8653:7;:32;;;;;8672:13;;;;;;;;;;;8664:21;;:4;:21;;;;8653:32;:47;;;;;8689:11;;;;;;;;;;;8653:47;:73;;;;;8725:1;8704:20;:22;8653:73;8649:344;;;8747:38;8764:20;8747:16;:38::i;:::-;8804:26;8833:21;8804:50;;8897:1;8876:18;:22;8873:105;;;8923:35;8936:21;8923:12;:35::i;:::-;8873:105;8728:265;8649:344;8002:1002;7964:1108;;;9033:1;9021:9;:13;;;;9059:1;9047:9;:13;;;;7964:1108;9084:30;9099:4;9104:2;9107:6;9084:14;:30::i;:::-;7651:1471;;;:::o;1373:190::-;1459:7;1492:1;1487;:6;;1495:12;1479:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1519:9;1535:1;1531;:5;;;;:::i;:::-;1519:17;;1554:1;1547:8;;;1373:190;;;;;:::o;10017:96::-;10074:14;;;;;;;;;;;:23;;:31;10098:6;10074:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10017:96;:::o;7046:254::-;7113:7;7152;;7141;:18;;7133:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7217:19;7240:10;:8;:10::i;:::-;7217:33;;7268:24;7280:11;7268:7;:11;;:24;;;;:::i;:::-;7261:31;;;7046:254;;;:::o;9130:483::-;5126:4;5117:6;;:13;;;;;;;;;;;;;;;;;;9208:21:::1;9246:1;9232:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9208:40;;9277:4;9259;9264:1;9259:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9303:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9293:4;9298:1;9293:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9336:62;9353:4;9368:15;;;;;;;;;;;9386:11;9336:8;:62::i;:::-;9409:15;;;;;;;;;;;:66;;;9490:11;9516:1;9532:4;9559;9579:15;9409:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9197:416;5162:5:::0;5153:6;;:14;;;;;;;;;;;;;;;;;;9130:483;:::o;10902:146::-;10996:44;11014:6;11022:9;11033:6;10996:17;:44::i;:::-;10902:146;;;:::o;13620:163::-;13661:7;13682:15;13699;13718:19;:17;:19::i;:::-;13681:56;;;;13755:20;13767:7;13755;:11;;:20;;;;:::i;:::-;13748:27;;;;13620:163;:::o;1825:132::-;1883:7;1910:39;1914:1;1917;1910:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1903:46;;1825:132;;;;:::o;11056:487::-;11155:15;11172:23;11197:12;11211:23;11236:12;11250:13;11267:19;11278:7;11267:10;:19::i;:::-;11154:132;;;;;;;;;;;;11315:28;11335:7;11315;:15;11323:6;11315:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11297:7;:15;11305:6;11297:15;;;;;;;;;;;;;;;:46;;;;11375:39;11398:15;11375:7;:18;11383:9;11375:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11354:7;:18;11362:9;11354:18;;;;;;;;;;;;;;;:60;;;;11425:16;11435:5;11425:9;:16::i;:::-;11452:23;11464:4;11470;11452:11;:23::i;:::-;11508:9;11491:44;;11500:6;11491:44;;;11519:15;11491:44;;;;;;:::i;:::-;;;;;;;;11143:400;;;;;;11056:487;;;:::o;13791:256::-;13841:7;13850;13870:15;13888:7;;13870:25;;13906:15;4218:18;13906:25;;13956:20;4218:18;13956:7;;:11;;:20;;;;:::i;:::-;13946:7;:30;13942:61;;;13986:7;;4218:18;13978:25;;;;;;;;13942:61;14022:7;14031;14014:25;;;;;;13791:256;;;:::o;1965:189::-;2051:7;2083:1;2079;:5;2086:12;2071:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2110:9;2126:1;2122;:5;;;;:::i;:::-;2110:17;;2145:1;2138:8;;;1965:189;;;;;:::o;12368:471::-;12427:7;12436;12445;12454;12463;12472;12493:23;12518:12;12532:13;12549:42;12561:7;12570:9;;12581;;12549:11;:42::i;:::-;12492:99;;;;;;12602:19;12625:10;:8;:10::i;:::-;12602:33;;12647:15;12664:23;12689:12;12705:46;12717:7;12726:4;12732:5;12739:11;12705;:46::i;:::-;12646:105;;;;;;12770:7;12779:15;12796:4;12802:15;12819:4;12825:5;12762:69;;;;;;;;;;;;;;;;;;;12368:471;;;;;;;:::o;1229:136::-;1287:7;1314:43;1318:1;1321;1314:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1307:50;;1229:136;;;;:::o;1042:179::-;1100:7;1120:9;1136:1;1132;:5;;;;:::i;:::-;1120:17;;1161:1;1156;:6;;1148:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1212:1;1205:8;;;1042:179;;;;:::o;11551:212::-;11604:19;11627:10;:8;:10::i;:::-;11604:33;;11648:13;11664:22;11674:11;11664:5;:9;;:22;;;;:::i;:::-;11648:38;;11722:33;11749:5;11722:7;:22;11738:4;11722:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11697:7;:22;11713:4;11697:22;;;;;;;;;;;;;;;:58;;;;11593:170;;11551:212;:::o;11771:147::-;11849:17;11861:4;11849:7;;:11;;:17;;;;:::i;:::-;11839:7;:27;;;;11890:20;11905:4;11890:10;;:14;;:20;;;;:::i;:::-;11877:10;:33;;;;11771:147;;:::o;12847:351::-;12940:7;12949;12958;12978:12;12993:28;13017:3;12993:19;13005:6;12993:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12978:43;;13032:13;13048:29;13073:3;13048:20;13060:7;13048;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13032:45;;13088:23;13114:28;13136:5;13114:17;13126:4;13114:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13088:54;;13161:15;13178:4;13184:5;13153:37;;;;;;;;;12847:351;;;;;;;:::o;13206:409::-;13316:7;13325;13334;13354:15;13372:24;13384:11;13372:7;:11;;:24;;;;:::i;:::-;13354:42;;13407:12;13422:21;13431:11;13422:4;:8;;:21;;;;:::i;:::-;13407:36;;13454:13;13470:22;13480:11;13470:5;:9;;:22;;;;:::i;:::-;13454:38;;13503:23;13529:28;13551:5;13529:17;13541:4;13529:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13503:54;;13576:7;13585:15;13602:4;13568:39;;;;;;;;;;13206:409;;;;;;;;:::o;1571:246::-;1629:7;1658:1;1653;:6;1649:47;;;1683:1;1676:8;;;;1649:47;1706:9;1722:1;1718;:5;;;;:::i;:::-;1706:17;;1751:1;1746;1742;:5;;;;:::i;:::-;:10;1734:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1808:1;1801:8;;;1571:246;;;;;:::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:329::-;4530:6;4579:2;4567:9;4558:7;4554:23;4550:32;4547:119;;;4585:79;;:::i;:::-;4547:119;4705:1;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4676:117;4471:329;;;;:::o;4806:86::-;4841:7;4881:4;4874:5;4870:16;4859:27;;4806:86;;;:::o;4898:112::-;4981:22;4997:5;4981:22;:::i;:::-;4976:3;4969:35;4898:112;;:::o;5016:214::-;5105:4;5143:2;5132:9;5128:18;5120:26;;5156:67;5220:1;5209:9;5205:17;5196:6;5156:67;:::i;:::-;5016:214;;;;:::o;5236:116::-;5306:21;5321:5;5306:21;:::i;:::-;5299:5;5296:32;5286:60;;5342:1;5339;5332:12;5286:60;5236:116;:::o;5358:133::-;5401:5;5439:6;5426:20;5417:29;;5455:30;5479:5;5455:30;:::i;:::-;5358:133;;;;:::o;5497:323::-;5553:6;5602:2;5590:9;5581:7;5577:23;5573:32;5570:119;;;5608:79;;:::i;:::-;5570:119;5728:1;5753:50;5795:7;5786:6;5775:9;5771:22;5753:50;:::i;:::-;5743:60;;5699:114;5497:323;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:117::-;6287:1;6284;6277:12;6301:180;6349:77;6346:1;6339:88;6446:4;6443:1;6436:15;6470:4;6467:1;6460:15;6487:281;6570:27;6592:4;6570:27;:::i;:::-;6562:6;6558:40;6700:6;6688:10;6685:22;6664:18;6652:10;6649:34;6646:62;6643:88;;;6711:18;;:::i;:::-;6643:88;6751:10;6747:2;6740:22;6530:238;6487:281;;:::o;6774:129::-;6808:6;6835:20;;:::i;:::-;6825:30;;6864:33;6892:4;6884:6;6864:33;:::i;:::-;6774:129;;;:::o;6909:311::-;6986:4;7076:18;7068:6;7065:30;7062:56;;;7098:18;;:::i;:::-;7062:56;7148:4;7140:6;7136:17;7128:25;;7208:4;7202;7198:15;7190:23;;6909:311;;;:::o;7226:117::-;7335:1;7332;7325:12;7366:710;7462:5;7487:81;7503:64;7560:6;7503:64;:::i;:::-;7487:81;:::i;:::-;7478:90;;7588:5;7617:6;7610:5;7603:21;7651:4;7644:5;7640:16;7633:23;;7704:4;7696:6;7692:17;7684:6;7680:30;7733:3;7725:6;7722:15;7719:122;;;7752:79;;:::i;:::-;7719:122;7867:6;7850:220;7884:6;7879:3;7876:15;7850:220;;;7959:3;7988:37;8021:3;8009:10;7988:37;:::i;:::-;7983:3;7976:50;8055:4;8050:3;8046:14;8039:21;;7926:144;7910:4;7905:3;7901:14;7894:21;;7850:220;;;7854:21;7468:608;;7366:710;;;;;:::o;8099:370::-;8170:5;8219:3;8212:4;8204:6;8200:17;8196:27;8186:122;;8227:79;;:::i;:::-;8186:122;8344:6;8331:20;8369:94;8459:3;8451:6;8444:4;8436:6;8432:17;8369:94;:::i;:::-;8360:103;;8176:293;8099:370;;;;:::o;8475:539::-;8559:6;8608:2;8596:9;8587:7;8583:23;8579:32;8576:119;;;8614:79;;:::i;:::-;8576:119;8762:1;8751:9;8747:17;8734:31;8792:18;8784:6;8781:30;8778:117;;;8814:79;;:::i;:::-;8778:117;8919:78;8989:7;8980:6;8969:9;8965:22;8919:78;:::i;:::-;8909:88;;8705:302;8475:539;;;;:::o;9020:474::-;9088:6;9096;9145:2;9133:9;9124:7;9120:23;9116:32;9113:119;;;9151:79;;:::i;:::-;9113:119;9271:1;9296:53;9341:7;9332:6;9321:9;9317:22;9296:53;:::i;:::-;9286:63;;9242:117;9398:2;9424:53;9469:7;9460:6;9449:9;9445:22;9424:53;:::i;:::-;9414:63;;9369:118;9020:474;;;;;:::o;9500:173::-;9640:25;9636:1;9628:6;9624:14;9617:49;9500:173;:::o;9679:366::-;9821:3;9842:67;9906:2;9901:3;9842:67;:::i;:::-;9835:74;;9918:93;10007:3;9918:93;:::i;:::-;10036:2;10031:3;10027:12;10020:19;;9679:366;;;:::o;10051:419::-;10217:4;10255:2;10244:9;10240:18;10232:26;;10304:9;10298:4;10294:20;10290:1;10279:9;10275:17;10268:47;10332:131;10458:4;10332:131;:::i;:::-;10324:139;;10051:419;;;:::o;10476:143::-;10533:5;10564:6;10558:13;10549:22;;10580:33;10607:5;10580:33;:::i;:::-;10476:143;;;;:::o;10625:351::-;10695:6;10744:2;10732:9;10723:7;10719:23;10715:32;10712:119;;;10750:79;;:::i;:::-;10712:119;10870:1;10895:64;10951:7;10942:6;10931:9;10927:22;10895:64;:::i;:::-;10885:74;;10841:128;10625:351;;;;:::o;10982:332::-;11103:4;11141:2;11130:9;11126:18;11118:26;;11154:71;11222:1;11211:9;11207:17;11198:6;11154:71;:::i;:::-;11235:72;11303:2;11292:9;11288:18;11279:6;11235:72;:::i;:::-;10982:332;;;;;:::o;11320:85::-;11365:7;11394:5;11383:16;;11320:85;;;:::o;11411:60::-;11439:3;11460:5;11453:12;;11411:60;;;:::o;11477:158::-;11535:9;11568:61;11586:42;11595:32;11621:5;11595:32;:::i;:::-;11586:42;:::i;:::-;11568:61;:::i;:::-;11555:74;;11477:158;;;:::o;11641:147::-;11736:45;11775:5;11736:45;:::i;:::-;11731:3;11724:58;11641:147;;:::o;11794:807::-;12043:4;12081:3;12070:9;12066:19;12058:27;;12095:71;12163:1;12152:9;12148:17;12139:6;12095:71;:::i;:::-;12176:72;12244:2;12233:9;12229:18;12220:6;12176:72;:::i;:::-;12258:80;12334:2;12323:9;12319:18;12310:6;12258:80;:::i;:::-;12348;12424:2;12413:9;12409:18;12400:6;12348:80;:::i;:::-;12438:73;12506:3;12495:9;12491:19;12482:6;12438:73;:::i;:::-;12521;12589:3;12578:9;12574:19;12565:6;12521:73;:::i;:::-;11794:807;;;;;;;;;:::o;12607:143::-;12664:5;12695:6;12689:13;12680:22;;12711:33;12738:5;12711:33;:::i;:::-;12607:143;;;;:::o;12756:663::-;12844:6;12852;12860;12909:2;12897:9;12888:7;12884:23;12880:32;12877:119;;;12915:79;;:::i;:::-;12877:119;13035:1;13060:64;13116:7;13107:6;13096:9;13092:22;13060:64;:::i;:::-;13050:74;;13006:128;13173:2;13199:64;13255:7;13246:6;13235:9;13231:22;13199:64;:::i;:::-;13189:74;;13144:129;13312:2;13338:64;13394:7;13385:6;13374:9;13370:22;13338:64;:::i;:::-;13328:74;;13283:129;12756:663;;;;;:::o;13425:332::-;13546:4;13584:2;13573:9;13569:18;13561:26;;13597:71;13665:1;13654:9;13650:17;13641:6;13597:71;:::i;:::-;13678:72;13746:2;13735:9;13731:18;13722:6;13678:72;:::i;:::-;13425:332;;;;;:::o;13763:137::-;13817:5;13848:6;13842:13;13833:22;;13864:30;13888:5;13864:30;:::i;:::-;13763:137;;;;:::o;13906:345::-;13973:6;14022:2;14010:9;14001:7;13997:23;13993:32;13990:119;;;14028:79;;:::i;:::-;13990:119;14148:1;14173:61;14226:7;14217:6;14206:9;14202:22;14173:61;:::i;:::-;14163:71;;14119:125;13906:345;;;;:::o;14257:180::-;14305:77;14302:1;14295:88;14402:4;14399:1;14392:15;14426:4;14423:1;14416:15;14443:180;14491:77;14488:1;14481:88;14588:4;14585:1;14578:15;14612:4;14609:1;14602:15;14629:233;14668:3;14691:24;14709:5;14691:24;:::i;:::-;14682:33;;14737:66;14730:5;14727:77;14724:103;;;14807:18;;:::i;:::-;14724:103;14854:1;14847:5;14843:13;14836:20;;14629:233;;;:::o;14868:223::-;15008:34;15004:1;14996:6;14992:14;14985:58;15077:6;15072:2;15064:6;15060:15;15053:31;14868:223;:::o;15097:366::-;15239:3;15260:67;15324:2;15319:3;15260:67;:::i;:::-;15253:74;;15336:93;15425:3;15336:93;:::i;:::-;15454:2;15449:3;15445:12;15438:19;;15097:366;;;:::o;15469:419::-;15635:4;15673:2;15662:9;15658:18;15650:26;;15722:9;15716:4;15712:20;15708:1;15697:9;15693:17;15686:47;15750:131;15876:4;15750:131;:::i;:::-;15742:139;;15469:419;;;:::o;15894:221::-;16034:34;16030:1;16022:6;16018:14;16011:58;16103:4;16098:2;16090:6;16086:15;16079:29;15894:221;:::o;16121:366::-;16263:3;16284:67;16348:2;16343:3;16284:67;:::i;:::-;16277:74;;16360:93;16449:3;16360:93;:::i;:::-;16478:2;16473:3;16469:12;16462:19;;16121:366;;;:::o;16493:419::-;16659:4;16697:2;16686:9;16682:18;16674:26;;16746:9;16740:4;16736:20;16732:1;16721:9;16717:17;16710:47;16774:131;16900:4;16774:131;:::i;:::-;16766:139;;16493:419;;;:::o;16918:224::-;17058:34;17054:1;17046:6;17042:14;17035:58;17127:7;17122:2;17114:6;17110:15;17103:32;16918:224;:::o;17148:366::-;17290:3;17311:67;17375:2;17370:3;17311:67;:::i;:::-;17304:74;;17387:93;17476:3;17387:93;:::i;:::-;17505:2;17500:3;17496:12;17489:19;;17148:366;;;:::o;17520:419::-;17686:4;17724:2;17713:9;17709:18;17701:26;;17773:9;17767:4;17763:20;17759:1;17748:9;17744:17;17737:47;17801:131;17927:4;17801:131;:::i;:::-;17793:139;;17520:419;;;:::o;17945:222::-;18085:34;18081:1;18073:6;18069:14;18062:58;18154:5;18149:2;18141:6;18137:15;18130:30;17945:222;:::o;18173:366::-;18315:3;18336:67;18400:2;18395:3;18336:67;:::i;:::-;18329:74;;18412:93;18501:3;18412:93;:::i;:::-;18530:2;18525:3;18521:12;18514:19;;18173:366;;;:::o;18545:419::-;18711:4;18749:2;18738:9;18734:18;18726:26;;18798:9;18792:4;18788:20;18784:1;18773:9;18769:17;18762:47;18826:131;18952:4;18826:131;:::i;:::-;18818:139;;18545:419;;;:::o;18970:228::-;19110:34;19106:1;19098:6;19094:14;19087:58;19179:11;19174:2;19166:6;19162:15;19155:36;18970:228;:::o;19204:366::-;19346:3;19367:67;19431:2;19426:3;19367:67;:::i;:::-;19360:74;;19443:93;19532:3;19443:93;:::i;:::-;19561:2;19556:3;19552:12;19545:19;;19204:366;;;:::o;19576:419::-;19742:4;19780:2;19769:9;19765:18;19757:26;;19829:9;19823:4;19819:20;19815:1;19804:9;19800:17;19793:47;19857:131;19983:4;19857:131;:::i;:::-;19849:139;;19576:419;;;:::o;20001:175::-;20141:27;20137:1;20129:6;20125:14;20118:51;20001:175;:::o;20182:366::-;20324:3;20345:67;20409:2;20404:3;20345:67;:::i;:::-;20338:74;;20421:93;20510:3;20421:93;:::i;:::-;20539:2;20534:3;20530:12;20523:19;;20182:366;;;:::o;20554:419::-;20720:4;20758:2;20747:9;20743:18;20735:26;;20807:9;20801:4;20797:20;20793:1;20782:9;20778:17;20771:47;20835:131;20961:4;20835:131;:::i;:::-;20827:139;;20554:419;;;:::o;20979:305::-;21019:3;21038:20;21056:1;21038:20;:::i;:::-;21033:25;;21072:20;21090:1;21072:20;:::i;:::-;21067:25;;21226:1;21158:66;21154:74;21151:1;21148:81;21145:107;;;21232:18;;:::i;:::-;21145:107;21276:1;21273;21269:9;21262:16;;20979:305;;;;:::o;21290:176::-;21430:28;21426:1;21418:6;21414:14;21407:52;21290:176;:::o;21472:366::-;21614:3;21635:67;21699:2;21694:3;21635:67;:::i;:::-;21628:74;;21711:93;21800:3;21711:93;:::i;:::-;21829:2;21824:3;21820:12;21813:19;;21472:366;;;:::o;21844:419::-;22010:4;22048:2;22037:9;22033:18;22025:26;;22097:9;22091:4;22087:20;22083:1;22072:9;22068:17;22061:47;22125:131;22251:4;22125:131;:::i;:::-;22117:139;;21844:419;;;:::o;22269:171::-;22308:3;22331:24;22349:5;22331:24;:::i;:::-;22322:33;;22377:4;22370:5;22367:15;22364:41;;;22385:18;;:::i;:::-;22364:41;22432:1;22425:5;22421:13;22414:20;;22269:171;;;:::o;22446:191::-;22486:4;22506:20;22524:1;22506:20;:::i;:::-;22501:25;;22540:20;22558:1;22540:20;:::i;:::-;22535:25;;22579:1;22576;22573:8;22570:34;;;22584:18;;:::i;:::-;22570:34;22629:1;22626;22622:9;22614:17;;22446:191;;;;:::o;22643:229::-;22783:34;22779:1;22771:6;22767:14;22760:58;22852:12;22847:2;22839:6;22835:15;22828:37;22643:229;:::o;22878:366::-;23020:3;23041:67;23105:2;23100:3;23041:67;:::i;:::-;23034:74;;23117:93;23206:3;23117:93;:::i;:::-;23235:2;23230:3;23226:12;23219:19;;22878:366;;;:::o;23250:419::-;23416:4;23454:2;23443:9;23439:18;23431:26;;23503:9;23497:4;23493:20;23489:1;23478:9;23474:17;23467:47;23531:131;23657:4;23531:131;:::i;:::-;23523:139;;23250:419;;;:::o;23675:114::-;23742:6;23776:5;23770:12;23760:22;;23675:114;;;:::o;23795:184::-;23894:11;23928:6;23923:3;23916:19;23968:4;23963:3;23959:14;23944:29;;23795:184;;;;:::o;23985:132::-;24052:4;24075:3;24067:11;;24105:4;24100:3;24096:14;24088:22;;23985:132;;;:::o;24123:108::-;24200:24;24218:5;24200:24;:::i;:::-;24195:3;24188:37;24123:108;;:::o;24237:179::-;24306:10;24327:46;24369:3;24361:6;24327:46;:::i;:::-;24405:4;24400:3;24396:14;24382:28;;24237:179;;;;:::o;24422:113::-;24492:4;24524;24519:3;24515:14;24507:22;;24422:113;;;:::o;24571:732::-;24690:3;24719:54;24767:5;24719:54;:::i;:::-;24789:86;24868:6;24863:3;24789:86;:::i;:::-;24782:93;;24899:56;24949:5;24899:56;:::i;:::-;24978:7;25009:1;24994:284;25019:6;25016:1;25013:13;24994:284;;;25095:6;25089:13;25122:63;25181:3;25166:13;25122:63;:::i;:::-;25115:70;;25208:60;25261:6;25208:60;:::i;:::-;25198:70;;25054:224;25041:1;25038;25034:9;25029:14;;24994:284;;;24998:14;25294:3;25287:10;;24695:608;;;24571:732;;;;:::o;25309:831::-;25572:4;25610:3;25599:9;25595:19;25587:27;;25624:71;25692:1;25681:9;25677:17;25668:6;25624:71;:::i;:::-;25705:80;25781:2;25770:9;25766:18;25757:6;25705:80;:::i;:::-;25832:9;25826:4;25822:20;25817:2;25806:9;25802:18;25795:48;25860:108;25963:4;25954:6;25860:108;:::i;:::-;25852:116;;25978:72;26046:2;26035:9;26031:18;26022:6;25978:72;:::i;:::-;26060:73;26128:3;26117:9;26113:19;26104:6;26060:73;:::i;:::-;25309:831;;;;;;;;:::o;26146:180::-;26194:77;26191:1;26184:88;26291:4;26288:1;26281:15;26315:4;26312:1;26305:15;26332:185;26372:1;26389:20;26407:1;26389:20;:::i;:::-;26384:25;;26423:20;26441:1;26423:20;:::i;:::-;26418:25;;26462:1;26452:35;;26467:18;;:::i;:::-;26452:35;26509:1;26506;26502:9;26497:14;;26332:185;;;;:::o;26523:177::-;26663:29;26659:1;26651:6;26647:14;26640:53;26523:177;:::o;26706:366::-;26848:3;26869:67;26933:2;26928:3;26869:67;:::i;:::-;26862:74;;26945:93;27034:3;26945:93;:::i;:::-;27063:2;27058:3;27054:12;27047:19;;26706:366;;;:::o;27078:419::-;27244:4;27282:2;27271:9;27267:18;27259:26;;27331:9;27325:4;27321:20;27317:1;27306:9;27302:17;27295:47;27359:131;27485:4;27359:131;:::i;:::-;27351:139;;27078:419;;;:::o;27503:348::-;27543:7;27566:20;27584:1;27566:20;:::i;:::-;27561:25;;27600:20;27618:1;27600:20;:::i;:::-;27595:25;;27788:1;27720:66;27716:74;27713:1;27710:81;27705:1;27698:9;27691:17;27687:105;27684:131;;;27795:18;;:::i;:::-;27684:131;27843:1;27840;27836:9;27825:20;;27503:348;;;;:::o;27857:220::-;27997:34;27993:1;27985:6;27981:14;27974:58;28066:3;28061:2;28053:6;28049:15;28042:28;27857:220;:::o;28083:366::-;28225:3;28246:67;28310:2;28305:3;28246:67;:::i;:::-;28239:74;;28322:93;28411:3;28322:93;:::i;:::-;28440:2;28435:3;28431:12;28424:19;;28083:366;;;:::o;28455:419::-;28621:4;28659:2;28648:9;28644:18;28636:26;;28708:9;28702:4;28698:20;28694:1;28683:9;28679:17;28672:47;28736:131;28862:4;28736:131;:::i;:::-;28728:139;;28455:419;;;:::o

Swarm Source

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