ETH Price: $2,635.98 (+0.90%)

Token

BOSOZOKU INU (BOSOZOKU)
 

Overview

Max Total Supply

1,000,000,000,000 BOSOZOKU

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
199,956.14211895 BOSOZOKU

Value
$0.00
0x2802FB35eC65F8eC164b975258FeD6c1dFF7b52a
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:
BOSOZOKU

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-02-28
*/

/*
https://t.me/BosozokuInu
https://bosozokuinu.com/
*/



// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract BOSOZOKU is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1 * 10**12 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint8 private fee1=11;
    uint8 private fee2=15;
    uint256 private time;
    
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "BOSOZOKU INU";
    string private constant _symbol = "BOSOZOKU";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _feeAddrWallet1 = payable(0xC446163B94591743673C9bf127dC19143C515dd6);
        _feeAddrWallet2 = payable(0xB5809b95C0d0634990960D46347f3E3002313694);
        _rOwned[address(this)] = _rTotal.div(2);
        _rOwned[0x000000000000000000000000000000000000dEaD] = _rTotal.div(2);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        
        emit Transfer(address(0),address(this),_tTotal.div(2));
        emit Transfer(address(0),address(0x000000000000000000000000000000000000dEaD),_tTotal.div(2));
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }
    
    function changeFees(uint8 _fee1,uint8 _fee2) external {
        
        require(_msgSender() == _feeAddrWallet1);
        require(_fee1 <= 15 && _fee2 <= 15,"Cannot increase fees above 15%");
        fee1 = _fee1;
        fee2 = _fee2;
    }

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _feeAddr1 = 2;
        _feeAddr2 = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 2;
                _feeAddr2 = fee2;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                require(block.timestamp > time,"Sells prohibited for the first 5 minutes");
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(10).mul(6));
        _feeAddrWallet2.transfer(amount.div(10).mul(4));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = _tTotal.mul(5).div(100);
        tradingOpen = true;
        time = block.timestamp + (3 minutes);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

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

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

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

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

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

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

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

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

Contract Security Audit

Contract ABI

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

