ETH Price: $2,526.99 (-0.05%)

Token

Benjiro Inu (BENJIRO)
 

Overview

Max Total Supply

1,000,000,000,000 BENJIRO

Holders

107

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,355,224.493388954 BENJIRO

Value
$0.00
0x5d9feaD196E96E6bB14B699AFD20b3cd37451e90
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:
BENJIRO

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-03
*/

/**

Benjiro Inu - an ERC20 memecoin

https://t.me/BenjiroInu

https://benjiroinu.com
                                                        
* TOKENOMICS
 * 1,000,000,000,000 token supply
 * FIRST TWO MINUTES: 5,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
 * 10% tax on buys and sells
 * 15% fee on sells within first (1) hour post-launch
 * Max wallet of 5% 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 BENJIRO 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"Benjiro Inu"; ////
    string public constant symbol = unicode"BENJIRO"; ////
    uint8 public constant decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;

    address payable public _FeeAddress1;
    address payable public _FeeAddress2;
    address public uniswapV2Pair;
    uint public _buyFee = 10;
    uint public _sellFee = 10;
    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 += 5;
                }
            }
        }
        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 = 5000000001 * 10**9; // .5%
        _maxHeldTokens = 50000000000 * 10**9; // 5%
    }

    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 {
        require(_msgSender() == _FeeAddress1);
        require(buy < 10 && sell < 10 && buy < _buyFee && sell < _sellFee, "Don't be greedy.");
        _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"}]

6080604052600a8055600a600b556009600c556001601060026101000a81548160ff0219169083151502179055503480156200003a57600080fd5b5060405162003fe738038062003fe7833981810160405281019062000060919062000462565b600062000072620003c760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550683635c9adc5dea00000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620001f5620003cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620003b79190620004c4565b60405180910390a35050620004e1565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200042a82620003fd565b9050919050565b6200043c816200041d565b81146200044857600080fd5b50565b6000815190506200045c8162000431565b92915050565b600080604083850312156200047c576200047b620003f8565b5b60006200048c858286016200044b565b92505060206200049f858286016200044b565b9150509250929050565b6000819050919050565b620004be81620004a9565b82525050565b6000602082019050620004db6000830184620004b3565b92915050565b613af680620004f16000396000f3fe6080604052600436106101e75760003560e01c80635090161711610102578063a9059cbb11610095578063db92dbb611610064578063db92dbb614610697578063dcb0e0ad146106c2578063dd62ed3e146106eb578063e8078d9414610728576101ee565b8063a9059cbb14610601578063b2131f7d1461063e578063c3c8cd8014610669578063c9567bf914610680576101ee565b8063715018a6116100d1578063715018a6146105695780638da5cb5b1461058057806394b8d8f2146105ab57806395d89b41146105d6576101ee565b806350901617146104c1578063590f897e146104ea5780636fc3eaec1461051557806370a082311461052c576101ee565b806327f3a72a1161017a5780633bed4355116101495780633bed43551461041757806340b9a54b1461044257806345596e2e1461046d57806349bd5a5e14610496576101ee565b806327f3a72a1461036b578063313ce5671461039657806332d873d8146103c1578063367c5544146103ec576101ee565b80630b78f9c0116101b65780630b78f9c0146102af57806318160ddd146102d85780631940d0201461030357806323b872dd1461032e576101ee565b80630492f055146101f357806306fdde031461021e5780630802d2f614610249578063095ea7b314610272576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861073f565b604051610215919061296c565b60405180910390f35b34801561022a57600080fd5b50610233610745565b6040516102409190612a20565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612aa5565b61077e565b005b34801561027e57600080fd5b5061029960048036038101906102949190612afe565b61087c565b6040516102a69190612b59565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d19190612b74565b61089a565b005b3480156102e457600080fd5b506102ed6109b3565b6040516102fa919061296c565b60405180910390f35b34801561030f57600080fd5b506103186109c4565b604051610325919061296c565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612bb4565b6109ca565b6040516103629190612b59565b60405180910390f35b34801561037757600080fd5b50610380610bbb565b60405161038d919061296c565b60405180910390f35b3480156103a257600080fd5b506103ab610bcb565b6040516103b89190612c23565b60405180910390f35b3480156103cd57600080fd5b506103d6610bd0565b6040516103e3919061296c565b60405180910390f35b3480156103f857600080fd5b50610401610bd6565b60405161040e9190612c5f565b60405180910390f35b34801561042357600080fd5b5061042c610bfc565b6040516104399190612c5f565b60405180910390f35b34801561044e57600080fd5b50610457610c22565b604051610464919061296c565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190612c7a565b610c28565b005b3480156104a257600080fd5b506104ab610d0f565b6040516104b89190612cb6565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190612aa5565b610d35565b005b3480156104f657600080fd5b506104ff610e33565b60405161050c919061296c565b60405180910390f35b34801561052157600080fd5b5061052a610e39565b005b34801561053857600080fd5b50610553600480360381019061054e9190612aa5565b610eab565b604051610560919061296c565b60405180910390f35b34801561057557600080fd5b5061057e610ef4565b005b34801561058c57600080fd5b50610595611047565b6040516105a29190612cb6565b60405180910390f35b3480156105b757600080fd5b506105c0611070565b6040516105cd9190612b59565b60405180910390f35b3480156105e257600080fd5b506105eb611083565b6040516105f89190612a20565b60405180910390f35b34801561060d57600080fd5b5061062860048036038101906106239190612afe565b6110bc565b6040516106359190612b59565b60405180910390f35b34801561064a57600080fd5b506106536110da565b604051610660919061296c565b60405180910390f35b34801561067557600080fd5b5061067e6110e0565b005b34801561068c57600080fd5b5061069561115a565b005b3480156106a357600080fd5b506106ac611282565b6040516106b9919061296c565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612cfd565b6112b4565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612d2a565b611378565b60405161071f919061296c565b60405180910390f35b34801561073457600080fd5b5061073d6113ff565b005b600d5481565b6040518060400160405280600b81526020017f42656e6a69726f20496e7500000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107bf6118b0565b73ffffffffffffffffffffffffffffffffffffffff16146107df57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e96f8986653644392af4a5daec8b04a389af0d497572173e63846ccd26c843c600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516108719190612dc9565b60405180910390a150565b60006108906108896118b0565b84846118b8565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108db6118b0565b73ffffffffffffffffffffffffffffffffffffffff16146108fb57600080fd5b600a8210801561090b5750600a81105b80156109185750600a5482105b80156109255750600b5481105b610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b90612e30565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b546040516109a7929190612e50565b60405180910390a15050565b6000683635c9adc5dea00000905090565b600e5481565b6000601060009054906101000a900460ff168015610a325750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a8b5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610aff573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af590612ec5565b60405180910390fd5b5b610b0a848484611a83565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b566118b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b9b9190612f14565b9050610baf85610ba96118b0565b836118b8565b60019150509392505050565b6000610bc630610eab565b905090565b600981565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c696118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610c8957600080fd5b60008111610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc390612f94565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610d04919061296c565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d766118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610d9657600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f96511497113ddf59712b28350d7457b9c300ab227616bd3b451745a395a53014600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610e289190612dc9565b60405180910390a150565b600b5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7a6118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610e9a57600080fd5b6000479050610ea881612304565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610efc6118b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8090613000565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600781526020017f42454e4a49524f0000000000000000000000000000000000000000000000000081525081565b60006110d06110c96118b0565b8484611a83565b6001905092915050565b600c5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111216118b0565b73ffffffffffffffffffffffffffffffffffffffff161461114157600080fd5b600061114c30610eab565b9050611157816123f1565b50565b6111626118b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e690613000565b60405180910390fd5b601060009054906101000a900460ff161561123f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112369061306c565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f819055506745639182808eca00600d819055506802b5e3af16b1880000600e81905550565b60006112af600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610eab565b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f56118b0565b73ffffffffffffffffffffffffffffffffffffffff161461131557600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff1660405161136d9190612b59565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114076118b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148b90613000565b60405180910390fd5b601060009054906101000a900460ff16156114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db9061306c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061157430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006118b8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e391906130a1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166e91906130a1565b6040518363ffffffff1660e01b815260040161168b9291906130ce565b6020604051808303816000875af11580156116aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ce91906130a1565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061175730610eab565b600080611762611047565b426040518863ffffffff1660e01b815260040161178496959493929190613132565b60606040518083038185885af11580156117a2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117c791906131a8565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016118699291906131fb565b6020604051808303816000875af1158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190613239565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f906132d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f9061336a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a76919061296c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea906133fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a9061348e565b60405180910390fd5b60008111611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d90613520565b60405180910390fd5b6000611bb0611047565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c1e5750611bee611047565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561223f57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cce5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d245750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203f57601060009054906101000a900460ff16611d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6f9061358c565b60405180910390fd5b600f54421415611dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db4906135f8565b60405180910390fd5b42610e10600f54611dce9190613618565b1115611e2d57600e54611de084610eab565b83611deb9190613618565b1115611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e23906136e0565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16611f075760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b426078600f54611f179190613618565b1115611ff357600d54821115611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f599061374c565b60405180910390fd5b601e42611f6f9190613618565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe9906137de565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff161580156120685750601060009054906101000a900460ff165b80156120c25750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561223e57600f426120d49190613618565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214e90613870565b60405180910390fd5b600061216230610eab565b9050600081111561221f57601060029054906101000a900460ff1615612215576064600c546121b2600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610eab565b6121bc9190613890565b6121c69190613919565b811115612214576064600c546121fd600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610eab565b6122079190613890565b6122119190613919565b90505b5b61221e816123f1565b5b600047905060008111156122375761223647612304565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122e65750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122f057600090505b6122fd858585848661266a565b5050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361234d9190613919565b9081150290604051600060405180830381858888f19350505050158015612378573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836123c29190613919565b9081150290604051600060405180830381858888f193505050501580156123ed573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124295761242861394a565b5b6040519080825280602002602001820160405280156124575781602001602082028036833780820191505090505b509050308160008151811061246f5761246e613979565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253a91906130a1565b8160018151811061254e5761254d613979565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125b530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612619959493929190613a66565b600060405180830381600087803b15801561263357600080fd5b505af1158015612647573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b6000612676838361268c565b9050612684868686846126e1565b505050505050565b6000806000905083156126d75782156126a957600a5490506126d6565b600b549050610e10600f546126be9190613618565b4210156126d5576005816126d29190613618565b90505b5b5b8091505092915050565b6000806126ee8484612884565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273d9190612f14565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb9190613618565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612817816128c2565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612874919061296c565b60405180910390a3505050505050565b6000806000606484866128979190613890565b6128a19190613919565b9050600081866128b19190612f14565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290d9190613618565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b61296681612953565b82525050565b6000602082019050612981600083018461295d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129c15780820151818401526020810190506129a6565b838111156129d0576000848401525b50505050565b6000601f19601f8301169050919050565b60006129f282612987565b6129fc8185612992565b9350612a0c8185602086016129a3565b612a15816129d6565b840191505092915050565b60006020820190508181036000830152612a3a81846129e7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7282612a47565b9050919050565b612a8281612a67565b8114612a8d57600080fd5b50565b600081359050612a9f81612a79565b92915050565b600060208284031215612abb57612aba612a42565b5b6000612ac984828501612a90565b91505092915050565b612adb81612953565b8114612ae657600080fd5b50565b600081359050612af881612ad2565b92915050565b60008060408385031215612b1557612b14612a42565b5b6000612b2385828601612a90565b9250506020612b3485828601612ae9565b9150509250929050565b60008115159050919050565b612b5381612b3e565b82525050565b6000602082019050612b6e6000830184612b4a565b92915050565b60008060408385031215612b8b57612b8a612a42565b5b6000612b9985828601612ae9565b9250506020612baa85828601612ae9565b9150509250929050565b600080600060608486031215612bcd57612bcc612a42565b5b6000612bdb86828701612a90565b9350506020612bec86828701612a90565b9250506040612bfd86828701612ae9565b9150509250925092565b600060ff82169050919050565b612c1d81612c07565b82525050565b6000602082019050612c386000830184612c14565b92915050565b6000612c4982612a47565b9050919050565b612c5981612c3e565b82525050565b6000602082019050612c746000830184612c50565b92915050565b600060208284031215612c9057612c8f612a42565b5b6000612c9e84828501612ae9565b91505092915050565b612cb081612a67565b82525050565b6000602082019050612ccb6000830184612ca7565b92915050565b612cda81612b3e565b8114612ce557600080fd5b50565b600081359050612cf781612cd1565b92915050565b600060208284031215612d1357612d12612a42565b5b6000612d2184828501612ce8565b91505092915050565b60008060408385031215612d4157612d40612a42565b5b6000612d4f85828601612a90565b9250506020612d6085828601612a90565b9150509250929050565b6000819050919050565b6000612d8f612d8a612d8584612a47565b612d6a565b612a47565b9050919050565b6000612da182612d74565b9050919050565b6000612db382612d96565b9050919050565b612dc381612da8565b82525050565b6000602082019050612dde6000830184612dba565b92915050565b7f446f6e2774206265206772656564792e00000000000000000000000000000000600082015250565b6000612e1a601083612992565b9150612e2582612de4565b602082019050919050565b60006020820190508181036000830152612e4981612e0d565b9050919050565b6000604082019050612e65600083018561295d565b612e72602083018461295d565b9392505050565b7f706c73206e6f20626f7400000000000000000000000000000000000000000000600082015250565b6000612eaf600a83612992565b9150612eba82612e79565b602082019050919050565b60006020820190508181036000830152612ede81612ea2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f1f82612953565b9150612f2a83612953565b925082821015612f3d57612f3c612ee5565b5b828203905092915050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000612f7e601283612992565b9150612f8982612f48565b602082019050919050565b60006020820190508181036000830152612fad81612f71565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fea602083612992565b9150612ff582612fb4565b602082019050919050565b6000602082019050818103600083015261301981612fdd565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613056601783612992565b915061306182613020565b602082019050919050565b6000602082019050818103600083015261308581613049565b9050919050565b60008151905061309b81612a79565b92915050565b6000602082840312156130b7576130b6612a42565b5b60006130c58482850161308c565b91505092915050565b60006040820190506130e36000830185612ca7565b6130f06020830184612ca7565b9392505050565b6000819050919050565b600061311c613117613112846130f7565b612d6a565b612953565b9050919050565b61312c81613101565b82525050565b600060c0820190506131476000830189612ca7565b613154602083018861295d565b6131616040830187613123565b61316e6060830186613123565b61317b6080830185612ca7565b61318860a083018461295d565b979650505050505050565b6000815190506131a281612ad2565b92915050565b6000806000606084860312156131c1576131c0612a42565b5b60006131cf86828701613193565b93505060206131e086828701613193565b92505060406131f186828701613193565b9150509250925092565b60006040820190506132106000830185612ca7565b61321d602083018461295d565b9392505050565b60008151905061323381612cd1565b92915050565b60006020828403121561324f5761324e612a42565b5b600061325d84828501613224565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132c2602483612992565b91506132cd82613266565b604082019050919050565b600060208201905081810360008301526132f1816132b5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613354602283612992565b915061335f826132f8565b604082019050919050565b6000602082019050818103600083015261338381613347565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133e6602583612992565b91506133f18261338a565b604082019050919050565b60006020820190508181036000830152613415816133d9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613478602383612992565b91506134838261341c565b604082019050919050565b600060208201905081810360008301526134a78161346b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061350a602983612992565b9150613515826134ae565b604082019050919050565b60006020820190508181036000830152613539816134fd565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613576601883612992565b915061358182613540565b602082019050919050565b600060208201905081810360008301526135a581613569565b9050919050565b7f706c73206e6f20736e6970000000000000000000000000000000000000000000600082015250565b60006135e2600b83612992565b91506135ed826135ac565b602082019050919050565b60006020820190508181036000830152613611816135d5565b9050919050565b600061362382612953565b915061362e83612953565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561366357613662612ee5565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b60006136ca602783612992565b91506136d58261366e565b604082019050919050565b600060208201905081810360008301526136f9816136bd565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b6000613736601b83612992565b915061374182613700565b602082019050919050565b6000602082019050818103600083015261376581613729565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b60006137c8602283612992565b91506137d38261376c565b604082019050919050565b600060208201905081810360008301526137f7816137bb565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b600061385a602383612992565b9150613865826137fe565b604082019050919050565b600060208201905081810360008301526138898161384d565b9050919050565b600061389b82612953565b91506138a683612953565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138df576138de612ee5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061392482612953565b915061392f83612953565b92508261393f5761393e6138ea565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139dd81612a67565b82525050565b60006139ef83836139d4565b60208301905092915050565b6000602082019050919050565b6000613a13826139a8565b613a1d81856139b3565b9350613a28836139c4565b8060005b83811015613a59578151613a4088826139e3565b9750613a4b836139fb565b925050600181019050613a2c565b5085935050505092915050565b600060a082019050613a7b600083018861295d565b613a886020830187613123565b8181036040830152613a9a8186613a08565b9050613aa96060830185612ca7565b613ab6608083018461295d565b969550505050505056fea2646970667358221220d5e40776cfc9f70d55827ca328a7021ef60c7063ca74663c78ec867f359bf61d64736f6c634300080a0033000000000000000000000000f67005908089e8422df69fa1078909b9524df18f00000000000000000000000099ea9cdc40fe4f889d00a1ab680821b92afa831b

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80635090161711610102578063a9059cbb11610095578063db92dbb611610064578063db92dbb614610697578063dcb0e0ad146106c2578063dd62ed3e146106eb578063e8078d9414610728576101ee565b8063a9059cbb14610601578063b2131f7d1461063e578063c3c8cd8014610669578063c9567bf914610680576101ee565b8063715018a6116100d1578063715018a6146105695780638da5cb5b1461058057806394b8d8f2146105ab57806395d89b41146105d6576101ee565b806350901617146104c1578063590f897e146104ea5780636fc3eaec1461051557806370a082311461052c576101ee565b806327f3a72a1161017a5780633bed4355116101495780633bed43551461041757806340b9a54b1461044257806345596e2e1461046d57806349bd5a5e14610496576101ee565b806327f3a72a1461036b578063313ce5671461039657806332d873d8146103c1578063367c5544146103ec576101ee565b80630b78f9c0116101b65780630b78f9c0146102af57806318160ddd146102d85780631940d0201461030357806323b872dd1461032e576101ee565b80630492f055146101f357806306fdde031461021e5780630802d2f614610249578063095ea7b314610272576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861073f565b604051610215919061296c565b60405180910390f35b34801561022a57600080fd5b50610233610745565b6040516102409190612a20565b60405180910390f35b34801561025557600080fd5b50610270600480360381019061026b9190612aa5565b61077e565b005b34801561027e57600080fd5b5061029960048036038101906102949190612afe565b61087c565b6040516102a69190612b59565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d19190612b74565b61089a565b005b3480156102e457600080fd5b506102ed6109b3565b6040516102fa919061296c565b60405180910390f35b34801561030f57600080fd5b506103186109c4565b604051610325919061296c565b60405180910390f35b34801561033a57600080fd5b5061035560048036038101906103509190612bb4565b6109ca565b6040516103629190612b59565b60405180910390f35b34801561037757600080fd5b50610380610bbb565b60405161038d919061296c565b60405180910390f35b3480156103a257600080fd5b506103ab610bcb565b6040516103b89190612c23565b60405180910390f35b3480156103cd57600080fd5b506103d6610bd0565b6040516103e3919061296c565b60405180910390f35b3480156103f857600080fd5b50610401610bd6565b60405161040e9190612c5f565b60405180910390f35b34801561042357600080fd5b5061042c610bfc565b6040516104399190612c5f565b60405180910390f35b34801561044e57600080fd5b50610457610c22565b604051610464919061296c565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f9190612c7a565b610c28565b005b3480156104a257600080fd5b506104ab610d0f565b6040516104b89190612cb6565b60405180910390f35b3480156104cd57600080fd5b506104e860048036038101906104e39190612aa5565b610d35565b005b3480156104f657600080fd5b506104ff610e33565b60405161050c919061296c565b60405180910390f35b34801561052157600080fd5b5061052a610e39565b005b34801561053857600080fd5b50610553600480360381019061054e9190612aa5565b610eab565b604051610560919061296c565b60405180910390f35b34801561057557600080fd5b5061057e610ef4565b005b34801561058c57600080fd5b50610595611047565b6040516105a29190612cb6565b60405180910390f35b3480156105b757600080fd5b506105c0611070565b6040516105cd9190612b59565b60405180910390f35b3480156105e257600080fd5b506105eb611083565b6040516105f89190612a20565b60405180910390f35b34801561060d57600080fd5b5061062860048036038101906106239190612afe565b6110bc565b6040516106359190612b59565b60405180910390f35b34801561064a57600080fd5b506106536110da565b604051610660919061296c565b60405180910390f35b34801561067557600080fd5b5061067e6110e0565b005b34801561068c57600080fd5b5061069561115a565b005b3480156106a357600080fd5b506106ac611282565b6040516106b9919061296c565b60405180910390f35b3480156106ce57600080fd5b506106e960048036038101906106e49190612cfd565b6112b4565b005b3480156106f757600080fd5b50610712600480360381019061070d9190612d2a565b611378565b60405161071f919061296c565b60405180910390f35b34801561073457600080fd5b5061073d6113ff565b005b600d5481565b6040518060400160405280600b81526020017f42656e6a69726f20496e7500000000000000000000000000000000000000000081525081565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107bf6118b0565b73ffffffffffffffffffffffffffffffffffffffff16146107df57600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0e96f8986653644392af4a5daec8b04a389af0d497572173e63846ccd26c843c600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516108719190612dc9565b60405180910390a150565b60006108906108896118b0565b84846118b8565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108db6118b0565b73ffffffffffffffffffffffffffffffffffffffff16146108fb57600080fd5b600a8210801561090b5750600a81105b80156109185750600a5482105b80156109255750600b5481105b610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b90612e30565b60405180910390fd5b81600a8190555080600b819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600a54600b546040516109a7929190612e50565b60405180910390a15050565b6000683635c9adc5dea00000905090565b600e5481565b6000601060009054906101000a900460ff168015610a325750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a8b5750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610aff573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610afe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af590612ec5565b60405180910390fd5b5b610b0a848484611a83565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b566118b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b9b9190612f14565b9050610baf85610ba96118b0565b836118b8565b60019150509392505050565b6000610bc630610eab565b905090565b600981565b600f5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c696118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610c8957600080fd5b60008111610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc390612f94565b60405180910390fd5b80600c819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600c54604051610d04919061296c565b60405180910390a150565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d766118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610d9657600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f96511497113ddf59712b28350d7457b9c300ab227616bd3b451745a395a53014600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051610e289190612dc9565b60405180910390a150565b600b5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7a6118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610e9a57600080fd5b6000479050610ea881612304565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610efc6118b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8090613000565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601060029054906101000a900460ff1681565b6040518060400160405280600781526020017f42454e4a49524f0000000000000000000000000000000000000000000000000081525081565b60006110d06110c96118b0565b8484611a83565b6001905092915050565b600c5481565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111216118b0565b73ffffffffffffffffffffffffffffffffffffffff161461114157600080fd5b600061114c30610eab565b9050611157816123f1565b50565b6111626118b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e690613000565b60405180910390fd5b601060009054906101000a900460ff161561123f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112369061306c565b60405180910390fd5b6001601060006101000a81548160ff02191690831515021790555042600f819055506745639182808eca00600d819055506802b5e3af16b1880000600e81905550565b60006112af600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610eab565b905090565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112f56118b0565b73ffffffffffffffffffffffffffffffffffffffff161461131557600080fd5b80601060026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601060029054906101000a900460ff1660405161136d9190612b59565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114076118b0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611494576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148b90613000565b60405180910390fd5b601060009054906101000a900460ff16156114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db9061306c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061157430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea000006118b8565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115bf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115e391906130a1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166e91906130a1565b6040518363ffffffff1660e01b815260040161168b9291906130ce565b6020604051808303816000875af11580156116aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116ce91906130a1565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061175730610eab565b600080611762611047565b426040518863ffffffff1660e01b815260040161178496959493929190613132565b60606040518083038185885af11580156117a2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906117c791906131a8565b505050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016118699291906131fb565b6020604051808303816000875af1158015611888573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ac9190613239565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f906132d8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611998576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198f9061336a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a76919061296c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea906133fc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5a9061348e565b60405180910390fd5b60008111611ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9d90613520565b60405180910390fd5b6000611bb0611047565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c1e5750611bee611047565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561223f57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cce5750600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d245750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561203f57601060009054906101000a900460ff16611d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6f9061358c565b60405180910390fd5b600f54421415611dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611db4906135f8565b60405180910390fd5b42610e10600f54611dce9190613618565b1115611e2d57600e54611de084610eab565b83611deb9190613618565b1115611e2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e23906136e0565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff16611f075760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b426078600f54611f179190613618565b1115611ff357600d54821115611f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f599061374c565b60405180910390fd5b601e42611f6f9190613618565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410611ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe9906137de565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601060019054906101000a900460ff161580156120685750601060009054906101000a900460ff165b80156120c25750600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561223e57600f426120d49190613618565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214e90613870565b60405180910390fd5b600061216230610eab565b9050600081111561221f57601060029054906101000a900460ff1615612215576064600c546121b2600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610eab565b6121bc9190613890565b6121c69190613919565b811115612214576064600c546121fd600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610eab565b6122079190613890565b6122119190613919565b90505b5b61221e816123f1565b5b600047905060008111156122375761223647612304565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806122e65750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156122f057600090505b6122fd858585848661266a565b5050505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361234d9190613919565b9081150290604051600060405180830381858888f19350505050158015612378573d6000803e3d6000fd5b50600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836123c29190613919565b9081150290604051600060405180830381858888f193505050501580156123ed573d6000803e3d6000fd5b5050565b6001601060016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124295761242861394a565b5b6040519080825280602002602001820160405280156124575781602001602082028036833780820191505090505b509050308160008151811061246f5761246e613979565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612516573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253a91906130a1565b8160018151811061254e5761254d613979565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125b530600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b8565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612619959493929190613a66565b600060405180830381600087803b15801561263357600080fd5b505af1158015612647573d6000803e3d6000fd5b50505050506000601060016101000a81548160ff02191690831515021790555050565b6000612676838361268c565b9050612684868686846126e1565b505050505050565b6000806000905083156126d75782156126a957600a5490506126d6565b600b549050610e10600f546126be9190613618565b4210156126d5576005816126d29190613618565b90505b5b5b8091505092915050565b6000806126ee8484612884565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273d9190612f14565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127cb9190613618565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612817816128c2565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612874919061296c565b60405180910390a3505050505050565b6000806000606484866128979190613890565b6128a19190613919565b9050600081866128b19190612f14565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461290d9190613618565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b61296681612953565b82525050565b6000602082019050612981600083018461295d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129c15780820151818401526020810190506129a6565b838111156129d0576000848401525b50505050565b6000601f19601f8301169050919050565b60006129f282612987565b6129fc8185612992565b9350612a0c8185602086016129a3565b612a15816129d6565b840191505092915050565b60006020820190508181036000830152612a3a81846129e7565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612a7282612a47565b9050919050565b612a8281612a67565b8114612a8d57600080fd5b50565b600081359050612a9f81612a79565b92915050565b600060208284031215612abb57612aba612a42565b5b6000612ac984828501612a90565b91505092915050565b612adb81612953565b8114612ae657600080fd5b50565b600081359050612af881612ad2565b92915050565b60008060408385031215612b1557612b14612a42565b5b6000612b2385828601612a90565b9250506020612b3485828601612ae9565b9150509250929050565b60008115159050919050565b612b5381612b3e565b82525050565b6000602082019050612b6e6000830184612b4a565b92915050565b60008060408385031215612b8b57612b8a612a42565b5b6000612b9985828601612ae9565b9250506020612baa85828601612ae9565b9150509250929050565b600080600060608486031215612bcd57612bcc612a42565b5b6000612bdb86828701612a90565b9350506020612bec86828701612a90565b9250506040612bfd86828701612ae9565b9150509250925092565b600060ff82169050919050565b612c1d81612c07565b82525050565b6000602082019050612c386000830184612c14565b92915050565b6000612c4982612a47565b9050919050565b612c5981612c3e565b82525050565b6000602082019050612c746000830184612c50565b92915050565b600060208284031215612c9057612c8f612a42565b5b6000612c9e84828501612ae9565b91505092915050565b612cb081612a67565b82525050565b6000602082019050612ccb6000830184612ca7565b92915050565b612cda81612b3e565b8114612ce557600080fd5b50565b600081359050612cf781612cd1565b92915050565b600060208284031215612d1357612d12612a42565b5b6000612d2184828501612ce8565b91505092915050565b60008060408385031215612d4157612d40612a42565b5b6000612d4f85828601612a90565b9250506020612d6085828601612a90565b9150509250929050565b6000819050919050565b6000612d8f612d8a612d8584612a47565b612d6a565b612a47565b9050919050565b6000612da182612d74565b9050919050565b6000612db382612d96565b9050919050565b612dc381612da8565b82525050565b6000602082019050612dde6000830184612dba565b92915050565b7f446f6e2774206265206772656564792e00000000000000000000000000000000600082015250565b6000612e1a601083612992565b9150612e2582612de4565b602082019050919050565b60006020820190508181036000830152612e4981612e0d565b9050919050565b6000604082019050612e65600083018561295d565b612e72602083018461295d565b9392505050565b7f706c73206e6f20626f7400000000000000000000000000000000000000000000600082015250565b6000612eaf600a83612992565b9150612eba82612e79565b602082019050919050565b60006020820190508181036000830152612ede81612ea2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f1f82612953565b9150612f2a83612953565b925082821015612f3d57612f3c612ee5565b5b828203905092915050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000612f7e601283612992565b9150612f8982612f48565b602082019050919050565b60006020820190508181036000830152612fad81612f71565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612fea602083612992565b9150612ff582612fb4565b602082019050919050565b6000602082019050818103600083015261301981612fdd565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613056601783612992565b915061306182613020565b602082019050919050565b6000602082019050818103600083015261308581613049565b9050919050565b60008151905061309b81612a79565b92915050565b6000602082840312156130b7576130b6612a42565b5b60006130c58482850161308c565b91505092915050565b60006040820190506130e36000830185612ca7565b6130f06020830184612ca7565b9392505050565b6000819050919050565b600061311c613117613112846130f7565b612d6a565b612953565b9050919050565b61312c81613101565b82525050565b600060c0820190506131476000830189612ca7565b613154602083018861295d565b6131616040830187613123565b61316e6060830186613123565b61317b6080830185612ca7565b61318860a083018461295d565b979650505050505050565b6000815190506131a281612ad2565b92915050565b6000806000606084860312156131c1576131c0612a42565b5b60006131cf86828701613193565b93505060206131e086828701613193565b92505060406131f186828701613193565b9150509250925092565b60006040820190506132106000830185612ca7565b61321d602083018461295d565b9392505050565b60008151905061323381612cd1565b92915050565b60006020828403121561324f5761324e612a42565b5b600061325d84828501613224565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006132c2602483612992565b91506132cd82613266565b604082019050919050565b600060208201905081810360008301526132f1816132b5565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613354602283612992565b915061335f826132f8565b604082019050919050565b6000602082019050818103600083015261338381613347565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006133e6602583612992565b91506133f18261338a565b604082019050919050565b60006020820190508181036000830152613415816133d9565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613478602383612992565b91506134838261341c565b604082019050919050565b600060208201905081810360008301526134a78161346b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061350a602983612992565b9150613515826134ae565b604082019050919050565b60006020820190508181036000830152613539816134fd565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613576601883612992565b915061358182613540565b602082019050919050565b600060208201905081810360008301526135a581613569565b9050919050565b7f706c73206e6f20736e6970000000000000000000000000000000000000000000600082015250565b60006135e2600b83612992565b91506135ed826135ac565b602082019050919050565b60006020820190508181036000830152613611816135d5565b9050919050565b600061362382612953565b915061362e83612953565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561366357613662612ee5565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b60006136ca602783612992565b91506136d58261366e565b604082019050919050565b600060208201905081810360008301526136f9816136bd565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b6000613736601b83612992565b915061374182613700565b602082019050919050565b6000602082019050818103600083015261376581613729565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b60006137c8602283612992565b91506137d38261376c565b604082019050919050565b600060208201905081810360008301526137f7816137bb565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b600061385a602383612992565b9150613865826137fe565b604082019050919050565b600060208201905081810360008301526138898161384d565b9050919050565b600061389b82612953565b91506138a683612953565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156138df576138de612ee5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061392482612953565b915061392f83612953565b92508261393f5761393e6138ea565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139dd81612a67565b82525050565b60006139ef83836139d4565b60208301905092915050565b6000602082019050919050565b6000613a13826139a8565b613a1d81856139b3565b9350613a28836139c4565b8060005b83811015613a59578151613a4088826139e3565b9750613a4b836139fb565b925050600181019050613a2c565b5085935050505092915050565b600060a082019050613a7b600083018861295d565b613a886020830187613123565b8181036040830152613a9a8186613a08565b9050613aa96060830185612ca7565b613ab6608083018461295d565b969550505050505056fea2646970667358221220d5e40776cfc9f70d55827ca328a7021ef60c7063ca74663c78ec867f359bf61d64736f6c634300080a0033

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

000000000000000000000000f67005908089e8422df69fa1078909b9524df18f00000000000000000000000099ea9cdc40fe4f889d00a1ab680821b92afa831b

-----Decoded View---------------
Arg [0] : FeeAddress1 (address): 0xF67005908089e8422df69Fa1078909b9524DF18F
Arg [1] : FeeAddress2 (address): 0x99ea9cDc40FE4f889D00a1AB680821b92AFa831b

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000f67005908089e8422df69fa1078909b9524df18f
Arg [1] : 00000000000000000000000099ea9cdc40fe4f889d00a1ab680821b92afa831b


Deployed Bytecode Sourcemap

2941:10842:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3713:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3284:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13122:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5398:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12611:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5145:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3745:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5564:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13571:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3406:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3778:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3542:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3500;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3619:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12351:252;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3584:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13335:205;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3650:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12155:188;;;;;;;;;;;;;:::i;:::-;;4850:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2022:148;;;;;;;;;;;;;:::i;:::-;;1808:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3867:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3346:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4969:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3682:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11954:189;;;;;;;;;;;;;:::i;:::-;;11659:287;;;;;;;;;;;;;:::i;:::-;;13679:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12915:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5250:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10963:688;;;;;;;;;;;;;:::i;:::-;;3713:25;;;;:::o;3284:50::-;;;;;;;;;;;;;;;;;;;:::o;13122:205::-;13213:12;;;;;;;;;;;13197:28;;:12;:10;:12::i;:::-;:28;;;13189:37;;;;;;13260:10;13237:12;;:34;;;;;;;;;;;;;;;;;;13287:32;13306:12;;;;;;;;;;;13287:32;;;;;;:::i;:::-;;;;;;;;13122:205;:::o;5398:158::-;5470:4;5487:39;5496:12;:10;:12::i;:::-;5510:7;5519:6;5487:8;:39::i;:::-;5544:4;5537:11;;5398:158;;;;:::o;12611:296::-;12693:12;;;;;;;;;;;12677:28;;:12;:10;:12::i;:::-;:28;;;12669:37;;;;;;12731:2;12725:3;:8;:21;;;;;12744:2;12737:4;:9;12725:21;:38;;;;;12756:7;;12750:3;:13;12725:38;:57;;;;;12774:8;;12767:4;:15;12725:57;12717:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;12824:3;12814:7;:13;;;;12849:4;12838:8;:15;;;;12869:30;12881:7;;12890:8;;12869:30;;;;;;;:::i;:::-;;;;;;;;12611:296;;:::o;5145:97::-;5198:4;3263:12;5215:19;;5145:97;:::o;3745:26::-;;;;:::o;5564:468::-;5659:4;5679:12;;;;;;;;;;;:46;;;;;5696:18;:29;5715:9;5696:29;;;;;;;;;;;;;;;;;;;;;;;;;5695:30;5679:46;:73;;;;;5739:13;;;;;;;;;;;5729:23;;:6;:23;;;5679:73;5676:150;;;5790:9;5777:22;;:9;:22;;;5768:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5676:150;5836:36;5846:6;5854:9;5865:6;5836:9;:36::i;:::-;5883:18;5940:6;5904:11;:19;5916:6;5904:19;;;;;;;;;;;;;;;:33;5924:12;:10;:12::i;:::-;5904:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;5883:63;;5957:45;5966:6;5974:12;:10;:12::i;:::-;5988:13;5957:8;:45::i;:::-;6020:4;6013:11;;;5564:468;;;;;:::o;13571:100::-;13615:4;13639:24;13657:4;13639:9;:24::i;:::-;13632:31;;13571:100;:::o;3406:34::-;3439:1;3406:34;:::o;3778:23::-;;;;:::o;3542:35::-;;;;;;;;;;;;;:::o;3500:::-;;;;;;;;;;;;;:::o;3619:24::-;;;;:::o;12351:252::-;12426:12;;;;;;;;;;;12410:28;;:12;:10;:12::i;:::-;:28;;;12402:37;;;;;;12465:1;12458:4;:8;12450:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12551:4;12540:8;:15;;;;12571:24;12586:8;;12571:24;;;;;;:::i;:::-;;;;;;;;12351:252;:::o;3584:28::-;;;;;;;;;;;;;:::o;13335:205::-;13426:12;;;;;;;;;;;13410:28;;:12;:10;:12::i;:::-;:28;;;13402:37;;;;;;13473:10;13450:12;;:34;;;;;;;;;;;;;;;;;;13500:32;13519:12;;;;;;;;;;;13500:32;;;;;;:::i;:::-;;;;;;;;13335:205;:::o;3650:25::-;;;;:::o;12155:188::-;12221:12;;;;;;;;;;;12205:28;;:12;:10;:12::i;:::-;:28;;;12197:37;;;;;;12245:23;12271:21;12245:47;;12303:32;12316:18;12303:12;:32::i;:::-;12186:157;12155:188::o;4850:113::-;4916:4;4940:6;:15;4947:7;4940:15;;;;;;;;;;;;;;;;4933:22;;4850:113;;;:::o;2022:148::-;1945:12;:10;:12::i;:::-;1935:22;;:6;;;;;;;;;;:22;;;1927:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2129:1:::1;2092:40;;2113:6;::::0;::::1;;;;;;;;2092:40;;;;;;;;;;;;2160:1;2143:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2022:148::o:0;1808:79::-;1846:7;1873:6;;;;;;;;;;;1866:13;;1808:79;:::o;3867:38::-;;;;;;;;;;;;;:::o;3346:48::-;;;;;;;;;;;;;;;;;;;:::o;4969:164::-;5044:4;5061:42;5071:12;:10;:12::i;:::-;5085:9;5096:6;5061:9;:42::i;:::-;5121:4;5114:11;;4969:164;;;;:::o;3682:24::-;;;;:::o;11954:189::-;12020:12;;;;;;;;;;;12004:28;;:12;:10;:12::i;:::-;:28;;;11996:37;;;;;;12044:20;12067:24;12085:4;12067:9;:24::i;:::-;12044:47;;12102:33;12119:15;12102:16;:33::i;:::-;11985:158;11954:189::o;11659:287::-;1945:12;:10;:12::i;:::-;1935:22;;:6;;;;;;;;;;:22;;;1927:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11723:12:::1;;;;;;;;;;;11722:13;11714:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11789:4;11774:12;;:19;;;;;;;;;;;;;;;;;;11818:15;11804:11;:29;;;;11860:18;11844:13;:34;;;;11913:19;11896:14;:36;;;;11659:287::o:0;13679:101::-;13724:4;13748:24;13758:13;;;;;;;;;;;13748:9;:24::i;:::-;13741:31;;13679:101;:::o;12915:199::-;12996:12;;;;;;;;;;;12980:28;;:12;:10;:12::i;:::-;:28;;;12972:37;;;;;;13042:5;13020:19;;:27;;;;;;;;;;;;;;;;;;13063:43;13086:19;;;;;;;;;;;13063:43;;;;;;:::i;:::-;;;;;;;;12915:199;:::o;5250:140::-;5331:4;5355:11;:18;5367:5;5355:18;;;;;;;;;;;;;;;:27;5374:7;5355:27;;;;;;;;;;;;;;;;5348:34;;5250:140;;;;:::o;10963:688::-;1945:12;:10;:12::i;:::-;1935:22;;:6;;;;;;;;;;:22;;;1927:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11028:12:::1;;;;;;;;;;;11027:13;11019:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11079:35;11136:42;11079:100;;11208:16;11190:15;;:34;;;;;;;;;;;;;;;;;;11235:63;11252:4;11267:15;;;;;;;;;;;3263:12;11235:8;:63::i;:::-;11343:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11325:56;;;11390:4;11397:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11325:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11309:13;;:112;;;;;;;;;;;;;;;;;;11432:15;;;;;;;;;;;:31;;;11471:21;11502:4;11508:24;11526:4;11508:9;:24::i;:::-;11533:1;11535::::0;11537:7:::1;:5;:7::i;:::-;11545:15;11432:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11579:13;;;;;;;;;;;11572:29;;;11610:15;;;;;;;;;;;11628:14;11572:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11008:643;10963:688::o:0;671:98::-;724:7;751:10;744:17;;671:98;:::o;6040:332::-;6147:1;6130:19;;:5;:19;;;;6122:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6228:1;6209:21;;:7;:21;;;;6201:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6310:6;6280:11;:18;6292:5;6280:18;;;;;;;;;;;;;;;:27;6299:7;6280:27;;;;;;;;;;;;;;;:36;;;;6348:7;6332:32;;6341:5;6332:32;;;6357:6;6332:32;;;;;;:::i;:::-;;;;;;;;6040:332;;;:::o;6380:2505::-;6481:1;6465:18;;:4;:18;;;;6457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6558:1;6544:16;;:2;:16;;;;6536:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6628:1;6619:6;:10;6611:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6686:10;6726:7;:5;:7::i;:::-;6718:15;;:4;:15;;;;:32;;;;;6743:7;:5;:7::i;:::-;6737:13;;:2;:13;;;;6718:32;6715:1972;;;6798:13;;;;;;;;;;;6790:21;;:4;:21;;;:55;;;;;6829:15;;;;;;;;;;;6815:30;;:2;:30;;;;6790:55;:82;;;;;6850:18;:22;6869:2;6850:22;;;;;;;;;;;;;;;;;;;;;;;;;6849:23;6790:82;6787:954;;;6901:12;;;;;;;;;;;6893:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6988:11;;6969:15;:30;;6961:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;7065:15;7053:7;7038:11;;:23;;;;:::i;:::-;7037:43;7034:200;;;7150:14;;7123:22;7141:2;7123:9;:22::i;:::-;7114:6;:31;;;;:::i;:::-;7113:51;;7105:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;7034:200;7256:8;:12;7265:2;7256:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;7252:95;;7315:12;;;;;;;;7320:1;7315:12;;;;7322:4;7315:12;;;;;7300:8;:12;7309:2;7300:12;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7252:95;7400:15;7384:11;7369;;:27;;;;:::i;:::-;7368:47;7365:277;;;7458:13;;7448:6;:23;;7440:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7572:10;7553:15;:30;;;;:::i;:::-;7534:8;:12;7543:2;7534:12;;;;;;;;;;;;;;;:16;;;:49;7526:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;7365:277;7679:15;7660:8;:12;7669:2;7660:12;;;;;;;;;;;;;;;:16;;:34;;;;7721:4;7713:12;;6787:954;7780:7;;;;;;;;;;;7779:8;:24;;;;;7791:12;;;;;;;;;;;7779:24;:49;;;;;7815:13;;;;;;;;;;;7807:21;;:4;:21;;;;7779:49;7776:900;;;7897:10;7878:15;:30;;;;:::i;:::-;7857:8;:14;7866:4;7857:14;;;;;;;;;;;;;;;:18;;;:51;7849:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;7967:25;7995:24;8013:4;7995:9;:24::i;:::-;7967:52;;8064:1;8041:20;:24;8038:402;;;8093:19;;;;;;;;;;;8090:270;;;8207:3;8195:8;;8168:24;8178:13;;;;;;;;;;;8168:9;:24::i;:::-;:35;;;;:::i;:::-;8167:43;;;;:::i;:::-;8144:20;:66;8141:196;;;8306:3;8294:8;;8267:24;8277:13;;;;;;;;;;;8267:9;:24::i;:::-;:35;;;;:::i;:::-;8266:43;;;;:::i;:::-;8243:66;;8141:196;8090:270;8382:38;8399:20;8382:16;:38::i;:::-;8038:402;8458:23;8484:21;8458:47;;8548:1;8527:18;:22;8524:105;;;8574:35;8587:21;8574:12;:35::i;:::-;8524:105;8655:5;8647:13;;7830:846;;7776:900;6715:1972;8697:12;8712:4;8697:19;;8730:18;:24;8749:4;8730:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8758:18;:22;8777:2;8758:22;;;;;;;;;;;;;;;;;;;;;;;;;8730:50;8727:96;;;8806:5;8796:15;;8727:96;8833:44;8848:4;8853:2;8856:6;8863:7;8871:5;8833:14;:44::i;:::-;6446:2439;;6380:2505;;;:::o;9389:139::-;9443:12;;;;;;;;;;;:21;;:33;9474:1;9465:6;:10;;;;:::i;:::-;9443:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9487:12;;;;;;;;;;;:21;;:33;9518:1;9509:6;:10;;;;:::i;:::-;9487:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9389:139;:::o;8893:480::-;4327:4;4317:7;;:14;;;;;;;;;;;;;;;;;;8968:21:::1;9006:1;8992:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8968:40;;9037:4;9019;9024:1;9019:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9063:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9053:4;9058:1;9053:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9096:62;9113:4;9128:15;;;;;;;;;;;9146:11;9096:8;:62::i;:::-;9169:15;;;;;;;;;;;:66;;;9250:11;9276:1;9292:4;9319;9339:15;9169:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8957:416;4364:5:::0;4354:7;;:15;;;;;;;;;;;;;;;;;;8893:480;:::o;9540:217::-;9656:8;9668:21;9676:7;9685:3;9668:7;:21::i;:::-;9655:34;;9700:49;9718:6;9726:9;9737:6;9745:3;9700:17;:49::i;:::-;9644:113;9540:217;;;;;:::o;9765:395::-;9828:4;9845:8;9856:1;9845:12;;9871:7;9868:264;;;9898:3;9895:226;;;9928:7;;9922:13;;9895:226;;;9982:8;;9976:14;;10045:7;10030:11;;:23;;;;:::i;:::-;10012:15;:41;10009:97;;;10085:1;10078:8;;;;;:::i;:::-;;;10009:97;9895:226;9868:264;10149:3;10142:10;;;9765:395;;;;:::o;10168:372::-;10273:19;10294:9;10307:23;10318:6;10326:3;10307:10;:23::i;:::-;10272:58;;;;10375:6;10358;:14;10365:6;10358:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;10341:6;:14;10348:6;10341:14;;;;;;;;;;;;;;;:40;;;;10432:14;10412:6;:17;10419:9;10412:17;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;10392:6;:17;10399:9;10392:17;;;;;;;;;;;;;;;:54;;;;10458:15;10468:4;10458:9;:15::i;:::-;10506:9;10489:43;;10498:6;10489:43;;;10517:14;10489:43;;;;;;:::i;:::-;;;;;;;;10261:279;;10168:372;;;;:::o;10548:222::-;10617:4;10623;10640:9;10673:3;10662:7;10653:6;:16;;;;:::i;:::-;10652:24;;;;:::i;:::-;10640:36;;10687:19;10718:4;10709:6;:13;;;;:::i;:::-;10687:35;;10741:14;10757:4;10733:29;;;;;;10548:222;;;;;:::o;10778:109::-;10875:4;10851:6;:21;10866:4;10851:21;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;10827:6;:21;10842:4;10827:21;;;;;;;;;;;;;;;:52;;;;10778: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:166::-;9014:18;9010:1;9002:6;8998:14;8991:42;8874:166;:::o;9046:366::-;9188:3;9209:67;9273:2;9268:3;9209:67;:::i;:::-;9202:74;;9285:93;9374:3;9285:93;:::i;:::-;9403:2;9398:3;9394:12;9387:19;;9046:366;;;:::o;9418:419::-;9584:4;9622:2;9611:9;9607:18;9599:26;;9671:9;9665:4;9661:20;9657:1;9646:9;9642:17;9635:47;9699:131;9825:4;9699:131;:::i;:::-;9691:139;;9418:419;;;:::o;9843:332::-;9964:4;10002:2;9991:9;9987:18;9979:26;;10015:71;10083:1;10072:9;10068:17;10059:6;10015:71;:::i;:::-;10096:72;10164:2;10153:9;10149:18;10140:6;10096:72;:::i;:::-;9843:332;;;;;:::o;10181:160::-;10321:12;10317:1;10309:6;10305:14;10298:36;10181:160;:::o;10347:366::-;10489:3;10510:67;10574:2;10569:3;10510:67;:::i;:::-;10503:74;;10586:93;10675:3;10586:93;:::i;:::-;10704:2;10699:3;10695:12;10688:19;;10347:366;;;:::o;10719:419::-;10885:4;10923:2;10912:9;10908:18;10900:26;;10972:9;10966:4;10962:20;10958:1;10947:9;10943:17;10936:47;11000:131;11126:4;11000:131;:::i;:::-;10992:139;;10719:419;;;:::o;11144:180::-;11192:77;11189:1;11182:88;11289:4;11286:1;11279:15;11313:4;11310:1;11303:15;11330:191;11370:4;11390:20;11408:1;11390:20;:::i;:::-;11385:25;;11424:20;11442:1;11424:20;:::i;:::-;11419:25;;11463:1;11460;11457:8;11454:34;;;11468:18;;:::i;:::-;11454:34;11513:1;11510;11506:9;11498:17;;11330:191;;;;:::o;11527:168::-;11667:20;11663:1;11655:6;11651:14;11644:44;11527:168;:::o;11701:366::-;11843:3;11864:67;11928:2;11923:3;11864:67;:::i;:::-;11857:74;;11940:93;12029:3;11940:93;:::i;:::-;12058:2;12053:3;12049:12;12042:19;;11701:366;;;:::o;12073:419::-;12239:4;12277:2;12266:9;12262:18;12254:26;;12326:9;12320:4;12316:20;12312:1;12301:9;12297:17;12290:47;12354:131;12480:4;12354:131;:::i;:::-;12346:139;;12073:419;;;:::o;12498:182::-;12638:34;12634:1;12626:6;12622:14;12615:58;12498:182;:::o;12686:366::-;12828:3;12849:67;12913:2;12908:3;12849:67;:::i;:::-;12842:74;;12925:93;13014:3;12925:93;:::i;:::-;13043:2;13038:3;13034:12;13027:19;;12686:366;;;:::o;13058:419::-;13224:4;13262:2;13251:9;13247:18;13239:26;;13311:9;13305:4;13301:20;13297:1;13286:9;13282:17;13275:47;13339:131;13465:4;13339:131;:::i;:::-;13331:139;;13058:419;;;:::o;13483:173::-;13623:25;13619:1;13611:6;13607:14;13600:49;13483:173;:::o;13662:366::-;13804:3;13825:67;13889:2;13884:3;13825:67;:::i;:::-;13818:74;;13901:93;13990:3;13901:93;:::i;:::-;14019:2;14014:3;14010:12;14003:19;;13662:366;;;:::o;14034:419::-;14200:4;14238:2;14227:9;14223:18;14215:26;;14287:9;14281:4;14277:20;14273:1;14262:9;14258:17;14251:47;14315:131;14441:4;14315:131;:::i;:::-;14307:139;;14034:419;;;:::o;14459:143::-;14516:5;14547:6;14541:13;14532:22;;14563:33;14590:5;14563:33;:::i;:::-;14459:143;;;;:::o;14608:351::-;14678:6;14727:2;14715:9;14706:7;14702:23;14698:32;14695:119;;;14733:79;;:::i;:::-;14695:119;14853:1;14878:64;14934:7;14925:6;14914:9;14910:22;14878:64;:::i;:::-;14868:74;;14824:128;14608:351;;;;:::o;14965:332::-;15086:4;15124:2;15113:9;15109:18;15101:26;;15137:71;15205:1;15194:9;15190:17;15181:6;15137:71;:::i;:::-;15218:72;15286:2;15275:9;15271:18;15262:6;15218:72;:::i;:::-;14965:332;;;;;:::o;15303:85::-;15348:7;15377:5;15366:16;;15303:85;;;:::o;15394:158::-;15452:9;15485:61;15503:42;15512:32;15538:5;15512:32;:::i;:::-;15503:42;:::i;:::-;15485:61;:::i;:::-;15472:74;;15394:158;;;:::o;15558:147::-;15653:45;15692:5;15653:45;:::i;:::-;15648:3;15641:58;15558:147;;:::o;15711:807::-;15960:4;15998:3;15987:9;15983:19;15975:27;;16012:71;16080:1;16069:9;16065:17;16056:6;16012:71;:::i;:::-;16093:72;16161:2;16150:9;16146:18;16137:6;16093:72;:::i;:::-;16175:80;16251:2;16240:9;16236:18;16227:6;16175:80;:::i;:::-;16265;16341:2;16330:9;16326:18;16317:6;16265:80;:::i;:::-;16355:73;16423:3;16412:9;16408:19;16399:6;16355:73;:::i;:::-;16438;16506:3;16495:9;16491:19;16482:6;16438:73;:::i;:::-;15711:807;;;;;;;;;:::o;16524:143::-;16581:5;16612:6;16606:13;16597:22;;16628:33;16655:5;16628:33;:::i;:::-;16524:143;;;;:::o;16673:663::-;16761:6;16769;16777;16826:2;16814:9;16805:7;16801:23;16797:32;16794:119;;;16832:79;;:::i;:::-;16794:119;16952:1;16977:64;17033:7;17024:6;17013:9;17009:22;16977:64;:::i;:::-;16967:74;;16923:128;17090:2;17116:64;17172:7;17163:6;17152:9;17148:22;17116:64;:::i;:::-;17106:74;;17061:129;17229:2;17255:64;17311:7;17302:6;17291:9;17287:22;17255:64;:::i;:::-;17245:74;;17200:129;16673:663;;;;;:::o;17342:332::-;17463:4;17501:2;17490:9;17486:18;17478:26;;17514:71;17582:1;17571:9;17567:17;17558:6;17514:71;:::i;:::-;17595:72;17663:2;17652:9;17648:18;17639:6;17595:72;:::i;:::-;17342:332;;;;;:::o;17680:137::-;17734:5;17765:6;17759:13;17750:22;;17781:30;17805:5;17781:30;:::i;:::-;17680:137;;;;:::o;17823:345::-;17890:6;17939:2;17927:9;17918:7;17914:23;17910:32;17907:119;;;17945:79;;:::i;:::-;17907:119;18065:1;18090:61;18143:7;18134:6;18123:9;18119:22;18090:61;:::i;:::-;18080:71;;18036:125;17823:345;;;;:::o;18174:223::-;18314:34;18310:1;18302:6;18298:14;18291:58;18383:6;18378:2;18370:6;18366:15;18359:31;18174:223;:::o;18403:366::-;18545:3;18566:67;18630:2;18625:3;18566:67;:::i;:::-;18559:74;;18642:93;18731:3;18642:93;:::i;:::-;18760:2;18755:3;18751:12;18744:19;;18403:366;;;:::o;18775:419::-;18941:4;18979:2;18968:9;18964:18;18956:26;;19028:9;19022:4;19018:20;19014:1;19003:9;18999:17;18992:47;19056:131;19182:4;19056:131;:::i;:::-;19048:139;;18775:419;;;:::o;19200:221::-;19340:34;19336:1;19328:6;19324:14;19317:58;19409:4;19404:2;19396:6;19392:15;19385:29;19200:221;:::o;19427:366::-;19569:3;19590:67;19654:2;19649:3;19590:67;:::i;:::-;19583:74;;19666:93;19755:3;19666:93;:::i;:::-;19784:2;19779:3;19775:12;19768:19;;19427:366;;;:::o;19799:419::-;19965:4;20003:2;19992:9;19988:18;19980:26;;20052:9;20046:4;20042:20;20038:1;20027:9;20023:17;20016:47;20080:131;20206:4;20080:131;:::i;:::-;20072:139;;19799:419;;;:::o;20224:224::-;20364:34;20360:1;20352:6;20348:14;20341:58;20433:7;20428:2;20420:6;20416:15;20409:32;20224:224;:::o;20454:366::-;20596:3;20617:67;20681:2;20676:3;20617:67;:::i;:::-;20610:74;;20693:93;20782:3;20693:93;:::i;:::-;20811:2;20806:3;20802:12;20795:19;;20454:366;;;:::o;20826:419::-;20992:4;21030:2;21019:9;21015:18;21007:26;;21079:9;21073:4;21069:20;21065:1;21054:9;21050:17;21043:47;21107:131;21233:4;21107:131;:::i;:::-;21099:139;;20826:419;;;:::o;21251:222::-;21391:34;21387:1;21379:6;21375:14;21368:58;21460:5;21455:2;21447:6;21443:15;21436:30;21251:222;:::o;21479:366::-;21621:3;21642:67;21706:2;21701:3;21642:67;:::i;:::-;21635:74;;21718:93;21807:3;21718:93;:::i;:::-;21836:2;21831:3;21827:12;21820:19;;21479:366;;;:::o;21851:419::-;22017:4;22055:2;22044:9;22040:18;22032:26;;22104:9;22098:4;22094:20;22090:1;22079:9;22075:17;22068:47;22132:131;22258:4;22132:131;:::i;:::-;22124:139;;21851:419;;;:::o;22276:228::-;22416:34;22412:1;22404:6;22400:14;22393:58;22485:11;22480:2;22472:6;22468:15;22461:36;22276:228;:::o;22510:366::-;22652:3;22673:67;22737:2;22732:3;22673:67;:::i;:::-;22666:74;;22749:93;22838:3;22749:93;:::i;:::-;22867:2;22862:3;22858:12;22851:19;;22510:366;;;:::o;22882:419::-;23048:4;23086:2;23075:9;23071:18;23063:26;;23135:9;23129:4;23125:20;23121:1;23110:9;23106:17;23099:47;23163:131;23289:4;23163:131;:::i;:::-;23155:139;;22882:419;;;:::o;23307:174::-;23447:26;23443:1;23435:6;23431:14;23424:50;23307:174;:::o;23487:366::-;23629:3;23650:67;23714:2;23709:3;23650:67;:::i;:::-;23643:74;;23726:93;23815:3;23726:93;:::i;:::-;23844:2;23839:3;23835:12;23828:19;;23487:366;;;:::o;23859:419::-;24025:4;24063:2;24052:9;24048:18;24040:26;;24112:9;24106:4;24102:20;24098:1;24087:9;24083:17;24076:47;24140:131;24266:4;24140:131;:::i;:::-;24132:139;;23859:419;;;:::o;24284:161::-;24424:13;24420:1;24412:6;24408:14;24401:37;24284:161;:::o;24451:366::-;24593:3;24614:67;24678:2;24673:3;24614:67;:::i;:::-;24607:74;;24690:93;24779:3;24690:93;:::i;:::-;24808:2;24803:3;24799:12;24792:19;;24451:366;;;:::o;24823:419::-;24989:4;25027:2;25016:9;25012:18;25004:26;;25076:9;25070:4;25066:20;25062:1;25051:9;25047:17;25040:47;25104:131;25230:4;25104:131;:::i;:::-;25096:139;;24823:419;;;:::o;25248:305::-;25288:3;25307:20;25325:1;25307:20;:::i;:::-;25302:25;;25341:20;25359:1;25341:20;:::i;:::-;25336:25;;25495:1;25427:66;25423:74;25420:1;25417:81;25414:107;;;25501:18;;:::i;:::-;25414:107;25545:1;25542;25538:9;25531:16;;25248:305;;;;:::o;25559:226::-;25699:34;25695:1;25687:6;25683:14;25676:58;25768:9;25763:2;25755:6;25751:15;25744:34;25559:226;:::o;25791:366::-;25933:3;25954:67;26018:2;26013:3;25954:67;:::i;:::-;25947:74;;26030:93;26119:3;26030:93;:::i;:::-;26148:2;26143:3;26139:12;26132:19;;25791:366;;;:::o;26163:419::-;26329:4;26367:2;26356:9;26352:18;26344:26;;26416:9;26410:4;26406:20;26402:1;26391:9;26387:17;26380:47;26444:131;26570:4;26444:131;:::i;:::-;26436:139;;26163:419;;;:::o;26588:177::-;26728:29;26724:1;26716:6;26712:14;26705:53;26588:177;:::o;26771:366::-;26913:3;26934:67;26998:2;26993:3;26934:67;:::i;:::-;26927:74;;27010:93;27099:3;27010:93;:::i;:::-;27128:2;27123:3;27119:12;27112:19;;26771:366;;;:::o;27143:419::-;27309:4;27347:2;27336:9;27332:18;27324:26;;27396:9;27390:4;27386:20;27382:1;27371:9;27367:17;27360:47;27424:131;27550:4;27424:131;:::i;:::-;27416:139;;27143:419;;;:::o;27568:221::-;27708:34;27704:1;27696:6;27692:14;27685:58;27777:4;27772:2;27764:6;27760:15;27753:29;27568:221;:::o;27795:366::-;27937:3;27958:67;28022:2;28017:3;27958:67;:::i;:::-;27951:74;;28034:93;28123:3;28034:93;:::i;:::-;28152:2;28147:3;28143:12;28136:19;;27795:366;;;:::o;28167:419::-;28333:4;28371:2;28360:9;28356:18;28348:26;;28420:9;28414:4;28410:20;28406:1;28395:9;28391:17;28384:47;28448:131;28574:4;28448:131;:::i;:::-;28440:139;;28167:419;;;:::o;28592:222::-;28732:34;28728:1;28720:6;28716:14;28709:58;28801:5;28796:2;28788:6;28784:15;28777:30;28592:222;:::o;28820:366::-;28962:3;28983:67;29047:2;29042:3;28983:67;:::i;:::-;28976:74;;29059:93;29148:3;29059:93;:::i;:::-;29177:2;29172:3;29168:12;29161:19;;28820:366;;;:::o;29192:419::-;29358:4;29396:2;29385:9;29381:18;29373:26;;29445:9;29439:4;29435:20;29431:1;29420:9;29416:17;29409:47;29473:131;29599:4;29473:131;:::i;:::-;29465:139;;29192:419;;;:::o;29617:348::-;29657:7;29680:20;29698:1;29680:20;:::i;:::-;29675:25;;29714:20;29732:1;29714:20;:::i;:::-;29709:25;;29902:1;29834:66;29830:74;29827:1;29824:81;29819:1;29812:9;29805:17;29801:105;29798:131;;;29909:18;;:::i;:::-;29798:131;29957:1;29954;29950:9;29939:20;;29617:348;;;;:::o;29971:180::-;30019:77;30016:1;30009:88;30116:4;30113:1;30106:15;30140:4;30137:1;30130:15;30157:185;30197:1;30214:20;30232:1;30214:20;:::i;:::-;30209:25;;30248:20;30266:1;30248:20;:::i;:::-;30243:25;;30287:1;30277:35;;30292:18;;:::i;:::-;30277:35;30334:1;30331;30327:9;30322:14;;30157:185;;;;:::o;30348:180::-;30396:77;30393:1;30386:88;30493:4;30490:1;30483:15;30517:4;30514:1;30507:15;30534:180;30582:77;30579:1;30572:88;30679:4;30676:1;30669:15;30703:4;30700:1;30693:15;30720:114;30787:6;30821:5;30815:12;30805:22;;30720:114;;;:::o;30840:184::-;30939:11;30973:6;30968:3;30961:19;31013:4;31008:3;31004:14;30989:29;;30840:184;;;;:::o;31030:132::-;31097:4;31120:3;31112:11;;31150:4;31145:3;31141:14;31133:22;;31030:132;;;:::o;31168:108::-;31245:24;31263:5;31245:24;:::i;:::-;31240:3;31233:37;31168:108;;:::o;31282:179::-;31351:10;31372:46;31414:3;31406:6;31372:46;:::i;:::-;31450:4;31445:3;31441:14;31427:28;;31282:179;;;;:::o;31467:113::-;31537:4;31569;31564:3;31560:14;31552:22;;31467:113;;;:::o;31616:732::-;31735:3;31764:54;31812:5;31764:54;:::i;:::-;31834:86;31913:6;31908:3;31834:86;:::i;:::-;31827:93;;31944:56;31994:5;31944:56;:::i;:::-;32023:7;32054:1;32039:284;32064:6;32061:1;32058:13;32039:284;;;32140:6;32134:13;32167:63;32226:3;32211:13;32167:63;:::i;:::-;32160:70;;32253:60;32306:6;32253:60;:::i;:::-;32243:70;;32099:224;32086:1;32083;32079:9;32074:14;;32039:284;;;32043:14;32339:3;32332:10;;31740:608;;;31616:732;;;;:::o;32354:831::-;32617:4;32655:3;32644:9;32640:19;32632:27;;32669:71;32737:1;32726:9;32722:17;32713:6;32669:71;:::i;:::-;32750:80;32826:2;32815:9;32811:18;32802:6;32750:80;:::i;:::-;32877:9;32871:4;32867:20;32862:2;32851:9;32847:18;32840:48;32905:108;33008:4;32999:6;32905:108;:::i;:::-;32897:116;;33023:72;33091:2;33080:9;33076:18;33067:6;33023:72;:::i;:::-;33105:73;33173:3;33162:9;33158:19;33149:6;33105:73;:::i;:::-;32354:831;;;;;;;;:::o

Swarm Source

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