ETH Price: $2,418.69 (-1.21%)

Token

Kuki Token (KUKI)
 

Overview

Max Total Supply

1,000,000,000,000 KUKI

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
27,599,999,998.160000213 KUKI

Value
$0.00
0xf1a34196c7f06a23be6645fe343e1082c35f6565
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:
KukiToken

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

https://t.me/KukiToken

https://KukiInu.info
                                                        
* TOKENOMICS
 * 1,000,000,000,000 token supply
 * FIRST TWO MINUTES: 10,000,000,000 max buy / 30-second buy cooldown (these limitations are lifted automatically two minutes post-launch)
 * 15-second cooldown to sell after a buy
 * 8% tax on buys and sells
 * 15% fee on sells within first (1) hour post-launch
 * Max wallet of 3% of total supply for first (1) hour post-launch
 * No team tokens, no presale

SPDX-License-Identifier: UNLICENSED 
*/
pragma solidity ^0.8.10;

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

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

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

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

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

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

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

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

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

contract KukiToken is Context, IERC20, Ownable { ////
    mapping (address => uint) private _owned;
    mapping (address => mapping (address => uint)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => User) private cooldown;
    uint private constant _totalSupply = 1e12 * 10**9;

    string public constant name = unicode"Kuki Token"; ////
    string public constant symbol = unicode"KUKI"; ////
    uint8 public constant decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;

    address payable public _FeeAddress1;
    address payable public _FeeAddress2;
    address public uniswapV2Pair;
    uint public _buyFee = 8;
    uint public _sellFee = 8;
    uint public _feeRate = 9;
    uint public _maxBuyAmount;
    uint public _maxHeldTokens;
    uint public _launchedAt;
    bool private _tradingOpen;
    bool private _inSwap;
    bool public _useImpactFeeSetter = true;

    struct User {
        uint buy;
        bool exists;
    }

    event FeeMultiplierUpdated(uint _multiplier);
    event ImpactFeeSetterUpdated(bool _usefeesetter);
    event FeeRateUpdated(uint _rate);
    event FeesUpdated(uint _buy, uint _sell);
    event FeeAddress1Updated(address _feewallet1);
    event FeeAddress2Updated(address _feewallet2);
    
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }
    constructor (address payable FeeAddress1, address payable FeeAddress2) {
        _FeeAddress1 = FeeAddress1;
        _FeeAddress2 = FeeAddress2;
        _owned[address(this)] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[FeeAddress1] = true;
        _isExcludedFromFee[FeeAddress2] = true;
        emit Transfer(address(0), address(this), _totalSupply);
    }

    function balanceOf(address account) public view override returns (uint) {
        return _owned[account];
    }
    function transfer(address recipient, uint amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    function totalSupply() public pure override returns (uint) {
        return _totalSupply;
    }

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

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

    function transferFrom(address sender, address recipient, uint amount) public override returns (bool) {
        if(_tradingOpen && !_isExcludedFromFee[recipient] && sender == uniswapV2Pair){
            require (recipient == tx.origin, "pls no bot");
        }
        _transfer(sender, recipient, amount);
        uint allowedAmount = _allowances[sender][_msgSender()] - amount;
        _approve(sender, _msgSender(), allowedAmount);
        return true;
    }

    function _approve(address owner, address spender, uint 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, uint 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");
        bool isBuy = false;
        if(from != owner() && to != owner()) {
            // buy
            if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(_tradingOpen, "Trading not yet enabled.");
                require(block.timestamp != _launchedAt, "pls no snip");
                if((_launchedAt + (1 hours)) > block.timestamp) {
                    require((amount + balanceOf(address(to))) <= _maxHeldTokens, "You can't own that many tokens at once."); // 5%
                }
                if(!cooldown[to].exists) {
                    cooldown[to] = User(0,true);
                }
                if((_launchedAt + (120 seconds)) > block.timestamp) {
                    require(amount <= _maxBuyAmount, "Exceeds maximum buy amount.");
                    require(cooldown[to].buy < block.timestamp + (30 seconds), "Your buy cooldown has not expired.");
                }
                cooldown[to].buy = block.timestamp;
                isBuy = true;
            }
            // sell
            if(!_inSwap && _tradingOpen && from != uniswapV2Pair) {
                require(cooldown[from].buy < block.timestamp + (15 seconds), "Your sell cooldown has not expired.");
                uint contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > 0) {
                    if(_useImpactFeeSetter) {
                        if(contractTokenBalance > (balanceOf(uniswapV2Pair) * _feeRate) / 100) {
                            contractTokenBalance = (balanceOf(uniswapV2Pair) * _feeRate) / 100;
                        }
                    }
                    swapTokensForEth(contractTokenBalance);
                }
                uint contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                isBuy = false;
            }
        }
        bool takeFee = true;
        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
        _tokenTransfer(from,to,amount,takeFee,isBuy);
    }

    function swapTokensForEth(uint tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
        
    function sendETHToFee(uint amount) private {
        _FeeAddress1.transfer(amount / 2);
        _FeeAddress2.transfer(amount / 2);
    }
    
    function _tokenTransfer(address sender, address recipient, uint amount, bool takefee, bool buy) private {
        (uint fee) = _getFee(takefee, buy);
        _transferStandard(sender, recipient, amount, fee);
    }

    function _getFee(bool takefee, bool buy) private view returns (uint) {
        uint fee = 0;
        if(takefee) {
            if(buy) {
                fee = _buyFee;
            } else {
                fee = _sellFee;
                if(block.timestamp < _launchedAt + (1 hours)) {
                    fee += 7;
                }
            }
        }
        return fee;
    }

    function _transferStandard(address sender, address recipient, uint amount, uint fee) private {
        (uint transferAmount, uint team) = _getValues(amount, fee);
        _owned[sender] = _owned[sender] - amount;
        _owned[recipient] = _owned[recipient] + transferAmount; 
        _takeTeam(team);
        emit Transfer(sender, recipient, transferAmount);
    }

    function _getValues(uint amount, uint teamFee) private pure returns (uint, uint) {
        uint team = (amount * teamFee) / 100;
        uint transferAmount = amount - team;
        return (transferAmount, team);
    }

    function _takeTeam(uint team) private {
        _owned[address(this)] = _owned[address(this)] + team;
    }

    receive() external payable {}
    
    // external functions
    function addLiquidity() external onlyOwner() {
        require(!_tradingOpen, "Trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function openTrading() external onlyOwner() {
        require(!_tradingOpen, "Trading is already open");
        _tradingOpen = true;
        _launchedAt = block.timestamp;
        _maxBuyAmount = 10000000001 * 10**9; // 1%
        _maxHeldTokens = 30000000000 * 10**9; // 3%
    }

    function manualswap() external {
        require(_msgSender() == _FeeAddress1);
        uint contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _FeeAddress1);
        uint contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function setFeeRate(uint rate) external {
        require(_msgSender() == _FeeAddress1);
        require(rate > 0, "Rate can't be zero");
        // 100% is the common fee rate
        _feeRate = rate;
        emit FeeRateUpdated(_feeRate);
    }

    function setFees(uint buy, uint sell) external onlyOwner() {
        _buyFee = buy;
        _sellFee = sell;
        emit FeesUpdated(_buyFee, _sellFee);
    }

    function toggleImpactFee(bool onoff) external {
        require(_msgSender() == _FeeAddress1);
        _useImpactFeeSetter = onoff;
        emit ImpactFeeSetterUpdated(_useImpactFeeSetter);
    }

    function updateFeeAddress1(address newAddress) external {
        require(_msgSender() == _FeeAddress1);
        _FeeAddress1 = payable(newAddress);
        emit FeeAddress1Updated(_FeeAddress1);
    }

    function updateFeeAddress2(address newAddress) external {
        require(_msgSender() == _FeeAddress2);
        _FeeAddress2 = payable(newAddress);
        emit FeeAddress2Updated(_FeeAddress2);
    }

    // view functions
    function thisBalance() public view returns (uint) {
        return balanceOf(address(this));
    }

    function amountInPool() public view returns (uint) {
        return balanceOf(uniswapV2Pair);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"FeeAddress1","type":"address"},{"internalType":"address payable","name":"FeeAddress2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_feewallet1","type":"address"}],"name":"FeeAddress1Updated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_feewallet2","type":"address"}],"name":"FeeAddress2Updated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"FeeMultiplierUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_rate","type":"uint256"}],"name":"FeeRateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_buy","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"FeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"_usefeesetter","type":"bool"}],"name":"ImpactFeeSetterUpdated","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":[],"name":"_FeeAddress1","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_FeeAddress2","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_feeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxBuyAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxHeldTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_useImpactFeeSetter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"toggleImpactFee","outputs":[],"stateMutability":"nonpayable","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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateFeeAddress1","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateFeeAddress2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526008600a556008600b556009600c556001601060026101000a81548160ff0219169083151502179055503480156200003b57600080fd5b5060405162003f4738038062003f47833981810160405281019062000061919062000463565b600062000073620003c860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550683635c9adc5dea00000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620001f6620003d060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003b89190620004c5565b60405180910390a35050620004e2565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200042b82620003fe565b9050919050565b6200043d816200041e565b81146200044957600080fd5b50565b6000815190506200045d8162000432565b92915050565b600080604083850312156200047d576200047c620003f9565b5b60006200048d858286016200044c565b9250506020620004a0858286016200044c565b9150509250929050565b6000819050919050565b620004bf81620004aa565b82525050565b6000602082019050620004dc6000830184620004b4565b92915050565b613a5580620004f26000396000f3fe6080604052600436106101e75760003560e01c80635090161711610102578063a9059cbb11610095578063db92dbb611610064578063db92dbb614610697578063dcb0e0ad146106c2578063dd62ed3e146106eb578063e8078d9414610728576101ee565b8063a9059cbb14610601578063b2131f7d1461063e578063c3c8cd8014610669578063c9567bf914610680576101ee565b8063715018a6116100d1578063715018a6146105695780638da5cb5b1461058057806394b8d8f2146105ab57806395d89b41146105d6576101ee565b806350901617146104c1578063590f897e146104ea5780636fc3eaec1461051557806370a082311461052c576101ee565b806327f3a72a1161017a5780633bed4355116101495780633bed43551461041757806340b9a54b1461044257806345596e2e1461046d57806349bd5a5e14610496576101ee565b806327f3a72a1461036b578063313ce5671461039657806332d873d8146103c1578063367c5544146103ec576101ee565b80630b78f9c0116101b65780630b78f9c0146102af57806318160ddd146102d85780631940d0201461030357806323b872dd1461032e576101ee565b80630492f055146101f357806306fdde031461021e5780630802d2f614610249578063095ea7b314610272576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861073f565b6040516102159190612937565b60405180910390f35b34801561022a57600080fd5b50610233610745565b60405161024091906129eb565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612a70565b61077e565b005b34801561027e57600080fd5b5061029960048036038101906102949190612ac9565b61087c565b6040516102a69190612b24565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d19190612b3f565b61089a565b005b3480156102e457600080fd5b506102ed61097e565b6040516102fa9190612937565b60405180910390f35b34801561030f57600080fd5b5061031861098f565b6040516103259190612937565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612b7f565b610995565b6040516103629190612b24565b60405180910390f35b34801561037757600080fd5b50610380610b86565b60405161038d9190612937565b60405180910390f35b3480156103a257600080fd5b506103ab610b96565b6040516103b89190612bee565b60405180910390f35b3480156103cd57600080fd5b506103d6610b9b565b6040516103e39190612937565b60405180910390f35b3480156103f857600080fd5b50610401610ba1565b60405161040e9190612c2a565b60405180910390f35b34801561042357600080fd5b5061042c610bc7565b6040516104399190612c2a565b60405180910390f35b34801561044e57600080fd5b50610457610bed565b6040516104649190612937565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190612c45565b610bf3565b005b3480156104a257600080fd5b506104ab610cda565b6040516104b89190612c81565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190612a70565b610d00565b005b3480156104f657600080fd5b506104ff610dfe565b60405161050c9190612937565b60405180910390f35b34801561052157600080fd5b5061052a610e04565b005b34801561053857600080fd5b50610553600480360381019061054e9190612a70565b610e76565b6040516105609190612937565b60405180910390f35b34801561057557600080fd5b5061057e610ebf565b005b34801561058c57600080fd5b50610595611012565b6040516105a29190612c81565b60405180910390f35b3480156105b757600080fd5b506105c061103b565b6040516105cd9190612b24565b60405180910390f35b3480156105e257600080fd5b506105eb61104e565b6040516105f891906129eb565b60405180910390f35b34801561060d57600080fd5b5061062860048036038101906106239190612ac9565b611087565b6040516106359190612b24565b60405180910390f35b34801561064a57600080fd5b506106536110a5565b6040516106609190612937565b60405180910390f35b34801561067557600080fd5b5061067e6110ab565b005b34801561068c57600080fd5b50610695611125565b005b3480156106a357600080fd5b506106ac61124d565b6040516106b99190612937565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612cc8565b61127f565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612cf5565b611343565b60405161071f9190612937565b60405180910390f35b34801561073457600080fd5b5061073d6113ca565b005b600d5481565b6040518060400160405280600a81526020017f4b756b6920546f6b656e0000000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107bf61187b565b73ffffffffffffffffffffffffffffffffffffffff16146107df57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e96f8986653644392af4a5daec8b04a389af0d497572173e63846ccd26c843c600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516108719190612d94565b60405180910390a150565b600061089061088961187b565b8484611883565b6001905092915050565b6108a261187b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092690612dfb565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b54604051610972929190612e1b565b60405180910390a15050565b6000683635c9adc5dea00000905090565b600e5481565b6000601060009054906101000a900460ff1680156109fd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a565750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610aca573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090612e90565b60405180910390fd5b5b610ad5848484611a4e565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b2161187b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b669190612edf565b9050610b7a85610b7461187b565b83611883565b60019150509392505050565b6000610b9130610e76565b905090565b600981565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3461187b565b73ffffffffffffffffffffffffffffffffffffffff1614610c5457600080fd5b60008111610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90612f5f565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610ccf9190612937565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d4161187b565b73ffffffffffffffffffffffffffffffffffffffff1614610d6157600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f96511497113ddf59712b28350d7457b9c300ab227616bd3b451745a395a53014600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610df39190612d94565b60405180910390a150565b600b5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e4561187b565b73ffffffffffffffffffffffffffffffffffffffff1614610e6557600080fd5b6000479050610e73816122cf565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ec761187b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90612dfb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600481526020017f4b554b490000000000000000000000000000000000000000000000000000000081525081565b600061109b61109461187b565b8484611a4e565b6001905092915050565b600c5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ec61187b565b73ffffffffffffffffffffffffffffffffffffffff161461110c57600080fd5b600061111730610e76565b9050611122816123bc565b50565b61112d61187b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b190612dfb565b60405180910390fd5b601060009054906101000a900460ff161561120a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120190612fcb565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f81905550678ac72304c582ca00600d819055506801a055690d9db80000600e81905550565b600061127a600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e76565b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112c061187b565b73ffffffffffffffffffffffffffffffffffffffff16146112e057600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516113389190612b24565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113d261187b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612dfb565b60405180910390fd5b601060009054906101000a900460ff16156114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a690612fcb565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061153f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611883565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561158a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ae9190613000565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611615573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116399190613000565b6040518363ffffffff1660e01b815260040161165692919061302d565b6020604051808303816000875af1158015611675573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116999190613000565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061172230610e76565b60008061172d611012565b426040518863ffffffff1660e01b815260040161174f96959493929190613091565b60606040518083038185885af115801561176d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117929190613107565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161183492919061315a565b6020604051808303816000875af1158015611853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118779190613198565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea90613237565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a906132c9565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a419190612937565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab59061335b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906133ed565b60405180910390fd5b60008111611b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b689061347f565b60405180910390fd5b6000611b7b611012565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611be95750611bb9611012565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561220a57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c995750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cef5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200a57601060009054906101000a900460ff16611d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3a906134eb565b60405180910390fd5b600f54421415611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f90613557565b60405180910390fd5b42610e10600f54611d999190613577565b1115611df857600e54611dab84610e76565b83611db69190613577565b1115611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee9061363f565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16611ed25760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b426078600f54611ee29190613577565b1115611fbe57600d54821115611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f24906136ab565b60405180910390fd5b601e42611f3a9190613577565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb49061373d565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff161580156120335750601060009054906101000a900460ff165b801561208d5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561220957600f4261209f9190613577565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612122576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612119906137cf565b60405180910390fd5b600061212d30610e76565b905060008111156121ea57601060029054906101000a900460ff16156121e0576064600c5461217d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e76565b61218791906137ef565b6121919190613878565b8111156121df576064600c546121c8600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e76565b6121d291906137ef565b6121dc9190613878565b90505b5b6121e9816123bc565b5b6000479050600081111561220257612201476122cf565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122b15750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122bb57600090505b6122c88585858486612635565b5050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836123189190613878565b9081150290604051600060405180830381858888f19350505050158015612343573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361238d9190613878565b9081150290604051600060405180830381858888f193505050501580156123b8573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123f4576123f36138a9565b5b6040519080825280602002602001820160405280156124225781602001602082028036833780820191505090505b509050308160008151811061243a576124396138d8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125059190613000565b81600181518110612519576125186138d8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061258030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611883565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125e49594939291906139c5565b600060405180830381600087803b1580156125fe57600080fd5b505af1158015612612573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b60006126418383612657565b905061264f868686846126ac565b505050505050565b6000806000905083156126a257821561267457600a5490506126a1565b600b549050610e10600f546126899190613577565b4210156126a05760078161269d9190613577565b90505b5b5b8091505092915050565b6000806126b9848461284f565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127089190612edf565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127969190613577565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127e28161288d565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161283f9190612937565b60405180910390a3505050505050565b60008060006064848661286291906137ef565b61286c9190613878565b90506000818661287c9190612edf565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d89190613577565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b6129318161291e565b82525050565b600060208201905061294c6000830184612928565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561298c578082015181840152602081019050612971565b8381111561299b576000848401525b50505050565b6000601f19601f8301169050919050565b60006129bd82612952565b6129c7818561295d565b93506129d781856020860161296e565b6129e0816129a1565b840191505092915050565b60006020820190508181036000830152612a0581846129b2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a3d82612a12565b9050919050565b612a4d81612a32565b8114612a5857600080fd5b50565b600081359050612a6a81612a44565b92915050565b600060208284031215612a8657612a85612a0d565b5b6000612a9484828501612a5b565b91505092915050565b612aa68161291e565b8114612ab157600080fd5b50565b600081359050612ac381612a9d565b92915050565b60008060408385031215612ae057612adf612a0d565b5b6000612aee85828601612a5b565b9250506020612aff85828601612ab4565b9150509250929050565b60008115159050919050565b612b1e81612b09565b82525050565b6000602082019050612b396000830184612b15565b92915050565b60008060408385031215612b5657612b55612a0d565b5b6000612b6485828601612ab4565b9250506020612b7585828601612ab4565b9150509250929050565b600080600060608486031215612b9857612b97612a0d565b5b6000612ba686828701612a5b565b9350506020612bb786828701612a5b565b9250506040612bc886828701612ab4565b9150509250925092565b600060ff82169050919050565b612be881612bd2565b82525050565b6000602082019050612c036000830184612bdf565b92915050565b6000612c1482612a12565b9050919050565b612c2481612c09565b82525050565b6000602082019050612c3f6000830184612c1b565b92915050565b600060208284031215612c5b57612c5a612a0d565b5b6000612c6984828501612ab4565b91505092915050565b612c7b81612a32565b82525050565b6000602082019050612c966000830184612c72565b92915050565b612ca581612b09565b8114612cb057600080fd5b50565b600081359050612cc281612c9c565b92915050565b600060208284031215612cde57612cdd612a0d565b5b6000612cec84828501612cb3565b91505092915050565b60008060408385031215612d0c57612d0b612a0d565b5b6000612d1a85828601612a5b565b9250506020612d2b85828601612a5b565b9150509250929050565b6000819050919050565b6000612d5a612d55612d5084612a12565b612d35565b612a12565b9050919050565b6000612d6c82612d3f565b9050919050565b6000612d7e82612d61565b9050919050565b612d8e81612d73565b82525050565b6000602082019050612da96000830184612d85565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612de560208361295d565b9150612df082612daf565b602082019050919050565b60006020820190508181036000830152612e1481612dd8565b9050919050565b6000604082019050612e306000830185612928565b612e3d6020830184612928565b9392505050565b7f706c73206e6f20626f7400000000000000000000000000000000000000000000600082015250565b6000612e7a600a8361295d565b9150612e8582612e44565b602082019050919050565b60006020820190508181036000830152612ea981612e6d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612eea8261291e565b9150612ef58361291e565b925082821015612f0857612f07612eb0565b5b828203905092915050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000612f4960128361295d565b9150612f5482612f13565b602082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612fb560178361295d565b9150612fc082612f7f565b602082019050919050565b60006020820190508181036000830152612fe481612fa8565b9050919050565b600081519050612ffa81612a44565b92915050565b60006020828403121561301657613015612a0d565b5b600061302484828501612feb565b91505092915050565b60006040820190506130426000830185612c72565b61304f6020830184612c72565b9392505050565b6000819050919050565b600061307b61307661307184613056565b612d35565b61291e565b9050919050565b61308b81613060565b82525050565b600060c0820190506130a66000830189612c72565b6130b36020830188612928565b6130c06040830187613082565b6130cd6060830186613082565b6130da6080830185612c72565b6130e760a0830184612928565b979650505050505050565b60008151905061310181612a9d565b92915050565b6000806000606084860312156131205761311f612a0d565b5b600061312e868287016130f2565b935050602061313f868287016130f2565b9250506040613150868287016130f2565b9150509250925092565b600060408201905061316f6000830185612c72565b61317c6020830184612928565b9392505050565b60008151905061319281612c9c565b92915050565b6000602082840312156131ae576131ad612a0d565b5b60006131bc84828501613183565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061322160248361295d565b915061322c826131c5565b604082019050919050565b6000602082019050818103600083015261325081613214565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132b360228361295d565b91506132be82613257565b604082019050919050565b600060208201905081810360008301526132e2816132a6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061334560258361295d565b9150613350826132e9565b604082019050919050565b6000602082019050818103600083015261337481613338565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133d760238361295d565b91506133e28261337b565b604082019050919050565b60006020820190508181036000830152613406816133ca565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061346960298361295d565b91506134748261340d565b604082019050919050565b600060208201905081810360008301526134988161345c565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006134d560188361295d565b91506134e08261349f565b602082019050919050565b60006020820190508181036000830152613504816134c8565b9050919050565b7f706c73206e6f20736e6970000000000000000000000000000000000000000000600082015250565b6000613541600b8361295d565b915061354c8261350b565b602082019050919050565b6000602082019050818103600083015261357081613534565b9050919050565b60006135828261291e565b915061358d8361291e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135c2576135c1612eb0565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b600061362960278361295d565b9150613634826135cd565b604082019050919050565b600060208201905081810360008301526136588161361c565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b6000613695601b8361295d565b91506136a08261365f565b602082019050919050565b600060208201905081810360008301526136c481613688565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b600061372760228361295d565b9150613732826136cb565b604082019050919050565b600060208201905081810360008301526137568161371a565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b60006137b960238361295d565b91506137c48261375d565b604082019050919050565b600060208201905081810360008301526137e8816137ac565b9050919050565b60006137fa8261291e565b91506138058361291e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561383e5761383d612eb0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138838261291e565b915061388e8361291e565b92508261389e5761389d613849565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61393c81612a32565b82525050565b600061394e8383613933565b60208301905092915050565b6000602082019050919050565b600061397282613907565b61397c8185613912565b935061398783613923565b8060005b838110156139b857815161399f8882613942565b97506139aa8361395a565b92505060018101905061398b565b5085935050505092915050565b600060a0820190506139da6000830188612928565b6139e76020830187613082565b81810360408301526139f98186613967565b9050613a086060830185612c72565b613a156080830184612928565b969550505050505056fea2646970667358221220910d94eb9df6a67001fe96764d7310be36e3f521638ed9e04a8b0632532612d964736f6c634300080a0033000000000000000000000000b5275f1203cf6f4d83a836587ebb6f862d052239000000000000000000000000b0c29469edf07b9a6926a88ebff4926758027945

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80635090161711610102578063a9059cbb11610095578063db92dbb611610064578063db92dbb614610697578063dcb0e0ad146106c2578063dd62ed3e146106eb578063e8078d9414610728576101ee565b8063a9059cbb14610601578063b2131f7d1461063e578063c3c8cd8014610669578063c9567bf914610680576101ee565b8063715018a6116100d1578063715018a6146105695780638da5cb5b1461058057806394b8d8f2146105ab57806395d89b41146105d6576101ee565b806350901617146104c1578063590f897e146104ea5780636fc3eaec1461051557806370a082311461052c576101ee565b806327f3a72a1161017a5780633bed4355116101495780633bed43551461041757806340b9a54b1461044257806345596e2e1461046d57806349bd5a5e14610496576101ee565b806327f3a72a1461036b578063313ce5671461039657806332d873d8146103c1578063367c5544146103ec576101ee565b80630b78f9c0116101b65780630b78f9c0146102af57806318160ddd146102d85780631940d0201461030357806323b872dd1461032e576101ee565b80630492f055146101f357806306fdde031461021e5780630802d2f614610249578063095ea7b314610272576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861073f565b6040516102159190612937565b60405180910390f35b34801561022a57600080fd5b50610233610745565b60405161024091906129eb565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612a70565b61077e565b005b34801561027e57600080fd5b5061029960048036038101906102949190612ac9565b61087c565b6040516102a69190612b24565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d19190612b3f565b61089a565b005b3480156102e457600080fd5b506102ed61097e565b6040516102fa9190612937565b60405180910390f35b34801561030f57600080fd5b5061031861098f565b6040516103259190612937565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612b7f565b610995565b6040516103629190612b24565b60405180910390f35b34801561037757600080fd5b50610380610b86565b60405161038d9190612937565b60405180910390f35b3480156103a257600080fd5b506103ab610b96565b6040516103b89190612bee565b60405180910390f35b3480156103cd57600080fd5b506103d6610b9b565b6040516103e39190612937565b60405180910390f35b3480156103f857600080fd5b50610401610ba1565b60405161040e9190612c2a565b60405180910390f35b34801561042357600080fd5b5061042c610bc7565b6040516104399190612c2a565b60405180910390f35b34801561044e57600080fd5b50610457610bed565b6040516104649190612937565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190612c45565b610bf3565b005b3480156104a257600080fd5b506104ab610cda565b6040516104b89190612c81565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190612a70565b610d00565b005b3480156104f657600080fd5b506104ff610dfe565b60405161050c9190612937565b60405180910390f35b34801561052157600080fd5b5061052a610e04565b005b34801561053857600080fd5b50610553600480360381019061054e9190612a70565b610e76565b6040516105609190612937565b60405180910390f35b34801561057557600080fd5b5061057e610ebf565b005b34801561058c57600080fd5b50610595611012565b6040516105a29190612c81565b60405180910390f35b3480156105b757600080fd5b506105c061103b565b6040516105cd9190612b24565b60405180910390f35b3480156105e257600080fd5b506105eb61104e565b6040516105f891906129eb565b60405180910390f35b34801561060d57600080fd5b5061062860048036038101906106239190612ac9565b611087565b6040516106359190612b24565b60405180910390f35b34801561064a57600080fd5b506106536110a5565b6040516106609190612937565b60405180910390f35b34801561067557600080fd5b5061067e6110ab565b005b34801561068c57600080fd5b50610695611125565b005b3480156106a357600080fd5b506106ac61124d565b6040516106b99190612937565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612cc8565b61127f565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612cf5565b611343565b60405161071f9190612937565b60405180910390f35b34801561073457600080fd5b5061073d6113ca565b005b600d5481565b6040518060400160405280600a81526020017f4b756b6920546f6b656e0000000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107bf61187b565b73ffffffffffffffffffffffffffffffffffffffff16146107df57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e96f8986653644392af4a5daec8b04a389af0d497572173e63846ccd26c843c600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516108719190612d94565b60405180910390a150565b600061089061088961187b565b8484611883565b6001905092915050565b6108a261187b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461092f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092690612dfb565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b54604051610972929190612e1b565b60405180910390a15050565b6000683635c9adc5dea00000905090565b600e5481565b6000601060009054906101000a900460ff1680156109fd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a565750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610aca573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610ac9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ac090612e90565b60405180910390fd5b5b610ad5848484611a4e565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b2161187b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b669190612edf565b9050610b7a85610b7461187b565b83611883565b60019150509392505050565b6000610b9130610e76565b905090565b600981565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3461187b565b73ffffffffffffffffffffffffffffffffffffffff1614610c5457600080fd5b60008111610c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c8e90612f5f565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610ccf9190612937565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d4161187b565b73ffffffffffffffffffffffffffffffffffffffff1614610d6157600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f96511497113ddf59712b28350d7457b9c300ab227616bd3b451745a395a53014600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610df39190612d94565b60405180910390a150565b600b5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e4561187b565b73ffffffffffffffffffffffffffffffffffffffff1614610e6557600080fd5b6000479050610e73816122cf565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ec761187b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4b90612dfb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600481526020017f4b554b490000000000000000000000000000000000000000000000000000000081525081565b600061109b61109461187b565b8484611a4e565b6001905092915050565b600c5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ec61187b565b73ffffffffffffffffffffffffffffffffffffffff161461110c57600080fd5b600061111730610e76565b9050611122816123bc565b50565b61112d61187b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b190612dfb565b60405180910390fd5b601060009054906101000a900460ff161561120a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120190612fcb565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f81905550678ac72304c582ca00600d819055506801a055690d9db80000600e81905550565b600061127a600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e76565b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112c061187b565b73ffffffffffffffffffffffffffffffffffffffff16146112e057600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff166040516113389190612b24565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113d261187b565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461145f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145690612dfb565b60405180910390fd5b601060009054906101000a900460ff16156114af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a690612fcb565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061153f30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611883565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561158a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115ae9190613000565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611615573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116399190613000565b6040518363ffffffff1660e01b815260040161165692919061302d565b6020604051808303816000875af1158015611675573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116999190613000565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061172230610e76565b60008061172d611012565b426040518863ffffffff1660e01b815260040161174f96959493929190613091565b60606040518083038185885af115801561176d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117929190613107565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161183492919061315a565b6020604051808303816000875af1158015611853573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118779190613198565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea90613237565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195a906132c9565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a419190612937565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611abe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab59061335b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906133ed565b60405180910390fd5b60008111611b71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b689061347f565b60405180910390fd5b6000611b7b611012565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611be95750611bb9611012565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561220a57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611c995750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611cef5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561200a57601060009054906101000a900460ff16611d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3a906134eb565b60405180910390fd5b600f54421415611d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7f90613557565b60405180910390fd5b42610e10600f54611d999190613577565b1115611df857600e54611dab84610e76565b83611db69190613577565b1115611df7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dee9061363f565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16611ed25760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b426078600f54611ee29190613577565b1115611fbe57600d54821115611f2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f24906136ab565b60405180910390fd5b601e42611f3a9190613577565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb49061373d565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff161580156120335750601060009054906101000a900460ff165b801561208d5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561220957600f4261209f9190613577565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612122576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612119906137cf565b60405180910390fd5b600061212d30610e76565b905060008111156121ea57601060029054906101000a900460ff16156121e0576064600c5461217d600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e76565b61218791906137ef565b6121919190613878565b8111156121df576064600c546121c8600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610e76565b6121d291906137ef565b6121dc9190613878565b90505b5b6121e9816123bc565b5b6000479050600081111561220257612201476122cf565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122b15750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122bb57600090505b6122c88585858486612635565b5050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836123189190613878565b9081150290604051600060405180830381858888f19350505050158015612343573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361238d9190613878565b9081150290604051600060405180830381858888f193505050501580156123b8573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156123f4576123f36138a9565b5b6040519080825280602002602001820160405280156124225781602001602082028036833780820191505090505b509050308160008151811061243a576124396138d8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125059190613000565b81600181518110612519576125186138d8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061258030600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611883565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016125e49594939291906139c5565b600060405180830381600087803b1580156125fe57600080fd5b505af1158015612612573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b60006126418383612657565b905061264f868686846126ac565b505050505050565b6000806000905083156126a257821561267457600a5490506126a1565b600b549050610e10600f546126899190613577565b4210156126a05760078161269d9190613577565b90505b5b5b8091505092915050565b6000806126b9848461284f565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127089190612edf565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127969190613577565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506127e28161288d565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161283f9190612937565b60405180910390a3505050505050565b60008060006064848661286291906137ef565b61286c9190613878565b90506000818661287c9190612edf565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546128d89190613577565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b6129318161291e565b82525050565b600060208201905061294c6000830184612928565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561298c578082015181840152602081019050612971565b8381111561299b576000848401525b50505050565b6000601f19601f8301169050919050565b60006129bd82612952565b6129c7818561295d565b93506129d781856020860161296e565b6129e0816129a1565b840191505092915050565b60006020820190508181036000830152612a0581846129b2565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a3d82612a12565b9050919050565b612a4d81612a32565b8114612a5857600080fd5b50565b600081359050612a6a81612a44565b92915050565b600060208284031215612a8657612a85612a0d565b5b6000612a9484828501612a5b565b91505092915050565b612aa68161291e565b8114612ab157600080fd5b50565b600081359050612ac381612a9d565b92915050565b60008060408385031215612ae057612adf612a0d565b5b6000612aee85828601612a5b565b9250506020612aff85828601612ab4565b9150509250929050565b60008115159050919050565b612b1e81612b09565b82525050565b6000602082019050612b396000830184612b15565b92915050565b60008060408385031215612b5657612b55612a0d565b5b6000612b6485828601612ab4565b9250506020612b7585828601612ab4565b9150509250929050565b600080600060608486031215612b9857612b97612a0d565b5b6000612ba686828701612a5b565b9350506020612bb786828701612a5b565b9250506040612bc886828701612ab4565b9150509250925092565b600060ff82169050919050565b612be881612bd2565b82525050565b6000602082019050612c036000830184612bdf565b92915050565b6000612c1482612a12565b9050919050565b612c2481612c09565b82525050565b6000602082019050612c3f6000830184612c1b565b92915050565b600060208284031215612c5b57612c5a612a0d565b5b6000612c6984828501612ab4565b91505092915050565b612c7b81612a32565b82525050565b6000602082019050612c966000830184612c72565b92915050565b612ca581612b09565b8114612cb057600080fd5b50565b600081359050612cc281612c9c565b92915050565b600060208284031215612cde57612cdd612a0d565b5b6000612cec84828501612cb3565b91505092915050565b60008060408385031215612d0c57612d0b612a0d565b5b6000612d1a85828601612a5b565b9250506020612d2b85828601612a5b565b9150509250929050565b6000819050919050565b6000612d5a612d55612d5084612a12565b612d35565b612a12565b9050919050565b6000612d6c82612d3f565b9050919050565b6000612d7e82612d61565b9050919050565b612d8e81612d73565b82525050565b6000602082019050612da96000830184612d85565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612de560208361295d565b9150612df082612daf565b602082019050919050565b60006020820190508181036000830152612e1481612dd8565b9050919050565b6000604082019050612e306000830185612928565b612e3d6020830184612928565b9392505050565b7f706c73206e6f20626f7400000000000000000000000000000000000000000000600082015250565b6000612e7a600a8361295d565b9150612e8582612e44565b602082019050919050565b60006020820190508181036000830152612ea981612e6d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612eea8261291e565b9150612ef58361291e565b925082821015612f0857612f07612eb0565b5b828203905092915050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000612f4960128361295d565b9150612f5482612f13565b602082019050919050565b60006020820190508181036000830152612f7881612f3c565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612fb560178361295d565b9150612fc082612f7f565b602082019050919050565b60006020820190508181036000830152612fe481612fa8565b9050919050565b600081519050612ffa81612a44565b92915050565b60006020828403121561301657613015612a0d565b5b600061302484828501612feb565b91505092915050565b60006040820190506130426000830185612c72565b61304f6020830184612c72565b9392505050565b6000819050919050565b600061307b61307661307184613056565b612d35565b61291e565b9050919050565b61308b81613060565b82525050565b600060c0820190506130a66000830189612c72565b6130b36020830188612928565b6130c06040830187613082565b6130cd6060830186613082565b6130da6080830185612c72565b6130e760a0830184612928565b979650505050505050565b60008151905061310181612a9d565b92915050565b6000806000606084860312156131205761311f612a0d565b5b600061312e868287016130f2565b935050602061313f868287016130f2565b9250506040613150868287016130f2565b9150509250925092565b600060408201905061316f6000830185612c72565b61317c6020830184612928565b9392505050565b60008151905061319281612c9c565b92915050565b6000602082840312156131ae576131ad612a0d565b5b60006131bc84828501613183565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061322160248361295d565b915061322c826131c5565b604082019050919050565b6000602082019050818103600083015261325081613214565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132b360228361295d565b91506132be82613257565b604082019050919050565b600060208201905081810360008301526132e2816132a6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061334560258361295d565b9150613350826132e9565b604082019050919050565b6000602082019050818103600083015261337481613338565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133d760238361295d565b91506133e28261337b565b604082019050919050565b60006020820190508181036000830152613406816133ca565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061346960298361295d565b91506134748261340d565b604082019050919050565b600060208201905081810360008301526134988161345c565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006134d560188361295d565b91506134e08261349f565b602082019050919050565b60006020820190508181036000830152613504816134c8565b9050919050565b7f706c73206e6f20736e6970000000000000000000000000000000000000000000600082015250565b6000613541600b8361295d565b915061354c8261350b565b602082019050919050565b6000602082019050818103600083015261357081613534565b9050919050565b60006135828261291e565b915061358d8361291e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156135c2576135c1612eb0565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b600061362960278361295d565b9150613634826135cd565b604082019050919050565b600060208201905081810360008301526136588161361c565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b6000613695601b8361295d565b91506136a08261365f565b602082019050919050565b600060208201905081810360008301526136c481613688565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b600061372760228361295d565b9150613732826136cb565b604082019050919050565b600060208201905081810360008301526137568161371a565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b60006137b960238361295d565b91506137c48261375d565b604082019050919050565b600060208201905081810360008301526137e8816137ac565b9050919050565b60006137fa8261291e565b91506138058361291e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561383e5761383d612eb0565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006138838261291e565b915061388e8361291e565b92508261389e5761389d613849565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61393c81612a32565b82525050565b600061394e8383613933565b60208301905092915050565b6000602082019050919050565b600061397282613907565b61397c8185613912565b935061398783613923565b8060005b838110156139b857815161399f8882613942565b97506139aa8361395a565b92505060018101905061398b565b5085935050505092915050565b600060a0820190506139da6000830188612928565b6139e76020830187613082565b81810360408301526139f98186613967565b9050613a086060830185612c72565b613a156080830184612928565b969550505050505056fea2646970667358221220910d94eb9df6a67001fe96764d7310be36e3f521638ed9e04a8b0632532612d964736f6c634300080a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000b5275f1203cf6f4d83a836587ebb6f862d052239000000000000000000000000b0c29469edf07b9a6926a88ebff4926758027945