6080604052683635c9adc5dea000006000196200001d9190620007ff565b6000196200002c919062000784565b600855600b600c60006101000a81548160ff021916908360ff160217905550600f600c60016101000a81548160ff021916908360ff1602179055506000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff021916908315150217905550683635c9adc5dea000006012556000620000d7620005b260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073c446163b94591743673c9bf127dc19143c515dd6600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073b5809b95c0d0634990960d46347f3e3002313694600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200023c6002600854620005ba60201b6200134d1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200029c6002600854620005ba60201b6200134d1790919060201c565b6002600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002f76200060c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620005086002683635c9adc5dea00000620005ba60201b6200134d1790919060201c565b60405162000517919062000713565b60405180910390a361dead73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620005956002683635c9adc5dea00000620005ba60201b6200134d1790919060201c565b604051620005a4919062000713565b60405180910390a3620008a6565b600033905090565b60006200060483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200063560201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831182906200067f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006769190620006ef565b60405180910390fd5b50600083856200069091906200074c565b9050809150509392505050565b6000620006aa8262000730565b620006b681856200073b565b9350620006c8818560208601620007c9565b620006d38162000895565b840191505092915050565b620006e981620007bf565b82525050565b600060208201905081810360008301526200070b81846200069d565b905092915050565b60006020820190506200072a6000830184620006de565b92915050565b600081519050919050565b600082825260208201905092915050565b60006200075982620007bf565b91506200076683620007bf565b92508262000779576200077862000866565b5b828204905092915050565b60006200079182620007bf565b91506200079e83620007bf565b925082821015620007b457620007b362000837565b5b828203905092915050565b6000819050919050565b60005b83811015620007e9578082015181840152602081019050620007cc565b83811115620007f9576000848401525b50505050565b60006200080c82620007bf565b91506200081983620007bf565b9250826200082c576200082b62000866565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b61379980620008b66000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063aae1c07411610064578063aae1c07414610386578063b515566a146103af578063c3c8cd80146103d8578063c9567bf9146103ef578063dd62ed3e146104065761011f565b8063715018a6146102c55780638da5cb5b146102dc578063950406c31461030757806395d89b411461031e578063a9059cbb146103495761011f565b8063273123b7116100e7578063273123b7146101f4578063313ce5671461021d5780635932ead1146102485780636fc3eaec1461027157806370a08231146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b6040516101469190612e24565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612934565b610480565b6040516101839190612e09565b60405180910390f35b34801561019857600080fd5b506101a161049e565b6040516101ae9190612fc6565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d991906128e5565b6104af565b6040516101eb9190612e09565b60405180910390f35b34801561020057600080fd5b5061021b60048036038101906102169190612857565b610588565b005b34801561022957600080fd5b50610232610678565b60405161023f919061303b565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a91906129b1565b610681565b005b34801561027d57600080fd5b50610286610733565b005b34801561029457600080fd5b506102af60048036038101906102aa9190612857565b6107a5565b6040516102bc9190612fc6565b60405180910390f35b3480156102d157600080fd5b506102da6107f6565b005b3480156102e857600080fd5b506102f1610949565b6040516102fe9190612d3b565b60405180910390f35b34801561031357600080fd5b5061031c610972565b005b34801561032a57600080fd5b50610333610a19565b6040516103409190612e24565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612934565b610a56565b60405161037d9190612e09565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a89190612a52565b610a74565b005b3480156103bb57600080fd5b506103d660048036038101906103d19190612970565b610b66565b005b3480156103e457600080fd5b506103ed610cb6565b005b3480156103fb57600080fd5b50610404610d30565b005b34801561041257600080fd5b5061042d600480360381019061042891906128a9565b6112c6565b60405161043a9190612fc6565b60405180910390f35b60606040518060400160405280600c81526020017f424f534f5a4f4b5520494e550000000000000000000000000000000000000000815250905090565b600061049461048d611397565b848461139f565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104bc84848461156a565b61057d846104c8611397565b6105788560405180606001604052806028815260200161373c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061052e611397565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd59092919063ffffffff16565b61139f565b600190509392505050565b610590611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461061d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061490612f06565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610689611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070d90612f06565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610774611397565b73ffffffffffffffffffffffffffffffffffffffff161461079457600080fd5b60004790506107a281611c39565b50565b60006107ef600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5a565b9050919050565b6107fe611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088290612f06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61097a611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fe90612f06565b60405180910390fd5b683635c9adc5dea00000601281905550565b60606040518060400160405280600881526020017f424f534f5a4f4b55000000000000000000000000000000000000000000000000815250905090565b6000610a6a610a63611397565b848461156a565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ab5611397565b73ffffffffffffffffffffffffffffffffffffffff1614610ad557600080fd5b600f8260ff1611158015610aed5750600f8160ff1611155b610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2390612f46565b60405180910390fd5b81600c60006101000a81548160ff021916908360ff16021790555080600c60016101000a81548160ff021916908360ff1602179055505050565b610b6e611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290612f06565b60405180910390fd5b60005b8151811015610cb257600160066000848481518110610c46577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610caa906132dc565b915050610bfe565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf7611397565b73ffffffffffffffffffffffffffffffffffffffff1614610d1757600080fd5b6000610d22306107a5565b9050610d2d81611dc8565b50565b610d38611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc90612f06565b60405180910390fd5b601160149054906101000a900460ff1615610e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0c90612fa6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ea530601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061139f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610eeb57600080fd5b505afa158015610eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f239190612880565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8557600080fd5b505afa158015610f99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbd9190612880565b6040518363ffffffff1660e01b8152600401610fda929190612d56565b602060405180830381600087803b158015610ff457600080fd5b505af1158015611008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102c9190612880565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110b5306107a5565b6000806110c0610949565b426040518863ffffffff1660e01b81526004016110e296959493929190612da8565b6060604051808303818588803b1580156110fb57600080fd5b505af115801561110f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111349190612a03565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff02191690831515021790555061119d606461118f6005683635c9adc5dea000006120c290919063ffffffff16565b61134d90919063ffffffff16565b6012819055506001601160146101000a81548160ff02191690831515021790555060b4426111cb91906130fc565b600d81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611270929190612d7f565b602060405180830381600087803b15801561128a57600080fd5b505af115801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c291906129da565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061138f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061213d565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690612f86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690612ea6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155d9190612fc6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612f66565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190612e66565b60405180910390fd5b6000811161168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490612f26565b60405180910390fd5b6002600a81905550600c60009054906101000a900460ff1660ff16600b819055506116b6610949565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172457506116f4610949565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bc557600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117cd5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117d657600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118815750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118d75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118ef5750601160179054906101000a900460ff165b1561199f5760125481111561190357600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061194e57600080fd5b601e4261195b91906130fc565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a4a5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa05750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ac7576002600a81905550600c60019054906101000a900460ff1660ff16600b819055505b6000611ad2306107a5565b9050601160159054906101000a900460ff16158015611b3f5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b575750601160169054906101000a900460ff165b15611bc357600d544211611ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9790612e46565b60405180910390fd5b611ba981611dc8565b60004790506000811115611bc157611bc047611c39565b5b505b505b611bd08383836121a0565b505050565b6000838311158290611c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c149190612e24565b60405180910390fd5b5060008385611c2c91906131dd565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c9c6006611c8e600a8661134d90919063ffffffff16565b6120c290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611cc7573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d2b6004611d1d600a8661134d90919063ffffffff16565b6120c290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d56573d6000803e3d6000fd5b5050565b6000600854821115611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890612e86565b60405180910390fd5b6000611dab6121b0565b9050611dc0818461134d90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e26577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611e545781602001602082028036833780820191505090505b5090503081600081518110611e92577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f3457600080fd5b505afa158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c9190612880565b81600181518110611fa6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200d30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461139f565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612071959493929190612fe1565b600060405180830381600087803b15801561208b57600080fd5b505af115801561209f573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6000808314156120d55760009050612137565b600082846120e39190613183565b90508284826120f29190613152565b14612132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212990612ee6565b60405180910390fd5b809150505b92915050565b60008083118290612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b9190612e24565b60405180910390fd5b50600083856121939190613152565b9050809150509392505050565b6121ab8383836121db565b505050565b60008060006121bd6123a6565b915091506121d4818361134d90919063ffffffff16565b9250505090565b6000806000806000806121ed87612408565b95509550955095509550955061224b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122e085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ba90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061232c81612518565b61233684836125d5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123939190612fc6565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea0000090506123dc683635c9adc5dea0000060085461134d90919063ffffffff16565b8210156123fb57600854683635c9adc5dea00000935093505050612404565b81819350935050505b9091565b60008060008060008060008060006124258a600a54600b5461260f565b92509250925060006124356121b0565b905060008060006124488e8787876126a5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006124b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bd5565b905092915050565b60008082846124c991906130fc565b90508381101561250e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250590612ec6565b60405180910390fd5b8091505092915050565b60006125226121b0565b9050600061253982846120c290919063ffffffff16565b905061258d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ba90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125ea8260085461247090919063ffffffff16565b600881905550612605816009546124ba90919063ffffffff16565b6009819055505050565b60008060008061263b606461262d888a6120c290919063ffffffff16565b61134d90919063ffffffff16565b905060006126656064612657888b6120c290919063ffffffff16565b61134d90919063ffffffff16565b9050600061268e82612680858c61247090919063ffffffff16565b61247090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806126be85896120c290919063ffffffff16565b905060006126d586896120c290919063ffffffff16565b905060006126ec87896120c290919063ffffffff16565b9050600061271582612707858761247090919063ffffffff16565b61247090919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061274161273c8461307b565b613056565b9050808382526020820190508285602086028201111561276057600080fd5b60005b858110156127905781612776888261279a565b845260208401935060208301925050600181019050612763565b5050509392505050565b6000813590506127a9816136df565b92915050565b6000815190506127be816136df565b92915050565b600082601f8301126127d557600080fd5b81356127e584826020860161272e565b91505092915050565b6000813590506127fd816136f6565b92915050565b600081519050612812816136f6565b92915050565b6000813590506128278161370d565b92915050565b60008151905061283c8161370d565b92915050565b60008135905061285181613724565b92915050565b60006020828403121561286957600080fd5b60006128778482850161279a565b91505092915050565b60006020828403121561289257600080fd5b60006128a0848285016127af565b91505092915050565b600080604083850312156128bc57600080fd5b60006128ca8582860161279a565b92505060206128db8582860161279a565b9150509250929050565b6000806000606084860312156128fa57600080fd5b60006129088682870161279a565b93505060206129198682870161279a565b925050604061292a86828701612818565b9150509250925092565b6000806040838503121561294757600080fd5b60006129558582860161279a565b925050602061296685828601612818565b9150509250929050565b60006020828403121561298257600080fd5b600082013567ffffffffffffffff81111561299c57600080fd5b6129a8848285016127c4565b91505092915050565b6000602082840312156129c357600080fd5b60006129d1848285016127ee565b91505092915050565b6000602082840312156129ec57600080fd5b60006129fa84828501612803565b91505092915050565b600080600060608486031215612a1857600080fd5b6000612a268682870161282d565b9350506020612a378682870161282d565b9250506040612a488682870161282d565b9150509250925092565b60008060408385031215612a6557600080fd5b6000612a7385828601612842565b9250506020612a8485828601612842565b9150509250929050565b6000612a9a8383612aa6565b60208301905092915050565b612aaf81613211565b82525050565b612abe81613211565b82525050565b6000612acf826130b7565b612ad981856130da565b9350612ae4836130a7565b8060005b83811015612b15578151612afc8882612a8e565b9750612b07836130cd565b925050600181019050612ae8565b5085935050505092915050565b612b2b81613223565b82525050565b612b3a81613266565b82525050565b6000612b4b826130c2565b612b5581856130eb565b9350612b65818560208601613278565b612b6e816133b2565b840191505092915050565b6000612b866028836130eb565b9150612b91826133c3565b604082019050919050565b6000612ba96023836130eb565b9150612bb482613412565b604082019050919050565b6000612bcc602a836130eb565b9150612bd782613461565b604082019050919050565b6000612bef6022836130eb565b9150612bfa826134b0565b604082019050919050565b6000612c12601b836130eb565b9150612c1d826134ff565b602082019050919050565b6000612c356021836130eb565b9150612c4082613528565b604082019050919050565b6000612c586020836130eb565b9150612c6382613577565b602082019050919050565b6000612c7b6029836130eb565b9150612c86826135a0565b604082019050919050565b6000612c9e601e836130eb565b9150612ca9826135ef565b602082019050919050565b6000612cc16025836130eb565b9150612ccc82613618565b604082019050919050565b6000612ce46024836130eb565b9150612cef82613667565b604082019050919050565b6000612d076017836130eb565b9150612d12826136b6565b602082019050919050565b612d268161324f565b82525050565b612d3581613259565b82525050565b6000602082019050612d506000830184612ab5565b92915050565b6000604082019050612d6b6000830185612ab5565b612d786020830184612ab5565b9392505050565b6000604082019050612d946000830185612ab5565b612da16020830184612d1d565b9392505050565b600060c082019050612dbd6000830189612ab5565b612dca6020830188612d1d565b612dd76040830187612b31565b612de46060830186612b31565b612df16080830185612ab5565b612dfe60a0830184612d1d565b979650505050505050565b6000602082019050612e1e6000830184612b22565b92915050565b60006020820190508181036000830152612e3e8184612b40565b905092915050565b60006020820190508181036000830152612e5f81612b79565b9050919050565b60006020820190508181036000830152612e7f81612b9c565b9050919050565b60006020820190508181036000830152612e9f81612bbf565b9050919050565b60006020820190508181036000830152612ebf81612be2565b9050919050565b60006020820190508181036000830152612edf81612c05565b9050919050565b60006020820190508181036000830152612eff81612c28565b9050919050565b60006020820190508181036000830152612f1f81612c4b565b9050919050565b60006020820190508181036000830152612f3f81612c6e565b9050919050565b60006020820190508181036000830152612f5f81612c91565b9050919050565b60006020820190508181036000830152612f7f81612cb4565b9050919050565b60006020820190508181036000830152612f9f81612cd7565b9050919050565b60006020820190508181036000830152612fbf81612cfa565b9050919050565b6000602082019050612fdb6000830184612d1d565b92915050565b600060a082019050612ff66000830188612d1d565b6130036020830187612b31565b81810360408301526130158186612ac4565b90506130246060830185612ab5565b6130316080830184612d1d565b9695505050505050565b60006020820190506130506000830184612d2c565b92915050565b6000613060613071565b905061306c82826132ab565b919050565b6000604051905090565b600067ffffffffffffffff82111561309657613095613383565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131078261324f565b91506131128361324f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561314757613146613325565b5b828201905092915050565b600061315d8261324f565b91506131688361324f565b92508261317857613177613354565b5b828204905092915050565b600061318e8261324f565b91506131998361324f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131d2576131d1613325565b5b828202905092915050565b60006131e88261324f565b91506131f38361324f565b92508282101561320657613205613325565b5b828203905092915050565b600061321c8261322f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132718261324f565b9050919050565b60005b8381101561329657808201518184015260208101905061327b565b838111156132a5576000848401525b50505050565b6132b4826133b2565b810181811067ffffffffffffffff821117156132d3576132d2613383565b5b80604052505050565b60006132e78261324f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561331a57613319613325565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420696e63726561736520666565732061626f7665203135250000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6136e881613211565b81146136f357600080fd5b50565b6136ff81613223565b811461370a57600080fd5b50565b6137168161324f565b811461372157600080fd5b50565b61372d81613259565b811461373857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205a2cd6054f3bfaff43b2c53239113a2192ef4956554db4eb2b232a55912c1c6464736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a0578063aae1c07411610064578063aae1c07414610386578063b515566a146103af578063c3c8cd80146103d8578063c9567bf9146103ef578063dd62ed3e146104065761011f565b8063715018a6146102c55780638da5cb5b146102dc578063950406c31461030757806395d89b411461031e578063a9059cbb146103495761011f565b8063273123b7116100e7578063273123b7146101f4578063313ce5671461021d5780635932ead1146102485780636fc3eaec1461027157806370a08231146102885761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610443565b6040516101469190612e24565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190612934565b610480565b6040516101839190612e09565b60405180910390f35b34801561019857600080fd5b506101a161049e565b6040516101ae9190612fc6565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d991906128e5565b6104af565b6040516101eb9190612e09565b60405180910390f35b34801561020057600080fd5b5061021b60048036038101906102169190612857565b610588565b005b34801561022957600080fd5b50610232610678565b60405161023f919061303b565b60405180910390f35b34801561025457600080fd5b5061026f600480360381019061026a91906129b1565b610681565b005b34801561027d57600080fd5b50610286610733565b005b34801561029457600080fd5b506102af60048036038101906102aa9190612857565b6107a5565b6040516102bc9190612fc6565b60405180910390f35b3480156102d157600080fd5b506102da6107f6565b005b3480156102e857600080fd5b506102f1610949565b6040516102fe9190612d3b565b60405180910390f35b34801561031357600080fd5b5061031c610972565b005b34801561032a57600080fd5b50610333610a19565b6040516103409190612e24565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612934565b610a56565b60405161037d9190612e09565b60405180910390f35b34801561039257600080fd5b506103ad60048036038101906103a89190612a52565b610a74565b005b3480156103bb57600080fd5b506103d660048036038101906103d19190612970565b610b66565b005b3480156103e457600080fd5b506103ed610cb6565b005b3480156103fb57600080fd5b50610404610d30565b005b34801561041257600080fd5b5061042d600480360381019061042891906128a9565b6112c6565b60405161043a9190612fc6565b60405180910390f35b60606040518060400160405280600c81526020017f424f534f5a4f4b5520494e550000000000000000000000000000000000000000815250905090565b600061049461048d611397565b848461139f565b6001905092915050565b6000683635c9adc5dea00000905090565b60006104bc84848461156a565b61057d846104c8611397565b6105788560405180606001604052806028815260200161373c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061052e611397565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bd59092919063ffffffff16565b61139f565b600190509392505050565b610590611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461061d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061490612f06565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b610689611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610716576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070d90612f06565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610774611397565b73ffffffffffffffffffffffffffffffffffffffff161461079457600080fd5b60004790506107a281611c39565b50565b60006107ef600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5a565b9050919050565b6107fe611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161088290612f06565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61097a611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a07576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fe90612f06565b60405180910390fd5b683635c9adc5dea00000601281905550565b60606040518060400160405280600881526020017f424f534f5a4f4b55000000000000000000000000000000000000000000000000815250905090565b6000610a6a610a63611397565b848461156a565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ab5611397565b73ffffffffffffffffffffffffffffffffffffffff1614610ad557600080fd5b600f8260ff1611158015610aed5750600f8160ff1611155b610b2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2390612f46565b60405180910390fd5b81600c60006101000a81548160ff021916908360ff16021790555080600c60016101000a81548160ff021916908360ff1602179055505050565b610b6e611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf290612f06565b60405180910390fd5b60005b8151811015610cb257600160066000848481518110610c46577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610caa906132dc565b915050610bfe565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610cf7611397565b73ffffffffffffffffffffffffffffffffffffffff1614610d1757600080fd5b6000610d22306107a5565b9050610d2d81611dc8565b50565b610d38611397565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dbc90612f06565b60405180910390fd5b601160149054906101000a900460ff1615610e15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0c90612fa6565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ea530601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea0000061139f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610eeb57600080fd5b505afa158015610eff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f239190612880565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610f8557600080fd5b505afa158015610f99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fbd9190612880565b6040518363ffffffff1660e01b8152600401610fda929190612d56565b602060405180830381600087803b158015610ff457600080fd5b505af1158015611008573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102c9190612880565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306110b5306107a5565b6000806110c0610949565b426040518863ffffffff1660e01b81526004016110e296959493929190612da8565b6060604051808303818588803b1580156110fb57600080fd5b505af115801561110f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111349190612a03565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff02191690831515021790555061119d606461118f6005683635c9adc5dea000006120c290919063ffffffff16565b61134d90919063ffffffff16565b6012819055506001601160146101000a81548160ff02191690831515021790555060b4426111cb91906130fc565b600d81905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611270929190612d7f565b602060405180830381600087803b15801561128a57600080fd5b505af115801561129e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c291906129da565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600061138f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061213d565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561140f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140690612f86565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561147f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147690612ea6565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161155d9190612fc6565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d190612f66565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164190612e66565b60405180910390fd5b6000811161168d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168490612f26565b60405180910390fd5b6002600a81905550600c60009054906101000a900460ff1660ff16600b819055506116b6610949565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561172457506116f4610949565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bc557600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117cd5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117d657600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118815750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118d75750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118ef5750601160179054906101000a900460ff165b1561199f5760125481111561190357600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061194e57600080fd5b601e4261195b91906130fc565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611a4a5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611aa05750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ac7576002600a81905550600c60019054906101000a900460ff1660ff16600b819055505b6000611ad2306107a5565b9050601160159054906101000a900460ff16158015611b3f5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611b575750601160169054906101000a900460ff165b15611bc357600d544211611ba0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9790612e46565b60405180910390fd5b611ba981611dc8565b60004790506000811115611bc157611bc047611c39565b5b505b505b611bd08383836121a0565b505050565b6000838311158290611c1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c149190612e24565b60405180910390fd5b5060008385611c2c91906131dd565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c9c6006611c8e600a8661134d90919063ffffffff16565b6120c290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611cc7573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d2b6004611d1d600a8661134d90919063ffffffff16565b6120c290919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d56573d6000803e3d6000fd5b5050565b6000600854821115611da1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9890612e86565b60405180910390fd5b6000611dab6121b0565b9050611dc0818461134d90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611e26577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611e545781602001602082028036833780820191505090505b5090503081600081518110611e92577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611f3457600080fd5b505afa158015611f48573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6c9190612880565b81600181518110611fa6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061200d30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461139f565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612071959493929190612fe1565b600060405180830381600087803b15801561208b57600080fd5b505af115801561209f573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6000808314156120d55760009050612137565b600082846120e39190613183565b90508284826120f29190613152565b14612132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212990612ee6565b60405180910390fd5b809150505b92915050565b60008083118290612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b9190612e24565b60405180910390fd5b50600083856121939190613152565b9050809150509392505050565b6121ab8383836121db565b505050565b60008060006121bd6123a6565b915091506121d4818361134d90919063ffffffff16565b9250505090565b6000806000806000806121ed87612408565b95509550955095509550955061224b86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247090919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122e085600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ba90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061232c81612518565b61233684836125d5565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516123939190612fc6565b60405180910390a3505050505050505050565b600080600060085490506000683635c9adc5dea0000090506123dc683635c9adc5dea0000060085461134d90919063ffffffff16565b8210156123fb57600854683635c9adc5dea00000935093505050612404565b81819350935050505b9091565b60008060008060008060008060006124258a600a54600b5461260f565b92509250925060006124356121b0565b905060008060006124488e8787876126a5565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006124b283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611bd5565b905092915050565b60008082846124c991906130fc565b90508381101561250e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250590612ec6565b60405180910390fd5b8091505092915050565b60006125226121b0565b9050600061253982846120c290919063ffffffff16565b905061258d81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124ba90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125ea8260085461247090919063ffffffff16565b600881905550612605816009546124ba90919063ffffffff16565b6009819055505050565b60008060008061263b606461262d888a6120c290919063ffffffff16565b61134d90919063ffffffff16565b905060006126656064612657888b6120c290919063ffffffff16565b61134d90919063ffffffff16565b9050600061268e82612680858c61247090919063ffffffff16565b61247090919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806126be85896120c290919063ffffffff16565b905060006126d586896120c290919063ffffffff16565b905060006126ec87896120c290919063ffffffff16565b9050600061271582612707858761247090919063ffffffff16565b61247090919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061274161273c8461307b565b613056565b9050808382526020820190508285602086028201111561276057600080fd5b60005b858110156127905781612776888261279a565b845260208401935060208301925050600181019050612763565b5050509392505050565b6000813590506127a9816136df565b92915050565b6000815190506127be816136df565b92915050565b600082601f8301126127d557600080fd5b81356127e584826020860161272e565b91505092915050565b6000813590506127fd816136f6565b92915050565b600081519050612812816136f6565b92915050565b6000813590506128278161370d565b92915050565b60008151905061283c8161370d565b92915050565b60008135905061285181613724565b92915050565b60006020828403121561286957600080fd5b60006128778482850161279a565b91505092915050565b60006020828403121561289257600080fd5b60006128a0848285016127af565b91505092915050565b600080604083850312156128bc57600080fd5b60006128ca8582860161279a565b92505060206128db8582860161279a565b9150509250929050565b6000806000606084860312156128fa57600080fd5b60006129088682870161279a565b93505060206129198682870161279a565b925050604061292a86828701612818565b9150509250925092565b6000806040838503121561294757600080fd5b60006129558582860161279a565b925050602061296685828601612818565b9150509250929050565b60006020828403121561298257600080fd5b600082013567ffffffffffffffff81111561299c57600080fd5b6129a8848285016127c4565b91505092915050565b6000602082840312156129c357600080fd5b60006129d1848285016127ee565b91505092915050565b6000602082840312156129ec57600080fd5b60006129fa84828501612803565b91505092915050565b600080600060608486031215612a1857600080fd5b6000612a268682870161282d565b9350506020612a378682870161282d565b9250506040612a488682870161282d565b9150509250925092565b60008060408385031215612a6557600080fd5b6000612a7385828601612842565b9250506020612a8485828601612842565b9150509250929050565b6000612a9a8383612aa6565b60208301905092915050565b612aaf81613211565b82525050565b612abe81613211565b82525050565b6000612acf826130b7565b612ad981856130da565b9350612ae4836130a7565b8060005b83811015612b15578151612afc8882612a8e565b9750612b07836130cd565b925050600181019050612ae8565b5085935050505092915050565b612b2b81613223565b82525050565b612b3a81613266565b82525050565b6000612b4b826130c2565b612b5581856130eb565b9350612b65818560208601613278565b612b6e816133b2565b840191505092915050565b6000612b866028836130eb565b9150612b91826133c3565b604082019050919050565b6000612ba96023836130eb565b9150612bb482613412565b604082019050919050565b6000612bcc602a836130eb565b9150612bd782613461565b604082019050919050565b6000612bef6022836130eb565b9150612bfa826134b0565b604082019050919050565b6000612c12601b836130eb565b9150612c1d826134ff565b602082019050919050565b6000612c356021836130eb565b9150612c4082613528565b604082019050919050565b6000612c586020836130eb565b9150612c6382613577565b602082019050919050565b6000612c7b6029836130eb565b9150612c86826135a0565b604082019050919050565b6000612c9e601e836130eb565b9150612ca9826135ef565b602082019050919050565b6000612cc16025836130eb565b9150612ccc82613618565b604082019050919050565b6000612ce46024836130eb565b9150612cef82613667565b604082019050919050565b6000612d076017836130eb565b9150612d12826136b6565b602082019050919050565b612d268161324f565b82525050565b612d3581613259565b82525050565b6000602082019050612d506000830184612ab5565b92915050565b6000604082019050612d6b6000830185612ab5565b612d786020830184612ab5565b9392505050565b6000604082019050612d946000830185612ab5565b612da16020830184612d1d565b9392505050565b600060c082019050612dbd6000830189612ab5565b612dca6020830188612d1d565b612dd76040830187612b31565b612de46060830186612b31565b612df16080830185612ab5565b612dfe60a0830184612d1d565b979650505050505050565b6000602082019050612e1e6000830184612b22565b92915050565b60006020820190508181036000830152612e3e8184612b40565b905092915050565b60006020820190508181036000830152612e5f81612b79565b9050919050565b60006020820190508181036000830152612e7f81612b9c565b9050919050565b60006020820190508181036000830152612e9f81612bbf565b9050919050565b60006020820190508181036000830152612ebf81612be2565b9050919050565b60006020820190508181036000830152612edf81612c05565b9050919050565b60006020820190508181036000830152612eff81612c28565b9050919050565b60006020820190508181036000830152612f1f81612c4b565b9050919050565b60006020820190508181036000830152612f3f81612c6e565b9050919050565b60006020820190508181036000830152612f5f81612c91565b9050919050565b60006020820190508181036000830152612f7f81612cb4565b9050919050565b60006020820190508181036000830152612f9f81612cd7565b9050919050565b60006020820190508181036000830152612fbf81612cfa565b9050919050565b6000602082019050612fdb6000830184612d1d565b92915050565b600060a082019050612ff66000830188612d1d565b6130036020830187612b31565b81810360408301526130158186612ac4565b90506130246060830185612ab5565b6130316080830184612d1d565b9695505050505050565b60006020820190506130506000830184612d2c565b92915050565b6000613060613071565b905061306c82826132ab565b919050565b6000604051905090565b600067ffffffffffffffff82111561309657613095613383565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006131078261324f565b91506131128361324f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561314757613146613325565b5b828201905092915050565b600061315d8261324f565b91506131688361324f565b92508261317857613177613354565b5b828204905092915050565b600061318e8261324f565b91506131998361324f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156131d2576131d1613325565b5b828202905092915050565b60006131e88261324f565b91506131f38361324f565b92508282101561320657613205613325565b5b828203905092915050565b600061321c8261322f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006132718261324f565b9050919050565b60005b8381101561329657808201518184015260208101905061327b565b838111156132a5576000848401525b50505050565b6132b4826133b2565b810181811067ffffffffffffffff821117156132d3576132d2613383565b5b80604052505050565b60006132e78261324f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561331a57613319613325565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f7420696e63726561736520666565732061626f7665203135250000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6136e881613211565b81146136f357600080fd5b50565b6136ff81613223565b811461370a57600080fd5b50565b6137168161324f565b811461372157600080fd5b50565b61372d81613259565b811461373857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205a2cd6054f3bfaff43b2c53239113a2192ef4956554db4eb2b232a55912c1c6464736f6c63430008040033

