ETH Price: $2,497.17 (-1.92%)
Gas: 4.49 Gwei

Token

FochunKITI (KITI)
 

Overview

Max Total Supply

100,000,000 KITI

Holders

23

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.630601384 KITI

Value
$0.00
0x0B239155285ccDa7Cb00B8d830E9a9C45dc46389
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:
KITI

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.7;

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 transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

    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 KITI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    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 time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1 * 10**8 * 10**9;
    uint256 private fee1=30;
    uint256 private fee2=40;
    uint256 private pc1=55;
    uint256 private pc2=35;
    uint256 private pc3=10;
    string private constant _name = unicode"FochunKITI";
    string private constant _symbol = unicode"KITI";
    uint256 private _maxTxAmount = _tTotal.div(50);
    uint256 private _maxWalletAmount = _tTotal.div(50);
    uint256 private minBalance = _tTotal.div(1000);
    uint256 private aggregateLockTime;
    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _marketingWallet;
    address payable private _donationWallet;
    IUniswapV2Router02 private uniswapV2Router;
    IERC20 private uniswapV2Pair;
    address private uniswapV2PairAddress;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _marketingWallet = payable(0x62BB09a55Cf0221aFE0a291f837536c369C6264D);
        _donationWallet = payable(0x8981AC8e0f61edFb49C015113481d3a85D1dBd81);
        _tOwned[address(this)] = _tTotal;
        _tOwned[address(0xee71372CAd34fb50F5Cb68FF16c49Fc90ed1072b)] = _tTotal.div(50);
        _tOwned[address(0x62BB09a55Cf0221aFE0a291f837536c369C6264D)] = _tTotal.div(50);
        _tOwned[address(0xB69EA750C958C1f214770418982Ea030B1aED2f5)] = _tTotal.div(50);
        _tOwned[address(0x8981AC8e0f61edFb49C015113481d3a85D1dBd81)] = _tTotal.div(50);
        _tOwned[address(0x1dc1f1068c7Ec2996edcfC1c3bFF711ff3221C1e)] = _tTotal.div(200);
        _tOwned[address(0x60A787480168FF005E5b84aE52A5E20c39a54F22)] = _tTotal.div(20);
        _tOwned[address(0x125011E4C9a3AbA4815C11a2dD1835D606404135)] = _tTotal.div(30);
        _tOwned[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2PairAddress] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2PairAddress = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Pair = IERC20(uniswapV2PairAddress);

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 getLockTime() public view returns(uint256) {
        return aggregateLockTime;
    }

   
    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }

    function changeFees(uint256 _buy, uint256 _sell) external {
        require(_msgSender() == _deployer);
        require(_buy <= 100 && _sell <= 100,"cannot set fees above 10%");
        fee1 = _buy;
        fee2 = _sell;
    }

    function editPercentages(uint256 _pc1, uint256 _pc2, uint256 _pc3) external {
        require(_msgSender() == _deployer);
        require(_pc1 + _pc2 + _pc3 == 100);
        pc1 = _pc1;
        pc2 = _pc2;
        pc3 = _pc3;
    }

    function removeLimits() external {
        require(_msgSender() == _deployer);
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
    }


    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
    }

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

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2PairAddress && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require((_tOwned[to] + amount) <= _maxWalletAmount,"not a chance");
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2PairAddress && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"2 minute sell delay post launch in order to ban bots");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2PairAddress && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }		
        _transferStandard(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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        _deployer.transfer(amount.div(100).mul(pc1));
        _marketingWallet.transfer(amount.div(100).mul(pc2));
        _donationWallet.transfer(amount.div(100).mul(pc3));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,address(this));
        fee1 = 200;
        fee2 = 200;
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (2 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address[] memory notbot) public onlyOwner {
        for(uint i=0;i<notbot.length;i++){bots[notbot[i]] = false;}
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        require(tokenAddress != uniswapV2PairAddress);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }

    function lockLiquidity(uint256 lockTime) external {
        require(_msgSender() == _deployer);
        require(lockTime > block.timestamp);
        aggregateLockTime = lockTime;
    }

    function extendLock(uint256 lockTime) external {
        require(_msgSender() == _deployer);
        require(lockTime > aggregateLockTime);
        aggregateLockTime = lockTime;
    }

    function unlock() external {
        require(_msgSender() == _deployer);
        require(block.timestamp >= aggregateLockTime);
        uniswapV2Pair.transfer(_deployer,uniswapV2Pair.balanceOf(address(this)));

    }
}

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":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":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","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":[{"internalType":"uint256","name":"_pc1","type":"uint256"},{"internalType":"uint256","name":"_pc2","type":"uint256"},{"internalType":"uint256","name":"_pc3","type":"uint256"}],"name":"editPercentages","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"lockTime","type":"uint256"}],"name":"extendLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getLockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"lockTime","type":"uint256"}],"name":"lockLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601e6009556028600a556037600b556023600c55600a600d5562000040603267016345785d8a000062000b1960201b6200178e1790919060201c565b600e5562000066603267016345785d8a000062000b1960201b6200178e1790919060201c565b600f556200008d6103e867016345785d8a000062000b1960201b6200178e1790919060201c565b6010556000601760156101000a81548160ff0219169083151502179055506000601760166101000a81548160ff0219169083151502179055506000620000d862000b6b60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507362bb09a55cf0221afe0a291f837536c369c6264d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738981ac8e0f61edfb49c015113481d3a85d1dbd81601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555067016345785d8a0000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002d0603267016345785d8a000062000b1960201b6200178e1790919060201c565b6002600073ee71372cad34fb50f5cb68ff16c49fc90ed1072b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200034a603267016345785d8a000062000b1960201b6200178e1790919060201c565b600260007362bb09a55cf0221afe0a291f837536c369c6264d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003c4603267016345785d8a000062000b1960201b6200178e1790919060201c565b6002600073b69ea750c958c1f214770418982ea030b1aed2f573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200043e603267016345785d8a000062000b1960201b6200178e1790919060201c565b60026000738981ac8e0f61edfb49c015113481d3a85d1dbd8173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620004b860c867016345785d8a000062000b1960201b6200178e1790919060201c565b60026000731dc1f1068c7ec2996edcfc1c3bff711ff3221c1e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000532601467016345785d8a000062000b1960201b6200178e1790919060201c565b600260007360a787480168ff005e5b84ae52a5e20c39a54f2273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620005ac601e67016345785d8a000062000b1960201b6200178e1790919060201c565b6002600073125011e4c9a3aba4815c11a2dd1835d60640413573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555067016345785d8a0000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200066562000b7360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008c5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008eb919062000c6e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000975573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200099b919062000c6e565b6040518363ffffffff1660e01b8152600401620009ba92919062000cb1565b6020604051808303816000875af1158015620009da573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a00919062000c6e565b601760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a000060405162000b0b919062000cf9565b60405180910390a362000e45565b600062000b6383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b9c60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000be6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000bdd919062000dba565b60405180910390fd5b506000838562000bf7919062000e0d565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c368262000c09565b9050919050565b62000c488162000c29565b811462000c5457600080fd5b50565b60008151905062000c688162000c3d565b92915050565b60006020828403121562000c875762000c8662000c04565b5b600062000c978482850162000c57565b91505092915050565b62000cab8162000c29565b82525050565b600060408201905062000cc8600083018562000ca0565b62000cd7602083018462000ca0565b9392505050565b6000819050919050565b62000cf38162000cde565b82525050565b600060208201905062000d10600083018462000ce8565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101562000d5257808201518184015260208101905062000d35565b8381111562000d62576000848401525b50505050565b6000601f19601f8301169050919050565b600062000d868262000d16565b62000d92818562000d21565b935062000da481856020860162000d32565b62000daf8162000d68565b840191505092915050565b6000602082019050818103600083015262000dd6818462000d79565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000e1a8262000cde565b915062000e278362000cde565b92508262000e3a5762000e3962000dde565b5b828204905092915050565b613bc38062000e556000396000f3fe6080604052600436106101a05760003560e01c8063715018a6116100ec578063c0a4d64d1161008a578063c97c182111610064578063c97c18211461054b578063dd62ed3e14610574578063e57f14e1146105b1578063f2fde38b146105da576101a7565b8063c0a4d64d146104f2578063c3c8cd801461051d578063c9567bf914610534576101a7565b806395d89b41116100c657806395d89b411461044a578063a69df4b514610475578063a9059cbb1461048c578063b515566a146104c9576101a7565b8063715018a6146103f1578063751039fc146104085780638da5cb5b1461041f576101a7565b80632bfbd9cf116101595780634ea18fab116101335780634ea18fab1461034b57806360c89484146103745780636fc3eaec1461039d57806370a08231146103b4576101a7565b80632bfbd9cf146102ce578063313ce567146102f757806344ee3a1c14610322576101a7565b806306fdde03146101ac578063095ea7b3146101d757806316114acd1461021457806318160ddd1461023d57806321ecff5b1461026857806323b872dd14610291576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610603565b6040516101ce9190612b19565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612be3565b610640565b60405161020b9190612c3e565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612c59565b61065e565b005b34801561024957600080fd5b5061025261083c565b60405161025f9190612c95565b60405180910390f35b34801561027457600080fd5b5061028f600480360381019061028a9190612cb0565b61084c565b005b34801561029d57600080fd5b506102b860048036038101906102b39190612cf0565b610910565b6040516102c59190612c3e565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190612d43565b6109e9565b005b34801561030357600080fd5b5061030c610a60565b6040516103199190612d8c565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190612d43565b610a69565b005b34801561035757600080fd5b50610372600480360381019061036d9190612d43565b610ae2565b005b34801561038057600080fd5b5061039b60048036038101906103969190612da7565b610b4d565b005b3480156103a957600080fd5b506103b2610beb565b005b3480156103c057600080fd5b506103db60048036038101906103d69190612c59565b610c5d565b6040516103e89190612c95565b60405180910390f35b3480156103fd57600080fd5b50610406610ca6565b005b34801561041457600080fd5b5061041d610df9565b005b34801561042b57600080fd5b50610434610e7a565b6040516104419190612e09565b60405180910390f35b34801561045657600080fd5b5061045f610ea3565b60405161046c9190612b19565b60405180910390f35b34801561048157600080fd5b5061048a610ee0565b005b34801561049857600080fd5b506104b360048036038101906104ae9190612be3565b6110b0565b6040516104c09190612c3e565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190612f6c565b6110ce565b005b3480156104fe57600080fd5b506105076111f8565b6040516105149190612c95565b60405180910390f35b34801561052957600080fd5b50610532611202565b005b34801561054057600080fd5b5061054961127c565b005b34801561055757600080fd5b50610572600480360381019061056d9190612f6c565b6113cf565b005b34801561058057600080fd5b5061059b60048036038101906105969190612fb5565b6114f9565b6040516105a89190612c95565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190612c59565b611580565b005b3480156105e657600080fd5b5061060160048036038101906105fc9190612c59565b61163c565b005b60606040518060400160405280600a81526020017f466f6368756e4b49544900000000000000000000000000000000000000000000815250905090565b600061065461064d6117d8565b84846117e0565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661069f6117d8565b73ffffffffffffffffffffffffffffffffffffffff16146106bf57600080fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361071957600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107969190612e09565b602060405180830381865afa1580156107b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d7919061300a565b6040518363ffffffff1660e01b81526004016107f4929190613096565b6020604051808303816000875af1158015610813573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083791906130eb565b505050565b600067016345785d8a0000905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661088d6117d8565b73ffffffffffffffffffffffffffffffffffffffff16146108ad57600080fd5b606482111580156108bf575060648111155b6108fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f590613164565b60405180910390fd5b8160098190555080600a819055505050565b600061091d8484846119a9565b6109de846109296117d8565b6109d985604051806060016040528060288152602001613b6660289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061098f6117d8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c79092919063ffffffff16565b6117e0565b600190509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a2a6117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610a4a57600080fd5b428111610a5657600080fd5b8060118190555050565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aaa6117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610aca57600080fd5b6011548111610ad857600080fd5b8060118190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b236117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610b4357600080fd5b8060108190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b8e6117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610bae57600080fd5b6064818385610bbd91906131b3565b610bc791906131b3565b14610bd157600080fd5b82600b8190555081600c8190555080600d81905550505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c2c6117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610c4c57600080fd5b6000479050610c5a8161212b565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cae6117d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3290613255565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e3a6117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610e5a57600080fd5b67016345785d8a0000600e8190555067016345785d8a0000600f81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4b49544900000000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f216117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610f4157600080fd5b601154421015610f5057600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161100c9190612e09565b602060405180830381865afa158015611029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104d919061300a565b6040518363ffffffff1660e01b815260040161106a929190613096565b6020604051808303816000875af1158015611089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ad91906130eb565b50565b60006110c46110bd6117d8565b84846119a9565b6001905092915050565b6110d66117d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a90613255565b60405180910390fd5b60005b81518110156111f45760016005600084848151811061118857611187613275565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111ec906132a4565b915050611166565b5050565b6000601154905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112436117d8565b73ffffffffffffffffffffffffffffffffffffffff161461126357600080fd5b600061126e30610c5d565b9050611279816122de565b50565b6112846117d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890613255565b60405180910390fd5b601760149054906101000a900460ff1615611361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135890613338565b60405180910390fd5b61137461136d30610c5d565b4730612557565b60c860098190555060c8600a819055506001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff0219169083151502179055506078426113c791906131b3565b600781905550565b6113d76117d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90613255565b60405180910390fd5b60005b81518110156114f55760006005600084848151811061148957611488613275565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114ed906132a4565b915050611467565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115c16117d8565b73ffffffffffffffffffffffffffffffffffffffff16146115e157600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6116446117d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c890613255565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006117d083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061266c565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361184f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611846906133ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b59061345c565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161199c9190612c95565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0f906134ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90613580565b60405180910390fd5b60008111611aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac190613612565b60405180910390fd5b600954600881905550611adb610e7a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b495750611b19610e7a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fa757600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bf25750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bfb57600080fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ca65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d09575060075442105b15611e4857600f5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5c91906131b3565b1115611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d949061367e565b60405180910390fd5b600e54811115611dac57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611df757600080fd5b601e42611e0491906131b3565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601760159054906101000a900460ff16158015611eb35750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ecb5750601760169054906101000a900460ff165b8015611f215750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fa6576007544211611f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6190613710565b60405180910390fd5b6000611f7530610c5d565b9050601054811115611fa457611f8a816122de565b60004790506000811115611fa257611fa14761212b565b5b505b505b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156120525750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120a85750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120b757600a546008819055505b6120c28383836126cf565b505050565b600083831115829061210f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121069190612b19565b60405180910390fd5b506000838561211e9190613730565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61218f600b5461218160648661178e90919063ffffffff16565b61290a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121ba573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61221f600c5461221160648661178e90919063ffffffff16565b61290a90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561224a573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6122af600d546122a160648661178e90919063ffffffff16565b61290a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156122da573d6000803e3d6000fd5b5050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561231657612315612e29565b5b6040519080825280602002602001820160405280156123445781602001602082028036833780820191505090505b509050308160008151811061235c5761235b613275565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612403573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124279190613779565b8160018151811061243b5761243a613275565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124a230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117e0565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161250695949392919061389f565b600060405180830381600087803b15801561252057600080fd5b505af1158015612534573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6001601760156101000a81548160ff02191690831515021790555061259f30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856117e0565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401612606969594939291906138f9565b60606040518083038185885af1158015612624573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612649919061395a565b5050506000601760156101000a81548160ff021916908315150217905550505050565b600080831182906126b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126aa9190612b19565b60405180910390fd5b50600083856126c291906139dc565b9050809150509392505050565b6000806126db83612984565b9150915061273183600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d890919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127c682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2290919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128fb9190612c95565b60405180910390a35050505050565b600080830361291c576000905061297e565b6000828461292a9190613a0d565b905082848261293991906139dc565b14612979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297090613ad9565b60405180910390fd5b809150505b92915050565b60008060006129b26103e86129a46008548761290a90919063ffffffff16565b61178e90919063ffffffff16565b905060006129c982866129d890919063ffffffff16565b90508082935093505050915091565b6000612a1a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120c7565b905092915050565b6000808284612a3191906131b3565b905083811015612a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6d90613b45565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612aba578082015181840152602081019050612a9f565b83811115612ac9576000848401525b50505050565b6000601f19601f8301169050919050565b6000612aeb82612a80565b612af58185612a8b565b9350612b05818560208601612a9c565b612b0e81612acf565b840191505092915050565b60006020820190508181036000830152612b338184612ae0565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b7a82612b4f565b9050919050565b612b8a81612b6f565b8114612b9557600080fd5b50565b600081359050612ba781612b81565b92915050565b6000819050919050565b612bc081612bad565b8114612bcb57600080fd5b50565b600081359050612bdd81612bb7565b92915050565b60008060408385031215612bfa57612bf9612b45565b5b6000612c0885828601612b98565b9250506020612c1985828601612bce565b9150509250929050565b60008115159050919050565b612c3881612c23565b82525050565b6000602082019050612c536000830184612c2f565b92915050565b600060208284031215612c6f57612c6e612b45565b5b6000612c7d84828501612b98565b91505092915050565b612c8f81612bad565b82525050565b6000602082019050612caa6000830184612c86565b92915050565b60008060408385031215612cc757612cc6612b45565b5b6000612cd585828601612bce565b9250506020612ce685828601612bce565b9150509250929050565b600080600060608486031215612d0957612d08612b45565b5b6000612d1786828701612b98565b9350506020612d2886828701612b98565b9250506040612d3986828701612bce565b9150509250925092565b600060208284031215612d5957612d58612b45565b5b6000612d6784828501612bce565b91505092915050565b600060ff82169050919050565b612d8681612d70565b82525050565b6000602082019050612da16000830184612d7d565b92915050565b600080600060608486031215612dc057612dbf612b45565b5b6000612dce86828701612bce565b9350506020612ddf86828701612bce565b9250506040612df086828701612bce565b9150509250925092565b612e0381612b6f565b82525050565b6000602082019050612e1e6000830184612dfa565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e6182612acf565b810181811067ffffffffffffffff82111715612e8057612e7f612e29565b5b80604052505050565b6000612e93612b3b565b9050612e9f8282612e58565b919050565b600067ffffffffffffffff821115612ebf57612ebe612e29565b5b602082029050602081019050919050565b600080fd5b6000612ee8612ee384612ea4565b612e89565b90508083825260208201905060208402830185811115612f0b57612f0a612ed0565b5b835b81811015612f345780612f208882612b98565b845260208401935050602081019050612f0d565b5050509392505050565b600082601f830112612f5357612f52612e24565b5b8135612f63848260208601612ed5565b91505092915050565b600060208284031215612f8257612f81612b45565b5b600082013567ffffffffffffffff811115612fa057612f9f612b4a565b5b612fac84828501612f3e565b91505092915050565b60008060408385031215612fcc57612fcb612b45565b5b6000612fda85828601612b98565b9250506020612feb85828601612b98565b9150509250929050565b60008151905061300481612bb7565b92915050565b6000602082840312156130205761301f612b45565b5b600061302e84828501612ff5565b91505092915050565b6000819050919050565b600061305c61305761305284612b4f565b613037565b612b4f565b9050919050565b600061306e82613041565b9050919050565b600061308082613063565b9050919050565b61309081613075565b82525050565b60006040820190506130ab6000830185613087565b6130b86020830184612c86565b9392505050565b6130c881612c23565b81146130d357600080fd5b50565b6000815190506130e5816130bf565b92915050565b60006020828403121561310157613100612b45565b5b600061310f848285016130d6565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b600061314e601983612a8b565b915061315982613118565b602082019050919050565b6000602082019050818103600083015261317d81613141565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131be82612bad565b91506131c983612bad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131fe576131fd613184565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061323f602083612a8b565b915061324a82613209565b602082019050919050565b6000602082019050818103600083015261326e81613232565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132af82612bad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132e1576132e0613184565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613322601783612a8b565b915061332d826132ec565b602082019050919050565b6000602082019050818103600083015261335181613315565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133b4602483612a8b565b91506133bf82613358565b604082019050919050565b600060208201905081810360008301526133e3816133a7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613446602283612a8b565b9150613451826133ea565b604082019050919050565b6000602082019050818103600083015261347581613439565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134d8602583612a8b565b91506134e38261347c565b604082019050919050565b60006020820190508181036000830152613507816134cb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061356a602383612a8b565b91506135758261350e565b604082019050919050565b600060208201905081810360008301526135998161355d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135fc602983612a8b565b9150613607826135a0565b604082019050919050565b6000602082019050818103600083015261362b816135ef565b9050919050565b7f6e6f742061206368616e63650000000000000000000000000000000000000000600082015250565b6000613668600c83612a8b565b915061367382613632565b602082019050919050565b600060208201905081810360008301526136978161365b565b9050919050565b7f32206d696e7574652073656c6c2064656c617920706f7374206c61756e63682060008201527f696e206f7264657220746f2062616e20626f7473000000000000000000000000602082015250565b60006136fa603483612a8b565b91506137058261369e565b604082019050919050565b60006020820190508181036000830152613729816136ed565b9050919050565b600061373b82612bad565b915061374683612bad565b92508282101561375957613758613184565b5b828203905092915050565b60008151905061377381612b81565b92915050565b60006020828403121561378f5761378e612b45565b5b600061379d84828501613764565b91505092915050565b6000819050919050565b60006137cb6137c66137c1846137a6565b613037565b612bad565b9050919050565b6137db816137b0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61381681612b6f565b82525050565b6000613828838361380d565b60208301905092915050565b6000602082019050919050565b600061384c826137e1565b61385681856137ec565b9350613861836137fd565b8060005b83811015613892578151613879888261381c565b975061388483613834565b925050600181019050613865565b5085935050505092915050565b600060a0820190506138b46000830188612c86565b6138c160208301876137d2565b81810360408301526138d38186613841565b90506138e26060830185612dfa565b6138ef6080830184612c86565b9695505050505050565b600060c08201905061390e6000830189612dfa565b61391b6020830188612c86565b61392860408301876137d2565b61393560608301866137d2565b6139426080830185612dfa565b61394f60a0830184612c86565b979650505050505050565b60008060006060848603121561397357613972612b45565b5b600061398186828701612ff5565b935050602061399286828701612ff5565b92505060406139a386828701612ff5565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139e782612bad565b91506139f283612bad565b925082613a0257613a016139ad565b5b828204905092915050565b6000613a1882612bad565b9150613a2383612bad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a5c57613a5b613184565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ac3602183612a8b565b9150613ace82613a67565b604082019050919050565b60006020820190508181036000830152613af281613ab6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b2f601b83612a8b565b9150613b3a82613af9565b602082019050919050565b60006020820190508181036000830152613b5e81613b22565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f10a253fefdd412fb31020287ec9646dbb500c7c9c4a1e61f47e68a3aabd47fb64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101a05760003560e01c8063715018a6116100ec578063c0a4d64d1161008a578063c97c182111610064578063c97c18211461054b578063dd62ed3e14610574578063e57f14e1146105b1578063f2fde38b146105da576101a7565b8063c0a4d64d146104f2578063c3c8cd801461051d578063c9567bf914610534576101a7565b806395d89b41116100c657806395d89b411461044a578063a69df4b514610475578063a9059cbb1461048c578063b515566a146104c9576101a7565b8063715018a6146103f1578063751039fc146104085780638da5cb5b1461041f576101a7565b80632bfbd9cf116101595780634ea18fab116101335780634ea18fab1461034b57806360c89484146103745780636fc3eaec1461039d57806370a08231146103b4576101a7565b80632bfbd9cf146102ce578063313ce567146102f757806344ee3a1c14610322576101a7565b806306fdde03146101ac578063095ea7b3146101d757806316114acd1461021457806318160ddd1461023d57806321ecff5b1461026857806323b872dd14610291576101a7565b366101a757005b600080fd5b3480156101b857600080fd5b506101c1610603565b6040516101ce9190612b19565b60405180910390f35b3480156101e357600080fd5b506101fe60048036038101906101f99190612be3565b610640565b60405161020b9190612c3e565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612c59565b61065e565b005b34801561024957600080fd5b5061025261083c565b60405161025f9190612c95565b60405180910390f35b34801561027457600080fd5b5061028f600480360381019061028a9190612cb0565b61084c565b005b34801561029d57600080fd5b506102b860048036038101906102b39190612cf0565b610910565b6040516102c59190612c3e565b60405180910390f35b3480156102da57600080fd5b506102f560048036038101906102f09190612d43565b6109e9565b005b34801561030357600080fd5b5061030c610a60565b6040516103199190612d8c565b60405180910390f35b34801561032e57600080fd5b5061034960048036038101906103449190612d43565b610a69565b005b34801561035757600080fd5b50610372600480360381019061036d9190612d43565b610ae2565b005b34801561038057600080fd5b5061039b60048036038101906103969190612da7565b610b4d565b005b3480156103a957600080fd5b506103b2610beb565b005b3480156103c057600080fd5b506103db60048036038101906103d69190612c59565b610c5d565b6040516103e89190612c95565b60405180910390f35b3480156103fd57600080fd5b50610406610ca6565b005b34801561041457600080fd5b5061041d610df9565b005b34801561042b57600080fd5b50610434610e7a565b6040516104419190612e09565b60405180910390f35b34801561045657600080fd5b5061045f610ea3565b60405161046c9190612b19565b60405180910390f35b34801561048157600080fd5b5061048a610ee0565b005b34801561049857600080fd5b506104b360048036038101906104ae9190612be3565b6110b0565b6040516104c09190612c3e565b60405180910390f35b3480156104d557600080fd5b506104f060048036038101906104eb9190612f6c565b6110ce565b005b3480156104fe57600080fd5b506105076111f8565b6040516105149190612c95565b60405180910390f35b34801561052957600080fd5b50610532611202565b005b34801561054057600080fd5b5061054961127c565b005b34801561055757600080fd5b50610572600480360381019061056d9190612f6c565b6113cf565b005b34801561058057600080fd5b5061059b60048036038101906105969190612fb5565b6114f9565b6040516105a89190612c95565b60405180910390f35b3480156105bd57600080fd5b506105d860048036038101906105d39190612c59565b611580565b005b3480156105e657600080fd5b5061060160048036038101906105fc9190612c59565b61163c565b005b60606040518060400160405280600a81526020017f466f6368756e4b49544900000000000000000000000000000000000000000000815250905090565b600061065461064d6117d8565b84846117e0565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661069f6117d8565b73ffffffffffffffffffffffffffffffffffffffff16146106bf57600080fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361071957600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107969190612e09565b602060405180830381865afa1580156107b3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107d7919061300a565b6040518363ffffffff1660e01b81526004016107f4929190613096565b6020604051808303816000875af1158015610813573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083791906130eb565b505050565b600067016345785d8a0000905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661088d6117d8565b73ffffffffffffffffffffffffffffffffffffffff16146108ad57600080fd5b606482111580156108bf575060648111155b6108fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f590613164565b60405180910390fd5b8160098190555080600a819055505050565b600061091d8484846119a9565b6109de846109296117d8565b6109d985604051806060016040528060288152602001613b6660289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061098f6117d8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120c79092919063ffffffff16565b6117e0565b600190509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a2a6117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610a4a57600080fd5b428111610a5657600080fd5b8060118190555050565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610aaa6117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610aca57600080fd5b6011548111610ad857600080fd5b8060118190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b236117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610b4357600080fd5b8060108190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b8e6117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610bae57600080fd5b6064818385610bbd91906131b3565b610bc791906131b3565b14610bd157600080fd5b82600b8190555081600c8190555080600d81905550505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c2c6117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610c4c57600080fd5b6000479050610c5a8161212b565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610cae6117d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3290613255565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e3a6117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610e5a57600080fd5b67016345785d8a0000600e8190555067016345785d8a0000600f81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f4b49544900000000000000000000000000000000000000000000000000000000815250905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f216117d8565b73ffffffffffffffffffffffffffffffffffffffff1614610f4157600080fd5b601154421015610f5057600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161100c9190612e09565b602060405180830381865afa158015611029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104d919061300a565b6040518363ffffffff1660e01b815260040161106a929190613096565b6020604051808303816000875af1158015611089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ad91906130eb565b50565b60006110c46110bd6117d8565b84846119a9565b6001905092915050565b6110d66117d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115a90613255565b60405180910390fd5b60005b81518110156111f45760016005600084848151811061118857611187613275565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111ec906132a4565b915050611166565b5050565b6000601154905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112436117d8565b73ffffffffffffffffffffffffffffffffffffffff161461126357600080fd5b600061126e30610c5d565b9050611279816122de565b50565b6112846117d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890613255565b60405180910390fd5b601760149054906101000a900460ff1615611361576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135890613338565b60405180910390fd5b61137461136d30610c5d565b4730612557565b60c860098190555060c8600a819055506001601760166101000a81548160ff0219169083151502179055506001601760146101000a81548160ff0219169083151502179055506078426113c791906131b3565b600781905550565b6113d76117d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611464576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145b90613255565b60405180910390fd5b60005b81518110156114f55760006005600084848151811061148957611488613275565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114ed906132a4565b915050611467565b5050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115c16117d8565b73ffffffffffffffffffffffffffffffffffffffff16146115e157600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6116446117d8565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116c890613255565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006117d083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061266c565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361184f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611846906133ca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b59061345c565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161199c9190612c95565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611a18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0f906134ee565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e90613580565b60405180910390fd5b60008111611aca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ac190613612565b60405180910390fd5b600954600881905550611adb610e7a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b495750611b19610e7a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611fa757600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bf25750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611bfb57600080fd5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611ca65750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611cfc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d09575060075442105b15611e4857600f5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d5c91906131b3565b1115611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d949061367e565b60405180910390fd5b600e54811115611dac57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611df757600080fd5b601e42611e0491906131b3565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601760159054906101000a900460ff16158015611eb35750601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611ecb5750601760169054906101000a900460ff165b8015611f215750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611fa6576007544211611f6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6190613710565b60405180910390fd5b6000611f7530610c5d565b9050601054811115611fa457611f8a816122de565b60004790506000811115611fa257611fa14761212b565b5b505b505b5b601760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156120525750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156120a85750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120b757600a546008819055505b6120c28383836126cf565b505050565b600083831115829061210f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121069190612b19565b60405180910390fd5b506000838561211e9190613730565b9050809150509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61218f600b5461218160648661178e90919063ffffffff16565b61290a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121ba573d6000803e3d6000fd5b50601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61221f600c5461221160648661178e90919063ffffffff16565b61290a90919063ffffffff16565b9081150290604051600060405180830381858888f1935050505015801561224a573d6000803e3d6000fd5b50601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6122af600d546122a160648661178e90919063ffffffff16565b61290a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156122da573d6000803e3d6000fd5b5050565b6001601760156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561231657612315612e29565b5b6040519080825280602002602001820160405280156123445781602001602082028036833780820191505090505b509050308160008151811061235c5761235b613275565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612403573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124279190613779565b8160018151811061243b5761243a613275565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506124a230601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117e0565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161250695949392919061389f565b600060405180830381600087803b15801561252057600080fd5b505af1158015612534573d6000803e3d6000fd5b50505050506000601760156101000a81548160ff02191690831515021790555050565b6001601760156101000a81548160ff02191690831515021790555061259f30601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856117e0565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401612606969594939291906138f9565b60606040518083038185885af1158015612624573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612649919061395a565b5050506000601760156101000a81548160ff021916908315150217905550505050565b600080831182906126b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126aa9190612b19565b60405180910390fd5b50600083856126c291906139dc565b9050809150509392505050565b6000806126db83612984565b9150915061273183600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129d890919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127c682600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2290919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285b81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612a2290919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516128fb9190612c95565b60405180910390a35050505050565b600080830361291c576000905061297e565b6000828461292a9190613a0d565b905082848261293991906139dc565b14612979576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161297090613ad9565b60405180910390fd5b809150505b92915050565b60008060006129b26103e86129a46008548761290a90919063ffffffff16565b61178e90919063ffffffff16565b905060006129c982866129d890919063ffffffff16565b90508082935093505050915091565b6000612a1a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120c7565b905092915050565b6000808284612a3191906131b3565b905083811015612a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6d90613b45565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612aba578082015181840152602081019050612a9f565b83811115612ac9576000848401525b50505050565b6000601f19601f8301169050919050565b6000612aeb82612a80565b612af58185612a8b565b9350612b05818560208601612a9c565b612b0e81612acf565b840191505092915050565b60006020820190508181036000830152612b338184612ae0565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b7a82612b4f565b9050919050565b612b8a81612b6f565b8114612b9557600080fd5b50565b600081359050612ba781612b81565b92915050565b6000819050919050565b612bc081612bad565b8114612bcb57600080fd5b50565b600081359050612bdd81612bb7565b92915050565b60008060408385031215612bfa57612bf9612b45565b5b6000612c0885828601612b98565b9250506020612c1985828601612bce565b9150509250929050565b60008115159050919050565b612c3881612c23565b82525050565b6000602082019050612c536000830184612c2f565b92915050565b600060208284031215612c6f57612c6e612b45565b5b6000612c7d84828501612b98565b91505092915050565b612c8f81612bad565b82525050565b6000602082019050612caa6000830184612c86565b92915050565b60008060408385031215612cc757612cc6612b45565b5b6000612cd585828601612bce565b9250506020612ce685828601612bce565b9150509250929050565b600080600060608486031215612d0957612d08612b45565b5b6000612d1786828701612b98565b9350506020612d2886828701612b98565b9250506040612d3986828701612bce565b9150509250925092565b600060208284031215612d5957612d58612b45565b5b6000612d6784828501612bce565b91505092915050565b600060ff82169050919050565b612d8681612d70565b82525050565b6000602082019050612da16000830184612d7d565b92915050565b600080600060608486031215612dc057612dbf612b45565b5b6000612dce86828701612bce565b9350506020612ddf86828701612bce565b9250506040612df086828701612bce565b9150509250925092565b612e0381612b6f565b82525050565b6000602082019050612e1e6000830184612dfa565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e6182612acf565b810181811067ffffffffffffffff82111715612e8057612e7f612e29565b5b80604052505050565b6000612e93612b3b565b9050612e9f8282612e58565b919050565b600067ffffffffffffffff821115612ebf57612ebe612e29565b5b602082029050602081019050919050565b600080fd5b6000612ee8612ee384612ea4565b612e89565b90508083825260208201905060208402830185811115612f0b57612f0a612ed0565b5b835b81811015612f345780612f208882612b98565b845260208401935050602081019050612f0d565b5050509392505050565b600082601f830112612f5357612f52612e24565b5b8135612f63848260208601612ed5565b91505092915050565b600060208284031215612f8257612f81612b45565b5b600082013567ffffffffffffffff811115612fa057612f9f612b4a565b5b612fac84828501612f3e565b91505092915050565b60008060408385031215612fcc57612fcb612b45565b5b6000612fda85828601612b98565b9250506020612feb85828601612b98565b9150509250929050565b60008151905061300481612bb7565b92915050565b6000602082840312156130205761301f612b45565b5b600061302e84828501612ff5565b91505092915050565b6000819050919050565b600061305c61305761305284612b4f565b613037565b612b4f565b9050919050565b600061306e82613041565b9050919050565b600061308082613063565b9050919050565b61309081613075565b82525050565b60006040820190506130ab6000830185613087565b6130b86020830184612c86565b9392505050565b6130c881612c23565b81146130d357600080fd5b50565b6000815190506130e5816130bf565b92915050565b60006020828403121561310157613100612b45565b5b600061310f848285016130d6565b91505092915050565b7f63616e6e6f742073657420666565732061626f76652031302500000000000000600082015250565b600061314e601983612a8b565b915061315982613118565b602082019050919050565b6000602082019050818103600083015261317d81613141565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006131be82612bad565b91506131c983612bad565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156131fe576131fd613184565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061323f602083612a8b565b915061324a82613209565b602082019050919050565b6000602082019050818103600083015261326e81613232565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132af82612bad565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132e1576132e0613184565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613322601783612a8b565b915061332d826132ec565b602082019050919050565b6000602082019050818103600083015261335181613315565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006133b4602483612a8b565b91506133bf82613358565b604082019050919050565b600060208201905081810360008301526133e3816133a7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613446602283612a8b565b9150613451826133ea565b604082019050919050565b6000602082019050818103600083015261347581613439565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006134d8602583612a8b565b91506134e38261347c565b604082019050919050565b60006020820190508181036000830152613507816134cb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061356a602383612a8b565b91506135758261350e565b604082019050919050565b600060208201905081810360008301526135998161355d565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006135fc602983612a8b565b9150613607826135a0565b604082019050919050565b6000602082019050818103600083015261362b816135ef565b9050919050565b7f6e6f742061206368616e63650000000000000000000000000000000000000000600082015250565b6000613668600c83612a8b565b915061367382613632565b602082019050919050565b600060208201905081810360008301526136978161365b565b9050919050565b7f32206d696e7574652073656c6c2064656c617920706f7374206c61756e63682060008201527f696e206f7264657220746f2062616e20626f7473000000000000000000000000602082015250565b60006136fa603483612a8b565b91506137058261369e565b604082019050919050565b60006020820190508181036000830152613729816136ed565b9050919050565b600061373b82612bad565b915061374683612bad565b92508282101561375957613758613184565b5b828203905092915050565b60008151905061377381612b81565b92915050565b60006020828403121561378f5761378e612b45565b5b600061379d84828501613764565b91505092915050565b6000819050919050565b60006137cb6137c66137c1846137a6565b613037565b612bad565b9050919050565b6137db816137b0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61381681612b6f565b82525050565b6000613828838361380d565b60208301905092915050565b6000602082019050919050565b600061384c826137e1565b61385681856137ec565b9350613861836137fd565b8060005b83811015613892578151613879888261381c565b975061388483613834565b925050600181019050613865565b5085935050505092915050565b600060a0820190506138b46000830188612c86565b6138c160208301876137d2565b81810360408301526138d38186613841565b90506138e26060830185612dfa565b6138ef6080830184612c86565b9695505050505050565b600060c08201905061390e6000830189612dfa565b61391b6020830188612c86565b61392860408301876137d2565b61393560608301866137d2565b6139426080830185612dfa565b61394f60a0830184612c86565b979650505050505050565b60008060006060848603121561397357613972612b45565b5b600061398186828701612ff5565b935050602061399286828701612ff5565b92505060406139a386828701612ff5565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006139e782612bad565b91506139f283612bad565b925082613a0257613a016139ad565b5b828204905092915050565b6000613a1882612bad565b9150613a2383612bad565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a5c57613a5b613184565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ac3602183612a8b565b9150613ace82613a67565b604082019050919050565b60006020820190508181036000830152613af281613ab6565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613b2f601b83612a8b565b9150613b3a82613af9565b602082019050919050565b60006020820190508181036000830152613b5e81613b22565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f10a253fefdd412fb31020287ec9646dbb500c7c9c4a1e61f47e68a3aabd47fb64736f6c634300080f0033