-----Decoded View---------------
Arg [0] : FeeAddress1 (address): 0xB5275F1203Cf6f4D83a836587ebB6F862D052239
Arg [1] : FeeAddress2 (address): 0xb0C29469eDf07B9A6926a88eBfF4926758027945

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000b5275f1203cf6f4d83a836587ebb6f862d052239
Arg [1] : 000000000000000000000000b0c29469edf07b9a6926a88ebff4926758027945


Deployed Bytecode Sourcemap

2903:10705:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3671:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3248:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12947:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5356:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12569:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5103:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3703:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5522:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13396:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3366:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3736:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3502:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3460;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3579:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12309:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3544:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13160:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3609:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12113:188;;;;;;;;;;;;;:::i;:::-;;4808:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1984:148;;;;;;;;;;;;;:::i;:::-;;1770:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3825:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3309:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4927:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3640:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11912:189;;;;;;;;;;;;;:::i;:::-;;11617:287;;;;;;;;;;;;;:::i;:::-;;13504:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12740:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5208:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10921:688;;;;;;;;;;;;;:::i;:::-;;3671:25;;;;:::o;3248:49::-;;;;;;;;;;;;;;;;;;;:::o;12947:205::-;13038:12;;;;;;;;;;;13022:28;;:12;:10;:12::i;:::-;:28;;;13014:37;;;;;;13085:10;13062:12;;:34;;;;;;;;;;;;;;;;;;13112:32;13131:12;;;;;;;;;;;13112:32;;;;;;:::i;:::-;;;;;;;;12947:205;:::o;5356:158::-;5428:4;5445:39;5454:12;:10;:12::i;:::-;5468:7;5477:6;5445:8;:39::i;:::-;5502:4;5495:11;;5356:158;;;;:::o;12569:163::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12649:3:::1;12639:7;:13;;;;12674:4;12663:8;:15;;;;12694:30;12706:7;;12715:8;;12694:30;;;;;;;:::i;:::-;;;;;;;;12569:163:::0;;:::o;5103:97::-;5156:4;3227:12;5173:19;;5103:97;:::o;3703:26::-;;;;:::o;5522:468::-;5617:4;5637:12;;;;;;;;;;;:46;;;;;5654:18;:29;5673:9;5654:29;;;;;;;;;;;;;;;;;;;;;;;;;5653:30;5637:46;:73;;;;;5697:13;;;;;;;;;;;5687:23;;:6;:23;;;5637:73;5634:150;;;5748:9;5735:22;;:9;:22;;;5726:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5634:150;5794:36;5804:6;5812:9;5823:6;5794:9;:36::i;:::-;5841:18;5898:6;5862:11;:19;5874:6;5862:19;;;;;;;;;;;;;;;:33;5882:12;:10;:12::i;:::-;5862:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;5841:63;;5915:45;5924:6;5932:12;:10;:12::i;:::-;5946:13;5915:8;:45::i;:::-;5978:4;5971:11;;;5522:468;;;;;:::o;13396:100::-;13440:4;13464:24;13482:4;13464:9;:24::i;:::-;13457:31;;13396:100;:::o;3366:34::-;3399:1;3366:34;:::o;3736:23::-;;;;:::o;3502:35::-;;;;;;;;;;;;;:::o;3460:::-;;;;;;;;;;;;;:::o;3579:23::-;;;;:::o;12309:252::-;12384:12;;;;;;;;;;;12368:28;;:12;:10;:12::i;:::-;:28;;;12360:37;;;;;;12423:1;12416:4;:8;12408:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12509:4;12498:8;:15;;;;12529:24;12544:8;;12529:24;;;;;;:::i;:::-;;;;;;;;12309:252;:::o;3544:28::-;;;;;;;;;;;;;:::o;13160:205::-;13251:12;;;;;;;;;;;13235:28;;:12;:10;:12::i;:::-;:28;;;13227:37;;;;;;13298:10;13275:12;;:34;;;;;;;;;;;;;;;;;;13325:32;13344:12;;;;;;;;;;;13325:32;;;;;;:::i;:::-;;;;;;;;13160:205;:::o;3609:24::-;;;;:::o;12113:188::-;12179:12;;;;;;;;;;;12163:28;;:12;:10;:12::i;:::-;:28;;;12155:37;;;;;;12203:23;12229:21;12203:47;;12261:32;12274:18;12261:12;:32::i;:::-;12144:157;12113:188::o;4808:113::-;4874:4;4898:6;:15;4905:7;4898:15;;;;;;;;;;;;;;;;4891:22;;4808:113;;;:::o;1984:148::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2091:1:::1;2054:40;;2075:6;::::0;::::1;;;;;;;;2054:40;;;;;;;;;;;;2122:1;2105:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1984:148::o:0;1770:79::-;1808:7;1835:6;;;;;;;;;;;1828:13;;1770:79;:::o;3825:38::-;;;;;;;;;;;;;:::o;3309:45::-;;;;;;;;;;;;;;;;;;;:::o;4927:164::-;5002:4;5019:42;5029:12;:10;:12::i;:::-;5043:9;5054:6;5019:9;:42::i;:::-;5079:4;5072:11;;4927:164;;;;:::o;3640:24::-;;;;:::o;11912:189::-;11978:12;;;;;;;;;;;11962:28;;:12;:10;:12::i;:::-;:28;;;11954:37;;;;;;12002:20;12025:24;12043:4;12025:9;:24::i;:::-;12002:47;;12060:33;12077:15;12060:16;:33::i;:::-;11943:158;11912:189::o;11617:287::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11681:12:::1;;;;;;;;;;;11680:13;11672:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11747:4;11732:12;;:19;;;;;;;;;;;;;;;;;;11776:15;11762:11;:29;;;;11818:19;11802:13;:35;;;;11871:19;11854:14;:36;;;;11617:287::o:0;13504:101::-;13549:4;13573:24;13583:13;;;;;;;;;;;13573:9;:24::i;:::-;13566:31;;13504:101;:::o;12740:199::-;12821:12;;;;;;;;;;;12805:28;;:12;:10;:12::i;:::-;:28;;;12797:37;;;;;;12867:5;12845:19;;:27;;;;;;;;;;;;;;;;;;12888:43;12911:19;;;;;;;;;;;12888:43;;;;;;:::i;:::-;;;;;;;;12740:199;:::o;5208:140::-;5289:4;5313:11;:18;5325:5;5313:18;;;;;;;;;;;;;;;:27;5332:7;5313:27;;;;;;;;;;;;;;;;5306:34;;5208:140;;;;:::o;10921:688::-;1907:12;:10;:12::i;:::-;1897:22;;:6;;;;;;;;;;:22;;;1889:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10986:12:::1;;;;;;;;;;;10985:13;10977:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11037:35;11094:42;11037:100;;11166:16;11148:15;;:34;;;;;;;;;;;;;;;;;;11193:63;11210:4;11225:15;;;;;;;;;;;3227:12;11193:8;:63::i;:::-;11301:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11283:56;;;11348:4;11355:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11283:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11267:13;;:112;;;;;;;;;;;;;;;;;;11390:15;;;;;;;;;;;:31;;;11429:21;11460:4;11466:24;11484:4;11466:9;:24::i;:::-;11491:1;11493::::0;11495:7:::1;:5;:7::i;:::-;11503:15;11390:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11537:13;;;;;;;;;;;11530:29;;;11568:15;;;;;;;;;;;11586:14;11530:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10966:643;10921:688::o:0;633:98::-;686:7;713:10;706:17;;633:98;:::o;5998:332::-;6105:1;6088:19;;:5;:19;;;;6080:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6186:1;6167:21;;:7;:21;;;;6159:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6268:6;6238:11;:18;6250:5;6238:18;;;;;;;;;;;;;;;:27;6257:7;6238:27;;;;;;;;;;;;;;;:36;;;;6306:7;6290:32;;6299:5;6290:32;;;6315:6;6290:32;;;;;;:::i;:::-;;;;;;;;5998:332;;;:::o;6338:2505::-;6439:1;6423:18;;:4;:18;;;;6415:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6516:1;6502:16;;:2;:16;;;;6494:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6586:1;6577:6;:10;6569:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6644:10;6684:7;:5;:7::i;:::-;6676:15;;:4;:15;;;;:32;;;;;6701:7;:5;:7::i;:::-;6695:13;;:2;:13;;;;6676:32;6673:1972;;;6756:13;;;;;;;;;;;6748:21;;:4;:21;;;:55;;;;;6787:15;;;;;;;;;;;6773:30;;:2;:30;;;;6748:55;:82;;;;;6808:18;:22;6827:2;6808:22;;;;;;;;;;;;;;;;;;;;;;;;;6807:23;6748:82;6745:954;;;6859:12;;;;;;;;;;;6851:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6946:11;;6927:15;:30;;6919:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;7023:15;7011:7;6996:11;;:23;;;;:::i;:::-;6995:43;6992:200;;;7108:14;;7081:22;7099:2;7081:9;:22::i;:::-;7072:6;:31;;;;:::i;:::-;7071:51;;7063:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;6992:200;7214:8;:12;7223:2;7214:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;7210:95;;7273:12;;;;;;;;7278:1;7273:12;;;;7280:4;7273:12;;;;;7258:8;:12;7267:2;7258:12;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7210:95;7358:15;7342:11;7327;;:27;;;;:::i;:::-;7326:47;7323:277;;;7416:13;;7406:6;:23;;7398:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7530:10;7511:15;:30;;;;:::i;:::-;7492:8;:12;7501:2;7492:12;;;;;;;;;;;;;;;:16;;;:49;7484:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;7323:277;7637:15;7618:8;:12;7627:2;7618:12;;;;;;;;;;;;;;;:16;;:34;;;;7679:4;7671:12;;6745:954;7738:7;;;;;;;;;;;7737:8;:24;;;;;7749:12;;;;;;;;;;;7737:24;:49;;;;;7773:13;;;;;;;;;;;7765:21;;:4;:21;;;;7737:49;7734:900;;;7855:10;7836:15;:30;;;;:::i;:::-;7815:8;:14;7824:4;7815:14;;;;;;;;;;;;;;;:18;;;:51;7807:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;7925:25;7953:24;7971:4;7953:9;:24::i;:::-;7925:52;;8022:1;7999:20;:24;7996:402;;;8051:19;;;;;;;;;;;8048:270;;;8165:3;8153:8;;8126:24;8136:13;;;;;;;;;;;8126:9;:24::i;:::-;:35;;;;:::i;:::-;8125:43;;;;:::i;:::-;8102:20;:66;8099:196;;;8264:3;8252:8;;8225:24;8235:13;;;;;;;;;;;8225:9;:24::i;:::-;:35;;;;:::i;:::-;8224:43;;;;:::i;:::-;8201:66;;8099:196;8048:270;8340:38;8357:20;8340:16;:38::i;:::-;7996:402;8416:23;8442:21;8416:47;;8506:1;8485:18;:22;8482:105;;;8532:35;8545:21;8532:12;:35::i;:::-;8482:105;8613:5;8605:13;;7788:846;;7734:900;6673:1972;8655:12;8670:4;8655:19;;8688:18;:24;8707:4;8688:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8716:18;:22;8735:2;8716:22;;;;;;;;;;;;;;;;;;;;;;;;;8688:50;8685:96;;;8764:5;8754:15;;8685:96;8791:44;8806:4;8811:2;8814:6;8821:7;8829:5;8791:14;:44::i;:::-;6404:2439;;6338:2505;;;:::o;9347:139::-;9401:12;;;;;;;;;;;:21;;:33;9432:1;9423:6;:10;;;;:::i;:::-;9401:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9445:12;;;;;;;;;;;:21;;:33;9476:1;9467:6;:10;;;;:::i;:::-;9445:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9347:139;:::o;8851:480::-;4285:4;4275:7;;:14;;;;;;;;;;;;;;;;;;8926:21:::1;8964:1;8950:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8926:40;;8995:4;8977;8982:1;8977:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9021:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9011:4;9016:1;9011:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9054:62;9071:4;9086:15;;;;;;;;;;;9104:11;9054:8;:62::i;:::-;9127:15;;;;;;;;;;;:66;;;9208:11;9234:1;9250:4;9277;9297:15;9127:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8915:416;4322:5:::0;4312:7;;:15;;;;;;;;;;;;;;;;;;8851:480;:::o;9498:217::-;9614:8;9626:21;9634:7;9643:3;9626:7;:21::i;:::-;9613:34;;9658:49;9676:6;9684:9;9695:6;9703:3;9658:17;:49::i;:::-;9602:113;9498:217;;;;;:::o;9723:395::-;9786:4;9803:8;9814:1;9803:12;;9829:7;9826:264;;;9856:3;9853:226;;;9886:7;;9880:13;;9853:226;;;9940:8;;9934:14;;10003:7;9988:11;;:23;;;;:::i;:::-;9970:15;:41;9967:97;;;10043:1;10036:8;;;;;:::i;:::-;;;9967:97;9853:226;9826:264;10107:3;10100:10;;;9723:395;;;;:::o;10126:372::-;10231:19;10252:9;10265:23;10276:6;10284:3;10265:10;:23::i;:::-;10230:58;;;;10333:6;10316;:14;10323:6;10316:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;10299:6;:14;10306:6;10299:14;;;;;;;;;;;;;;;:40;;;;10390:14;10370:6;:17;10377:9;10370:17;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;10350:6;:17;10357:9;10350:17;;;;;;;;;;;;;;;:54;;;;10416:15;10426:4;10416:9;:15::i;:::-;10464:9;10447:43;;10456:6;10447:43;;;10475:14;10447:43;;;;;;:::i;:::-;;;;;;;;10219:279;;10126:372;;;;:::o;10506:222::-;10575:4;10581;10598:9;10631:3;10620:7;10611:6;:16;;;;:::i;:::-;10610:24;;;;:::i;:::-;10598:36;;10645:19;10676:4;10667:6;:13;;;;:::i;:::-;10645:35;;10699:14;10715:4;10691:29;;;;;;10506:222;;;;;:::o;10736:109::-;10833:4;10809:6;:21;10824:4;10809:21;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;10785:6;:21;10800:4;10785:21;;;;;;;;;;;;;;;:52;;;;10736:109;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1913:117::-;2022:1;2019;2012:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:329::-;2725:6;2774:2;2762:9;2753:7;2749:23;2745:32;2742:119;;;2780:79;;:::i;:::-;2742:119;2900:1;2925:53;2970:7;2961:6;2950:9;2946:22;2925:53;:::i;:::-;2915:63;;2871:117;2666:329;;;;:::o;3001:122::-;3074:24;3092:5;3074:24;:::i;:::-;3067:5;3064:35;3054:63;;3113:1;3110;3103:12;3054:63;3001:122;:::o;3129:139::-;3175:5;3213:6;3200:20;3191:29;;3229:33;3256:5;3229:33;:::i;:::-;3129:139;;;;:::o;3274:474::-;3342:6;3350;3399:2;3387:9;3378:7;3374:23;3370:32;3367:119;;;3405:79;;:::i;:::-;3367:119;3525:1;3550:53;3595:7;3586:6;3575:9;3571:22;3550:53;:::i;:::-;3540:63;;3496:117;3652:2;3678:53;3723:7;3714:6;3703:9;3699:22;3678:53;:::i;:::-;3668:63;;3623:118;3274:474;;;;;:::o;3754:90::-;3788:7;3831:5;3824:13;3817:21;3806:32;;3754:90;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::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:86::-;5321:7;5361:4;5354:5;5350:16;5339:27;;5286:86;;;:::o;5378:112::-;5461:22;5477:5;5461:22;:::i;:::-;5456:3;5449:35;5378:112;;:::o;5496:214::-;5585:4;5623:2;5612:9;5608:18;5600:26;;5636:67;5700:1;5689:9;5685:17;5676:6;5636:67;:::i;:::-;5496:214;;;;:::o;5716:104::-;5761:7;5790:24;5808:5;5790:24;:::i;:::-;5779:35;;5716:104;;;:::o;5826:142::-;5929:32;5955:5;5929:32;:::i;:::-;5924:3;5917:45;5826:142;;:::o;5974:254::-;6083:4;6121:2;6110:9;6106:18;6098:26;;6134:87;6218:1;6207:9;6203:17;6194:6;6134:87;:::i;:::-;5974:254;;;;:::o;6234:329::-;6293:6;6342:2;6330:9;6321:7;6317:23;6313:32;6310:119;;;6348:79;;:::i;:::-;6310:119;6468:1;6493:53;6538:7;6529:6;6518:9;6514:22;6493:53;:::i;:::-;6483:63;;6439:117;6234:329;;;;:::o;6569:118::-;6656:24;6674:5;6656:24;:::i;:::-;6651:3;6644:37;6569:118;;:::o;6693:222::-;6786:4;6824:2;6813:9;6809:18;6801:26;;6837:71;6905:1;6894:9;6890:17;6881:6;6837:71;:::i;:::-;6693:222;;;;:::o;6921:116::-;6991:21;7006:5;6991:21;:::i;:::-;6984:5;6981:32;6971:60;;7027:1;7024;7017:12;6971:60;6921:116;:::o;7043:133::-;7086:5;7124:6;7111:20;7102:29;;7140:30;7164:5;7140:30;:::i;:::-;7043:133;;;;:::o;7182:323::-;7238:6;7287:2;7275:9;7266:7;7262:23;7258:32;7255:119;;;7293:79;;:::i;:::-;7255:119;7413:1;7438:50;7480:7;7471:6;7460:9;7456:22;7438:50;:::i;:::-;7428:60;;7384:114;7182:323;;;;:::o;7511:474::-;7579:6;7587;7636:2;7624:9;7615:7;7611:23;7607:32;7604:119;;;7642:79;;:::i;:::-;7604:119;7762:1;7787:53;7832:7;7823:6;7812:9;7808:22;7787:53;:::i;:::-;7777:63;;7733:117;7889:2;7915:53;7960:7;7951:6;7940:9;7936:22;7915:53;:::i;:::-;7905:63;;7860:118;7511:474;;;;;:::o;7991:60::-;8019:3;8040:5;8033:12;;7991:60;;;:::o;8057:142::-;8107:9;8140:53;8158:34;8167:24;8185:5;8167:24;:::i;:::-;8158:34;:::i;:::-;8140:53;:::i;:::-;8127:66;;8057:142;;;:::o;8205:126::-;8255:9;8288:37;8319:5;8288:37;:::i;:::-;8275:50;;8205:126;;;:::o;8337:134::-;8395:9;8428:37;8459:5;8428:37;:::i;:::-;8415:50;;8337:134;;;:::o;8477:147::-;8572:45;8611:5;8572:45;:::i;:::-;8567:3;8560:58;8477:147;;:::o;8630:238::-;8731:4;8769:2;8758:9;8754:18;8746:26;;8782:79;8858:1;8847:9;8843:17;8834:6;8782:79;:::i;:::-;8630:238;;;;:::o;8874:182::-;9014:34;9010:1;9002:6;8998:14;8991:58;8874:182;:::o;9062:366::-;9204:3;9225:67;9289:2;9284:3;9225:67;:::i;:::-;9218:74;;9301:93;9390:3;9301:93;:::i;:::-;9419:2;9414:3;9410:12;9403:19;;9062:366;;;:::o;9434:419::-;9600:4;9638:2;9627:9;9623:18;9615:26;;9687:9;9681:4;9677:20;9673:1;9662:9;9658:17;9651:47;9715:131;9841:4;9715:131;:::i;:::-;9707:139;;9434:419;;;:::o;9859:332::-;9980:4;10018:2;10007:9;10003:18;9995:26;;10031:71;10099:1;10088:9;10084:17;10075:6;10031:71;:::i;:::-;10112:72;10180:2;10169:9;10165:18;10156:6;10112:72;:::i;:::-;9859:332;;;;;:::o;10197:160::-;10337:12;10333:1;10325:6;10321:14;10314:36;10197:160;:::o;10363:366::-;10505:3;10526:67;10590:2;10585:3;10526:67;:::i;:::-;10519:74;;10602:93;10691:3;10602:93;:::i;:::-;10720:2;10715:3;10711:12;10704:19;;10363:366;;;:::o;10735:419::-;10901:4;10939:2;10928:9;10924:18;10916:26;;10988:9;10982:4;10978:20;10974:1;10963:9;10959:17;10952:47;11016:131;11142:4;11016:131;:::i;:::-;11008:139;;10735:419;;;:::o;11160:180::-;11208:77;11205:1;11198:88;11305:4;11302:1;11295:15;11329:4;11326:1;11319:15;11346:191;11386:4;11406:20;11424:1;11406:20;:::i;:::-;11401:25;;11440:20;11458:1;11440:20;:::i;:::-;11435:25;;11479:1;11476;11473:8;11470:34;;;11484:18;;:::i;:::-;11470:34;11529:1;11526;11522:9;11514:17;;11346:191;;;;:::o;11543:168::-;11683:20;11679:1;11671:6;11667:14;11660:44;11543:168;:::o;11717:366::-;11859:3;11880:67;11944:2;11939:3;11880:67;:::i;:::-;11873:74;;11956:93;12045:3;11956:93;:::i;:::-;12074:2;12069:3;12065:12;12058:19;;11717:366;;;:::o;12089:419::-;12255:4;12293:2;12282:9;12278:18;12270:26;;12342:9;12336:4;12332:20;12328:1;12317:9;12313:17;12306:47;12370:131;12496:4;12370:131;:::i;:::-;12362:139;;12089:419;;;:::o;12514:173::-;12654:25;12650:1;12642:6;12638:14;12631:49;12514:173;:::o;12693:366::-;12835:3;12856:67;12920:2;12915:3;12856:67;:::i;:::-;12849:74;;12932:93;13021:3;12932:93;:::i;:::-;13050:2;13045:3;13041:12;13034:19;;12693:366;;;:::o;13065:419::-;13231:4;13269:2;13258:9;13254:18;13246:26;;13318:9;13312:4;13308:20;13304:1;13293:9;13289:17;13282:47;13346:131;13472:4;13346:131;:::i;:::-;13338:139;;13065:419;;;:::o;13490:143::-;13547:5;13578:6;13572:13;13563:22;;13594:33;13621:5;13594:33;:::i;:::-;13490:143;;;;:::o;13639:351::-;13709:6;13758:2;13746:9;13737:7;13733:23;13729:32;13726:119;;;13764:79;;:::i;:::-;13726:119;13884:1;13909:64;13965:7;13956:6;13945:9;13941:22;13909:64;:::i;:::-;13899:74;;13855:128;13639:351;;;;:::o;13996:332::-;14117:4;14155:2;14144:9;14140:18;14132:26;;14168:71;14236:1;14225:9;14221:17;14212:6;14168:71;:::i;:::-;14249:72;14317:2;14306:9;14302:18;14293:6;14249:72;:::i;:::-;13996:332;;;;;:::o;14334:85::-;14379:7;14408:5;14397:16;;14334:85;;;:::o;14425:158::-;14483:9;14516:61;14534:42;14543:32;14569:5;14543:32;:::i;:::-;14534:42;:::i;:::-;14516:61;:::i;:::-;14503:74;;14425:158;;;:::o;14589:147::-;14684:45;14723:5;14684:45;:::i;:::-;14679:3;14672:58;14589:147;;:::o;14742:807::-;14991:4;15029:3;15018:9;15014:19;15006:27;;15043:71;15111:1;15100:9;15096:17;15087:6;15043:71;:::i;:::-;15124:72;15192:2;15181:9;15177:18;15168:6;15124:72;:::i;:::-;15206:80;15282:2;15271:9;15267:18;15258:6;15206:80;:::i;:::-;15296;15372:2;15361:9;15357:18;15348:6;15296:80;:::i;:::-;15386:73;15454:3;15443:9;15439:19;15430:6;15386:73;:::i;:::-;15469;15537:3;15526:9;15522:19;15513:6;15469:73;:::i;:::-;14742:807;;;;;;;;;:::o;15555:143::-;15612:5;15643:6;15637:13;15628:22;;15659:33;15686:5;15659:33;:::i;:::-;15555:143;;;;:::o;15704:663::-;15792:6;15800;15808;15857:2;15845:9;15836:7;15832:23;15828:32;15825:119;;;15863:79;;:::i;:::-;15825:119;15983:1;16008:64;16064:7;16055:6;16044:9;16040:22;16008:64;:::i;:::-;15998:74;;15954:128;16121:2;16147:64;16203:7;16194:6;16183:9;16179:22;16147:64;:::i;:::-;16137:74;;16092:129;16260:2;16286:64;16342:7;16333:6;16322:9;16318:22;16286:64;:::i;:::-;16276:74;;16231:129;15704:663;;;;;:::o;16373:332::-;16494:4;16532:2;16521:9;16517:18;16509:26;;16545:71;16613:1;16602:9;16598:17;16589:6;16545:71;:::i;:::-;16626:72;16694:2;16683:9;16679:18;16670:6;16626:72;:::i;:::-;16373:332;;;;;:::o;16711:137::-;16765:5;16796:6;16790:13;16781:22;;16812:30;16836:5;16812:30;:::i;:::-;16711:137;;;;:::o;16854:345::-;16921:6;16970:2;16958:9;16949:7;16945:23;16941:32;16938:119;;;16976:79;;:::i;:::-;16938:119;17096:1;17121:61;17174:7;17165:6;17154:9;17150:22;17121:61;:::i;:::-;17111:71;;17067:125;16854:345;;;;:::o;17205:223::-;17345:34;17341:1;17333:6;17329:14;17322:58;17414:6;17409:2;17401:6;17397:15;17390:31;17205:223;:::o;17434:366::-;17576:3;17597:67;17661:2;17656:3;17597:67;:::i;:::-;17590:74;;17673:93;17762:3;17673:93;:::i;:::-;17791:2;17786:3;17782:12;17775:19;;17434:366;;;:::o;17806:419::-;17972:4;18010:2;17999:9;17995:18;17987:26;;18059:9;18053:4;18049:20;18045:1;18034:9;18030:17;18023:47;18087:131;18213:4;18087:131;:::i;:::-;18079:139;;17806:419;;;:::o;18231:221::-;18371:34;18367:1;18359:6;18355:14;18348:58;18440:4;18435:2;18427:6;18423:15;18416:29;18231:221;:::o;18458:366::-;18600:3;18621:67;18685:2;18680:3;18621:67;:::i;:::-;18614:74;;18697:93;18786:3;18697:93;:::i;:::-;18815:2;18810:3;18806:12;18799:19;;18458:366;;;:::o;18830:419::-;18996:4;19034:2;19023:9;19019:18;19011:26;;19083:9;19077:4;19073:20;19069:1;19058:9;19054:17;19047:47;19111:131;19237:4;19111:131;:::i;:::-;19103:139;;18830:419;;;:::o;19255:224::-;19395:34;19391:1;19383:6;19379:14;19372:58;19464:7;19459:2;19451:6;19447:15;19440:32;19255:224;:::o;19485:366::-;19627:3;19648:67;19712:2;19707:3;19648:67;:::i;:::-;19641:74;;19724:93;19813:3;19724:93;:::i;:::-;19842:2;19837:3;19833:12;19826:19;;19485:366;;;:::o;19857:419::-;20023:4;20061:2;20050:9;20046:18;20038:26;;20110:9;20104:4;20100:20;20096:1;20085:9;20081:17;20074:47;20138:131;20264:4;20138:131;:::i;:::-;20130:139;;19857:419;;;:::o;20282:222::-;20422:34;20418:1;20410:6;20406:14;20399:58;20491:5;20486:2;20478:6;20474:15;20467:30;20282:222;:::o;20510:366::-;20652:3;20673:67;20737:2;20732:3;20673:67;:::i;:::-;20666:74;;20749:93;20838:3;20749:93;:::i;:::-;20867:2;20862:3;20858:12;20851:19;;20510:366;;;:::o;20882:419::-;21048:4;21086:2;21075:9;21071:18;21063:26;;21135:9;21129:4;21125:20;21121:1;21110:9;21106:17;21099:47;21163:131;21289:4;21163:131;:::i;:::-;21155:139;;20882:419;;;:::o;21307:228::-;21447:34;21443:1;21435:6;21431:14;21424:58;21516:11;21511:2;21503:6;21499:15;21492:36;21307:228;:::o;21541:366::-;21683:3;21704:67;21768:2;21763:3;21704:67;:::i;:::-;21697:74;;21780:93;21869:3;21780:93;:::i;:::-;21898:2;21893:3;21889:12;21882:19;;21541:366;;;:::o;21913:419::-;22079:4;22117:2;22106:9;22102:18;22094:26;;22166:9;22160:4;22156:20;22152:1;22141:9;22137:17;22130:47;22194:131;22320:4;22194:131;:::i;:::-;22186:139;;21913:419;;;:::o;22338:174::-;22478:26;22474:1;22466:6;22462:14;22455:50;22338:174;:::o;22518:366::-;22660:3;22681:67;22745:2;22740:3;22681:67;:::i;:::-;22674:74;;22757:93;22846:3;22757:93;:::i;:::-;22875:2;22870:3;22866:12;22859:19;;22518:366;;;:::o;22890:419::-;23056:4;23094:2;23083:9;23079:18;23071:26;;23143:9;23137:4;23133:20;23129:1;23118:9;23114:17;23107:47;23171:131;23297:4;23171:131;:::i;:::-;23163:139;;22890:419;;;:::o;23315:161::-;23455:13;23451:1;23443:6;23439:14;23432:37;23315:161;:::o;23482:366::-;23624:3;23645:67;23709:2;23704:3;23645:67;:::i;:::-;23638:74;;23721:93;23810:3;23721:93;:::i;:::-;23839:2;23834:3;23830:12;23823:19;;23482:366;;;:::o;23854:419::-;24020:4;24058:2;24047:9;24043:18;24035:26;;24107:9;24101:4;24097:20;24093:1;24082:9;24078:17;24071:47;24135:131;24261:4;24135:131;:::i;:::-;24127:139;;23854:419;;;:::o;24279:305::-;24319:3;24338:20;24356:1;24338:20;:::i;:::-;24333:25;;24372:20;24390:1;24372:20;:::i;:::-;24367:25;;24526:1;24458:66;24454:74;24451:1;24448:81;24445:107;;;24532:18;;:::i;:::-;24445:107;24576:1;24573;24569:9;24562:16;;24279:305;;;;:::o;24590:226::-;24730:34;24726:1;24718:6;24714:14;24707:58;24799:9;24794:2;24786:6;24782:15;24775:34;24590:226;:::o;24822:366::-;24964:3;24985:67;25049:2;25044:3;24985:67;:::i;:::-;24978:74;;25061:93;25150:3;25061:93;:::i;:::-;25179:2;25174:3;25170:12;25163:19;;24822:366;;;:::o;25194:419::-;25360:4;25398:2;25387:9;25383:18;25375:26;;25447:9;25441:4;25437:20;25433:1;25422:9;25418:17;25411:47;25475:131;25601:4;25475:131;:::i;:::-;25467:139;;25194:419;;;:::o;25619:177::-;25759:29;25755:1;25747:6;25743:14;25736:53;25619:177;:::o;25802:366::-;25944:3;25965:67;26029:2;26024:3;25965:67;:::i;:::-;25958:74;;26041:93;26130:3;26041:93;:::i;:::-;26159:2;26154:3;26150:12;26143:19;;25802:366;;;:::o;26174:419::-;26340:4;26378:2;26367:9;26363:18;26355:26;;26427:9;26421:4;26417:20;26413:1;26402:9;26398:17;26391:47;26455:131;26581:4;26455:131;:::i;:::-;26447:139;;26174:419;;;:::o;26599:221::-;26739:34;26735:1;26727:6;26723:14;26716:58;26808:4;26803:2;26795:6;26791:15;26784:29;26599:221;:::o;26826:366::-;26968:3;26989:67;27053:2;27048:3;26989:67;:::i;:::-;26982:74;;27065:93;27154:3;27065:93;:::i;:::-;27183:2;27178:3;27174:12;27167:19;;26826:366;;;:::o;27198:419::-;27364:4;27402:2;27391:9;27387:18;27379:26;;27451:9;27445:4;27441:20;27437:1;27426:9;27422:17;27415:47;27479:131;27605:4;27479:131;:::i;:::-;27471:139;;27198:419;;;:::o;27623:222::-;27763:34;27759:1;27751:6;27747:14;27740:58;27832:5;27827:2;27819:6;27815:15;27808:30;27623:222;:::o;27851:366::-;27993:3;28014:67;28078:2;28073:3;28014:67;:::i;:::-;28007:74;;28090:93;28179:3;28090:93;:::i;:::-;28208:2;28203:3;28199:12;28192:19;;27851:366;;;:::o;28223:419::-;28389:4;28427:2;28416:9;28412:18;28404:26;;28476:9;28470:4;28466:20;28462:1;28451:9;28447:17;28440:47;28504:131;28630:4;28504:131;:::i;:::-;28496:139;;28223:419;;;:::o;28648:348::-;28688:7;28711:20;28729:1;28711:20;:::i;:::-;28706:25;;28745:20;28763:1;28745:20;:::i;:::-;28740:25;;28933:1;28865:66;28861:74;28858:1;28855:81;28850:1;28843:9;28836:17;28832:105;28829:131;;;28940:18;;:::i;:::-;28829:131;28988:1;28985;28981:9;28970:20;;28648:348;;;;:::o;29002:180::-;29050:77;29047:1;29040:88;29147:4;29144:1;29137:15;29171:4;29168:1;29161:15;29188:185;29228:1;29245:20;29263:1;29245:20;:::i;:::-;29240:25;;29279:20;29297:1;29279:20;:::i;:::-;29274:25;;29318:1;29308:35;;29323:18;;:::i;:::-;29308:35;29365:1;29362;29358:9;29353:14;;29188:185;;;;:::o;29379:180::-;29427:77;29424:1;29417:88;29524:4;29521:1;29514:15;29548:4;29545:1;29538:15;29565:180;29613:77;29610:1;29603:88;29710:4;29707:1;29700:15;29734:4;29731:1;29724:15;29751:114;29818:6;29852:5;29846:12;29836:22;;29751:114;;;:::o;29871:184::-;29970:11;30004:6;29999:3;29992:19;30044:4;30039:3;30035:14;30020:29;;29871:184;;;;:::o;30061:132::-;30128:4;30151:3;30143:11;;30181:4;30176:3;30172:14;30164:22;;30061:132;;;:::o;30199:108::-;30276:24;30294:5;30276:24;:::i;:::-;30271:3;30264:37;30199:108;;:::o;30313:179::-;30382:10;30403:46;30445:3;30437:6;30403:46;:::i;:::-;30481:4;30476:3;30472:14;30458:28;;30313:179;;;;:::o;30498:113::-;30568:4;30600;30595:3;30591:14;30583:22;;30498:113;;;:::o;30647:732::-;30766:3;30795:54;30843:5;30795:54;:::i;:::-;30865:86;30944:6;30939:3;30865:86;:::i;:::-;30858:93;;30975:56;31025:5;30975:56;:::i;:::-;31054:7;31085:1;31070:284;31095:6;31092:1;31089:13;31070:284;;;31171:6;31165:13;31198:63;31257:3;31242:13;31198:63;:::i;:::-;31191:70;;31284:60;31337:6;31284:60;:::i;:::-;31274:70;;31130:224;31117:1;31114;31110:9;31105:14;;31070:284;;;31074:14;31370:3;31363:10;;30771:608;;;30647:732;;;;:::o;31385:831::-;31648:4;31686:3;31675:9;31671:19;31663:27;;31700:71;31768:1;31757:9;31753:17;31744:6;31700:71;:::i;:::-;31781:80;31857:2;31846:9;31842:18;31833:6;31781:80;:::i;:::-;31908:9;31902:4;31898:20;31893:2;31882:9;31878:18;31871:48;31936:108;32039:4;32030:6;31936:108;:::i;:::-;31928:116;;32054:72;32122:2;32111:9;32107:18;32098:6;32054:72;:::i;:::-;32136:73;32204:3;32193:9;32189:19;32180:6;32136:73;:::i;:::-;31385:831;;;;;;;;:::o

Swarm Source

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