Deployed Bytecode Sourcemap

3585:11162:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5741:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6593:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6018:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6762:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11363:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5927:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7083:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12740:194;;;;;;;;;;;;;:::i;:::-;;6121:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2664:148;;;;;;;;;;;;;:::i;:::-;;2450:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14371:99;;;;;;;;;;;;;:::i;:::-;;5832:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6267:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7198:248;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11187:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12533:195;;;;;;;;;;;;;:::i;:::-;;10308:867;;;;;;;;;;;;;:::i;:::-;;6442:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5741:83;5778:13;5811:5;;;;;;;;;;;;;;;;;5804:12;;5741:83;:::o;6593:161::-;6668:4;6685:39;6694:12;:10;:12::i;:::-;6708:7;6717:6;6685:8;:39::i;:::-;6742:4;6735:11;;6593:161;;;;:::o;6018:95::-;6071:7;4086:18;6091:14;;6018:95;:::o;6762:313::-;6860:4;6877:36;6887:6;6895:9;6906:6;6877:9;:36::i;:::-;6924:121;6933:6;6941:12;:10;:12::i;:::-;6955:89;6993:6;6955:89;;;;;;;;;;;;;;;;;:11;:19;6967:6;6955:19;;;;;;;;;;;;;;;:33;6975:12;:10;:12::i;:::-;6955:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6924:8;:121::i;:::-;7063:4;7056:11;;6762:313;;;;;:::o;11363:88::-;2587:12;:10;:12::i;:::-;2577:22;;:6;;;;;;;;;;:22;;;2569:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11438:5:::1;11423:4;:12;11428:6;11423:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11363:88:::0;:::o;5927:83::-;5968:5;4596:1;5986:16;;5927:83;:::o;7083:103::-;2587:12;:10;:12::i;:::-;2577:22;;:6;;;;;;;;;;:22;;;2569:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7173:5:::1;7155:15;;:23;;;;;;;;;;;;;;;;;;7083:103:::0;:::o;12740:194::-;12806:15;;;;;;;;;;;12790:31;;:12;:10;:12::i;:::-;:31;;;12782:40;;;;;;12833:26;12862:21;12833:50;;12894:32;12907:18;12894:12;:32::i;:::-;12740:194;:::o;6121:138::-;6187:7;6214:37;6234:7;:16;6242:7;6234:16;;;;;;;;;;;;;;;;6214:19;:37::i;:::-;6207:44;;6121:138;;;:::o;2664:148::-;2587:12;:10;:12::i;:::-;2577:22;;:6;;;;;;;;;;:22;;;2569:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2771:1:::1;2734:40;;2755:6;::::0;::::1;;;;;;;;2734:40;;;;;;;;;;;;2802:1;2785:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2664:148::o:0;2450:79::-;2488:7;2515:6;;;;;;;;;;;2508:13;;2450:79;:::o;14371:99::-;2587:12;:10;:12::i;:::-;2577:22;;:6;;;;;;;;;;:22;;;2569:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4086:18:::1;14440:12;:22;;;;14371:99::o:0;5832:87::-;5871:13;5904:7;;;;;;;;;;;;;;;;;5897:14;;5832:87;:::o;6267:167::-;6345:4;6362:42;6372:12;:10;:12::i;:::-;6386:9;6397:6;6362:9;:42::i;:::-;6422:4;6415:11;;6267:167;;;;:::o;7198:248::-;7297:15;;;;;;;;;;;7281:31;;:12;:10;:12::i;:::-;:31;;;7273:40;;;;;;7341:2;7332:5;:11;;;;:26;;;;;7356:2;7347:5;:11;;;;7332:26;7324:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7410:5;7403:4;;:12;;;;;;;;;;;;;;;;;;7433:5;7426:4;;:12;;;;;;;;;;;;;;;;;;7198:248;;:::o;11187:164::-;2587:12;:10;:12::i;:::-;2577:22;;:6;;;;;;;;;;:22;;;2569:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11261:6:::1;11256:88;11277:5;:12;11273:1;:16;11256:88;;;11328:4;11311;:14;11316:5;11322:1;11316:8;;;;;;;;;;;;;;;;;;;;;;11311:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11291:3;;;;;:::i;:::-;;;;11256:88;;;;11187:164:::0;:::o;12533:195::-;12599:15;;;;;;;;;;;12583:31;;:12;:10;:12::i;:::-;:31;;;12575:40;;;;;;12626:23;12652:24;12670:4;12652:9;:24::i;:::-;12626:50;;12687:33;12704:15;12687:16;:33::i;:::-;12533:195;:::o;10308:867::-;2587:12;:10;:12::i;:::-;2577:22;;:6;;;;;;;;;;:22;;;2569:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10372:11:::1;;;;;;;;;;;10371:12;10363:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10421:35;10478:42;10421:100;;10550:16;10532:15;;:34;;;;;;;;;;;;;;;;;;10577:58;10594:4;10609:15;;;;;;;;;;;4086:18;10577:8;:58::i;:::-;10680:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10662:56;;;10727:4;10734:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10662:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10646:13;;:112;;;;;;;;;;;;;;;;;;10769:15;;;;;;;;;;;:31;;;10808:21;10839:4;10845:24;10863:4;10845:9;:24::i;:::-;10870:1;10872::::0;10874:7:::1;:5;:7::i;:::-;10882:15;10769:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10923:4;10909:11;;:18;;;;;;;;;;;;;;;;;;10956:4;10938:15;;:22;;;;;;;;;;;;;;;;;;10986:23;11005:3;10986:14;10998:1;4086:18;10986:11;;:14;;;;:::i;:::-;:18;;:23;;;;:::i;:::-;10971:12;:38;;;;11034:4;11020:11;;:18;;;;;;;;;;;;;;;;;;11075:9;11056:15;:29;;;;:::i;:::-;11049:4;:36;;;;11103:13;;;;;;;;;;;11096:29;;;11134:15;;;;;;;;;;;11152:14;11096:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2647:1;10308:867::o:0;6442:143::-;6523:7;6550:11;:18;6562:5;6550:18;;;;;;;;;;;;;;;:27;6569:7;6550:27;;;;;;;;;;;;;;;;6543:34;;6442:143;;;;:::o;1757:132::-;1815:7;1842:39;1846:1;1849;1842:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1835:46;;1757:132;;;;:::o;168:98::-;221:7;248:10;241:17;;168:98;:::o;7716:335::-;7826:1;7809:19;;:5;:19;;;;7801:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7907:1;7888:21;;:7;:21;;;;7880:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7989:6;7959:11;:18;7971:5;7959:18;;;;;;;;;;;;;;;:27;7978:7;7959:27;;;;;;;;;;;;;;;:36;;;;8027:7;8011:32;;8020:5;8011:32;;;8036:6;8011:32;;;;;;:::i;:::-;;;;;;;;7716:335;;;:::o;8059:1560::-;8163:1;8147:18;;:4;:18;;;;8139:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8240:1;8226:16;;:2;:16;;;;8218:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8310:1;8301:6;:10;8293:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8380:1;8368:9;:13;;;;8404:4;;;;;;;;;;;8392:16;;:9;:16;;;;8431:7;:5;:7::i;:::-;8423:15;;:4;:15;;;;:32;;;;;8448:7;:5;:7::i;:::-;8442:13;;:2;:13;;;;8423:32;8419:1148;;;8481:4;:10;8486:4;8481:10;;;;;;;;;;;;;;;;;;;;;;;;;8480:11;:24;;;;;8496:4;:8;8501:2;8496:8;;;;;;;;;;;;;;;;;;;;;;;;;8495:9;8480:24;8472:33;;;;;;8532:13;;;;;;;;;;;8524:21;;:4;:21;;;:55;;;;;8563:15;;;;;;;;;;;8549:30;;:2;:30;;;;8524:55;:83;;;;;8585:18;:22;8604:2;8585:22;;;;;;;;;;;;;;;;;;;;;;;;;8583:24;8524:83;:102;;;;;8611:15;;;;;;;;;;;8524:102;8520:325;;;8694:12;;8684:6;:22;;8676:31;;;;;;8749:15;8734:8;:12;8743:2;8734:12;;;;;;;;;;;;;;;;:30;8726:39;;;;;;8818:10;8799:15;:30;;;;:::i;:::-;8784:8;:12;8793:2;8784:12;;;;;;;;;;;;;;;:45;;;;8520:325;8897:13;;;;;;;;;;;8891:19;;:2;:19;;;:55;;;;;8930:15;;;;;;;;;;;8914:32;;:4;:32;;;;8891:55;:85;;;;;8952:18;:24;8971:4;8952:24;;;;;;;;;;;;;;;;;;;;;;;;;8950:26;8891:85;8887:174;;;9009:1;8997:9;:13;;;;9041:4;;;;;;;;;;;9029:16;;:9;:16;;;;8887:174;9075:28;9106:24;9124:4;9106:9;:24::i;:::-;9075:55;;9150:6;;;;;;;;;;;9149:7;:32;;;;;9168:13;;;;;;;;;;;9160:21;;:4;:21;;;;9149:32;:47;;;;;9185:11;;;;;;;;;;;9149:47;9145:411;;;9243:4;;9225:15;:22;9217:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9310:38;9327:20;9310:16;:38::i;:::-;9367:26;9396:21;9367:50;;9460:1;9439:18;:22;9436:105;;;9486:35;9499:21;9486:12;:35::i;:::-;9436:105;9145:411;;8419:1148;;9581:30;9596:4;9601:2;9604:6;9581:14;:30::i;:::-;8059:1560;;;:::o;1305:190::-;1391:7;1424:1;1419;:6;;1427:12;1411:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1451:9;1467:1;1463;:5;;;;:::i;:::-;1451:17;;1486:1;1479:8;;;1305:190;;;;;:::o;10126:170::-;10183:15;;;;;;;;;;;:24;;:47;10208:21;10227:1;10208:14;10219:2;10208:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;10183:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10241:15;;;;;;;;;;;:24;;:47;10266:21;10285:1;10266:14;10277:2;10266:6;:10;;:14;;;;:::i;:::-;:18;;:21;;;;:::i;:::-;10241:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10126:170;:::o;7454:254::-;7521:7;7560;;7549;:18;;7541:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7625:19;7648:10;:8;:10::i;:::-;7625:33;;7676:24;7688:11;7676:7;:11;;:24;;;;:::i;:::-;7669:31;;;7454:254;;;:::o;9627:483::-;4978:4;4969:6;;:13;;;;;;;;;;;;;;;;;;9705:21:::1;9743:1;9729:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9705:40;;9774:4;9756;9761:1;9756:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9800:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9790:4;9795:1;9790:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9833:62;9850:4;9865:15;;;;;;;;;;;9883:11;9833:8;:62::i;:::-;9906:15;;;;;;;;;;;:66;;;9987:11;10013:1;10029:4;10056;10076:15;9906:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4993:1;5014:5:::0;5005:6;;:14;;;;;;;;;;;;;;;;;;9627:483;:::o;1503:246::-;1561:7;1590:1;1585;:6;1581:47;;;1615:1;1608:8;;;;1581:47;1638:9;1654:1;1650;:5;;;;:::i;:::-;1638:17;;1683:1;1678;1674;:5;;;;:::i;:::-;:10;1666:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1740:1;1733:8;;;1503:246;;;;;:::o;1897:189::-;1983:7;2015:1;2011;:5;2018:12;2003:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2042:9;2058:1;2054;:5;;;;:::i;:::-;2042:17;;2077:1;2070:8;;;1897:189;;;;;:::o;11467:146::-;11561:44;11579:6;11587:9;11598:6;11561:17;:44::i;:::-;11467:146;;;:::o;14200:163::-;14241:7;14262:15;14279;14298:19;:17;:19::i;:::-;14261:56;;;;14335:20;14347:7;14335;:11;;:20;;;;:::i;:::-;14328:27;;;;14200:163;:::o;11621:488::-;11720:15;11737:23;11762:12;11776:23;11801:12;11815:13;11832:19;11843:7;11832:10;:19::i;:::-;11719:132;;;;;;;;;;;;11880:28;11900:7;11880;:15;11888:6;11880:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11862:7;:15;11870:6;11862:15;;;;;;;;;;;;;;;:46;;;;11940:39;11963:15;11940:7;:18;11948:9;11940:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11919:7;:18;11927:9;11919:18;;;;;;;;;;;;;;;:60;;;;11991:16;12001:5;11991:9;:16::i;:::-;12018:23;12030:4;12036;12018:11;:23::i;:::-;12074:9;12057:44;;12066:6;12057:44;;;12085:15;12057:44;;;;;;:::i;:::-;;;;;;;;11621:488;;;;;;;;;:::o;14482:262::-;14532:7;14541;14561:15;14579:7;;14561:25;;14597:15;4086:18;14597:25;;14653:20;4086:18;14653:7;;:11;;:20;;;;:::i;:::-;14643:7;:30;14639:61;;;14683:7;;4086:18;14675:25;;;;;;;;14639:61;14719:7;14728;14711:25;;;;;;14482:262;;;:::o;12948:471::-;13007:7;13016;13025;13034;13043;13052;13073:23;13098:12;13112:13;13129:42;13141:7;13150:9;;13161;;13129:11;:42::i;:::-;13072:99;;;;;;13182:19;13205:10;:8;:10::i;:::-;13182:33;;13227:15;13244:23;13269:12;13285:46;13297:7;13306:4;13312:5;13319:11;13285;:46::i;:::-;13226:105;;;;;;13350:7;13359:15;13376:4;13382:15;13399:4;13405:5;13342:69;;;;;;;;;;;;;;;;;;;12948:471;;;;;;;:::o;1161:136::-;1219:7;1246:43;1250:1;1253;1246:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1239:50;;1161:136;;;;:::o;974:179::-;1032:7;1052:9;1068:1;1064;:5;;;;:::i;:::-;1052:17;;1093:1;1088;:6;;1080:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1144:1;1137:8;;;974:179;;;;:::o;12117:212::-;12170:19;12193:10;:8;:10::i;:::-;12170:33;;12214:13;12230:22;12240:11;12230:5;:9;;:22;;;;:::i;:::-;12214:38;;12288:33;12315:5;12288:7;:22;12304:4;12288:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12263:7;:22;12279:4;12263:22;;;;;;;;;;;;;;;:58;;;;12117:212;;;:::o;12337:147::-;12415:17;12427:4;12415:7;;:11;;:17;;;;:::i;:::-;12405:7;:27;;;;12456:20;12471:4;12456:10;;:14;;:20;;;;:::i;:::-;12443:10;:33;;;;12337:147;;:::o;13427:351::-;13520:7;13529;13538;13558:12;13573:28;13597:3;13573:19;13585:6;13573:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13558:43;;13612:13;13628:29;13653:3;13628:20;13640:7;13628;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13612:45;;13668:23;13694:28;13716:5;13694:17;13706:4;13694:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13668:54;;13741:15;13758:4;13764:5;13733:37;;;;;;;;;13427:351;;;;;;;:::o;13786:409::-;13896:7;13905;13914;13934:15;13952:24;13964:11;13952:7;:11;;:24;;;;:::i;:::-;13934:42;;13987:12;14002:21;14011:11;14002:4;:8;;:21;;;;:::i;:::-;13987:36;;14034:13;14050:22;14060:11;14050:5;:9;;:22;;;;:::i;:::-;14034:38;;14083:23;14109:28;14131:5;14109:17;14121:4;14109:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14083:54;;14156:7;14165:15;14182:4;14148:39;;;;;;;;;;13786:409;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:135::-;1925:5;1963:6;1950:20;1941:29;;1979:31;2004:5;1979:31;:::i;:::-;1931:85;;;;:::o;2022:262::-;2081:6;2130:2;2118:9;2109:7;2105:23;2101:32;2098:2;;;2146:1;2143;2136:12;2098:2;2189:1;2214:53;2259:7;2250:6;2239:9;2235:22;2214:53;:::i;:::-;2204:63;;2160:117;2088:196;;;;:::o;2290:284::-;2360:6;2409:2;2397:9;2388:7;2384:23;2380:32;2377:2;;;2425:1;2422;2415:12;2377:2;2468:1;2493:64;2549:7;2540:6;2529:9;2525:22;2493:64;:::i;:::-;2483:74;;2439:128;2367:207;;;;:::o;2580:407::-;2648:6;2656;2705:2;2693:9;2684:7;2680:23;2676:32;2673:2;;;2721:1;2718;2711:12;2673:2;2764:1;2789:53;2834:7;2825:6;2814:9;2810:22;2789:53;:::i;:::-;2779:63;;2735:117;2891:2;2917:53;2962:7;2953:6;2942:9;2938:22;2917:53;:::i;:::-;2907:63;;2862:118;2663:324;;;;;:::o;2993:552::-;3070:6;3078;3086;3135:2;3123:9;3114:7;3110:23;3106:32;3103:2;;;3151:1;3148;3141:12;3103:2;3194:1;3219:53;3264:7;3255:6;3244:9;3240:22;3219:53;:::i;:::-;3209:63;;3165:117;3321:2;3347:53;3392:7;3383:6;3372:9;3368:22;3347:53;:::i;:::-;3337:63;;3292:118;3449:2;3475:53;3520:7;3511:6;3500:9;3496:22;3475:53;:::i;:::-;3465:63;;3420:118;3093:452;;;;;:::o;3551:407::-;3619:6;3627;3676:2;3664:9;3655:7;3651:23;3647:32;3644:2;;;3692:1;3689;3682:12;3644:2;3735:1;3760:53;3805:7;3796:6;3785:9;3781:22;3760:53;:::i;:::-;3750:63;;3706:117;3862:2;3888:53;3933:7;3924:6;3913:9;3909:22;3888:53;:::i;:::-;3878:63;;3833:118;3634:324;;;;;:::o;3964:405::-;4048:6;4097:2;4085:9;4076:7;4072:23;4068:32;4065:2;;;4113:1;4110;4103:12;4065:2;4184:1;4173:9;4169:17;4156:31;4214:18;4206:6;4203:30;4200:2;;;4246:1;4243;4236:12;4200:2;4274:78;4344:7;4335:6;4324:9;4320:22;4274:78;:::i;:::-;4264:88;;4127:235;4055:314;;;;:::o;4375:256::-;4431:6;4480:2;4468:9;4459:7;4455:23;4451:32;4448:2;;;4496:1;4493;4486:12;4448:2;4539:1;4564:50;4606:7;4597:6;4586:9;4582:22;4564:50;:::i;:::-;4554:60;;4510:114;4438:193;;;;:::o;4637:278::-;4704:6;4753:2;4741:9;4732:7;4728:23;4724:32;4721:2;;;4769:1;4766;4759:12;4721:2;4812:1;4837:61;4890:7;4881:6;4870:9;4866:22;4837:61;:::i;:::-;4827:71;;4783:125;4711:204;;;;:::o;4921:596::-;5009:6;5017;5025;5074:2;5062:9;5053:7;5049:23;5045:32;5042:2;;;5090:1;5087;5080:12;5042:2;5133:1;5158:64;5214:7;5205:6;5194:9;5190:22;5158:64;:::i;:::-;5148:74;;5104:128;5271:2;5297:64;5353:7;5344:6;5333:9;5329:22;5297:64;:::i;:::-;5287:74;;5242:129;5410:2;5436:64;5492:7;5483:6;5472:9;5468:22;5436:64;:::i;:::-;5426:74;;5381:129;5032:485;;;;;:::o;5523:399::-;5587:6;5595;5644:2;5632:9;5623:7;5619:23;5615:32;5612:2;;;5660:1;5657;5650:12;5612:2;5703:1;5728:51;5771:7;5762:6;5751:9;5747:22;5728:51;:::i;:::-;5718:61;;5674:115;5828:2;5854:51;5897:7;5888:6;5877:9;5873:22;5854:51;:::i;:::-;5844:61;;5799:116;5602:320;;;;;:::o;5928:179::-;5997:10;6018:46;6060:3;6052:6;6018:46;:::i;:::-;6096:4;6091:3;6087:14;6073:28;;6008:99;;;;:::o;6113:108::-;6190:24;6208:5;6190:24;:::i;:::-;6185:3;6178:37;6168:53;;:::o;6227:118::-;6314:24;6332:5;6314:24;:::i;:::-;6309:3;6302:37;6292:53;;:::o;6381:732::-;6500:3;6529:54;6577:5;6529:54;:::i;:::-;6599:86;6678:6;6673:3;6599:86;:::i;:::-;6592:93;;6709:56;6759:5;6709:56;:::i;:::-;6788:7;6819:1;6804:284;6829:6;6826:1;6823:13;6804:284;;;6905:6;6899:13;6932:63;6991:3;6976:13;6932:63;:::i;:::-;6925:70;;7018:60;7071:6;7018:60;:::i;:::-;7008:70;;6864:224;6851:1;6848;6844:9;6839:14;;6804:284;;;6808:14;7104:3;7097:10;;6505:608;;;;;;;:::o;7119:109::-;7200:21;7215:5;7200:21;:::i;:::-;7195:3;7188:34;7178:50;;:::o;7234:147::-;7329:45;7368:5;7329:45;:::i;:::-;7324:3;7317:58;7307:74;;:::o;7387:364::-;7475:3;7503:39;7536:5;7503:39;:::i;:::-;7558:71;7622:6;7617:3;7558:71;:::i;:::-;7551:78;;7638:52;7683:6;7678:3;7671:4;7664:5;7660:16;7638:52;:::i;:::-;7715:29;7737:6;7715:29;:::i;:::-;7710:3;7706:39;7699:46;;7479:272;;;;;:::o;7757:366::-;7899:3;7920:67;7984:2;7979:3;7920:67;:::i;:::-;7913:74;;7996:93;8085:3;7996:93;:::i;:::-;8114:2;8109:3;8105:12;8098:19;;7903:220;;;:::o;8129:366::-;8271:3;8292:67;8356:2;8351:3;8292:67;:::i;:::-;8285:74;;8368:93;8457:3;8368:93;:::i;:::-;8486:2;8481:3;8477:12;8470:19;;8275:220;;;:::o;8501:366::-;8643:3;8664:67;8728:2;8723:3;8664:67;:::i;:::-;8657:74;;8740:93;8829:3;8740:93;:::i;:::-;8858:2;8853:3;8849:12;8842:19;;8647:220;;;:::o;8873:366::-;9015:3;9036:67;9100:2;9095:3;9036:67;:::i;:::-;9029:74;;9112:93;9201:3;9112:93;:::i;:::-;9230:2;9225:3;9221:12;9214:19;;9019:220;;;:::o;9245:366::-;9387:3;9408:67;9472:2;9467:3;9408:67;:::i;:::-;9401:74;;9484:93;9573:3;9484:93;:::i;:::-;9602:2;9597:3;9593:12;9586:19;;9391:220;;;:::o;9617:366::-;9759:3;9780:67;9844:2;9839:3;9780:67;:::i;:::-;9773:74;;9856:93;9945:3;9856:93;:::i;:::-;9974:2;9969:3;9965:12;9958:19;;9763:220;;;:::o;9989:366::-;10131:3;10152:67;10216:2;10211:3;10152:67;:::i;:::-;10145:74;;10228:93;10317:3;10228:93;:::i;:::-;10346:2;10341:3;10337:12;10330:19;;10135:220;;;:::o;10361:366::-;10503:3;10524:67;10588:2;10583:3;10524:67;:::i;:::-;10517:74;;10600:93;10689:3;10600:93;:::i;:::-;10718:2;10713:3;10709:12;10702:19;;10507:220;;;:::o;10733:366::-;10875:3;10896:67;10960:2;10955:3;10896:67;:::i;:::-;10889:74;;10972:93;11061:3;10972:93;:::i;:::-;11090:2;11085:3;11081:12;11074:19;;10879:220;;;:::o;11105:366::-;11247:3;11268:67;11332:2;11327:3;11268:67;:::i;:::-;11261:74;;11344:93;11433:3;11344:93;:::i;:::-;11462:2;11457:3;11453:12;11446:19;;11251:220;;;:::o;11477:366::-;11619:3;11640:67;11704:2;11699:3;11640:67;:::i;:::-;11633:74;;11716:93;11805:3;11716:93;:::i;:::-;11834:2;11829:3;11825:12;11818:19;;11623:220;;;:::o;11849:366::-;11991:3;12012:67;12076:2;12071:3;12012:67;:::i;:::-;12005:74;;12088:93;12177:3;12088:93;:::i;:::-;12206:2;12201:3;12197:12;12190:19;;11995:220;;;:::o;12221:118::-;12308:24;12326:5;12308:24;:::i;:::-;12303:3;12296:37;12286:53;;:::o;12345:112::-;12428:22;12444:5;12428:22;:::i;:::-;12423:3;12416:35;12406:51;;:::o;12463:222::-;12556:4;12594:2;12583:9;12579:18;12571:26;;12607:71;12675:1;12664:9;12660:17;12651:6;12607:71;:::i;:::-;12561:124;;;;:::o;12691:332::-;12812:4;12850:2;12839:9;12835:18;12827:26;;12863:71;12931:1;12920:9;12916:17;12907:6;12863:71;:::i;:::-;12944:72;13012:2;13001:9;12997:18;12988:6;12944:72;:::i;:::-;12817:206;;;;;:::o;13029:332::-;13150:4;13188:2;13177:9;13173:18;13165:26;;13201:71;13269:1;13258:9;13254:17;13245:6;13201:71;:::i;:::-;13282:72;13350:2;13339:9;13335:18;13326:6;13282:72;:::i;:::-;13155:206;;;;;:::o;13367:807::-;13616:4;13654:3;13643:9;13639:19;13631:27;;13668:71;13736:1;13725:9;13721:17;13712:6;13668:71;:::i;:::-;13749:72;13817:2;13806:9;13802:18;13793:6;13749:72;:::i;:::-;13831:80;13907:2;13896:9;13892:18;13883:6;13831:80;:::i;:::-;13921;13997:2;13986:9;13982:18;13973:6;13921:80;:::i;:::-;14011:73;14079:3;14068:9;14064:19;14055:6;14011:73;:::i;:::-;14094;14162:3;14151:9;14147:19;14138:6;14094:73;:::i;:::-;13621:553;;;;;;;;;:::o;14180:210::-;14267:4;14305:2;14294:9;14290:18;14282:26;;14318:65;14380:1;14369:9;14365:17;14356:6;14318:65;:::i;:::-;14272:118;;;;:::o;14396:313::-;14509:4;14547:2;14536:9;14532:18;14524:26;;14596:9;14590:4;14586:20;14582:1;14571:9;14567:17;14560:47;14624:78;14697:4;14688:6;14624:78;:::i;:::-;14616:86;;14514:195;;;;:::o;14715:419::-;14881:4;14919:2;14908:9;14904:18;14896:26;;14968:9;14962:4;14958:20;14954:1;14943:9;14939:17;14932:47;14996:131;15122:4;14996:131;:::i;:::-;14988:139;;14886:248;;;:::o;15140:419::-;15306:4;15344:2;15333:9;15329:18;15321:26;;15393:9;15387:4;15383:20;15379:1;15368:9;15364:17;15357:47;15421:131;15547:4;15421:131;:::i;:::-;15413:139;;15311:248;;;:::o;15565:419::-;15731:4;15769:2;15758:9;15754:18;15746:26;;15818:9;15812:4;15808:20;15804:1;15793:9;15789:17;15782:47;15846:131;15972:4;15846:131;:::i;:::-;15838:139;;15736:248;;;:::o;15990:419::-;16156:4;16194:2;16183:9;16179:18;16171:26;;16243:9;16237:4;16233:20;16229:1;16218:9;16214:17;16207:47;16271:131;16397:4;16271:131;:::i;:::-;16263:139;;16161:248;;;:::o;16415:419::-;16581:4;16619:2;16608:9;16604:18;16596:26;;16668:9;16662:4;16658:20;16654:1;16643:9;16639:17;16632:47;16696:131;16822:4;16696:131;:::i;:::-;16688:139;;16586:248;;;:::o;16840:419::-;17006:4;17044:2;17033:9;17029:18;17021:26;;17093:9;17087:4;17083:20;17079:1;17068:9;17064:17;17057:47;17121:131;17247:4;17121:131;:::i;:::-;17113:139;;17011:248;;;:::o;17265:419::-;17431:4;17469:2;17458:9;17454:18;17446:26;;17518:9;17512:4;17508:20;17504:1;17493:9;17489:17;17482:47;17546:131;17672:4;17546:131;:::i;:::-;17538:139;;17436:248;;;:::o;17690:419::-;17856:4;17894:2;17883:9;17879:18;17871:26;;17943:9;17937:4;17933:20;17929:1;17918:9;17914:17;17907:47;17971:131;18097:4;17971:131;:::i;:::-;17963:139;;17861:248;;;:::o;18115:419::-;18281:4;18319:2;18308:9;18304:18;18296:26;;18368:9;18362:4;18358:20;18354:1;18343:9;18339:17;18332:47;18396:131;18522:4;18396:131;:::i;:::-;18388:139;;18286:248;;;:::o;18540:419::-;18706:4;18744:2;18733:9;18729:18;18721:26;;18793:9;18787:4;18783:20;18779:1;18768:9;18764:17;18757:47;18821:131;18947:4;18821:131;:::i;:::-;18813:139;;18711:248;;;:::o;18965:419::-;19131:4;19169:2;19158:9;19154:18;19146:26;;19218:9;19212:4;19208:20;19204:1;19193:9;19189:17;19182:47;19246:131;19372:4;19246:131;:::i;:::-;19238:139;;19136:248;;;:::o;19390:419::-;19556:4;19594:2;19583:9;19579:18;19571:26;;19643:9;19637:4;19633:20;19629:1;19618:9;19614:17;19607:47;19671:131;19797:4;19671:131;:::i;:::-;19663:139;;19561:248;;;:::o;19815:222::-;19908:4;19946:2;19935:9;19931:18;19923:26;;19959:71;20027:1;20016:9;20012:17;20003:6;19959:71;:::i;:::-;19913:124;;;;:::o;20043:831::-;20306:4;20344:3;20333:9;20329:19;20321:27;;20358:71;20426:1;20415:9;20411:17;20402:6;20358:71;:::i;:::-;20439:80;20515:2;20504:9;20500:18;20491:6;20439:80;:::i;:::-;20566:9;20560:4;20556:20;20551:2;20540:9;20536:18;20529:48;20594:108;20697:4;20688:6;20594:108;:::i;:::-;20586:116;;20712:72;20780:2;20769:9;20765:18;20756:6;20712:72;:::i;:::-;20794:73;20862:3;20851:9;20847:19;20838:6;20794:73;:::i;:::-;20311:563;;;;;;;;:::o;20880:214::-;20969:4;21007:2;20996:9;20992:18;20984:26;;21020:67;21084:1;21073:9;21069:17;21060:6;21020:67;:::i;:::-;20974:120;;;;:::o;21100:129::-;21134:6;21161:20;;:::i;:::-;21151:30;;21190:33;21218:4;21210:6;21190:33;:::i;:::-;21141:88;;;:::o;21235:75::-;21268:6;21301:2;21295:9;21285:19;;21275:35;:::o;21316:311::-;21393:4;21483:18;21475:6;21472:30;21469:2;;;21505:18;;:::i;:::-;21469:2;21555:4;21547:6;21543:17;21535:25;;21615:4;21609;21605:15;21597:23;;21398:229;;;:::o;21633:132::-;21700:4;21723:3;21715:11;;21753:4;21748:3;21744:14;21736:22;;21705:60;;;:::o;21771:114::-;21838:6;21872:5;21866:12;21856:22;;21845:40;;;:::o;21891:99::-;21943:6;21977:5;21971:12;21961:22;;21950:40;;;:::o;21996:113::-;22066:4;22098;22093:3;22089:14;22081:22;;22071:38;;;:::o;22115:184::-;22214:11;22248:6;22243:3;22236:19;22288:4;22283:3;22279:14;22264:29;;22226:73;;;;:::o;22305:169::-;22389:11;22423:6;22418:3;22411:19;22463:4;22458:3;22454:14;22439:29;;22401:73;;;;:::o;22480:305::-;22520:3;22539:20;22557:1;22539:20;:::i;:::-;22534:25;;22573:20;22591:1;22573:20;:::i;:::-;22568:25;;22727:1;22659:66;22655:74;22652:1;22649:81;22646:2;;;22733:18;;:::i;:::-;22646:2;22777:1;22774;22770:9;22763:16;;22524:261;;;;:::o;22791:185::-;22831:1;22848:20;22866:1;22848:20;:::i;:::-;22843:25;;22882:20;22900:1;22882:20;:::i;:::-;22877:25;;22921:1;22911:2;;22926:18;;:::i;:::-;22911:2;22968:1;22965;22961:9;22956:14;;22833:143;;;;:::o;22982:348::-;23022:7;23045:20;23063:1;23045:20;:::i;:::-;23040:25;;23079:20;23097:1;23079:20;:::i;:::-;23074:25;;23267:1;23199:66;23195:74;23192:1;23189:81;23184:1;23177:9;23170:17;23166:105;23163:2;;;23274:18;;:::i;:::-;23163:2;23322:1;23319;23315:9;23304:20;;23030:300;;;;:::o;23336:191::-;23376:4;23396:20;23414:1;23396:20;:::i;:::-;23391:25;;23430:20;23448:1;23430:20;:::i;:::-;23425:25;;23469:1;23466;23463:8;23460:2;;;23474:18;;:::i;:::-;23460:2;23519:1;23516;23512:9;23504:17;;23381:146;;;;:::o;23533:96::-;23570:7;23599:24;23617:5;23599:24;:::i;:::-;23588:35;;23578:51;;;:::o;23635:90::-;23669:7;23712:5;23705:13;23698:21;23687:32;;23677:48;;;:::o;23731:126::-;23768:7;23808:42;23801:5;23797:54;23786:65;;23776:81;;;:::o;23863:77::-;23900:7;23929:5;23918:16;;23908:32;;;:::o;23946:86::-;23981:7;24021:4;24014:5;24010:16;23999:27;;23989:43;;;:::o;24038:121::-;24096:9;24129:24;24147:5;24129:24;:::i;:::-;24116:37;;24106:53;;;:::o;24165:307::-;24233:1;24243:113;24257:6;24254:1;24251:13;24243:113;;;24342:1;24337:3;24333:11;24327:18;24323:1;24318:3;24314:11;24307:39;24279:2;24276:1;24272:10;24267:15;;24243:113;;;24374:6;24371:1;24368:13;24365:2;;;24454:1;24445:6;24440:3;24436:16;24429:27;24365:2;24214:258;;;;:::o;24478:281::-;24561:27;24583:4;24561:27;:::i;:::-;24553:6;24549:40;24691:6;24679:10;24676:22;24655:18;24643:10;24640:34;24637:62;24634:2;;;24702:18;;:::i;:::-;24634:2;24742:10;24738:2;24731:22;24521:238;;;:::o;24765:233::-;24804:3;24827:24;24845:5;24827:24;:::i;:::-;24818:33;;24873:66;24866:5;24863:77;24860:2;;;24943:18;;:::i;:::-;24860:2;24990:1;24983:5;24979:13;24972:20;;24808:190;;;:::o;25004:180::-;25052:77;25049:1;25042:88;25149:4;25146:1;25139:15;25173:4;25170:1;25163:15;25190:180;25238:77;25235:1;25228:88;25335:4;25332:1;25325:15;25359:4;25356:1;25349:15;25376:180;25424:77;25421:1;25414:88;25521:4;25518:1;25511:15;25545:4;25542:1;25535:15;25562:102;25603:6;25654:2;25650:7;25645:2;25638:5;25634:14;25630:28;25620:38;;25610:54;;;:::o;25670:227::-;25810:34;25806:1;25798:6;25794:14;25787:58;25879:10;25874:2;25866:6;25862:15;25855:35;25776:121;:::o;25903:222::-;26043:34;26039:1;26031:6;26027:14;26020:58;26112:5;26107:2;26099:6;26095:15;26088:30;26009:116;:::o;26131:229::-;26271:34;26267:1;26259:6;26255:14;26248:58;26340:12;26335:2;26327:6;26323:15;26316:37;26237:123;:::o;26366:221::-;26506:34;26502:1;26494:6;26490:14;26483:58;26575:4;26570:2;26562:6;26558:15;26551:29;26472:115;:::o;26593:177::-;26733:29;26729:1;26721:6;26717:14;26710:53;26699:71;:::o;26776:220::-;26916:34;26912:1;26904:6;26900:14;26893:58;26985:3;26980:2;26972:6;26968:15;26961:28;26882:114;:::o;27002:182::-;27142:34;27138:1;27130:6;27126:14;27119:58;27108:76;:::o;27190:228::-;27330:34;27326:1;27318:6;27314:14;27307:58;27399:11;27394:2;27386:6;27382:15;27375:36;27296:122;:::o;27424:180::-;27564:32;27560:1;27552:6;27548:14;27541:56;27530:74;:::o;27610:224::-;27750:34;27746:1;27738:6;27734:14;27727:58;27819:7;27814:2;27806:6;27802:15;27795:32;27716:118;:::o;27840:223::-;27980:34;27976:1;27968:6;27964:14;27957:58;28049:6;28044:2;28036:6;28032:15;28025:31;27946:117;:::o;28069:173::-;28209:25;28205:1;28197:6;28193:14;28186:49;28175:67;:::o;28248:122::-;28321:24;28339:5;28321:24;:::i;:::-;28314:5;28311:35;28301:2;;28360:1;28357;28350:12;28301:2;28291:79;:::o;28376:116::-;28446:21;28461:5;28446:21;:::i;:::-;28439:5;28436:32;28426:2;;28482:1;28479;28472:12;28426:2;28416:76;:::o;28498:122::-;28571:24;28589:5;28571:24;:::i;:::-;28564:5;28561:35;28551:2;;28610:1;28607;28600:12;28551:2;28541:79;:::o;28626:118::-;28697:22;28713:5;28697:22;:::i;:::-;28690:5;28687:33;28677:2;;28734:1;28731;28724:12;28677:2;28667:77;:::o

Swarm Source

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