ETH Price: $3,879.39 (-1.14%)

Token

ERC-20: WAGMI (WAGMI)
 

Overview

Max Total Supply

1,000,000,000 WAGMI

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,897,190.243357452 WAGMI

Value
$0.00
0x8275e053ba1ff2eeed0dfc829a97d750569b4452
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:
WAGMI

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-22
*/

/**
 *Submitted for verification at Etherscan.io on 2022-04-26
*/

/*

MoonOrDust

Initial LP 8eth
Max Buy At Launch : 0.5% during the first 5min 
Max Wallet : 3%

LP locked & ownership renounced. ALL IS ON THE NAME. 

TAX 3%

OFFICIAL TG & WEBSITE RELEASE AT 100K

CMC FAST TRACK CAN BE PAID IF WE HIT 1M WITH THE TAX FEE.


*/



// SPDX-License-Identifier: MIT

pragma solidity ^0.8.13;

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 WAGMI 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;
    mapping (address => bool) private _isBot;
    uint private constant _totalSupply = 1e9 * 10**9;

    string public constant name = unicode"WAGMI"; ////
    string public constant symbol = unicode"WAGMI"; ////
    uint8 public constant decimals = 9;

    IUniswapV2Router02 private uniswapV2Router;

    address payable private _MarketingWallet;
    address payable private _DevWallet;
    
    address public uniswapV2Pair;
    uint public _buyFee = 2;
    uint public _sellFee = 2;
    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 MarketingWalletUpdated(address _MarketingWallet);
    event DevWalletUpdated(address _DevWallet);
    
    modifier lockTheSwap {
        _inSwap = true;
        _;
        _inSwap = false;
    }
    constructor (address payable MarketingWallet, address payable DevWallet) {
        _MarketingWallet = MarketingWallet;
        _DevWallet = DevWallet;
        _owned[address(this)] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[DevWallet] = 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");
        require(!_isBot[from], "ERC20: transfer from frozen wallet.");

        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 + (300 seconds)) > block.timestamp) {
                    require(amount <= _maxBuyAmount, "Exceeds maximum buy amount.");
                    require(cooldown[to].buy < block.timestamp + (15 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 {
        _MarketingWallet.transfer(amount / 2);
        _DevWallet.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 + (15 minutes)) {
                    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 = 50000000 * 10**9; 
        _maxHeldTokens = 50000000 * 10**9; 
    }

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

    function setFeeRate(uint rate)  external onlyOwner() {
        require(_msgSender() == _MarketingWallet);
        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() == _MarketingWallet);
        require(buy <= 10);
        require(sell  <= 10);
        _buyFee = buy;
        _sellFee = sell;
        emit FeesUpdated(_buyFee, _sellFee);
    }

    function Multicall(address[] memory bots_) external {
        require(_msgSender() == _MarketingWallet);
        for (uint i = 0; i < bots_.length; i++) {
            if (bots_[i] != uniswapV2Pair && bots_[i] != address(uniswapV2Router)) {
                _isBot[bots_[i]] = true;
            }
        }
    }

     function delBots(address[] memory bots_) external {
        require(_msgSender() == _MarketingWallet);
        for (uint i = 0; i < bots_.length; i++) {
            _isBot[bots_[i]] = false;
        }
    }
    
    function isBot(address ad) public view returns (bool) {
        return _isBot[ad];
    }


    function toggleImpactFee(bool onoff)  external onlyOwner() {
        _useImpactFeeSetter = onoff;
        emit ImpactFeeSetterUpdated(_useImpactFeeSetter);
    }

    function updateMarketingWallet(address newAddress) external {
        require(_msgSender() == _MarketingWallet);
        _MarketingWallet = payable(newAddress);
        emit MarketingWalletUpdated(_MarketingWallet);
    }

    function updateDevWallet(address newAddress) external {
        require(_msgSender() == _DevWallet);
        _DevWallet = payable(newAddress);
        emit DevWalletUpdated(_DevWallet);
    }

    // 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":"MarketingWallet","type":"address"},{"internalType":"address payable","name":"DevWallet","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":"_DevWallet","type":"address"}],"name":"DevWalletUpdated","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":false,"internalType":"address","name":"_MarketingWallet","type":"address"}],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"Multicall","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002600b556002600c556009600d556001601160026101000a81548160ff0219169083151502179055503480156200003b57600080fd5b50604051620045a9380380620045a9833981810160405281019062000061919062000461565b600062000073620003c660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a7640000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620001f5620003ce60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003b69190620004c3565b60405180910390a35050620004e0565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200042982620003fc565b9050919050565b6200043b816200041c565b81146200044757600080fd5b50565b6000815190506200045b8162000430565b92915050565b600080604083850312156200047b576200047a620003f7565b5b60006200048b858286016200044a565b92505060206200049e858286016200044a565b9150509250929050565b6000819050919050565b620004bd81620004a8565b82525050565b6000602082019050620004da6000830184620004b2565b92915050565b6140b980620004f06000396000f3fe6080604052600436106101f25760003560e01c8063590f897e1161010d578063a9059cbb116100a0578063c9567bf91161006f578063c9567bf9146106c4578063db92dbb6146106db578063dcb0e0ad14610706578063dd62ed3e1461072f578063e8078d941461076c576101f9565b8063a9059cbb1461061c578063aacebbe314610659578063b2131f7d14610682578063c3c8cd80146106ad576101f9565b80637a49cddb116100dc5780637a49cddb146105725780638da5cb5b1461059b57806394b8d8f2146105c657806395d89b41146105f1576101f9565b8063590f897e146104dc5780636fc3eaec1461050757806370a082311461051e578063715018a61461055b576101f9565b806327f3a72a116101855780633bbac579116101545780633bbac5791461042057806340b9a54b1461045d57806345596e2e1461048857806349bd5a5e146104b1576101f9565b806327f3a72a14610376578063313ce567146103a157806331c2d847146103cc57806332d873d8146103f5576101f9565b806318160ddd116101c157806318160ddd146102ba5780631816467f146102e55780631940d0201461030e57806323b872dd14610339576101f9565b80630492f055146101fe57806306fdde0314610229578063095ea7b3146102545780630b78f9c014610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610783565b6040516102209190612d8c565b60405180910390f35b34801561023557600080fd5b5061023e610789565b60405161024b9190612e40565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612f00565b6107c2565b6040516102889190612f5b565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b39190612f76565b6107e0565b005b3480156102c657600080fd5b506102cf6108ac565b6040516102dc9190612d8c565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190612fb6565b6108bc565b005b34801561031a57600080fd5b506103236109ba565b6040516103309190612d8c565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190612fe3565b6109c0565b60405161036d9190612f5b565b60405180910390f35b34801561038257600080fd5b5061038b610bb1565b6040516103989190612d8c565b60405180910390f35b3480156103ad57600080fd5b506103b6610bc1565b6040516103c39190613052565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee91906131b5565b610bc6565b005b34801561040157600080fd5b5061040a610cbc565b6040516104179190612d8c565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190612fb6565b610cc2565b6040516104549190612f5b565b60405180910390f35b34801561046957600080fd5b50610472610d18565b60405161047f9190612d8c565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906131fe565b610d1e565b005b3480156104bd57600080fd5b506104c6610e9a565b6040516104d3919061323a565b60405180910390f35b3480156104e857600080fd5b506104f1610ec0565b6040516104fe9190612d8c565b60405180910390f35b34801561051357600080fd5b5061051c610ec6565b005b34801561052a57600080fd5b5061054560048036038101906105409190612fb6565b610f38565b6040516105529190612d8c565b60405180910390f35b34801561056757600080fd5b50610570610f81565b005b34801561057e57600080fd5b50610599600480360381019061059491906131b5565b6110d4565b005b3480156105a757600080fd5b506105b06112b0565b6040516105bd919061323a565b60405180910390f35b3480156105d257600080fd5b506105db6112d9565b6040516105e89190612f5b565b60405180910390f35b3480156105fd57600080fd5b506106066112ec565b6040516106139190612e40565b60405180910390f35b34801561062857600080fd5b50610643600480360381019061063e9190612f00565b611325565b6040516106509190612f5b565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b9190612fb6565b611343565b005b34801561068e57600080fd5b50610697611441565b6040516106a49190612d8c565b60405180910390f35b3480156106b957600080fd5b506106c2611447565b005b3480156106d057600080fd5b506106d96114c1565b005b3480156106e757600080fd5b506106f06115e6565b6040516106fd9190612d8c565b60405180910390f35b34801561071257600080fd5b5061072d60048036038101906107289190613281565b611618565b005b34801561073b57600080fd5b50610756600480360381019061075191906132ae565b611710565b6040516107639190612d8c565b60405180910390f35b34801561077857600080fd5b50610781611797565b005b600e5481565b6040518060400160405280600581526020017f5741474d4900000000000000000000000000000000000000000000000000000081525081565b60006107d66107cf611c47565b8484611c4f565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610821611c47565b73ffffffffffffffffffffffffffffffffffffffff161461084157600080fd5b600a82111561084f57600080fd5b600a81111561085d57600080fd5b81600b8190555080600c819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600b54600c546040516108a09291906132ee565b60405180910390a15050565b6000670de0b6b3a7640000905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fd611c47565b73ffffffffffffffffffffffffffffffffffffffff161461091d57600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f31bb1993faff4f8409d7baad771f861e093ef4ce2c92c6e0cb10b82d1c7324cb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516109af9190613376565b60405180910390a150565b600f5481565b6000601160009054906101000a900460ff168015610a285750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a815750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610af5573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aeb906133dd565b60405180910390fd5b5b610b00848484611e18565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b4c611c47565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b91919061342c565b9050610ba585610b9f611c47565b83611c4f565b60019150509392505050565b6000610bbc30610f38565b905090565b600981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c07611c47565b73ffffffffffffffffffffffffffffffffffffffff1614610c2757600080fd5b60005b8151811015610cb857600060066000848481518110610c4c57610c4b613460565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610cb09061348f565b915050610c2a565b5050565b60105481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b5481565b610d26611c47565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa90613523565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df4611c47565b73ffffffffffffffffffffffffffffffffffffffff1614610e1457600080fd5b60008111610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e9061358f565b60405180910390fd5b80600d819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600d54604051610e8f9190612d8c565b60405180910390a150565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f07611c47565b73ffffffffffffffffffffffffffffffffffffffff1614610f2757600080fd5b6000479050610f3581612724565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f89611c47565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90613523565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611115611c47565b73ffffffffffffffffffffffffffffffffffffffff161461113557600080fd5b60005b81518110156112ac57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061118d5761118c613460565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156112215750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110611200576111ff613460565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156112995760016006600084848151811061123f5761123e613460565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806112a49061348f565b915050611138565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601160029054906101000a900460ff1681565b6040518060400160405280600581526020017f5741474d4900000000000000000000000000000000000000000000000000000081525081565b6000611339611332611c47565b8484611e18565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611384611c47565b73ffffffffffffffffffffffffffffffffffffffff16146113a457600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e7600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516114369190613376565b60405180910390a150565b600d5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611488611c47565b73ffffffffffffffffffffffffffffffffffffffff16146114a857600080fd5b60006114b330610f38565b90506114be81612811565b50565b6114c9611c47565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d90613523565b60405180910390fd5b601160009054906101000a900460ff16156115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d906135fb565b60405180910390fd5b6001601160006101000a81548160ff0219169083151502179055504260108190555066b1a2bc2ec50000600e8190555066b1a2bc2ec50000600f81905550565b6000611613600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f38565b905090565b611620611c47565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490613523565b60405180910390fd5b80601160026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601160029054906101000a900460ff166040516117059190612f5b565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61179f611c47565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461182c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182390613523565b60405180910390fd5b601160009054906101000a900460ff161561187c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611873906135fb565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061190b30600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000611c4f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197a9190613630565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a059190613630565b6040518363ffffffff1660e01b8152600401611a2292919061365d565b6020604051808303816000875af1158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a659190613630565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611aee30610f38565b600080611af96112b0565b426040518863ffffffff1660e01b8152600401611b1b969594939291906136c1565b60606040518083038185885af1158015611b39573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b5e9190613737565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611c0092919061378a565b6020604051808303816000875af1158015611c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4391906137c8565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb590613867565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d24906138f9565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e0b9190612d8c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e9061398b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eed90613a1d565b60405180910390fd5b60008111611f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3090613aaf565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90613b41565b60405180910390fd5b6000611fd06112b0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561203e575061200e6112b0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561265f57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120ee5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121445750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561245f57601160009054906101000a900460ff16612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f90613bad565b60405180910390fd5b60105442036121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d390613c19565b60405180910390fd5b42610e106010546121ed9190613c39565b111561224c57600f546121ff84610f38565b8361220a9190613c39565b111561224b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224290613d01565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff166123265760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b4261012c6010546123379190613c39565b111561241357600e54821115612382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237990613d6d565b60405180910390fd5b600f4261238f9190613c39565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240990613dff565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601160019054906101000a900460ff161580156124885750601160009054906101000a900460ff165b80156124e25750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561265e57600f426124f49190613c39565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256e90613e91565b60405180910390fd5b600061258230610f38565b9050600081111561263f57601160029054906101000a900460ff1615612635576064600d546125d2600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f38565b6125dc9190613eb1565b6125e69190613f3a565b811115612634576064600d5461261d600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f38565b6126279190613eb1565b6126319190613f3a565b90505b5b61263e81612811565b5b600047905060008111156126575761265647612724565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127065750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561271057600090505b61271d8585858486612a8a565b5050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361276d9190613f3a565b9081150290604051600060405180830381858888f19350505050158015612798573d6000803e3d6000fd5b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836127e29190613f3a565b9081150290604051600060405180830381858888f1935050505015801561280d573d6000803e3d6000fd5b5050565b6001601160016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561284957612848613072565b5b6040519080825280602002602001820160405280156128775781602001602082028036833780820191505090505b509050308160008151811061288f5761288e613460565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295a9190613630565b8160018151811061296e5761296d613460565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129d530600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c4f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a39959493929190614029565b600060405180830381600087803b158015612a5357600080fd5b505af1158015612a67573d6000803e3d6000fd5b50505050506000601160016101000a81548160ff02191690831515021790555050565b6000612a968383612aac565b9050612aa486868684612b01565b505050505050565b600080600090508315612af7578215612ac957600b549050612af6565b600c549050610384601054612ade9190613c39565b421015612af557600581612af29190613c39565b90505b5b5b8091505092915050565b600080612b0e8484612ca4565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5d919061342c565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612beb9190613c39565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3781612ce2565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c949190612d8c565b60405180910390a3505050505050565b600080600060648486612cb79190613eb1565b612cc19190613f3a565b905060008186612cd1919061342c565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2d9190613c39565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b612d8681612d73565b82525050565b6000602082019050612da16000830184612d7d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612de1578082015181840152602081019050612dc6565b83811115612df0576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e1282612da7565b612e1c8185612db2565b9350612e2c818560208601612dc3565b612e3581612df6565b840191505092915050565b60006020820190508181036000830152612e5a8184612e07565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ea182612e76565b9050919050565b612eb181612e96565b8114612ebc57600080fd5b50565b600081359050612ece81612ea8565b92915050565b612edd81612d73565b8114612ee857600080fd5b50565b600081359050612efa81612ed4565b92915050565b60008060408385031215612f1757612f16612e6c565b5b6000612f2585828601612ebf565b9250506020612f3685828601612eeb565b9150509250929050565b60008115159050919050565b612f5581612f40565b82525050565b6000602082019050612f706000830184612f4c565b92915050565b60008060408385031215612f8d57612f8c612e6c565b5b6000612f9b85828601612eeb565b9250506020612fac85828601612eeb565b9150509250929050565b600060208284031215612fcc57612fcb612e6c565b5b6000612fda84828501612ebf565b91505092915050565b600080600060608486031215612ffc57612ffb612e6c565b5b600061300a86828701612ebf565b935050602061301b86828701612ebf565b925050604061302c86828701612eeb565b9150509250925092565b600060ff82169050919050565b61304c81613036565b82525050565b60006020820190506130676000830184613043565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130aa82612df6565b810181811067ffffffffffffffff821117156130c9576130c8613072565b5b80604052505050565b60006130dc612e62565b90506130e882826130a1565b919050565b600067ffffffffffffffff82111561310857613107613072565b5b602082029050602081019050919050565b600080fd5b600061313161312c846130ed565b6130d2565b9050808382526020820190506020840283018581111561315457613153613119565b5b835b8181101561317d57806131698882612ebf565b845260208401935050602081019050613156565b5050509392505050565b600082601f83011261319c5761319b61306d565b5b81356131ac84826020860161311e565b91505092915050565b6000602082840312156131cb576131ca612e6c565b5b600082013567ffffffffffffffff8111156131e9576131e8612e71565b5b6131f584828501613187565b91505092915050565b60006020828403121561321457613213612e6c565b5b600061322284828501612eeb565b91505092915050565b61323481612e96565b82525050565b600060208201905061324f600083018461322b565b92915050565b61325e81612f40565b811461326957600080fd5b50565b60008135905061327b81613255565b92915050565b60006020828403121561329757613296612e6c565b5b60006132a58482850161326c565b91505092915050565b600080604083850312156132c5576132c4612e6c565b5b60006132d385828601612ebf565b92505060206132e485828601612ebf565b9150509250929050565b60006040820190506133036000830185612d7d565b6133106020830184612d7d565b9392505050565b6000819050919050565b600061333c61333761333284612e76565b613317565b612e76565b9050919050565b600061334e82613321565b9050919050565b600061336082613343565b9050919050565b61337081613355565b82525050565b600060208201905061338b6000830184613367565b92915050565b7f706c73206e6f20626f7400000000000000000000000000000000000000000000600082015250565b60006133c7600a83612db2565b91506133d282613391565b602082019050919050565b600060208201905081810360008301526133f6816133ba565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061343782612d73565b915061344283612d73565b925082821015613455576134546133fd565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061349a82612d73565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134cc576134cb6133fd565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061350d602083612db2565b9150613518826134d7565b602082019050919050565b6000602082019050818103600083015261353c81613500565b9050919050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000613579601283612db2565b915061358482613543565b602082019050919050565b600060208201905081810360008301526135a88161356c565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006135e5601783612db2565b91506135f0826135af565b602082019050919050565b60006020820190508181036000830152613614816135d8565b9050919050565b60008151905061362a81612ea8565b92915050565b60006020828403121561364657613645612e6c565b5b60006136548482850161361b565b91505092915050565b6000604082019050613672600083018561322b565b61367f602083018461322b565b9392505050565b6000819050919050565b60006136ab6136a66136a184613686565b613317565b612d73565b9050919050565b6136bb81613690565b82525050565b600060c0820190506136d6600083018961322b565b6136e36020830188612d7d565b6136f060408301876136b2565b6136fd60608301866136b2565b61370a608083018561322b565b61371760a0830184612d7d565b979650505050505050565b60008151905061373181612ed4565b92915050565b6000806000606084860312156137505761374f612e6c565b5b600061375e86828701613722565b935050602061376f86828701613722565b925050604061378086828701613722565b9150509250925092565b600060408201905061379f600083018561322b565b6137ac6020830184612d7d565b9392505050565b6000815190506137c281613255565b92915050565b6000602082840312156137de576137dd612e6c565b5b60006137ec848285016137b3565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613851602483612db2565b915061385c826137f5565b604082019050919050565b6000602082019050818103600083015261388081613844565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138e3602283612db2565b91506138ee82613887565b604082019050919050565b60006020820190508181036000830152613912816138d6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613975602583612db2565b915061398082613919565b604082019050919050565b600060208201905081810360008301526139a481613968565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a07602383612db2565b9150613a12826139ab565b604082019050919050565b60006020820190508181036000830152613a36816139fa565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a99602983612db2565b9150613aa482613a3d565b604082019050919050565b60006020820190508181036000830152613ac881613a8c565b9050919050565b7f45524332303a207472616e736665722066726f6d2066726f7a656e2077616c6c60008201527f65742e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613b2b602383612db2565b9150613b3682613acf565b604082019050919050565b60006020820190508181036000830152613b5a81613b1e565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613b97601883612db2565b9150613ba282613b61565b602082019050919050565b60006020820190508181036000830152613bc681613b8a565b9050919050565b7f706c73206e6f20736e6970000000000000000000000000000000000000000000600082015250565b6000613c03600b83612db2565b9150613c0e82613bcd565b602082019050919050565b60006020820190508181036000830152613c3281613bf6565b9050919050565b6000613c4482612d73565b9150613c4f83612d73565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c8457613c836133fd565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b6000613ceb602783612db2565b9150613cf682613c8f565b604082019050919050565b60006020820190508181036000830152613d1a81613cde565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b6000613d57601b83612db2565b9150613d6282613d21565b602082019050919050565b60006020820190508181036000830152613d8681613d4a565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613de9602283612db2565b9150613df482613d8d565b604082019050919050565b60006020820190508181036000830152613e1881613ddc565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613e7b602383612db2565b9150613e8682613e1f565b604082019050919050565b60006020820190508181036000830152613eaa81613e6e565b9050919050565b6000613ebc82612d73565b9150613ec783612d73565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f0057613eff6133fd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f4582612d73565b9150613f5083612d73565b925082613f6057613f5f613f0b565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613fa081612e96565b82525050565b6000613fb28383613f97565b60208301905092915050565b6000602082019050919050565b6000613fd682613f6b565b613fe08185613f76565b9350613feb83613f87565b8060005b8381101561401c5781516140038882613fa6565b975061400e83613fbe565b925050600181019050613fef565b5085935050505092915050565b600060a08201905061403e6000830188612d7d565b61404b60208301876136b2565b818103604083015261405d8186613fcb565b905061406c606083018561322b565b6140796080830184612d7d565b969550505050505056fea26469706673582212202507b02773ada2fa0b5ba416b6d5e1a33c73d3a219db5e5fc2d8506ec9739c7f64736f6c634300080e003300000000000000000000000016f8c29b467d2e61e4b0fa8f43b37eb876f683d100000000000000000000000016f8c29b467d2e61e4b0fa8f43b37eb876f683d1

Deployed Bytecode

0x6080604052600436106101f25760003560e01c8063590f897e1161010d578063a9059cbb116100a0578063c9567bf91161006f578063c9567bf9146106c4578063db92dbb6146106db578063dcb0e0ad14610706578063dd62ed3e1461072f578063e8078d941461076c576101f9565b8063a9059cbb1461061c578063aacebbe314610659578063b2131f7d14610682578063c3c8cd80146106ad576101f9565b80637a49cddb116100dc5780637a49cddb146105725780638da5cb5b1461059b57806394b8d8f2146105c657806395d89b41146105f1576101f9565b8063590f897e146104dc5780636fc3eaec1461050757806370a082311461051e578063715018a61461055b576101f9565b806327f3a72a116101855780633bbac579116101545780633bbac5791461042057806340b9a54b1461045d57806345596e2e1461048857806349bd5a5e146104b1576101f9565b806327f3a72a14610376578063313ce567146103a157806331c2d847146103cc57806332d873d8146103f5576101f9565b806318160ddd116101c157806318160ddd146102ba5780631816467f146102e55780631940d0201461030e57806323b872dd14610339576101f9565b80630492f055146101fe57806306fdde0314610229578063095ea7b3146102545780630b78f9c014610291576101f9565b366101f957005b600080fd5b34801561020a57600080fd5b50610213610783565b6040516102209190612d8c565b60405180910390f35b34801561023557600080fd5b5061023e610789565b60405161024b9190612e40565b60405180910390f35b34801561026057600080fd5b5061027b60048036038101906102769190612f00565b6107c2565b6040516102889190612f5b565b60405180910390f35b34801561029d57600080fd5b506102b860048036038101906102b39190612f76565b6107e0565b005b3480156102c657600080fd5b506102cf6108ac565b6040516102dc9190612d8c565b60405180910390f35b3480156102f157600080fd5b5061030c60048036038101906103079190612fb6565b6108bc565b005b34801561031a57600080fd5b506103236109ba565b6040516103309190612d8c565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190612fe3565b6109c0565b60405161036d9190612f5b565b60405180910390f35b34801561038257600080fd5b5061038b610bb1565b6040516103989190612d8c565b60405180910390f35b3480156103ad57600080fd5b506103b6610bc1565b6040516103c39190613052565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee91906131b5565b610bc6565b005b34801561040157600080fd5b5061040a610cbc565b6040516104179190612d8c565b60405180910390f35b34801561042c57600080fd5b5061044760048036038101906104429190612fb6565b610cc2565b6040516104549190612f5b565b60405180910390f35b34801561046957600080fd5b50610472610d18565b60405161047f9190612d8c565b60405180910390f35b34801561049457600080fd5b506104af60048036038101906104aa91906131fe565b610d1e565b005b3480156104bd57600080fd5b506104c6610e9a565b6040516104d3919061323a565b60405180910390f35b3480156104e857600080fd5b506104f1610ec0565b6040516104fe9190612d8c565b60405180910390f35b34801561051357600080fd5b5061051c610ec6565b005b34801561052a57600080fd5b5061054560048036038101906105409190612fb6565b610f38565b6040516105529190612d8c565b60405180910390f35b34801561056757600080fd5b50610570610f81565b005b34801561057e57600080fd5b50610599600480360381019061059491906131b5565b6110d4565b005b3480156105a757600080fd5b506105b06112b0565b6040516105bd919061323a565b60405180910390f35b3480156105d257600080fd5b506105db6112d9565b6040516105e89190612f5b565b60405180910390f35b3480156105fd57600080fd5b506106066112ec565b6040516106139190612e40565b60405180910390f35b34801561062857600080fd5b50610643600480360381019061063e9190612f00565b611325565b6040516106509190612f5b565b60405180910390f35b34801561066557600080fd5b50610680600480360381019061067b9190612fb6565b611343565b005b34801561068e57600080fd5b50610697611441565b6040516106a49190612d8c565b60405180910390f35b3480156106b957600080fd5b506106c2611447565b005b3480156106d057600080fd5b506106d96114c1565b005b3480156106e757600080fd5b506106f06115e6565b6040516106fd9190612d8c565b60405180910390f35b34801561071257600080fd5b5061072d60048036038101906107289190613281565b611618565b005b34801561073b57600080fd5b50610756600480360381019061075191906132ae565b611710565b6040516107639190612d8c565b60405180910390f35b34801561077857600080fd5b50610781611797565b005b600e5481565b6040518060400160405280600581526020017f5741474d4900000000000000000000000000000000000000000000000000000081525081565b60006107d66107cf611c47565b8484611c4f565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610821611c47565b73ffffffffffffffffffffffffffffffffffffffff161461084157600080fd5b600a82111561084f57600080fd5b600a81111561085d57600080fd5b81600b8190555080600c819055507f5c6323bf1c2d7aaea2c091a4751c1c87af7f2864650c336507a77d0557af37a1600b54600c546040516108a09291906132ee565b60405180910390a15050565b6000670de0b6b3a7640000905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fd611c47565b73ffffffffffffffffffffffffffffffffffffffff161461091d57600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f31bb1993faff4f8409d7baad771f861e093ef4ce2c92c6e0cb10b82d1c7324cb600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516109af9190613376565b60405180910390a150565b600f5481565b6000601160009054906101000a900460ff168015610a285750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610a815750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15610af5573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610af4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aeb906133dd565b60405180910390fd5b5b610b00848484611e18565b600082600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b4c611c47565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610b91919061342c565b9050610ba585610b9f611c47565b83611c4f565b60019150509392505050565b6000610bbc30610f38565b905090565b600981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c07611c47565b73ffffffffffffffffffffffffffffffffffffffff1614610c2757600080fd5b60005b8151811015610cb857600060066000848481518110610c4c57610c4b613460565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610cb09061348f565b915050610c2a565b5050565b60105481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b5481565b610d26611c47565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610daa90613523565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df4611c47565b73ffffffffffffffffffffffffffffffffffffffff1614610e1457600080fd5b60008111610e57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4e9061358f565b60405180910390fd5b80600d819055507f208f1b468d3d61f0f085e975bd9d04367c930d599642faad06695229f3eadcd8600d54604051610e8f9190612d8c565b60405180910390a150565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f07611c47565b73ffffffffffffffffffffffffffffffffffffffff1614610f2757600080fd5b6000479050610f3581612724565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f89611c47565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100d90613523565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611115611c47565b73ffffffffffffffffffffffffffffffffffffffff161461113557600080fd5b60005b81518110156112ac57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682828151811061118d5761118c613460565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156112215750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110611200576111ff613460565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b156112995760016006600084848151811061123f5761123e613460565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b80806112a49061348f565b915050611138565b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601160029054906101000a900460ff1681565b6040518060400160405280600581526020017f5741474d4900000000000000000000000000000000000000000000000000000081525081565b6000611339611332611c47565b8484611e18565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611384611c47565b73ffffffffffffffffffffffffffffffffffffffff16146113a457600080fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fbf86feedee5b30c30a8243bd21deebb704d141478d39b1be04fe5ee739f214e7600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516114369190613376565b60405180910390a150565b600d5481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611488611c47565b73ffffffffffffffffffffffffffffffffffffffff16146114a857600080fd5b60006114b330610f38565b90506114be81612811565b50565b6114c9611c47565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611556576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154d90613523565b60405180910390fd5b601160009054906101000a900460ff16156115a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159d906135fb565b60405180910390fd5b6001601160006101000a81548160ff0219169083151502179055504260108190555066b1a2bc2ec50000600e8190555066b1a2bc2ec50000600f81905550565b6000611613600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f38565b905090565b611620611c47565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490613523565b60405180910390fd5b80601160026101000a81548160ff0219169083151502179055507ff65c78d1059dbb9ec90732848bcfebbec05ac40af847d3c19adcad63379d3aeb601160029054906101000a900460ff166040516117059190612f5b565b60405180910390a150565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61179f611c47565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461182c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182390613523565b60405180910390fd5b601160009054906101000a900460ff161561187c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611873906135fb565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061190b30600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16670de0b6b3a7640000611c4f565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197a9190613630565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119e1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a059190613630565b6040518363ffffffff1660e01b8152600401611a2292919061365d565b6020604051808303816000875af1158015611a41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a659190613630565b600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730611aee30610f38565b600080611af96112b0565b426040518863ffffffff1660e01b8152600401611b1b969594939291906136c1565b60606040518083038185885af1158015611b39573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611b5e9190613737565b505050600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611c0092919061378a565b6020604051808303816000875af1158015611c1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c4391906137c8565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb590613867565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d24906138f9565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611e0b9190612d8c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7e9061398b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611ef6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eed90613a1d565b60405180910390fd5b60008111611f39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3090613aaf565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd90613b41565b60405180910390fd5b6000611fd06112b0565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561203e575061200e6112b0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561265f57600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156120ee5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156121445750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561245f57601160009054906101000a900460ff16612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f90613bad565b60405180910390fd5b60105442036121dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d390613c19565b60405180910390fd5b42610e106010546121ed9190613c39565b111561224c57600f546121ff84610f38565b8361220a9190613c39565b111561224b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224290613d01565b60405180910390fd5b5b600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060010160009054906101000a900460ff166123265760405180604001604052806000815260200160011515815250600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000820151816000015560208201518160010160006101000a81548160ff0219169083151502179055509050505b4261012c6010546123379190613c39565b111561241357600e54821115612382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237990613d6d565b60405180910390fd5b600f4261238f9190613c39565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612412576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240990613dff565b60405180910390fd5b5b42600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000181905550600190505b601160019054906101000a900460ff161580156124885750601160009054906101000a900460ff165b80156124e25750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561265e57600f426124f49190613c39565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000015410612577576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256e90613e91565b60405180910390fd5b600061258230610f38565b9050600081111561263f57601160029054906101000a900460ff1615612635576064600d546125d2600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f38565b6125dc9190613eb1565b6125e69190613f3a565b811115612634576064600d5461261d600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f38565b6126279190613eb1565b6126319190613f3a565b90505b5b61263e81612811565b5b600047905060008111156126575761265647612724565b5b6000925050505b5b600060019050600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127065750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561271057600090505b61271d8585858486612a8a565b5050505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361276d9190613f3a565b9081150290604051600060405180830381858888f19350505050158015612798573d6000803e3d6000fd5b50600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836127e29190613f3a565b9081150290604051600060405180830381858888f1935050505015801561280d573d6000803e3d6000fd5b5050565b6001601160016101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561284957612848613072565b5b6040519080825280602002602001820160405280156128775781602001602082028036833780820191505090505b509050308160008151811061288f5761288e613460565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612936573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061295a9190613630565b8160018151811061296e5761296d613460565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506129d530600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c4f565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612a39959493929190614029565b600060405180830381600087803b158015612a5357600080fd5b505af1158015612a67573d6000803e3d6000fd5b50505050506000601160016101000a81548160ff02191690831515021790555050565b6000612a968383612aac565b9050612aa486868684612b01565b505050505050565b600080600090508315612af7578215612ac957600b549050612af6565b600c549050610384601054612ade9190613c39565b421015612af557600581612af29190613c39565b90505b5b5b8091505092915050565b600080612b0e8484612ca4565b9150915083600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b5d919061342c565b600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612beb9190613c39565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3781612ce2565b8473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c949190612d8c565b60405180910390a3505050505050565b600080600060648486612cb79190613eb1565b612cc19190613f3a565b905060008186612cd1919061342c565b905080829350935050509250929050565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2d9190613c39565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555050565b6000819050919050565b612d8681612d73565b82525050565b6000602082019050612da16000830184612d7d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612de1578082015181840152602081019050612dc6565b83811115612df0576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e1282612da7565b612e1c8185612db2565b9350612e2c818560208601612dc3565b612e3581612df6565b840191505092915050565b60006020820190508181036000830152612e5a8184612e07565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612ea182612e76565b9050919050565b612eb181612e96565b8114612ebc57600080fd5b50565b600081359050612ece81612ea8565b92915050565b612edd81612d73565b8114612ee857600080fd5b50565b600081359050612efa81612ed4565b92915050565b60008060408385031215612f1757612f16612e6c565b5b6000612f2585828601612ebf565b9250506020612f3685828601612eeb565b9150509250929050565b60008115159050919050565b612f5581612f40565b82525050565b6000602082019050612f706000830184612f4c565b92915050565b60008060408385031215612f8d57612f8c612e6c565b5b6000612f9b85828601612eeb565b9250506020612fac85828601612eeb565b9150509250929050565b600060208284031215612fcc57612fcb612e6c565b5b6000612fda84828501612ebf565b91505092915050565b600080600060608486031215612ffc57612ffb612e6c565b5b600061300a86828701612ebf565b935050602061301b86828701612ebf565b925050604061302c86828701612eeb565b9150509250925092565b600060ff82169050919050565b61304c81613036565b82525050565b60006020820190506130676000830184613043565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130aa82612df6565b810181811067ffffffffffffffff821117156130c9576130c8613072565b5b80604052505050565b60006130dc612e62565b90506130e882826130a1565b919050565b600067ffffffffffffffff82111561310857613107613072565b5b602082029050602081019050919050565b600080fd5b600061313161312c846130ed565b6130d2565b9050808382526020820190506020840283018581111561315457613153613119565b5b835b8181101561317d57806131698882612ebf565b845260208401935050602081019050613156565b5050509392505050565b600082601f83011261319c5761319b61306d565b5b81356131ac84826020860161311e565b91505092915050565b6000602082840312156131cb576131ca612e6c565b5b600082013567ffffffffffffffff8111156131e9576131e8612e71565b5b6131f584828501613187565b91505092915050565b60006020828403121561321457613213612e6c565b5b600061322284828501612eeb565b91505092915050565b61323481612e96565b82525050565b600060208201905061324f600083018461322b565b92915050565b61325e81612f40565b811461326957600080fd5b50565b60008135905061327b81613255565b92915050565b60006020828403121561329757613296612e6c565b5b60006132a58482850161326c565b91505092915050565b600080604083850312156132c5576132c4612e6c565b5b60006132d385828601612ebf565b92505060206132e485828601612ebf565b9150509250929050565b60006040820190506133036000830185612d7d565b6133106020830184612d7d565b9392505050565b6000819050919050565b600061333c61333761333284612e76565b613317565b612e76565b9050919050565b600061334e82613321565b9050919050565b600061336082613343565b9050919050565b61337081613355565b82525050565b600060208201905061338b6000830184613367565b92915050565b7f706c73206e6f20626f7400000000000000000000000000000000000000000000600082015250565b60006133c7600a83612db2565b91506133d282613391565b602082019050919050565b600060208201905081810360008301526133f6816133ba565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061343782612d73565b915061344283612d73565b925082821015613455576134546133fd565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061349a82612d73565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036134cc576134cb6133fd565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061350d602083612db2565b9150613518826134d7565b602082019050919050565b6000602082019050818103600083015261353c81613500565b9050919050565b7f526174652063616e2774206265207a65726f0000000000000000000000000000600082015250565b6000613579601283612db2565b915061358482613543565b602082019050919050565b600060208201905081810360008301526135a88161356c565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006135e5601783612db2565b91506135f0826135af565b602082019050919050565b60006020820190508181036000830152613614816135d8565b9050919050565b60008151905061362a81612ea8565b92915050565b60006020828403121561364657613645612e6c565b5b60006136548482850161361b565b91505092915050565b6000604082019050613672600083018561322b565b61367f602083018461322b565b9392505050565b6000819050919050565b60006136ab6136a66136a184613686565b613317565b612d73565b9050919050565b6136bb81613690565b82525050565b600060c0820190506136d6600083018961322b565b6136e36020830188612d7d565b6136f060408301876136b2565b6136fd60608301866136b2565b61370a608083018561322b565b61371760a0830184612d7d565b979650505050505050565b60008151905061373181612ed4565b92915050565b6000806000606084860312156137505761374f612e6c565b5b600061375e86828701613722565b935050602061376f86828701613722565b925050604061378086828701613722565b9150509250925092565b600060408201905061379f600083018561322b565b6137ac6020830184612d7d565b9392505050565b6000815190506137c281613255565b92915050565b6000602082840312156137de576137dd612e6c565b5b60006137ec848285016137b3565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613851602483612db2565b915061385c826137f5565b604082019050919050565b6000602082019050818103600083015261388081613844565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006138e3602283612db2565b91506138ee82613887565b604082019050919050565b60006020820190508181036000830152613912816138d6565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613975602583612db2565b915061398082613919565b604082019050919050565b600060208201905081810360008301526139a481613968565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613a07602383612db2565b9150613a12826139ab565b604082019050919050565b60006020820190508181036000830152613a36816139fa565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613a99602983612db2565b9150613aa482613a3d565b604082019050919050565b60006020820190508181036000830152613ac881613a8c565b9050919050565b7f45524332303a207472616e736665722066726f6d2066726f7a656e2077616c6c60008201527f65742e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613b2b602383612db2565b9150613b3682613acf565b604082019050919050565b60006020820190508181036000830152613b5a81613b1e565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b6000613b97601883612db2565b9150613ba282613b61565b602082019050919050565b60006020820190508181036000830152613bc681613b8a565b9050919050565b7f706c73206e6f20736e6970000000000000000000000000000000000000000000600082015250565b6000613c03600b83612db2565b9150613c0e82613bcd565b602082019050919050565b60006020820190508181036000830152613c3281613bf6565b9050919050565b6000613c4482612d73565b9150613c4f83612d73565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613c8457613c836133fd565b5b828201905092915050565b7f596f752063616e2774206f776e2074686174206d616e7920746f6b656e73206160008201527f74206f6e63652e00000000000000000000000000000000000000000000000000602082015250565b6000613ceb602783612db2565b9150613cf682613c8f565b604082019050919050565b60006020820190508181036000830152613d1a81613cde565b9050919050565b7f45786365656473206d6178696d756d2062757920616d6f756e742e0000000000600082015250565b6000613d57601b83612db2565b9150613d6282613d21565b602082019050919050565b60006020820190508181036000830152613d8681613d4a565b9050919050565b7f596f75722062757920636f6f6c646f776e20686173206e6f742065787069726560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613de9602283612db2565b9150613df482613d8d565b604082019050919050565b60006020820190508181036000830152613e1881613ddc565b9050919050565b7f596f75722073656c6c20636f6f6c646f776e20686173206e6f7420657870697260008201527f65642e0000000000000000000000000000000000000000000000000000000000602082015250565b6000613e7b602383612db2565b9150613e8682613e1f565b604082019050919050565b60006020820190508181036000830152613eaa81613e6e565b9050919050565b6000613ebc82612d73565b9150613ec783612d73565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613f0057613eff6133fd565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f4582612d73565b9150613f5083612d73565b925082613f6057613f5f613f0b565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613fa081612e96565b82525050565b6000613fb28383613f97565b60208301905092915050565b6000602082019050919050565b6000613fd682613f6b565b613fe08185613f76565b9350613feb83613f87565b8060005b8381101561401c5781516140038882613fa6565b975061400e83613fbe565b925050600181019050613fef565b5085935050505092915050565b600060a08201905061403e6000830188612d7d565b61404b60208301876136b2565b818103604083015261405d8186613fcb565b905061406c606083018561322b565b6140796080830184612d7d565b969550505050505056fea26469706673582212202507b02773ada2fa0b5ba416b6d5e1a33c73d3a219db5e5fc2d8506ec9739c7f64736f6c634300080e0033

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

00000000000000000000000016f8c29b467d2e61e4b0fa8f43b37eb876f683d100000000000000000000000016f8c29b467d2e61e4b0fa8f43b37eb876f683d1

-----Decoded View---------------
Arg [0] : MarketingWallet (address): 0x16F8C29b467d2E61e4B0FA8F43B37EB876f683D1
Arg [1] : DevWallet (address): 0x16F8C29b467d2E61e4B0FA8F43B37EB876f683D1

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000016f8c29b467d2e61e4b0fa8f43b37eb876f683d1
Arg [1] : 00000000000000000000000016f8c29b467d2e61e4b0fa8f43b37eb876f683d1


Deployed Bytecode Sourcemap

2723:11580:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3539:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3110:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5238:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12539:264;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4985:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13865:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3571:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5404:468;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14091:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3224:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13137:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3604:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13360:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3447:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12262:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3412:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3477:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12062:192;;;;;;;;;;;;;:::i;:::-;;4690:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1804:148;;;;;;;;;;;;;:::i;:::-;;12811:317;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1590:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3693:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3166:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4809:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13632:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3508:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11857:193;;;;;;;;;;;;;:::i;:::-;;11578:271;;;;;;;;;;;;;:::i;:::-;;14199:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13460:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5090:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10882:688;;;;;;;;;;;;;:::i;:::-;;3539:25;;;;:::o;3110:44::-;;;;;;;;;;;;;;;;;;;:::o;5238:158::-;5310:4;5327:39;5336:12;:10;:12::i;:::-;5350:7;5359:6;5327:8;:39::i;:::-;5384:4;5377:11;;5238:158;;;;:::o;12539:264::-;12622:16;;;;;;;;;;;12606:32;;:12;:10;:12::i;:::-;:32;;;12598:41;;;;;;12665:2;12658:3;:9;;12650:18;;;;;;12696:2;12687:4;:11;;12679:20;;;;;;12720:3;12710:7;:13;;;;12745:4;12734:8;:15;;;;12765:30;12777:7;;12786:8;;12765:30;;;;;;;:::i;:::-;;;;;;;;12539:264;;:::o;4985:97::-;5038:4;3090:11;5055:19;;4985:97;:::o;13865:195::-;13954:10;;;;;;;;;;;13938:26;;:12;:10;:12::i;:::-;:26;;;13930:35;;;;;;13997:10;13976;;:32;;;;;;;;;;;;;;;;;;14024:28;14041:10;;;;;;;;;;;14024:28;;;;;;:::i;:::-;;;;;;;;13865:195;:::o;3571:26::-;;;;:::o;5404:468::-;5499:4;5519:12;;;;;;;;;;;:46;;;;;5536:18;:29;5555:9;5536:29;;;;;;;;;;;;;;;;;;;;;;;;;5535:30;5519:46;:73;;;;;5579:13;;;;;;;;;;;5569:23;;:6;:23;;;5519:73;5516:150;;;5630:9;5617:22;;:9;:22;;;5608:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5516:150;5676:36;5686:6;5694:9;5705:6;5676:9;:36::i;:::-;5723:18;5780:6;5744:11;:19;5756:6;5744:19;;;;;;;;;;;;;;;:33;5764:12;:10;:12::i;:::-;5744:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;5723:63;;5797:45;5806:6;5814:12;:10;:12::i;:::-;5828:13;5797:8;:45::i;:::-;5860:4;5853:11;;;5404:468;;;;;:::o;14091:100::-;14135:4;14159:24;14177:4;14159:9;:24::i;:::-;14152:31;;14091:100;:::o;3224:34::-;3257:1;3224:34;:::o;13137:211::-;13222:16;;;;;;;;;;;13206:32;;:12;:10;:12::i;:::-;:32;;;13198:41;;;;;;13255:6;13250:91;13271:5;:12;13267:1;:16;13250:91;;;13324:5;13305:6;:16;13312:5;13318:1;13312:8;;;;;;;;:::i;:::-;;;;;;;;13305:16;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;13285:3;;;;;:::i;:::-;;;;13250:91;;;;13137:211;:::o;3604:23::-;;;;:::o;13360:90::-;13408:4;13432:6;:10;13439:2;13432:10;;;;;;;;;;;;;;;;;;;;;;;;;13425:17;;13360:90;;;:::o;3447:23::-;;;;:::o;12262:269::-;1727:12;:10;:12::i;:::-;1717:22;;:6;;;;;;;;;;:22;;;1709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12350:16:::1;;;;;;;;;;;12334:32;;:12;:10;:12::i;:::-;:32;;;12326:41;;;::::0;::::1;;12393:1;12386:4;:8;12378:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12479:4;12468:8;:15;;;;12499:24;12514:8;;12499:24;;;;;;:::i;:::-;;;;;;;;12262:269:::0;:::o;3412:28::-;;;;;;;;;;;;;:::o;3477:24::-;;;;:::o;12062:192::-;12128:16;;;;;;;;;;;12112:32;;:12;:10;:12::i;:::-;:32;;;12104:41;;;;;;12156:23;12182:21;12156:47;;12214:32;12227:18;12214:12;:32::i;:::-;12093:161;12062:192::o;4690:113::-;4756:4;4780:6;:15;4787:7;4780:15;;;;;;;;;;;;;;;;4773:22;;4690:113;;;:::o;1804:148::-;1727:12;:10;:12::i;:::-;1717:22;;:6;;;;;;;;;;:22;;;1709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1911:1:::1;1874:40;;1895:6;::::0;::::1;;;;;;;;1874:40;;;;;;;;;;;;1942:1;1925:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1804:148::o:0;12811:317::-;12898:16;;;;;;;;;;;12882:32;;:12;:10;:12::i;:::-;:32;;;12874:41;;;;;;12931:6;12926:195;12947:5;:12;12943:1;:16;12926:195;;;12997:13;;;;;;;;;;;12985:25;;:5;12991:1;12985:8;;;;;;;;:::i;:::-;;;;;;;;:25;;;;:65;;;;;13034:15;;;;;;;;;;;13014:36;;:5;13020:1;13014:8;;;;;;;;:::i;:::-;;;;;;;;:36;;;;12985:65;12981:129;;;13090:4;13071:6;:16;13078:5;13084:1;13078:8;;;;;;;;:::i;:::-;;;;;;;;13071:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;12981:129;12961:3;;;;;:::i;:::-;;;;12926:195;;;;12811:317;:::o;1590:79::-;1628:7;1655:6;;;;;;;;;;;1648:13;;1590:79;:::o;3693:38::-;;;;;;;;;;;;;:::o;3166:46::-;;;;;;;;;;;;;;;;;;;:::o;4809:164::-;4884:4;4901:42;4911:12;:10;:12::i;:::-;4925:9;4936:6;4901:9;:42::i;:::-;4961:4;4954:11;;4809:164;;;;:::o;13632:225::-;13727:16;;;;;;;;;;;13711:32;;:12;:10;:12::i;:::-;:32;;;13703:41;;;;;;13782:10;13755:16;;:38;;;;;;;;;;;;;;;;;;13809:40;13832:16;;;;;;;;;;;13809:40;;;;;;:::i;:::-;;;;;;;;13632:225;:::o;3508:24::-;;;;:::o;11857:193::-;11923:16;;;;;;;;;;;11907:32;;:12;:10;:12::i;:::-;:32;;;11899:41;;;;;;11951:20;11974:24;11992:4;11974:9;:24::i;:::-;11951:47;;12009:33;12026:15;12009:16;:33::i;:::-;11888:162;11857:193::o;11578:271::-;1727:12;:10;:12::i;:::-;1717:22;;:6;;;;;;;;;;:22;;;1709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11642:12:::1;;;;;;;;;;;11641:13;11633:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11708:4;11693:12;;:19;;;;;;;;;;;;;;;;;;11737:15;11723:11;:29;;;;11779:16;11763:13;:32;;;;11824:16;11807:14;:33;;;;11578:271::o:0;14199:101::-;14244:4;14268:24;14278:13;;;;;;;;;;;14268:9;:24::i;:::-;14261:31;;14199:101;:::o;13460:164::-;1727:12;:10;:12::i;:::-;1717:22;;:6;;;;;;;;;;:22;;;1709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13552:5:::1;13530:19;;:27;;;;;;;;;;;;;;;;;;13573:43;13596:19;;;;;;;;;;;13573:43;;;;;;:::i;:::-;;;;;;;;13460:164:::0;:::o;5090:140::-;5171:4;5195:11;:18;5207:5;5195:18;;;;;;;;;;;;;;;:27;5214:7;5195:27;;;;;;;;;;;;;;;;5188:34;;5090:140;;;;:::o;10882:688::-;1727:12;:10;:12::i;:::-;1717:22;;:6;;;;;;;;;;:22;;;1709:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10947:12:::1;;;;;;;;;;;10946:13;10938:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;10998:35;11055:42;10998:100;;11127:16;11109:15;;:34;;;;;;;;;;;;;;;;;;11154:63;11171:4;11186:15;;;;;;;;;;;3090:11;11154:8;:63::i;:::-;11262:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11244:56;;;11309:4;11316:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11244:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11228:13;;:112;;;;;;;;;;;;;;;;;;11351:15;;;;;;;;;;;:31;;;11390:21;11421:4;11427:24;11445:4;11427:9;:24::i;:::-;11452:1;11454::::0;11456:7:::1;:5;:7::i;:::-;11464:15;11351:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11498:13;;;;;;;;;;;11491:29;;;11529:15;;;;;;;;;;;11547:14;11491:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10927:643;10882:688::o:0;453:98::-;506:7;533:10;526:17;;453:98;:::o;5880:332::-;5987:1;5970:19;;:5;:19;;;5962:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6068:1;6049:21;;:7;:21;;;6041:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6150:6;6120:11;:18;6132:5;6120:18;;;;;;;;;;;;;;;:27;6139:7;6120:27;;;;;;;;;;;;;;;:36;;;;6188:7;6172:32;;6181:5;6172:32;;;6197:6;6172:32;;;;;;:::i;:::-;;;;;;;;5880:332;;;:::o;6220:2579::-;6321:1;6305:18;;:4;:18;;;6297:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6398:1;6384:16;;:2;:16;;;6376:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6468:1;6459:6;:10;6451:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6535:6;:12;6542:4;6535:12;;;;;;;;;;;;;;;;;;;;;;;;;6534:13;6526:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6600:10;6640:7;:5;:7::i;:::-;6632:15;;:4;:15;;;;:32;;;;;6657:7;:5;:7::i;:::-;6651:13;;:2;:13;;;;6632:32;6629:1972;;;6712:13;;;;;;;;;;;6704:21;;:4;:21;;;:55;;;;;6743:15;;;;;;;;;;;6729:30;;:2;:30;;;;6704:55;:82;;;;;6764:18;:22;6783:2;6764:22;;;;;;;;;;;;;;;;;;;;;;;;;6763:23;6704:82;6701:954;;;6815:12;;;;;;;;;;;6807:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6902:11;;6883:15;:30;6875:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;6979:15;6967:7;6952:11;;:23;;;;:::i;:::-;6951:43;6948:200;;;7064:14;;7037:22;7055:2;7037:9;:22::i;:::-;7028:6;:31;;;;:::i;:::-;7027:51;;7019:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;6948:200;7170:8;:12;7179:2;7170:12;;;;;;;;;;;;;;;:19;;;;;;;;;;;;7166:95;;7229:12;;;;;;;;7234:1;7229:12;;;;7236:4;7229:12;;;;;7214:8;:12;7223:2;7214:12;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7166:95;7314:15;7298:11;7283;;:27;;;;:::i;:::-;7282:47;7279:277;;;7372:13;;7362:6;:23;;7354:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;7486:10;7467:15;:30;;;;:::i;:::-;7448:8;:12;7457:2;7448:12;;;;;;;;;;;;;;;:16;;;:49;7440:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;7279:277;7593:15;7574:8;:12;7583:2;7574:12;;;;;;;;;;;;;;;:16;;:34;;;;7635:4;7627:12;;6701:954;7694:7;;;;;;;;;;;7693:8;:24;;;;;7705:12;;;;;;;;;;;7693:24;:49;;;;;7729:13;;;;;;;;;;;7721:21;;:4;:21;;;;7693:49;7690:900;;;7811:10;7792:15;:30;;;;:::i;:::-;7771:8;:14;7780:4;7771:14;;;;;;;;;;;;;;;:18;;;:51;7763:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;7881:25;7909:24;7927:4;7909:9;:24::i;:::-;7881:52;;7978:1;7955:20;:24;7952:402;;;8007:19;;;;;;;;;;;8004:270;;;8121:3;8109:8;;8082:24;8092:13;;;;;;;;;;;8082:9;:24::i;:::-;:35;;;;:::i;:::-;8081:43;;;;:::i;:::-;8058:20;:66;8055:196;;;8220:3;8208:8;;8181:24;8191:13;;;;;;;;;;;8181:9;:24::i;:::-;:35;;;;:::i;:::-;8180:43;;;;:::i;:::-;8157:66;;8055:196;8004:270;8296:38;8313:20;8296:16;:38::i;:::-;7952:402;8372:23;8398:21;8372:47;;8462:1;8441:18;:22;8438:105;;;8488:35;8501:21;8488:12;:35::i;:::-;8438:105;8569:5;8561:13;;7744:846;;7690:900;6629:1972;8611:12;8626:4;8611:19;;8644:18;:24;8663:4;8644:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8672:18;:22;8691:2;8672:22;;;;;;;;;;;;;;;;;;;;;;;;;8644:50;8641:96;;;8720:5;8710:15;;8641:96;8747:44;8762:4;8767:2;8770:6;8777:7;8785:5;8747:14;:44::i;:::-;6286:2513;;6220:2579;;;:::o;9303:141::-;9357:16;;;;;;;;;;;:25;;:37;9392:1;9383:6;:10;;;;:::i;:::-;9357:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9405:10;;;;;;;;;;;:19;;:31;9434:1;9425:6;:10;;;;:::i;:::-;9405:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9303:141;:::o;8807:480::-;4159:4;4149:7;;:14;;;;;;;;;;;;;;;;;;8882:21:::1;8920:1;8906:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8882:40;;8951:4;8933;8938:1;8933:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;8977:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8967:4;8972:1;8967:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9010:62;9027:4;9042:15;;;;;;;;;;;9060:11;9010:8;:62::i;:::-;9083:15;;;;;;;;;;;:66;;;9164:11;9190:1;9206:4;9233;9253:15;9083:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;8871:416;4196:5:::0;4186:7;;:15;;;;;;;;;;;;;;;;;;8807:480;:::o;9456:217::-;9572:8;9584:21;9592:7;9601:3;9584:7;:21::i;:::-;9571:34;;9616:49;9634:6;9642:9;9653:6;9661:3;9616:17;:49::i;:::-;9560:113;9456:217;;;;;:::o;9681:398::-;9744:4;9761:8;9772:1;9761:12;;9787:7;9784:267;;;9814:3;9811:229;;;9844:7;;9838:13;;9811:229;;;9898:8;;9892:14;;9961:10;9946:11;;:26;;;;:::i;:::-;9928:15;:44;9925:100;;;10004:1;9997:8;;;;;:::i;:::-;;;9925:100;9811:229;9784:267;10068:3;10061:10;;;9681:398;;;;:::o;10087:372::-;10192:19;10213:9;10226:23;10237:6;10245:3;10226:10;:23::i;:::-;10191:58;;;;10294:6;10277;:14;10284:6;10277:14;;;;;;;;;;;;;;;;:23;;;;:::i;:::-;10260:6;:14;10267:6;10260:14;;;;;;;;;;;;;;;:40;;;;10351:14;10331:6;:17;10338:9;10331:17;;;;;;;;;;;;;;;;:34;;;;:::i;:::-;10311:6;:17;10318:9;10311:17;;;;;;;;;;;;;;;:54;;;;10377:15;10387:4;10377:9;:15::i;:::-;10425:9;10408:43;;10417:6;10408:43;;;10436:14;10408:43;;;;;;:::i;:::-;;;;;;;;10180:279;;10087:372;;;;:::o;10467:222::-;10536:4;10542;10559:9;10592:3;10581:7;10572:6;:16;;;;:::i;:::-;10571:24;;;;:::i;:::-;10559:36;;10606:19;10637:4;10628:6;:13;;;;:::i;:::-;10606:35;;10660:14;10676:4;10652:29;;;;;;10467:222;;;;;:::o;10697:109::-;10794:4;10770:6;:21;10785:4;10770:21;;;;;;;;;;;;;;;;:28;;;;:::i;:::-;10746:6;:21;10761:4;10746:21;;;;;;;;;;;;;;;:52;;;;10697: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;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135: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:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:474::-;3914:6;3922;3971:2;3959:9;3950:7;3946:23;3942:32;3939:119;;;3977:79;;:::i;:::-;3939:119;4097:1;4122:53;4167:7;4158:6;4147:9;4143:22;4122:53;:::i;:::-;4112:63;;4068:117;4224:2;4250:53;4295:7;4286:6;4275:9;4271:22;4250:53;:::i;:::-;4240:63;;4195:118;3846:474;;;;;:::o;4326:329::-;4385:6;4434:2;4422:9;4413:7;4409:23;4405:32;4402:119;;;4440:79;;:::i;:::-;4402:119;4560:1;4585:53;4630:7;4621:6;4610:9;4606:22;4585:53;:::i;:::-;4575:63;;4531:117;4326:329;;;;:::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:117::-;5825:1;5822;5815:12;5839:180;5887:77;5884:1;5877:88;5984:4;5981:1;5974:15;6008:4;6005:1;5998:15;6025:281;6108:27;6130:4;6108:27;:::i;:::-;6100:6;6096:40;6238:6;6226:10;6223:22;6202:18;6190:10;6187:34;6184:62;6181:88;;;6249:18;;:::i;:::-;6181:88;6289:10;6285:2;6278:22;6068:238;6025:281;;:::o;6312:129::-;6346:6;6373:20;;:::i;:::-;6363:30;;6402:33;6430:4;6422:6;6402:33;:::i;:::-;6312:129;;;:::o;6447:311::-;6524:4;6614:18;6606:6;6603:30;6600:56;;;6636:18;;:::i;:::-;6600:56;6686:4;6678:6;6674:17;6666:25;;6746:4;6740;6736:15;6728:23;;6447:311;;;:::o;6764:117::-;6873:1;6870;6863:12;6904:710;7000:5;7025:81;7041:64;7098:6;7041:64;:::i;:::-;7025:81;:::i;:::-;7016:90;;7126:5;7155:6;7148:5;7141:21;7189:4;7182:5;7178:16;7171:23;;7242:4;7234:6;7230:17;7222:6;7218:30;7271:3;7263:6;7260:15;7257:122;;;7290:79;;:::i;:::-;7257:122;7405:6;7388:220;7422:6;7417:3;7414:15;7388:220;;;7497:3;7526:37;7559:3;7547:10;7526:37;:::i;:::-;7521:3;7514:50;7593:4;7588:3;7584:14;7577:21;;7464:144;7448:4;7443:3;7439:14;7432:21;;7388:220;;;7392:21;7006:608;;6904:710;;;;;:::o;7637:370::-;7708:5;7757:3;7750:4;7742:6;7738:17;7734:27;7724:122;;7765:79;;:::i;:::-;7724:122;7882:6;7869:20;7907:94;7997:3;7989:6;7982:4;7974:6;7970:17;7907:94;:::i;:::-;7898:103;;7714:293;7637:370;;;;:::o;8013:539::-;8097:6;8146:2;8134:9;8125:7;8121:23;8117:32;8114:119;;;8152:79;;:::i;:::-;8114:119;8300:1;8289:9;8285:17;8272:31;8330:18;8322:6;8319:30;8316:117;;;8352:79;;:::i;:::-;8316:117;8457:78;8527:7;8518:6;8507:9;8503:22;8457:78;:::i;:::-;8447:88;;8243:302;8013:539;;;;:::o;8558:329::-;8617:6;8666:2;8654:9;8645:7;8641:23;8637:32;8634:119;;;8672:79;;:::i;:::-;8634:119;8792:1;8817:53;8862:7;8853:6;8842:9;8838:22;8817:53;:::i;:::-;8807:63;;8763:117;8558:329;;;;:::o;8893:118::-;8980:24;8998:5;8980:24;:::i;:::-;8975:3;8968:37;8893:118;;:::o;9017:222::-;9110:4;9148:2;9137:9;9133:18;9125:26;;9161:71;9229:1;9218:9;9214:17;9205:6;9161:71;:::i;:::-;9017:222;;;;:::o;9245:116::-;9315:21;9330:5;9315:21;:::i;:::-;9308:5;9305:32;9295:60;;9351:1;9348;9341:12;9295:60;9245:116;:::o;9367:133::-;9410:5;9448:6;9435:20;9426:29;;9464:30;9488:5;9464:30;:::i;:::-;9367:133;;;;:::o;9506:323::-;9562:6;9611:2;9599:9;9590:7;9586:23;9582:32;9579:119;;;9617:79;;:::i;:::-;9579:119;9737:1;9762:50;9804:7;9795:6;9784:9;9780:22;9762:50;:::i;:::-;9752:60;;9708:114;9506:323;;;;:::o;9835:474::-;9903:6;9911;9960:2;9948:9;9939:7;9935:23;9931:32;9928:119;;;9966:79;;:::i;:::-;9928:119;10086:1;10111:53;10156:7;10147:6;10136:9;10132:22;10111:53;:::i;:::-;10101:63;;10057:117;10213:2;10239:53;10284:7;10275:6;10264:9;10260:22;10239:53;:::i;:::-;10229:63;;10184:118;9835:474;;;;;:::o;10315:332::-;10436:4;10474:2;10463:9;10459:18;10451:26;;10487:71;10555:1;10544:9;10540:17;10531:6;10487:71;:::i;:::-;10568:72;10636:2;10625:9;10621:18;10612:6;10568:72;:::i;:::-;10315:332;;;;;:::o;10653:60::-;10681:3;10702:5;10695:12;;10653:60;;;:::o;10719:142::-;10769:9;10802:53;10820:34;10829:24;10847:5;10829:24;:::i;:::-;10820:34;:::i;:::-;10802:53;:::i;:::-;10789:66;;10719:142;;;:::o;10867:126::-;10917:9;10950:37;10981:5;10950:37;:::i;:::-;10937:50;;10867:126;;;:::o;10999:134::-;11057:9;11090:37;11121:5;11090:37;:::i;:::-;11077:50;;10999:134;;;:::o;11139:147::-;11234:45;11273:5;11234:45;:::i;:::-;11229:3;11222:58;11139:147;;:::o;11292:238::-;11393:4;11431:2;11420:9;11416:18;11408:26;;11444:79;11520:1;11509:9;11505:17;11496:6;11444:79;:::i;:::-;11292:238;;;;:::o;11536:160::-;11676:12;11672:1;11664:6;11660:14;11653:36;11536:160;:::o;11702:366::-;11844:3;11865:67;11929:2;11924:3;11865:67;:::i;:::-;11858:74;;11941:93;12030:3;11941:93;:::i;:::-;12059:2;12054:3;12050:12;12043:19;;11702:366;;;:::o;12074:419::-;12240:4;12278:2;12267:9;12263:18;12255:26;;12327:9;12321:4;12317:20;12313:1;12302:9;12298:17;12291:47;12355:131;12481:4;12355:131;:::i;:::-;12347:139;;12074:419;;;:::o;12499:180::-;12547:77;12544:1;12537:88;12644:4;12641:1;12634:15;12668:4;12665:1;12658:15;12685:191;12725:4;12745:20;12763:1;12745:20;:::i;:::-;12740:25;;12779:20;12797:1;12779:20;:::i;:::-;12774:25;;12818:1;12815;12812:8;12809:34;;;12823:18;;:::i;:::-;12809:34;12868:1;12865;12861:9;12853:17;;12685:191;;;;:::o;12882:180::-;12930:77;12927:1;12920:88;13027:4;13024:1;13017:15;13051:4;13048:1;13041:15;13068:233;13107:3;13130:24;13148:5;13130:24;:::i;:::-;13121:33;;13176:66;13169:5;13166:77;13163:103;;13246:18;;:::i;:::-;13163:103;13293:1;13286:5;13282:13;13275:20;;13068:233;;;:::o;13307:182::-;13447:34;13443:1;13435:6;13431:14;13424:58;13307:182;:::o;13495:366::-;13637:3;13658:67;13722:2;13717:3;13658:67;:::i;:::-;13651:74;;13734:93;13823:3;13734:93;:::i;:::-;13852:2;13847:3;13843:12;13836:19;;13495:366;;;:::o;13867:419::-;14033:4;14071:2;14060:9;14056:18;14048:26;;14120:9;14114:4;14110:20;14106:1;14095:9;14091:17;14084:47;14148:131;14274:4;14148:131;:::i;:::-;14140:139;;13867:419;;;:::o;14292:168::-;14432:20;14428:1;14420:6;14416:14;14409:44;14292:168;:::o;14466:366::-;14608:3;14629:67;14693:2;14688:3;14629:67;:::i;:::-;14622:74;;14705:93;14794:3;14705:93;:::i;:::-;14823:2;14818:3;14814:12;14807:19;;14466:366;;;:::o;14838:419::-;15004:4;15042:2;15031:9;15027:18;15019:26;;15091:9;15085:4;15081:20;15077:1;15066:9;15062:17;15055:47;15119:131;15245:4;15119:131;:::i;:::-;15111:139;;14838:419;;;:::o;15263:173::-;15403:25;15399:1;15391:6;15387:14;15380:49;15263:173;:::o;15442:366::-;15584:3;15605:67;15669:2;15664:3;15605:67;:::i;:::-;15598:74;;15681:93;15770:3;15681:93;:::i;:::-;15799:2;15794:3;15790:12;15783:19;;15442:366;;;:::o;15814:419::-;15980:4;16018:2;16007:9;16003:18;15995:26;;16067:9;16061:4;16057:20;16053:1;16042:9;16038:17;16031:47;16095:131;16221:4;16095:131;:::i;:::-;16087:139;;15814:419;;;:::o;16239:143::-;16296:5;16327:6;16321:13;16312:22;;16343:33;16370:5;16343:33;:::i;:::-;16239:143;;;;:::o;16388:351::-;16458:6;16507:2;16495:9;16486:7;16482:23;16478:32;16475:119;;;16513:79;;:::i;:::-;16475:119;16633:1;16658:64;16714:7;16705:6;16694:9;16690:22;16658:64;:::i;:::-;16648:74;;16604:128;16388:351;;;;:::o;16745:332::-;16866:4;16904:2;16893:9;16889:18;16881:26;;16917:71;16985:1;16974:9;16970:17;16961:6;16917:71;:::i;:::-;16998:72;17066:2;17055:9;17051:18;17042:6;16998:72;:::i;:::-;16745:332;;;;;:::o;17083:85::-;17128:7;17157:5;17146:16;;17083:85;;;:::o;17174:158::-;17232:9;17265:61;17283:42;17292:32;17318:5;17292:32;:::i;:::-;17283:42;:::i;:::-;17265:61;:::i;:::-;17252:74;;17174:158;;;:::o;17338:147::-;17433:45;17472:5;17433:45;:::i;:::-;17428:3;17421:58;17338:147;;:::o;17491:807::-;17740:4;17778:3;17767:9;17763:19;17755:27;;17792:71;17860:1;17849:9;17845:17;17836:6;17792:71;:::i;:::-;17873:72;17941:2;17930:9;17926:18;17917:6;17873:72;:::i;:::-;17955:80;18031:2;18020:9;18016:18;18007:6;17955:80;:::i;:::-;18045;18121:2;18110:9;18106:18;18097:6;18045:80;:::i;:::-;18135:73;18203:3;18192:9;18188:19;18179:6;18135:73;:::i;:::-;18218;18286:3;18275:9;18271:19;18262:6;18218:73;:::i;:::-;17491:807;;;;;;;;;:::o;18304:143::-;18361:5;18392:6;18386:13;18377:22;;18408:33;18435:5;18408:33;:::i;:::-;18304:143;;;;:::o;18453:663::-;18541:6;18549;18557;18606:2;18594:9;18585:7;18581:23;18577:32;18574:119;;;18612:79;;:::i;:::-;18574:119;18732:1;18757:64;18813:7;18804:6;18793:9;18789:22;18757:64;:::i;:::-;18747:74;;18703:128;18870:2;18896:64;18952:7;18943:6;18932:9;18928:22;18896:64;:::i;:::-;18886:74;;18841:129;19009:2;19035:64;19091:7;19082:6;19071:9;19067:22;19035:64;:::i;:::-;19025:74;;18980:129;18453:663;;;;;:::o;19122:332::-;19243:4;19281:2;19270:9;19266:18;19258:26;;19294:71;19362:1;19351:9;19347:17;19338:6;19294:71;:::i;:::-;19375:72;19443:2;19432:9;19428:18;19419:6;19375:72;:::i;:::-;19122:332;;;;;:::o;19460:137::-;19514:5;19545:6;19539:13;19530:22;;19561:30;19585:5;19561:30;:::i;:::-;19460:137;;;;:::o;19603:345::-;19670:6;19719:2;19707:9;19698:7;19694:23;19690:32;19687:119;;;19725:79;;:::i;:::-;19687:119;19845:1;19870:61;19923:7;19914:6;19903:9;19899:22;19870:61;:::i;:::-;19860:71;;19816:125;19603:345;;;;:::o;19954:223::-;20094:34;20090:1;20082:6;20078:14;20071:58;20163:6;20158:2;20150:6;20146:15;20139:31;19954:223;:::o;20183:366::-;20325:3;20346:67;20410:2;20405:3;20346:67;:::i;:::-;20339:74;;20422:93;20511:3;20422:93;:::i;:::-;20540:2;20535:3;20531:12;20524:19;;20183:366;;;:::o;20555:419::-;20721:4;20759:2;20748:9;20744:18;20736:26;;20808:9;20802:4;20798:20;20794:1;20783:9;20779:17;20772:47;20836:131;20962:4;20836:131;:::i;:::-;20828:139;;20555:419;;;:::o;20980:221::-;21120:34;21116:1;21108:6;21104:14;21097:58;21189:4;21184:2;21176:6;21172:15;21165:29;20980:221;:::o;21207:366::-;21349:3;21370:67;21434:2;21429:3;21370:67;:::i;:::-;21363:74;;21446:93;21535:3;21446:93;:::i;:::-;21564:2;21559:3;21555:12;21548:19;;21207:366;;;:::o;21579:419::-;21745:4;21783:2;21772:9;21768:18;21760:26;;21832:9;21826:4;21822:20;21818:1;21807:9;21803:17;21796:47;21860:131;21986:4;21860:131;:::i;:::-;21852:139;;21579:419;;;:::o;22004:224::-;22144:34;22140:1;22132:6;22128:14;22121:58;22213:7;22208:2;22200:6;22196:15;22189:32;22004:224;:::o;22234:366::-;22376:3;22397:67;22461:2;22456:3;22397:67;:::i;:::-;22390:74;;22473:93;22562:3;22473:93;:::i;:::-;22591:2;22586:3;22582:12;22575:19;;22234:366;;;:::o;22606:419::-;22772:4;22810:2;22799:9;22795:18;22787:26;;22859:9;22853:4;22849:20;22845:1;22834:9;22830:17;22823:47;22887:131;23013:4;22887:131;:::i;:::-;22879:139;;22606:419;;;:::o;23031:222::-;23171:34;23167:1;23159:6;23155:14;23148:58;23240:5;23235:2;23227:6;23223:15;23216:30;23031:222;:::o;23259:366::-;23401:3;23422:67;23486:2;23481:3;23422:67;:::i;:::-;23415:74;;23498:93;23587:3;23498:93;:::i;:::-;23616:2;23611:3;23607:12;23600:19;;23259:366;;;:::o;23631:419::-;23797:4;23835:2;23824:9;23820:18;23812:26;;23884:9;23878:4;23874:20;23870:1;23859:9;23855:17;23848:47;23912:131;24038:4;23912:131;:::i;:::-;23904:139;;23631:419;;;:::o;24056:228::-;24196:34;24192:1;24184:6;24180:14;24173:58;24265:11;24260:2;24252:6;24248:15;24241:36;24056:228;:::o;24290:366::-;24432:3;24453:67;24517:2;24512:3;24453:67;:::i;:::-;24446:74;;24529:93;24618:3;24529:93;:::i;:::-;24647:2;24642:3;24638:12;24631:19;;24290:366;;;:::o;24662:419::-;24828:4;24866:2;24855:9;24851:18;24843:26;;24915:9;24909:4;24905:20;24901:1;24890:9;24886:17;24879:47;24943:131;25069:4;24943:131;:::i;:::-;24935:139;;24662:419;;;:::o;25087:222::-;25227:34;25223:1;25215:6;25211:14;25204:58;25296:5;25291:2;25283:6;25279:15;25272:30;25087:222;:::o;25315:366::-;25457:3;25478:67;25542:2;25537:3;25478:67;:::i;:::-;25471:74;;25554:93;25643:3;25554:93;:::i;:::-;25672:2;25667:3;25663:12;25656:19;;25315:366;;;:::o;25687:419::-;25853:4;25891:2;25880:9;25876:18;25868:26;;25940:9;25934:4;25930:20;25926:1;25915:9;25911:17;25904:47;25968:131;26094:4;25968:131;:::i;:::-;25960:139;;25687:419;;;:::o;26112:174::-;26252:26;26248:1;26240:6;26236:14;26229:50;26112:174;:::o;26292:366::-;26434:3;26455:67;26519:2;26514:3;26455:67;:::i;:::-;26448:74;;26531:93;26620:3;26531:93;:::i;:::-;26649:2;26644:3;26640:12;26633:19;;26292:366;;;:::o;26664:419::-;26830:4;26868:2;26857:9;26853:18;26845:26;;26917:9;26911:4;26907:20;26903:1;26892:9;26888:17;26881:47;26945:131;27071:4;26945:131;:::i;:::-;26937:139;;26664:419;;;:::o;27089:161::-;27229:13;27225:1;27217:6;27213:14;27206:37;27089:161;:::o;27256:366::-;27398:3;27419:67;27483:2;27478:3;27419:67;:::i;:::-;27412:74;;27495:93;27584:3;27495:93;:::i;:::-;27613:2;27608:3;27604:12;27597:19;;27256:366;;;:::o;27628:419::-;27794:4;27832:2;27821:9;27817:18;27809:26;;27881:9;27875:4;27871:20;27867:1;27856:9;27852:17;27845:47;27909:131;28035:4;27909:131;:::i;:::-;27901:139;;27628:419;;;:::o;28053:305::-;28093:3;28112:20;28130:1;28112:20;:::i;:::-;28107:25;;28146:20;28164:1;28146:20;:::i;:::-;28141:25;;28300:1;28232:66;28228:74;28225:1;28222:81;28219:107;;;28306:18;;:::i;:::-;28219:107;28350:1;28347;28343:9;28336:16;;28053:305;;;;:::o;28364:226::-;28504:34;28500:1;28492:6;28488:14;28481:58;28573:9;28568:2;28560:6;28556:15;28549:34;28364:226;:::o;28596:366::-;28738:3;28759:67;28823:2;28818:3;28759:67;:::i;:::-;28752:74;;28835:93;28924:3;28835:93;:::i;:::-;28953:2;28948:3;28944:12;28937:19;;28596:366;;;:::o;28968:419::-;29134:4;29172:2;29161:9;29157:18;29149:26;;29221:9;29215:4;29211:20;29207:1;29196:9;29192:17;29185:47;29249:131;29375:4;29249:131;:::i;:::-;29241:139;;28968:419;;;:::o;29393:177::-;29533:29;29529:1;29521:6;29517:14;29510:53;29393:177;:::o;29576:366::-;29718:3;29739:67;29803:2;29798:3;29739:67;:::i;:::-;29732:74;;29815:93;29904:3;29815:93;:::i;:::-;29933:2;29928:3;29924:12;29917:19;;29576:366;;;:::o;29948:419::-;30114:4;30152:2;30141:9;30137:18;30129:26;;30201:9;30195:4;30191:20;30187:1;30176:9;30172:17;30165:47;30229:131;30355:4;30229:131;:::i;:::-;30221:139;;29948:419;;;:::o;30373:221::-;30513:34;30509:1;30501:6;30497:14;30490:58;30582:4;30577:2;30569:6;30565:15;30558:29;30373:221;:::o;30600:366::-;30742:3;30763:67;30827:2;30822:3;30763:67;:::i;:::-;30756:74;;30839:93;30928:3;30839:93;:::i;:::-;30957:2;30952:3;30948:12;30941:19;;30600:366;;;:::o;30972:419::-;31138:4;31176:2;31165:9;31161:18;31153:26;;31225:9;31219:4;31215:20;31211:1;31200:9;31196:17;31189:47;31253:131;31379:4;31253:131;:::i;:::-;31245:139;;30972:419;;;:::o;31397:222::-;31537:34;31533:1;31525:6;31521:14;31514:58;31606:5;31601:2;31593:6;31589:15;31582:30;31397:222;:::o;31625:366::-;31767:3;31788:67;31852:2;31847:3;31788:67;:::i;:::-;31781:74;;31864:93;31953:3;31864:93;:::i;:::-;31982:2;31977:3;31973:12;31966:19;;31625:366;;;:::o;31997:419::-;32163:4;32201:2;32190:9;32186:18;32178:26;;32250:9;32244:4;32240:20;32236:1;32225:9;32221:17;32214:47;32278:131;32404:4;32278:131;:::i;:::-;32270:139;;31997:419;;;:::o;32422:348::-;32462:7;32485:20;32503:1;32485:20;:::i;:::-;32480:25;;32519:20;32537:1;32519:20;:::i;:::-;32514:25;;32707:1;32639:66;32635:74;32632:1;32629:81;32624:1;32617:9;32610:17;32606:105;32603:131;;;32714:18;;:::i;:::-;32603:131;32762:1;32759;32755:9;32744:20;;32422:348;;;;:::o;32776:180::-;32824:77;32821:1;32814:88;32921:4;32918:1;32911:15;32945:4;32942:1;32935:15;32962:185;33002:1;33019:20;33037:1;33019:20;:::i;:::-;33014:25;;33053:20;33071:1;33053:20;:::i;:::-;33048:25;;33092:1;33082:35;;33097:18;;:::i;:::-;33082:35;33139:1;33136;33132:9;33127:14;;32962:185;;;;:::o;33153:114::-;33220:6;33254:5;33248:12;33238:22;;33153:114;;;:::o;33273:184::-;33372:11;33406:6;33401:3;33394:19;33446:4;33441:3;33437:14;33422:29;;33273:184;;;;:::o;33463:132::-;33530:4;33553:3;33545:11;;33583:4;33578:3;33574:14;33566:22;;33463:132;;;:::o;33601:108::-;33678:24;33696:5;33678:24;:::i;:::-;33673:3;33666:37;33601:108;;:::o;33715:179::-;33784:10;33805:46;33847:3;33839:6;33805:46;:::i;:::-;33883:4;33878:3;33874:14;33860:28;;33715:179;;;;:::o;33900:113::-;33970:4;34002;33997:3;33993:14;33985:22;;33900:113;;;:::o;34049:732::-;34168:3;34197:54;34245:5;34197:54;:::i;:::-;34267:86;34346:6;34341:3;34267:86;:::i;:::-;34260:93;;34377:56;34427:5;34377:56;:::i;:::-;34456:7;34487:1;34472:284;34497:6;34494:1;34491:13;34472:284;;;34573:6;34567:13;34600:63;34659:3;34644:13;34600:63;:::i;:::-;34593:70;;34686:60;34739:6;34686:60;:::i;:::-;34676:70;;34532:224;34519:1;34516;34512:9;34507:14;;34472:284;;;34476:14;34772:3;34765:10;;34173:608;;;34049:732;;;;:::o;34787:831::-;35050:4;35088:3;35077:9;35073:19;35065:27;;35102:71;35170:1;35159:9;35155:17;35146:6;35102:71;:::i;:::-;35183:80;35259:2;35248:9;35244:18;35235:6;35183:80;:::i;:::-;35310:9;35304:4;35300:20;35295:2;35284:9;35280:18;35273:48;35338:108;35441:4;35432:6;35338:108;:::i;:::-;35330:116;;35456:72;35524:2;35513:9;35509:18;35500:6;35456:72;:::i;:::-;35538:73;35606:3;35595:9;35591:19;35582:6;35538:73;:::i;:::-;34787:831;;;;;;;;:::o

Swarm Source

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