Deployed Bytecode Sourcemap

3700:11153:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6629:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7460:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13930:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6906:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8202:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7629:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14238:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6815:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14434:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8058:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8441:237;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13489:188;;;;;;;;;;;;;:::i;:::-;;7009:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2779:148;;;;;;;;;;;;;:::i;:::-;;8686:156;;;;;;;;;;;;;:::i;:::-;;2384:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6720:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14629:221;;;;;;;;;;;;;:::i;:::-;;7134:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12499:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7950:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13288:189;;;;;;;;;;;;;:::i;:::-;;12145:342;;;;;;;;;;;;;:::i;:::-;;12675:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7309:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8852:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2598:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6629:83;6666:13;6699:5;;;;;;;;;;;;;;;;;6692:12;;6629:83;:::o;7460:161::-;7535:4;7552:39;7561:12;:10;:12::i;:::-;7575:7;7584:6;7552:8;:39::i;:::-;7609:4;7602:11;;7460:161;;;;:::o;13930:300::-;14019:9;;;;;;;;;;;14003:25;;:12;:10;:12::i;:::-;:25;;;13995:34;;;;;;14064:20;;;;;;;;;;;14048:36;;:12;:36;;;14040:45;;;;;;14096:20;14126:12;14096:43;;14150:13;:22;;;14173:9;;;;;;;;;;;14183:13;:23;;;14215:4;14183:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14150:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13984:246;13930:300;:::o;6906:95::-;6959:7;4153:17;6979:14;;6906:95;:::o;8202:231::-;8295:9;;;;;;;;;;;8279:25;;:12;:10;:12::i;:::-;:25;;;8271:34;;;;;;8332:3;8324:4;:11;;:27;;;;;8348:3;8339:5;:12;;8324:27;8316:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8398:4;8391;:11;;;;8420:5;8413:4;:12;;;;8202:231;;:::o;7629:313::-;7727:4;7744:36;7754:6;7762:9;7773:6;7744:9;:36::i;:::-;7791:121;7800:6;7808:12;:10;:12::i;:::-;7822:89;7860:6;7822:89;;;;;;;;;;;;;;;;;:11;:19;7834:6;7822:19;;;;;;;;;;;;;;;:33;7842:12;:10;:12::i;:::-;7822:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7791:8;:121::i;:::-;7930:4;7923:11;;7629:313;;;;;:::o;14238:188::-;14323:9;;;;;;;;;;;14307:25;;:12;:10;:12::i;:::-;:25;;;14299:34;;;;;;14363:15;14352:8;:26;14344:35;;;;;;14410:8;14390:17;:28;;;;14238:188;:::o;6815:83::-;6856:5;4674:1;6874:16;;6815:83;:::o;14434:187::-;14516:9;;;;;;;;;;;14500:25;;:12;:10;:12::i;:::-;:25;;;14492:34;;;;;;14556:17;;14545:8;:28;14537:37;;;;;;14605:8;14585:17;:28;;;;14434:187;:::o;8058:136::-;8144:9;;;;;;;;;;;8128:25;;:12;:10;:12::i;:::-;:25;;;8120:34;;;;;;8178:6;8165:10;:19;;;;8058:136;:::o;8441:237::-;8552:9;;;;;;;;;;;8536:25;;:12;:10;:12::i;:::-;:25;;;8528:34;;;;;;8603:3;8595:4;8588;8581;:11;;;;:::i;:::-;:18;;;;:::i;:::-;:25;8573:34;;;;;;8624:4;8618:3;:10;;;;8645:4;8639:3;:10;;;;8666:4;8660:3;:10;;;;8441:237;;;:::o;13489:188::-;13555:9;;;;;;;;;;;13539:25;;:12;:10;:12::i;:::-;:25;;;13531:34;;;;;;13576:26;13605:21;13576:50;;13637:32;13650:18;13637:12;:32::i;:::-;13520:157;13489:188::o;7009:117::-;7075:7;7102;:16;7110:7;7102:16;;;;;;;;;;;;;;;;7095:23;;7009:117;;;:::o;2779:148::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2886:1:::1;2849:40;;2870:6;::::0;::::1;;;;;;;;2849:40;;;;;;;;;;;;2917:1;2900:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2779:148::o:0;8686:156::-;8754:9;;;;;;;;;;;8738:25;;:12;:10;:12::i;:::-;:25;;;8730:34;;;;;;4153:17;8775:12;:22;;;;4153:17;8808:16;:26;;;;8686:156::o;2384:79::-;2422:7;2449:6;;;;;;;;;;;2442:13;;2384:79;:::o;6720:87::-;6759:13;6792:7;;;;;;;;;;;;;;;;;6785:14;;6720:87;:::o;14629:221::-;14691:9;;;;;;;;;;;14675:25;;:12;:10;:12::i;:::-;:25;;;14667:34;;;;;;14739:17;;14720:15;:36;;14712:45;;;;;;14768:13;;;;;;;;;;;:22;;;14791:9;;;;;;;;;;;14801:13;;;;;;;;;;;:23;;;14833:4;14801:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14768:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14629:221::o;7134:167::-;7212:4;7229:42;7239:12;:10;:12::i;:::-;7253:9;7264:6;7229:9;:42::i;:::-;7289:4;7282:11;;7134:167;;;;:::o;12499:164::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12573:6:::1;12568:88;12589:5;:12;12585:1;:16;12568:88;;;12640:4;12623;:14;12628:5;12634:1;12628:8;;;;;;;;:::i;:::-;;;;;;;;12623:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12603:3;;;;;:::i;:::-;;;;12568:88;;;;12499:164:::0;:::o;7950:95::-;7993:7;8020:17;;8013:24;;7950:95;:::o;13288:189::-;13354:9;;;;;;;;;;;13338:25;;:12;:10;:12::i;:::-;:25;;;13330:34;;;;;;13375:23;13401:24;13419:4;13401:9;:24::i;:::-;13375:50;;13436:33;13453:15;13436:16;:33::i;:::-;13319:158;13288:189::o;12145:342::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12209:11:::1;;;;;;;;;;;12208:12;12200:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12258:74;12271:24;12289:4;12271:9;:24::i;:::-;12296:21;12326:4;12258:12;:74::i;:::-;12350:3;12343:4;:10;;;;12371:3;12364:4;:10;;;;12399:4;12385:11;;:18;;;;;;;;;;;;;;;;;;12428:4;12414:11;;:18;;;;;;;;;;;;;;;;;;12469:9;12450:15;:29;;;;:::i;:::-;12443:4;:36;;;;12145:342::o:0;12675:135::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12748:6:::1;12744:59;12759:6;:13;12757:1;:15;12744:59;;;12796:5;12778:4;:15;12783:6;12790:1;12783:9;;;;;;;;:::i;:::-;;;;;;;;12778:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12773:3;;;;;:::i;:::-;;;;12744:59;;;;12675:135:::0;:::o;7309:143::-;7390:7;7417:11;:18;7429:5;7417:18;;;;;;;;;;;;;;;:27;7436:7;7417:27;;;;;;;;;;;;;;;;7410:34;;7309:143;;;;:::o;8852:147::-;8937:9;;;;;;;;;;;8921:25;;:12;:10;:12::i;:::-;:25;;;8913:34;;;;;;8987:4;8958:18;:26;8977:6;8958:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;8852:147;:::o;2598:173::-;2521:12;:10;:12::i;:::-;2511:22;;:6;;;;;;;;;;:22;;;2503:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2714:9:::1;2685:39;;2706:6;::::0;::::1;;;;;;;;2685:39;;;;;;;;;;;;2744:9;2735:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2598:173:::0;:::o;1691:132::-;1749:7;1776:39;1780:1;1783;1776:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1769:46;;1691:132;;;;:::o;102:98::-;155:7;182:10;175:17;;102:98;:::o;9012:335::-;9122:1;9105:19;;:5;:19;;;9097:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9203:1;9184:21;;:7;:21;;;9176:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9285:6;9255:11;:18;9267:5;9255:18;;;;;;;;;;;;;;;:27;9274:7;9255:27;;;;;;;;;;;;;;;:36;;;;9323:7;9307:32;;9316:5;9307:32;;;9332:6;9307:32;;;;;;:::i;:::-;;;;;;;;9012:335;;;:::o;9355:1739::-;9459:1;9443:18;;:4;:18;;;9435:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9536:1;9522:16;;:2;:16;;;9514:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9606:1;9597:6;:10;9589:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9673:4;;9666;:11;;;;9700:7;:5;:7::i;:::-;9692:15;;:4;:15;;;;:32;;;;;9717:7;:5;:7::i;:::-;9711:13;;:2;:13;;;;9692:32;9688:1207;;;9750:4;:10;9755:4;9750:10;;;;;;;;;;;;;;;;;;;;;;;;;9749:11;:24;;;;;9765:4;:8;9770:2;9765:8;;;;;;;;;;;;;;;;;;;;;;;;;9764:9;9749:24;9741:33;;;;;;9801:20;;;;;;;;;;;9793:28;;:4;:28;;;:62;;;;;9839:15;;;;;;;;;;;9825:30;;:2;:30;;;;9793:62;:90;;;;;9861:18;:22;9880:2;9861:22;;;;;;;;;;;;;;;;;;;;;;;;;9859:24;9793:90;:118;;;;;9906:4;;9888:15;:22;9793:118;9789:425;;;9994:16;;9983:6;9969:7;:11;9977:2;9969:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;9968:42;;9960:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10063:12;;10053:6;:22;;10045:31;;;;;;10118:15;10103:8;:12;10112:2;10103:12;;;;;;;;;;;;;;;;:30;10095:39;;;;;;10187:10;10168:15;:30;;;;:::i;:::-;10153:8;:12;10162:2;10153:12;;;;;;;;;;;;;;;:45;;;;9789:425;10261:6;;;;;;;;;;;10260:7;:39;;;;;10279:20;;;;;;;;;;;10271:28;;:4;:28;;;;10260:39;:54;;;;;10303:11;;;;;;;;;;;10260:54;:83;;;;;10319:18;:24;10338:4;10319:24;;;;;;;;;;;;;;;;;;;;;;;;;10318:25;10260:83;10256:628;;;10390:4;;10372:15;:22;10364:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10469:28;10500:24;10518:4;10500:9;:24::i;:::-;10469:55;;10569:10;;10546:20;:33;10543:326;;;10603:38;10620:20;10603:16;:38::i;:::-;10664:26;10693:21;10664:50;;10761:1;10740:18;:22;10737:113;;;10791:35;10804:21;10791:12;:35::i;:::-;10737:113;10580:289;10543:326;10345:539;10256:628;9688:1207;10915:20;;;;;;;;;;;10909:26;;:2;:26;;;:62;;;;;10955:15;;;;;;;;;;;10939:32;;:4;:32;;;;10909:62;:92;;;;;10977:18;:24;10996:4;10977:24;;;;;;;;;;;;;;;;;;;;;;;;;10975:26;10909:92;10905:136;;;11025:4;;11018;:11;;;;10905:136;11053:33;11071:4;11076:2;11079:6;11053:17;:33::i;:::-;9355:1739;;;:::o;1239:190::-;1325:7;1358:1;1353;:6;;1361:12;1345:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1385:9;1401:1;1397;:5;;;;:::i;:::-;1385:17;;1420:1;1413:8;;;1239:190;;;;;:::o;11901:232::-;11958:9;;;;;;;;;;;:18;;:44;11977:24;11997:3;;11977:15;11988:3;11977:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;11958:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12013:16;;;;;;;;;;;:25;;:51;12039:24;12059:3;;12039:15;12050:3;12039:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;12013:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12075:15;;;;;;;;;;;:24;;:50;12100:24;12120:3;;12100:15;12111:3;12100:6;:10;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;12075:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11901:232;:::o;11102:483::-;5087:4;5078:6;;:13;;;;;;;;;;;;;;;;;;11180:21:::1;11218:1;11204:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11180:40;;11249:4;11231;11236:1;11231:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11275:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11265:4;11270:1;11265:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11308:62;11325:4;11340:15;;;;;;;;;;;11358:11;11308:8;:62::i;:::-;11381:15;;;;;;;;;;;:66;;;11462:11;11488:1;11504:4;11531;11551:15;11381:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11169:416;5123:5:::0;5114:6;;:14;;;;;;;;;;;;;;;;;;11102:483;:::o;11599:288::-;5087:4;5078:6;;:13;;;;;;;;;;;;;;;;;;11705:60:::1;11722:4;11736:15;;;;;;;;;;;11753:11;11705:8;:60::i;:::-;11776:15;;;;;;;;;;;:31;;;11815:9;11834:4;11840:11;11852:1;11854::::0;11856:6:::1;11863:15;11776:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5123:5:::0;5114:6;;:14;;;;;;;;;;;;;;;;;;11599:288;;;:::o;1831:189::-;1917:7;1949:1;1945;:5;1952:12;1937:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1976:9;1992:1;1988;:5;;;;:::i;:::-;1976:17;;2011:1;2004:8;;;1831:189;;;;;:::o;12818:421::-;12917:22;12940:12;12956:20;12968:7;12956:11;:20::i;:::-;12916:60;;;;13005:28;13025:7;13005;:15;13013:6;13005:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12987:7;:15;12995:6;12987:15;;;;;;;;;;;;;;;:46;;;;13065:38;13088:14;13065:7;:18;13073:9;13065:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;13044:7;:18;13052:9;13044:18;;;;;;;;;;;;;;;:59;;;;13140:32;13167:4;13140:7;:22;13156:4;13140:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;13115:7;:22;13131:4;13115:22;;;;;;;;;;;;;;;:57;;;;13205:9;13188:43;;13197:6;13188:43;;;13216:14;13188:43;;;;;;:::i;:::-;;;;;;;;12905:334;;12818:421;;;:::o;1437:246::-;1495:7;1524:1;1519;:6;1515:47;;1549:1;1542:8;;;;1515:47;1572:9;1588:1;1584;:5;;;;:::i;:::-;1572:17;;1617:1;1612;1608;:5;;;;:::i;:::-;:10;1600:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1674:1;1667:8;;;1437:246;;;;;:::o;13688:234::-;13748:7;13757;13777:12;13792:27;13814:4;13792:17;13804:4;;13792:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;13777:42;;13830:23;13856:17;13868:4;13856:7;:11;;:17;;;;:::i;:::-;13830:43;;13892:15;13909:4;13884:30;;;;;;13688:234;;;:::o;1095:136::-;1153:7;1180:43;1184:1;1187;1180:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1173:50;;1095:136;;;;:::o;908:179::-;966:7;986:9;1002:1;998;:5;;;;:::i;:::-;986:17;;1027:1;1022;:6;;1014:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1078:1;1071:8;;;908:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:474::-;4249:6;4257;4306:2;4294:9;4285:7;4281:23;4277:32;4274:119;;;4312:79;;:::i;:::-;4274:119;4432:1;4457:53;4502:7;4493:6;4482:9;4478:22;4457:53;:::i;:::-;4447:63;;4403:117;4559:2;4585:53;4630:7;4621:6;4610:9;4606:22;4585:53;:::i;:::-;4575:63;;4530:118;4181:474;;;;;:::o;4661:619::-;4738:6;4746;4754;4803:2;4791:9;4782:7;4778:23;4774:32;4771:119;;;4809:79;;:::i;:::-;4771:119;4929:1;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4900:117;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;5184:2;5210:53;5255:7;5246:6;5235:9;5231:22;5210:53;:::i;:::-;5200:63;;5155:118;4661:619;;;;;:::o;5286:329::-;5345:6;5394:2;5382:9;5373:7;5369:23;5365:32;5362:119;;;5400:79;;:::i;:::-;5362:119;5520:1;5545:53;5590:7;5581:6;5570:9;5566:22;5545:53;:::i;:::-;5535:63;;5491:117;5286:329;;;;:::o;5621:86::-;5656:7;5696:4;5689:5;5685:16;5674:27;;5621:86;;;:::o;5713:112::-;5796:22;5812:5;5796:22;:::i;:::-;5791:3;5784:35;5713:112;;:::o;5831:214::-;5920:4;5958:2;5947:9;5943:18;5935:26;;5971:67;6035:1;6024:9;6020:17;6011:6;5971:67;:::i;:::-;5831:214;;;;:::o;6051:619::-;6128:6;6136;6144;6193:2;6181:9;6172:7;6168:23;6164:32;6161:119;;;6199:79;;:::i;:::-;6161:119;6319:1;6344:53;6389:7;6380:6;6369:9;6365:22;6344:53;:::i;:::-;6334:63;;6290:117;6446:2;6472:53;6517:7;6508:6;6497:9;6493:22;6472:53;:::i;:::-;6462:63;;6417:118;6574:2;6600:53;6645:7;6636:6;6625:9;6621:22;6600:53;:::i;:::-;6590:63;;6545:118;6051:619;;;;;:::o;6676:118::-;6763:24;6781:5;6763:24;:::i;:::-;6758:3;6751:37;6676:118;;:::o;6800:222::-;6893:4;6931:2;6920:9;6916:18;6908:26;;6944:71;7012:1;7001:9;6997:17;6988:6;6944:71;:::i;:::-;6800:222;;;;:::o;7028:117::-;7137:1;7134;7127:12;7151:180;7199:77;7196:1;7189:88;7296:4;7293:1;7286:15;7320:4;7317:1;7310:15;7337:281;7420:27;7442:4;7420:27;:::i;:::-;7412:6;7408:40;7550:6;7538:10;7535:22;7514:18;7502:10;7499:34;7496:62;7493:88;;;7561:18;;:::i;:::-;7493:88;7601:10;7597:2;7590:22;7380:238;7337:281;;:::o;7624:129::-;7658:6;7685:20;;:::i;:::-;7675:30;;7714:33;7742:4;7734:6;7714:33;:::i;:::-;7624:129;;;:::o;7759:311::-;7836:4;7926:18;7918:6;7915:30;7912:56;;;7948:18;;:::i;:::-;7912:56;7998:4;7990:6;7986:17;7978:25;;8058:4;8052;8048:15;8040:23;;7759:311;;;:::o;8076:117::-;8185:1;8182;8175:12;8216:710;8312:5;8337:81;8353:64;8410:6;8353:64;:::i;:::-;8337:81;:::i;:::-;8328:90;;8438:5;8467:6;8460:5;8453:21;8501:4;8494:5;8490:16;8483:23;;8554:4;8546:6;8542:17;8534:6;8530:30;8583:3;8575:6;8572:15;8569:122;;;8602:79;;:::i;:::-;8569:122;8717:6;8700:220;8734:6;8729:3;8726:15;8700:220;;;8809:3;8838:37;8871:3;8859:10;8838:37;:::i;:::-;8833:3;8826:50;8905:4;8900:3;8896:14;8889:21;;8776:144;8760:4;8755:3;8751:14;8744:21;;8700:220;;;8704:21;8318:608;;8216:710;;;;;:::o;8949:370::-;9020:5;9069:3;9062:4;9054:6;9050:17;9046:27;9036:122;;9077:79;;:::i;:::-;9036:122;9194:6;9181:20;9219:94;9309:3;9301:6;9294:4;9286:6;9282:17;9219:94;:::i;:::-;9210:103;;9026:293;8949:370;;;;:::o;9325:539::-;9409:6;9458:2;9446:9;9437:7;9433:23;9429:32;9426:119;;;9464:79;;:::i;:::-;9426:119;9612:1;9601:9;9597:17;9584:31;9642:18;9634:6;9631:30;9628:117;;;9664:79;;:::i;:::-;9628:117;9769:78;9839:7;9830:6;9819:9;9815:22;9769:78;:::i;:::-;9759:88;;9555:302;9325:539;;;;:::o;9870:474::-;9938:6;9946;9995:2;9983:9;9974:7;9970:23;9966:32;9963:119;;;10001:79;;:::i;:::-;9963:119;10121:1;10146:53;10191:7;10182:6;10171:9;10167:22;10146:53;:::i;:::-;10136:63;;10092:117;10248:2;10274:53;10319:7;10310:6;10299:9;10295:22;10274:53;:::i;:::-;10264:63;;10219:118;9870:474;;;;;:::o;10350:143::-;10407:5;10438:6;10432:13;10423:22;;10454:33;10481:5;10454:33;:::i;:::-;10350:143;;;;:::o;10499:351::-;10569:6;10618:2;10606:9;10597:7;10593:23;10589:32;10586:119;;;10624:79;;:::i;:::-;10586:119;10744:1;10769:64;10825:7;10816:6;10805:9;10801:22;10769:64;:::i;:::-;10759:74;;10715:128;10499:351;;;;:::o;10856:60::-;10884:3;10905:5;10898:12;;10856:60;;;:::o;10922:142::-;10972:9;11005:53;11023:34;11032:24;11050:5;11032:24;:::i;:::-;11023:34;:::i;:::-;11005:53;:::i;:::-;10992:66;;10922:142;;;:::o;11070:126::-;11120:9;11153:37;11184:5;11153:37;:::i;:::-;11140:50;;11070:126;;;:::o;11202:134::-;11260:9;11293:37;11324:5;11293:37;:::i;:::-;11280:50;;11202:134;;;:::o;11342:147::-;11437:45;11476:5;11437:45;:::i;:::-;11432:3;11425:58;11342:147;;:::o;11495:348::-;11624:4;11662:2;11651:9;11647:18;11639:26;;11675:79;11751:1;11740:9;11736:17;11727:6;11675:79;:::i;:::-;11764:72;11832:2;11821:9;11817:18;11808:6;11764:72;:::i;:::-;11495:348;;;;;:::o;11849:116::-;11919:21;11934:5;11919:21;:::i;:::-;11912:5;11909:32;11899:60;;11955:1;11952;11945:12;11899:60;11849:116;:::o;11971:137::-;12025:5;12056:6;12050:13;12041:22;;12072:30;12096:5;12072:30;:::i;:::-;11971:137;;;;:::o;12114:345::-;12181:6;12230:2;12218:9;12209:7;12205:23;12201:32;12198:119;;;12236:79;;:::i;:::-;12198:119;12356:1;12381:61;12434:7;12425:6;12414:9;12410:22;12381:61;:::i;:::-;12371:71;;12327:125;12114:345;;;;:::o;12465:175::-;12605:27;12601:1;12593:6;12589:14;12582:51;12465:175;:::o;12646:366::-;12788:3;12809:67;12873:2;12868:3;12809:67;:::i;:::-;12802:74;;12885:93;12974:3;12885:93;:::i;:::-;13003:2;12998:3;12994:12;12987:19;;12646:366;;;:::o;13018:419::-;13184:4;13222:2;13211:9;13207:18;13199:26;;13271:9;13265:4;13261:20;13257:1;13246:9;13242:17;13235:47;13299:131;13425:4;13299:131;:::i;:::-;13291:139;;13018:419;;;:::o;13443:180::-;13491:77;13488:1;13481:88;13588:4;13585:1;13578:15;13612:4;13609:1;13602:15;13629:305;13669:3;13688:20;13706:1;13688:20;:::i;:::-;13683:25;;13722:20;13740:1;13722:20;:::i;:::-;13717:25;;13876:1;13808:66;13804:74;13801:1;13798:81;13795:107;;;13882:18;;:::i;:::-;13795:107;13926:1;13923;13919:9;13912:16;;13629:305;;;;:::o;13940:182::-;14080:34;14076:1;14068:6;14064:14;14057:58;13940:182;:::o;14128:366::-;14270:3;14291:67;14355:2;14350:3;14291:67;:::i;:::-;14284:74;;14367:93;14456:3;14367:93;:::i;:::-;14485:2;14480:3;14476:12;14469:19;;14128:366;;;:::o;14500:419::-;14666:4;14704:2;14693:9;14689:18;14681:26;;14753:9;14747:4;14743:20;14739:1;14728:9;14724:17;14717:47;14781:131;14907:4;14781:131;:::i;:::-;14773:139;;14500:419;;;:::o;14925:180::-;14973:77;14970:1;14963:88;15070:4;15067:1;15060:15;15094:4;15091:1;15084:15;15111:233;15150:3;15173:24;15191:5;15173:24;:::i;:::-;15164:33;;15219:66;15212:5;15209:77;15206:103;;15289:18;;:::i;:::-;15206:103;15336:1;15329:5;15325:13;15318:20;;15111:233;;;:::o;15350:173::-;15490:25;15486:1;15478:6;15474:14;15467:49;15350:173;:::o;15529:366::-;15671:3;15692:67;15756:2;15751:3;15692:67;:::i;:::-;15685:74;;15768:93;15857:3;15768:93;:::i;:::-;15886:2;15881:3;15877:12;15870:19;;15529:366;;;:::o;15901:419::-;16067:4;16105:2;16094:9;16090:18;16082:26;;16154:9;16148:4;16144:20;16140:1;16129:9;16125:17;16118:47;16182:131;16308:4;16182:131;:::i;:::-;16174:139;;15901:419;;;:::o;16326:223::-;16466:34;16462:1;16454:6;16450:14;16443:58;16535:6;16530:2;16522:6;16518:15;16511:31;16326:223;:::o;16555:366::-;16697:3;16718:67;16782:2;16777:3;16718:67;:::i;:::-;16711:74;;16794:93;16883:3;16794:93;:::i;:::-;16912:2;16907:3;16903:12;16896:19;;16555:366;;;:::o;16927:419::-;17093:4;17131:2;17120:9;17116:18;17108:26;;17180:9;17174:4;17170:20;17166:1;17155:9;17151:17;17144:47;17208:131;17334:4;17208:131;:::i;:::-;17200:139;;16927:419;;;:::o;17352:221::-;17492:34;17488:1;17480:6;17476:14;17469:58;17561:4;17556:2;17548:6;17544:15;17537:29;17352:221;:::o;17579:366::-;17721:3;17742:67;17806:2;17801:3;17742:67;:::i;:::-;17735:74;;17818:93;17907:3;17818:93;:::i;:::-;17936:2;17931:3;17927:12;17920:19;;17579:366;;;:::o;17951:419::-;18117:4;18155:2;18144:9;18140:18;18132:26;;18204:9;18198:4;18194:20;18190:1;18179:9;18175:17;18168:47;18232:131;18358:4;18232:131;:::i;:::-;18224:139;;17951:419;;;:::o;18376:224::-;18516:34;18512:1;18504:6;18500:14;18493:58;18585:7;18580:2;18572:6;18568:15;18561:32;18376:224;:::o;18606:366::-;18748:3;18769:67;18833:2;18828:3;18769:67;:::i;:::-;18762:74;;18845:93;18934:3;18845:93;:::i;:::-;18963:2;18958:3;18954:12;18947:19;;18606:366;;;:::o;18978:419::-;19144:4;19182:2;19171:9;19167:18;19159:26;;19231:9;19225:4;19221:20;19217:1;19206:9;19202:17;19195:47;19259:131;19385:4;19259:131;:::i;:::-;19251:139;;18978:419;;;:::o;19403:222::-;19543:34;19539:1;19531:6;19527:14;19520:58;19612:5;19607:2;19599:6;19595:15;19588:30;19403:222;:::o;19631:366::-;19773:3;19794:67;19858:2;19853:3;19794:67;:::i;:::-;19787:74;;19870:93;19959:3;19870:93;:::i;:::-;19988:2;19983:3;19979:12;19972:19;;19631:366;;;:::o;20003:419::-;20169:4;20207:2;20196:9;20192:18;20184:26;;20256:9;20250:4;20246:20;20242:1;20231:9;20227:17;20220:47;20284:131;20410:4;20284:131;:::i;:::-;20276:139;;20003:419;;;:::o;20428:228::-;20568:34;20564:1;20556:6;20552:14;20545:58;20637:11;20632:2;20624:6;20620:15;20613:36;20428:228;:::o;20662:366::-;20804:3;20825:67;20889:2;20884:3;20825:67;:::i;:::-;20818:74;;20901:93;20990:3;20901:93;:::i;:::-;21019:2;21014:3;21010:12;21003:19;;20662:366;;;:::o;21034:419::-;21200:4;21238:2;21227:9;21223:18;21215:26;;21287:9;21281:4;21277:20;21273:1;21262:9;21258:17;21251:47;21315:131;21441:4;21315:131;:::i;:::-;21307:139;;21034:419;;;:::o;21459:162::-;21599:14;21595:1;21587:6;21583:14;21576:38;21459:162;:::o;21627:366::-;21769:3;21790:67;21854:2;21849:3;21790:67;:::i;:::-;21783:74;;21866:93;21955:3;21866:93;:::i;:::-;21984:2;21979:3;21975:12;21968:19;;21627:366;;;:::o;21999:419::-;22165:4;22203:2;22192:9;22188:18;22180:26;;22252:9;22246:4;22242:20;22238:1;22227:9;22223:17;22216:47;22280:131;22406:4;22280:131;:::i;:::-;22272:139;;21999:419;;;:::o;22424:239::-;22564:34;22560:1;22552:6;22548:14;22541:58;22633:22;22628:2;22620:6;22616:15;22609:47;22424:239;:::o;22669:366::-;22811:3;22832:67;22896:2;22891:3;22832:67;:::i;:::-;22825:74;;22908:93;22997:3;22908:93;:::i;:::-;23026:2;23021:3;23017:12;23010:19;;22669:366;;;:::o;23041:419::-;23207:4;23245:2;23234:9;23230:18;23222:26;;23294:9;23288:4;23284:20;23280:1;23269:9;23265:17;23258:47;23322:131;23448:4;23322:131;:::i;:::-;23314:139;;23041:419;;;:::o;23466:191::-;23506:4;23526:20;23544:1;23526:20;:::i;:::-;23521:25;;23560:20;23578:1;23560:20;:::i;:::-;23555:25;;23599:1;23596;23593:8;23590:34;;;23604:18;;:::i;:::-;23590:34;23649:1;23646;23642:9;23634:17;;23466:191;;;;:::o;23663:143::-;23720:5;23751:6;23745:13;23736:22;;23767:33;23794:5;23767:33;:::i;:::-;23663:143;;;;:::o;23812:351::-;23882:6;23931:2;23919:9;23910:7;23906:23;23902:32;23899:119;;;23937:79;;:::i;:::-;23899:119;24057:1;24082:64;24138:7;24129:6;24118:9;24114:22;24082:64;:::i;:::-;24072:74;;24028:128;23812:351;;;;:::o;24169:85::-;24214:7;24243:5;24232:16;;24169:85;;;:::o;24260:158::-;24318:9;24351:61;24369:42;24378:32;24404:5;24378:32;:::i;:::-;24369:42;:::i;:::-;24351:61;:::i;:::-;24338:74;;24260:158;;;:::o;24424:147::-;24519:45;24558:5;24519:45;:::i;:::-;24514:3;24507:58;24424:147;;:::o;24577:114::-;24644:6;24678:5;24672:12;24662:22;;24577:114;;;:::o;24697:184::-;24796:11;24830:6;24825:3;24818:19;24870:4;24865:3;24861:14;24846:29;;24697:184;;;;:::o;24887:132::-;24954:4;24977:3;24969:11;;25007:4;25002:3;24998:14;24990:22;;24887:132;;;:::o;25025:108::-;25102:24;25120:5;25102:24;:::i;:::-;25097:3;25090:37;25025:108;;:::o;25139:179::-;25208:10;25229:46;25271:3;25263:6;25229:46;:::i;:::-;25307:4;25302:3;25298:14;25284:28;;25139:179;;;;:::o;25324:113::-;25394:4;25426;25421:3;25417:14;25409:22;;25324:113;;;:::o;25473:732::-;25592:3;25621:54;25669:5;25621:54;:::i;:::-;25691:86;25770:6;25765:3;25691:86;:::i;:::-;25684:93;;25801:56;25851:5;25801:56;:::i;:::-;25880:7;25911:1;25896:284;25921:6;25918:1;25915:13;25896:284;;;25997:6;25991:13;26024:63;26083:3;26068:13;26024:63;:::i;:::-;26017:70;;26110:60;26163:6;26110:60;:::i;:::-;26100:70;;25956:224;25943:1;25940;25936:9;25931:14;;25896:284;;;25900:14;26196:3;26189:10;;25597:608;;;25473:732;;;;:::o;26211:831::-;26474:4;26512:3;26501:9;26497:19;26489:27;;26526:71;26594:1;26583:9;26579:17;26570:6;26526:71;:::i;:::-;26607:80;26683:2;26672:9;26668:18;26659:6;26607:80;:::i;:::-;26734:9;26728:4;26724:20;26719:2;26708:9;26704:18;26697:48;26762:108;26865:4;26856:6;26762:108;:::i;:::-;26754:116;;26880:72;26948:2;26937:9;26933:18;26924:6;26880:72;:::i;:::-;26962:73;27030:3;27019:9;27015:19;27006:6;26962:73;:::i;:::-;26211:831;;;;;;;;:::o;27048:807::-;27297:4;27335:3;27324:9;27320:19;27312:27;;27349:71;27417:1;27406:9;27402:17;27393:6;27349:71;:::i;:::-;27430:72;27498:2;27487:9;27483:18;27474:6;27430:72;:::i;:::-;27512:80;27588:2;27577:9;27573:18;27564:6;27512:80;:::i;:::-;27602;27678:2;27667:9;27663:18;27654:6;27602:80;:::i;:::-;27692:73;27760:3;27749:9;27745:19;27736:6;27692:73;:::i;:::-;27775;27843:3;27832:9;27828:19;27819:6;27775:73;:::i;:::-;27048:807;;;;;;;;;:::o;27861:663::-;27949:6;27957;27965;28014:2;28002:9;27993:7;27989:23;27985:32;27982:119;;;28020:79;;:::i;:::-;27982:119;28140:1;28165:64;28221:7;28212:6;28201:9;28197:22;28165:64;:::i;:::-;28155:74;;28111:128;28278:2;28304:64;28360:7;28351:6;28340:9;28336:22;28304:64;:::i;:::-;28294:74;;28249:129;28417:2;28443:64;28499:7;28490:6;28479:9;28475:22;28443:64;:::i;:::-;28433:74;;28388:129;27861:663;;;;;:::o;28530:180::-;28578:77;28575:1;28568:88;28675:4;28672:1;28665:15;28699:4;28696:1;28689:15;28716:185;28756:1;28773:20;28791:1;28773:20;:::i;:::-;28768:25;;28807:20;28825:1;28807:20;:::i;:::-;28802:25;;28846:1;28836:35;;28851:18;;:::i;:::-;28836:35;28893:1;28890;28886:9;28881:14;;28716:185;;;;:::o;28907:348::-;28947:7;28970:20;28988:1;28970:20;:::i;:::-;28965:25;;29004:20;29022:1;29004:20;:::i;:::-;28999:25;;29192:1;29124:66;29120:74;29117:1;29114:81;29109:1;29102:9;29095:17;29091:105;29088:131;;;29199:18;;:::i;:::-;29088:131;29247:1;29244;29240:9;29229:20;;28907:348;;;;:::o;29261:220::-;29401:34;29397:1;29389:6;29385:14;29378:58;29470:3;29465:2;29457:6;29453:15;29446:28;29261:220;:::o;29487:366::-;29629:3;29650:67;29714:2;29709:3;29650:67;:::i;:::-;29643:74;;29726:93;29815:3;29726:93;:::i;:::-;29844:2;29839:3;29835:12;29828:19;;29487:366;;;:::o;29859:419::-;30025:4;30063:2;30052:9;30048:18;30040:26;;30112:9;30106:4;30102:20;30098:1;30087:9;30083:17;30076:47;30140:131;30266:4;30140:131;:::i;:::-;30132:139;;29859:419;;;:::o;30284:177::-;30424:29;30420:1;30412:6;30408:14;30401:53;30284:177;:::o;30467:366::-;30609:3;30630:67;30694:2;30689:3;30630:67;:::i;:::-;30623:74;;30706:93;30795:3;30706:93;:::i;:::-;30824:2;30819:3;30815:12;30808:19;;30467:366;;;:::o;30839:419::-;31005:4;31043:2;31032:9;31028:18;31020:26;;31092:9;31086:4;31082:20;31078:1;31067:9;31063:17;31056:47;31120:131;31246:4;31120:131;:::i;:::-;31112:139;;30839:419;;;:::o

Swarm Source

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