ETH Price: $3,347.83 (-1.21%)

Token

ZeldaGame (ZeldaGame)
 

Overview

Max Total Supply

1,000,000,000 ZeldaGame

Holders

115

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
5,182.89505288908262234 ZeldaGame

Value
$0.00
0x1e62a12d4981e428d3f4f28df261fdcb2ce743da
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:
ZeldaGame

Compiler Version
v0.8.3+commit.8d00100c

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-01
*/

/**
 * Press Start Button to Play
 * Save the Princess & Kill Ganon
 * Join us on TG at t.me/ZeldaGame
 * Visit our website: http://www.zeldagame.co
*/

/**
 *$$$$$$$$\          $$\       $$\                                                       
\____$$  |         $$ |      $$ |                                                      
    $$  / $$$$$$\  $$ | $$$$$$$ | $$$$$$\   $$$$$$\   $$$$$$\  $$$$$$\$$$$\   $$$$$$\  
   $$  / $$  __$$\ $$ |$$  __$$ | \____$$\ $$  __$$\  \____$$\ $$  _$$  _$$\ $$  __$$\ 
  $$  /  $$$$$$$$ |$$ |$$ /  $$ | $$$$$$$ |$$ /  $$ | $$$$$$$ |$$ / $$ / $$ |$$$$$$$$ |
 $$  /   $$   ____|$$ |$$ |  $$ |$$  __$$ |$$ |  $$ |$$  __$$ |$$ | $$ | $$ |$$   ____|
$$$$$$$$\\$$$$$$$\ $$ |\$$$$$$$ |\$$$$$$$ |\$$$$$$$ |\$$$$$$$ |$$ | $$ | $$ |\$$$$$$$\ 
\________|\_______|\__| \_______| \_______| \____$$ | \_______|\__| \__| \__| \_______|
                                           $$\   $$ |                                  
                                           \$$$$$$  |                                  
                                            \______/
*/

/**
 *
*/

/**
 *
*/

/**
 *
*/

/**

*/

/**
 *Submitted for verification 
*/
/**

*/


  


pragma solidity ^0.8.3;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract ZeldaGame is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    string private constant _name = "ZeldaGame";
    string private constant _symbol = "ZeldaGame";
    uint8 private constant _decimals = 18;
    uint256 private _taxFee;
    uint256 private _teamFee;
    uint256 private _previousTaxFee = _taxFee;
    uint256 private _previousteamFee = _teamFee;
    address payable private _FeeAddress;
    address payable private _marketingWalletAddress;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor (address payable addr1, address payable addr2) {
        _FeeAddress = addr1;
        _marketingWalletAddress = addr2;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_FeeAddress] = true;
        _isExcludedFromFee[_marketingWalletAddress] = true;
        emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

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

    function removeAllFee() private {
        if(_taxFee == 0 && _teamFee == 0) return;
        _previousTaxFee = _taxFee;
        _previousteamFee = _teamFee;
        _taxFee = 0;
        _teamFee = 0;
    }
    
    function restoreAllFee() private {
        _taxFee = _previousTaxFee;
        _teamFee = _previousteamFee;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        _taxFee = 1;
        _teamFee = 9;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _taxFee = 1;
                _teamFee = 9;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
        bool takeFee = true;

        if(_isExcludedFromFee[from] || _isExcludedFromFee[to]){
            takeFee = false;
        }
		
        _tokenTransfer(from,to,amount,takeFee);
    }

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

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

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

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

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

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

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

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

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

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

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"},{"internalType":"address payable","name":"addr2","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":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526b033b2e3c9fd0803ce8000000600019620000209190620005c7565b6000196200002f91906200054e565b600855600a54600c55600b54600d556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000601160176101000a81548160ff0219169083151502179055506b033b2e3c9fd0803ce8000000601255348015620000ac57600080fd5b5060405162003d5338038062003d538339818101604052810190620000d29190620004df565b6000620000e46200049760201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200021b6200049760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200026f6200049f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200041c6200049760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce800000060405162000487919062000531565b60405180910390a3505062000677565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050620004d9816200065d565b92915050565b60008060408385031215620004f357600080fd5b60006200050385828601620004c8565b92505060206200051685828601620004c8565b9150509250929050565b6200052b81620005bd565b82525050565b600060208201905062000548600083018462000520565b92915050565b60006200055b82620005bd565b91506200056883620005bd565b9250828210156200057e576200057d620005ff565b5b828203905092915050565b600062000596826200059d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620005d482620005bd565b9150620005e183620005bd565b925082620005f457620005f36200062e565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b620006688162000589565b81146200067457600080fd5b50565b6136cc80620006876000396000f3fe60806040526004361061010d5760003560e01c8063715018a611610095578063b515566a11610064578063b515566a14610364578063c3c8cd801461038d578063c9567bf9146103a4578063d543dbeb146103bb578063dd62ed3e146103e457610114565b8063715018a6146102ba5780638da5cb5b146102d157806395d89b41146102fc578063a9059cbb1461032757610114565b8063273123b7116100dc578063273123b7146101e9578063313ce567146102125780635932ead11461023d5780636fc3eaec1461026657806370a082311461027d57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b9190612ddd565b60405180910390f35b34801561015057600080fd5b5061016b60048036038101906101669190612923565b61045e565b6040516101789190612dc2565b60405180910390f35b34801561018d57600080fd5b5061019661047c565b6040516101a39190612f5f565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce91906128d4565b610490565b6040516101e09190612dc2565b60405180910390f35b3480156101f557600080fd5b50610210600480360381019061020b9190612846565b610569565b005b34801561021e57600080fd5b50610227610659565b6040516102349190612fd4565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f91906129a0565b610662565b005b34801561027257600080fd5b5061027b610714565b005b34801561028957600080fd5b506102a4600480360381019061029f9190612846565b610786565b6040516102b19190612f5f565b60405180910390f35b3480156102c657600080fd5b506102cf6107d7565b005b3480156102dd57600080fd5b506102e661092a565b6040516102f39190612cf4565b60405180910390f35b34801561030857600080fd5b50610311610953565b60405161031e9190612ddd565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190612923565b610990565b60405161035b9190612dc2565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061295f565b6109ae565b005b34801561039957600080fd5b506103a2610afe565b005b3480156103b057600080fd5b506103b9610b78565b005b3480156103c757600080fd5b506103e260048036038101906103dd91906129f2565b6110da565b005b3480156103f057600080fd5b5061040b60048036038101906104069190612898565b611226565b6040516104189190612f5f565b60405180910390f35b60606040518060400160405280600981526020017f5a656c646147616d650000000000000000000000000000000000000000000000815250905090565b600061047261046b6112ad565b84846112b5565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b600061049d848484611480565b61055e846104a96112ad565b6105598560405180606001604052806028815260200161366f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050f6112ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b389092919063ffffffff16565b6112b5565b600190509392505050565b6105716112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f590612ebf565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006012905090565b61066a6112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ee90612ebf565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107556112ad565b73ffffffffffffffffffffffffffffffffffffffff161461077557600080fd5b600047905061078381611b9c565b50565b60006107d0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c97565b9050919050565b6107df6112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086390612ebf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f5a656c646147616d650000000000000000000000000000000000000000000000815250905090565b60006109a461099d6112ad565b8484611480565b6001905092915050565b6109b66112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612ebf565b60405180910390fd5b60005b8151811015610afa57600160066000848481518110610a8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610af290613275565b915050610a46565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b3f6112ad565b73ffffffffffffffffffffffffffffffffffffffff1614610b5f57600080fd5b6000610b6a30610786565b9050610b7581611d05565b50565b610b806112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0490612ebf565b60405180910390fd5b601160149054906101000a900460ff1615610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490612f3f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cf030601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce80000006112b5565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3657600080fd5b505afa158015610d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6e919061286f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dd057600080fd5b505afa158015610de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e08919061286f565b6040518363ffffffff1660e01b8152600401610e25929190612d0f565b602060405180830381600087803b158015610e3f57600080fd5b505af1158015610e53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e77919061286f565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f0030610786565b600080610f0b61092a565b426040518863ffffffff1660e01b8152600401610f2d96959493929190612d61565b6060604051808303818588803b158015610f4657600080fd5b505af1158015610f5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7f9190612a1b565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506a52b7d2dcc80cd2e40000006012819055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611084929190612d38565b602060405180830381600087803b15801561109e57600080fd5b505af11580156110b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d691906129c9565b5050565b6110e26112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690612ebf565b60405180910390fd5b600081116111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990612e7f565b60405180910390fd5b6111e460646111d6836b033b2e3c9fd0803ce8000000611fff90919063ffffffff16565b61207a90919063ffffffff16565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf60125460405161121b9190612f5f565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c90612f1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90612e3f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114739190612f5f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790612eff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155790612dff565b60405180910390fd5b600081116115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612edf565b60405180910390fd5b6001600a819055506009600b819055506115bb61092a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561162957506115f961092a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a7557600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116d25750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116db57600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117865750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117dc5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117f45750601160179054906101000a900460ff165b156118a45760125481111561180857600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061185357600080fd5b601e426118609190613095565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561194f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119a55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119bb576001600a819055506009600b819055505b60006119c630610786565b9050601160159054906101000a900460ff16158015611a335750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a4b5750601160169054906101000a900460ff165b15611a7357611a5981611d05565b60004790506000811115611a7157611a7047611b9c565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b1c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b2657600090505b611b32848484846120c4565b50505050565b6000838311158290611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b779190612ddd565b60405180910390fd5b5060008385611b8f9190613176565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611bec60028461207a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c17573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c6860028461207a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c93573d6000803e3d6000fd5b5050565b6000600854821115611cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd590612e1f565b60405180910390fd5b6000611ce86120f1565b9050611cfd818461207a90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d63577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611d915781602001602082028036833780820191505090505b5090503081600081518110611dcf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7157600080fd5b505afa158015611e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea9919061286f565b81600181518110611ee3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4a30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112b5565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fae959493929190612f7a565b600060405180830381600087803b158015611fc857600080fd5b505af1158015611fdc573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6000808314156120125760009050612074565b60008284612020919061311c565b905082848261202f91906130eb565b1461206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690612e9f565b60405180910390fd5b809150505b92915050565b60006120bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061211c565b905092915050565b806120d2576120d161217f565b5b6120dd8484846121c2565b806120eb576120ea61238d565b5b50505050565b60008060006120fe6123a1565b91509150612115818361207a90919063ffffffff16565b9250505090565b60008083118290612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a9190612ddd565b60405180910390fd5b506000838561217291906130eb565b9050809150509392505050565b6000600a5414801561219357506000600b54145b1561219d576121c0565b600a54600c81905550600b54600d819055506000600a819055506000600b819055505b565b6000806000806000806121d48761240c565b95509550955095509550955061223286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122c785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124be90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123138161251c565b61231d84836125d9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161237a9190612f5f565b60405180910390a3505050505050505050565b600c54600a81905550600d54600b81905550565b6000806000600854905060006b033b2e3c9fd0803ce800000090506123dd6b033b2e3c9fd0803ce800000060085461207a90919063ffffffff16565b8210156123ff576008546b033b2e3c9fd0803ce8000000935093505050612408565b81819350935050505b9091565b60008060008060008060008060006124298a600a54600b54612613565b92509250925060006124396120f1565b9050600080600061244c8e8787876126a9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006124b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b38565b905092915050565b60008082846124cd9190613095565b905083811015612512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250990612e5f565b60405180910390fd5b8091505092915050565b60006125266120f1565b9050600061253d8284611fff90919063ffffffff16565b905061259181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124be90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125ee8260085461247490919063ffffffff16565b600881905550612609816009546124be90919063ffffffff16565b6009819055505050565b60008060008061263f6064612631888a611fff90919063ffffffff16565b61207a90919063ffffffff16565b90506000612669606461265b888b611fff90919063ffffffff16565b61207a90919063ffffffff16565b9050600061269282612684858c61247490919063ffffffff16565b61247490919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806126c28589611fff90919063ffffffff16565b905060006126d98689611fff90919063ffffffff16565b905060006126f08789611fff90919063ffffffff16565b905060006127198261270b858761247490919063ffffffff16565b61247490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061274561274084613014565b612fef565b9050808382526020820190508285602086028201111561276457600080fd5b60005b85811015612794578161277a888261279e565b845260208401935060208301925050600181019050612767565b5050509392505050565b6000813590506127ad81613629565b92915050565b6000815190506127c281613629565b92915050565b600082601f8301126127d957600080fd5b81356127e9848260208601612732565b91505092915050565b60008135905061280181613640565b92915050565b60008151905061281681613640565b92915050565b60008135905061282b81613657565b92915050565b60008151905061284081613657565b92915050565b60006020828403121561285857600080fd5b60006128668482850161279e565b91505092915050565b60006020828403121561288157600080fd5b600061288f848285016127b3565b91505092915050565b600080604083850312156128ab57600080fd5b60006128b98582860161279e565b92505060206128ca8582860161279e565b9150509250929050565b6000806000606084860312156128e957600080fd5b60006128f78682870161279e565b93505060206129088682870161279e565b92505060406129198682870161281c565b9150509250925092565b6000806040838503121561293657600080fd5b60006129448582860161279e565b92505060206129558582860161281c565b9150509250929050565b60006020828403121561297157600080fd5b600082013567ffffffffffffffff81111561298b57600080fd5b612997848285016127c8565b91505092915050565b6000602082840312156129b257600080fd5b60006129c0848285016127f2565b91505092915050565b6000602082840312156129db57600080fd5b60006129e984828501612807565b91505092915050565b600060208284031215612a0457600080fd5b6000612a128482850161281c565b91505092915050565b600080600060608486031215612a3057600080fd5b6000612a3e86828701612831565b9350506020612a4f86828701612831565b9250506040612a6086828701612831565b9150509250925092565b6000612a768383612a82565b60208301905092915050565b612a8b816131aa565b82525050565b612a9a816131aa565b82525050565b6000612aab82613050565b612ab58185613073565b9350612ac083613040565b8060005b83811015612af1578151612ad88882612a6a565b9750612ae383613066565b925050600181019050612ac4565b5085935050505092915050565b612b07816131bc565b82525050565b612b16816131ff565b82525050565b6000612b278261305b565b612b318185613084565b9350612b41818560208601613211565b612b4a8161334b565b840191505092915050565b6000612b62602383613084565b9150612b6d8261335c565b604082019050919050565b6000612b85602a83613084565b9150612b90826133ab565b604082019050919050565b6000612ba8602283613084565b9150612bb3826133fa565b604082019050919050565b6000612bcb601b83613084565b9150612bd682613449565b602082019050919050565b6000612bee601d83613084565b9150612bf982613472565b602082019050919050565b6000612c11602183613084565b9150612c1c8261349b565b604082019050919050565b6000612c34602083613084565b9150612c3f826134ea565b602082019050919050565b6000612c57602983613084565b9150612c6282613513565b604082019050919050565b6000612c7a602583613084565b9150612c8582613562565b604082019050919050565b6000612c9d602483613084565b9150612ca8826135b1565b604082019050919050565b6000612cc0601783613084565b9150612ccb82613600565b602082019050919050565b612cdf816131e8565b82525050565b612cee816131f2565b82525050565b6000602082019050612d096000830184612a91565b92915050565b6000604082019050612d246000830185612a91565b612d316020830184612a91565b9392505050565b6000604082019050612d4d6000830185612a91565b612d5a6020830184612cd6565b9392505050565b600060c082019050612d766000830189612a91565b612d836020830188612cd6565b612d906040830187612b0d565b612d9d6060830186612b0d565b612daa6080830185612a91565b612db760a0830184612cd6565b979650505050505050565b6000602082019050612dd76000830184612afe565b92915050565b60006020820190508181036000830152612df78184612b1c565b905092915050565b60006020820190508181036000830152612e1881612b55565b9050919050565b60006020820190508181036000830152612e3881612b78565b9050919050565b60006020820190508181036000830152612e5881612b9b565b9050919050565b60006020820190508181036000830152612e7881612bbe565b9050919050565b60006020820190508181036000830152612e9881612be1565b9050919050565b60006020820190508181036000830152612eb881612c04565b9050919050565b60006020820190508181036000830152612ed881612c27565b9050919050565b60006020820190508181036000830152612ef881612c4a565b9050919050565b60006020820190508181036000830152612f1881612c6d565b9050919050565b60006020820190508181036000830152612f3881612c90565b9050919050565b60006020820190508181036000830152612f5881612cb3565b9050919050565b6000602082019050612f746000830184612cd6565b92915050565b600060a082019050612f8f6000830188612cd6565b612f9c6020830187612b0d565b8181036040830152612fae8186612aa0565b9050612fbd6060830185612a91565b612fca6080830184612cd6565b9695505050505050565b6000602082019050612fe96000830184612ce5565b92915050565b6000612ff961300a565b90506130058282613244565b919050565b6000604051905090565b600067ffffffffffffffff82111561302f5761302e61331c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130a0826131e8565b91506130ab836131e8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130e0576130df6132be565b5b828201905092915050565b60006130f6826131e8565b9150613101836131e8565b925082613111576131106132ed565b5b828204905092915050565b6000613127826131e8565b9150613132836131e8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561316b5761316a6132be565b5b828202905092915050565b6000613181826131e8565b915061318c836131e8565b92508282101561319f5761319e6132be565b5b828203905092915050565b60006131b5826131c8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061320a826131e8565b9050919050565b60005b8381101561322f578082015181840152602081019050613214565b8381111561323e576000848401525b50505050565b61324d8261334b565b810181811067ffffffffffffffff8211171561326c5761326b61331c565b5b80604052505050565b6000613280826131e8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132b3576132b26132be565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613632816131aa565b811461363d57600080fd5b50565b613649816131bc565b811461365457600080fd5b50565b613660816131e8565b811461366b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220273d0b5d3ba13c7bf577749ac5f2daa2fac45b423e31131c432aadb829e9660d64736f6c634300080300330000000000000000000000003263fcec80827504357ea088a0f30a613ed8cecf0000000000000000000000003263fcec80827504357ea088a0f30a613ed8cecf

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063715018a611610095578063b515566a11610064578063b515566a14610364578063c3c8cd801461038d578063c9567bf9146103a4578063d543dbeb146103bb578063dd62ed3e146103e457610114565b8063715018a6146102ba5780638da5cb5b146102d157806395d89b41146102fc578063a9059cbb1461032757610114565b8063273123b7116100dc578063273123b7146101e9578063313ce567146102125780635932ead11461023d5780636fc3eaec1461026657806370a082311461027d57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b9190612ddd565b60405180910390f35b34801561015057600080fd5b5061016b60048036038101906101669190612923565b61045e565b6040516101789190612dc2565b60405180910390f35b34801561018d57600080fd5b5061019661047c565b6040516101a39190612f5f565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce91906128d4565b610490565b6040516101e09190612dc2565b60405180910390f35b3480156101f557600080fd5b50610210600480360381019061020b9190612846565b610569565b005b34801561021e57600080fd5b50610227610659565b6040516102349190612fd4565b60405180910390f35b34801561024957600080fd5b50610264600480360381019061025f91906129a0565b610662565b005b34801561027257600080fd5b5061027b610714565b005b34801561028957600080fd5b506102a4600480360381019061029f9190612846565b610786565b6040516102b19190612f5f565b60405180910390f35b3480156102c657600080fd5b506102cf6107d7565b005b3480156102dd57600080fd5b506102e661092a565b6040516102f39190612cf4565b60405180910390f35b34801561030857600080fd5b50610311610953565b60405161031e9190612ddd565b60405180910390f35b34801561033357600080fd5b5061034e60048036038101906103499190612923565b610990565b60405161035b9190612dc2565b60405180910390f35b34801561037057600080fd5b5061038b6004803603810190610386919061295f565b6109ae565b005b34801561039957600080fd5b506103a2610afe565b005b3480156103b057600080fd5b506103b9610b78565b005b3480156103c757600080fd5b506103e260048036038101906103dd91906129f2565b6110da565b005b3480156103f057600080fd5b5061040b60048036038101906104069190612898565b611226565b6040516104189190612f5f565b60405180910390f35b60606040518060400160405280600981526020017f5a656c646147616d650000000000000000000000000000000000000000000000815250905090565b600061047261046b6112ad565b84846112b5565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b600061049d848484611480565b61055e846104a96112ad565b6105598560405180606001604052806028815260200161366f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061050f6112ad565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611b389092919063ffffffff16565b6112b5565b600190509392505050565b6105716112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105f590612ebf565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006012905090565b61066a6112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ee90612ebf565b60405180910390fd5b80601160176101000a81548160ff02191690831515021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107556112ad565b73ffffffffffffffffffffffffffffffffffffffff161461077557600080fd5b600047905061078381611b9c565b50565b60006107d0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c97565b9050919050565b6107df6112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086390612ebf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f5a656c646147616d650000000000000000000000000000000000000000000000815250905090565b60006109a461099d6112ad565b8484611480565b6001905092915050565b6109b66112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3a90612ebf565b60405180910390fd5b60005b8151811015610afa57600160066000848481518110610a8e577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610af290613275565b915050610a46565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b3f6112ad565b73ffffffffffffffffffffffffffffffffffffffff1614610b5f57600080fd5b6000610b6a30610786565b9050610b7581611d05565b50565b610b806112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0490612ebf565b60405180910390fd5b601160149054906101000a900460ff1615610c5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5490612f3f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cf030601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce80000006112b5565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d3657600080fd5b505afa158015610d4a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6e919061286f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dd057600080fd5b505afa158015610de4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e08919061286f565b6040518363ffffffff1660e01b8152600401610e25929190612d0f565b602060405180830381600087803b158015610e3f57600080fd5b505af1158015610e53573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e77919061286f565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f0030610786565b600080610f0b61092a565b426040518863ffffffff1660e01b8152600401610f2d96959493929190612d61565b6060604051808303818588803b158015610f4657600080fd5b505af1158015610f5a573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f7f9190612a1b565b5050506001601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055506a52b7d2dcc80cd2e40000006012819055506001601160146101000a81548160ff021916908315150217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611084929190612d38565b602060405180830381600087803b15801561109e57600080fd5b505af11580156110b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d691906129c9565b5050565b6110e26112ad565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461116f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116690612ebf565b60405180910390fd5b600081116111b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a990612e7f565b60405180910390fd5b6111e460646111d6836b033b2e3c9fd0803ce8000000611fff90919063ffffffff16565b61207a90919063ffffffff16565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf60125460405161121b9190612f5f565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131c90612f1f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90612e3f565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114739190612f5f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156114f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e790612eff565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611560576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155790612dff565b60405180910390fd5b600081116115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612edf565b60405180910390fd5b6001600a819055506009600b819055506115bb61092a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561162957506115f961092a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a7557600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116d25750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6116db57600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117865750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117dc5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117f45750601160179054906101000a900460ff165b156118a45760125481111561180857600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061185357600080fd5b601e426118609190613095565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561194f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156119a55750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119bb576001600a819055506009600b819055505b60006119c630610786565b9050601160159054906101000a900460ff16158015611a335750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611a4b5750601160169054906101000a900460ff165b15611a7357611a5981611d05565b60004790506000811115611a7157611a7047611b9c565b5b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611b1c5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b2657600090505b611b32848484846120c4565b50505050565b6000838311158290611b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b779190612ddd565b60405180910390fd5b5060008385611b8f9190613176565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611bec60028461207a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c17573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611c6860028461207a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611c93573d6000803e3d6000fd5b5050565b6000600854821115611cde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd590612e1f565b60405180910390fd5b6000611ce86120f1565b9050611cfd818461207a90919063ffffffff16565b915050919050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611d63577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611d915781602001602082028036833780820191505090505b5090503081600081518110611dcf577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611e7157600080fd5b505afa158015611e85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea9919061286f565b81600181518110611ee3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f4a30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112b5565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fae959493929190612f7a565b600060405180830381600087803b158015611fc857600080fd5b505af1158015611fdc573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6000808314156120125760009050612074565b60008284612020919061311c565b905082848261202f91906130eb565b1461206f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161206690612e9f565b60405180910390fd5b809150505b92915050565b60006120bc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061211c565b905092915050565b806120d2576120d161217f565b5b6120dd8484846121c2565b806120eb576120ea61238d565b5b50505050565b60008060006120fe6123a1565b91509150612115818361207a90919063ffffffff16565b9250505090565b60008083118290612163576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215a9190612ddd565b60405180910390fd5b506000838561217291906130eb565b9050809150509392505050565b6000600a5414801561219357506000600b54145b1561219d576121c0565b600a54600c81905550600b54600d819055506000600a819055506000600b819055505b565b6000806000806000806121d48761240c565b95509550955095509550955061223286600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247490919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122c785600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124be90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123138161251c565b61231d84836125d9565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161237a9190612f5f565b60405180910390a3505050505050505050565b600c54600a81905550600d54600b81905550565b6000806000600854905060006b033b2e3c9fd0803ce800000090506123dd6b033b2e3c9fd0803ce800000060085461207a90919063ffffffff16565b8210156123ff576008546b033b2e3c9fd0803ce8000000935093505050612408565b81819350935050505b9091565b60008060008060008060008060006124298a600a54600b54612613565b92509250925060006124396120f1565b9050600080600061244c8e8787876126a9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006124b683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b38565b905092915050565b60008082846124cd9190613095565b905083811015612512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250990612e5f565b60405180910390fd5b8091505092915050565b60006125266120f1565b9050600061253d8284611fff90919063ffffffff16565b905061259181600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124be90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6125ee8260085461247490919063ffffffff16565b600881905550612609816009546124be90919063ffffffff16565b6009819055505050565b60008060008061263f6064612631888a611fff90919063ffffffff16565b61207a90919063ffffffff16565b90506000612669606461265b888b611fff90919063ffffffff16565b61207a90919063ffffffff16565b9050600061269282612684858c61247490919063ffffffff16565b61247490919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806126c28589611fff90919063ffffffff16565b905060006126d98689611fff90919063ffffffff16565b905060006126f08789611fff90919063ffffffff16565b905060006127198261270b858761247490919063ffffffff16565b61247490919063ffffffff16565b9050838184965096509650505050509450945094915050565b600061274561274084613014565b612fef565b9050808382526020820190508285602086028201111561276457600080fd5b60005b85811015612794578161277a888261279e565b845260208401935060208301925050600181019050612767565b5050509392505050565b6000813590506127ad81613629565b92915050565b6000815190506127c281613629565b92915050565b600082601f8301126127d957600080fd5b81356127e9848260208601612732565b91505092915050565b60008135905061280181613640565b92915050565b60008151905061281681613640565b92915050565b60008135905061282b81613657565b92915050565b60008151905061284081613657565b92915050565b60006020828403121561285857600080fd5b60006128668482850161279e565b91505092915050565b60006020828403121561288157600080fd5b600061288f848285016127b3565b91505092915050565b600080604083850312156128ab57600080fd5b60006128b98582860161279e565b92505060206128ca8582860161279e565b9150509250929050565b6000806000606084860312156128e957600080fd5b60006128f78682870161279e565b93505060206129088682870161279e565b92505060406129198682870161281c565b9150509250925092565b6000806040838503121561293657600080fd5b60006129448582860161279e565b92505060206129558582860161281c565b9150509250929050565b60006020828403121561297157600080fd5b600082013567ffffffffffffffff81111561298b57600080fd5b612997848285016127c8565b91505092915050565b6000602082840312156129b257600080fd5b60006129c0848285016127f2565b91505092915050565b6000602082840312156129db57600080fd5b60006129e984828501612807565b91505092915050565b600060208284031215612a0457600080fd5b6000612a128482850161281c565b91505092915050565b600080600060608486031215612a3057600080fd5b6000612a3e86828701612831565b9350506020612a4f86828701612831565b9250506040612a6086828701612831565b9150509250925092565b6000612a768383612a82565b60208301905092915050565b612a8b816131aa565b82525050565b612a9a816131aa565b82525050565b6000612aab82613050565b612ab58185613073565b9350612ac083613040565b8060005b83811015612af1578151612ad88882612a6a565b9750612ae383613066565b925050600181019050612ac4565b5085935050505092915050565b612b07816131bc565b82525050565b612b16816131ff565b82525050565b6000612b278261305b565b612b318185613084565b9350612b41818560208601613211565b612b4a8161334b565b840191505092915050565b6000612b62602383613084565b9150612b6d8261335c565b604082019050919050565b6000612b85602a83613084565b9150612b90826133ab565b604082019050919050565b6000612ba8602283613084565b9150612bb3826133fa565b604082019050919050565b6000612bcb601b83613084565b9150612bd682613449565b602082019050919050565b6000612bee601d83613084565b9150612bf982613472565b602082019050919050565b6000612c11602183613084565b9150612c1c8261349b565b604082019050919050565b6000612c34602083613084565b9150612c3f826134ea565b602082019050919050565b6000612c57602983613084565b9150612c6282613513565b604082019050919050565b6000612c7a602583613084565b9150612c8582613562565b604082019050919050565b6000612c9d602483613084565b9150612ca8826135b1565b604082019050919050565b6000612cc0601783613084565b9150612ccb82613600565b602082019050919050565b612cdf816131e8565b82525050565b612cee816131f2565b82525050565b6000602082019050612d096000830184612a91565b92915050565b6000604082019050612d246000830185612a91565b612d316020830184612a91565b9392505050565b6000604082019050612d4d6000830185612a91565b612d5a6020830184612cd6565b9392505050565b600060c082019050612d766000830189612a91565b612d836020830188612cd6565b612d906040830187612b0d565b612d9d6060830186612b0d565b612daa6080830185612a91565b612db760a0830184612cd6565b979650505050505050565b6000602082019050612dd76000830184612afe565b92915050565b60006020820190508181036000830152612df78184612b1c565b905092915050565b60006020820190508181036000830152612e1881612b55565b9050919050565b60006020820190508181036000830152612e3881612b78565b9050919050565b60006020820190508181036000830152612e5881612b9b565b9050919050565b60006020820190508181036000830152612e7881612bbe565b9050919050565b60006020820190508181036000830152612e9881612be1565b9050919050565b60006020820190508181036000830152612eb881612c04565b9050919050565b60006020820190508181036000830152612ed881612c27565b9050919050565b60006020820190508181036000830152612ef881612c4a565b9050919050565b60006020820190508181036000830152612f1881612c6d565b9050919050565b60006020820190508181036000830152612f3881612c90565b9050919050565b60006020820190508181036000830152612f5881612cb3565b9050919050565b6000602082019050612f746000830184612cd6565b92915050565b600060a082019050612f8f6000830188612cd6565b612f9c6020830187612b0d565b8181036040830152612fae8186612aa0565b9050612fbd6060830185612a91565b612fca6080830184612cd6565b9695505050505050565b6000602082019050612fe96000830184612ce5565b92915050565b6000612ff961300a565b90506130058282613244565b919050565b6000604051905090565b600067ffffffffffffffff82111561302f5761302e61331c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006130a0826131e8565b91506130ab836131e8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130e0576130df6132be565b5b828201905092915050565b60006130f6826131e8565b9150613101836131e8565b925082613111576131106132ed565b5b828204905092915050565b6000613127826131e8565b9150613132836131e8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561316b5761316a6132be565b5b828202905092915050565b6000613181826131e8565b915061318c836131e8565b92508282101561319f5761319e6132be565b5b828203905092915050565b60006131b5826131c8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061320a826131e8565b9050919050565b60005b8381101561322f578082015181840152602081019050613214565b8381111561323e576000848401525b50505050565b61324d8261334b565b810181811067ffffffffffffffff8211171561326c5761326b61331c565b5b80604052505050565b6000613280826131e8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156132b3576132b26132be565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613632816131aa565b811461363d57600080fd5b50565b613649816131bc565b811461365457600080fd5b50565b613660816131e8565b811461366b57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220273d0b5d3ba13c7bf577749ac5f2daa2fac45b423e31131c432aadb829e9660d64736f6c63430008030033

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

0000000000000000000000003263fcec80827504357ea088a0f30a613ed8cecf0000000000000000000000003263fcec80827504357ea088a0f30a613ed8cecf

-----Decoded View---------------
Arg [0] : addr1 (address): 0x3263FcEC80827504357ea088A0f30a613ED8CeCf
Arg [1] : addr2 (address): 0x3263FcEC80827504357ea088A0f30a613ED8CeCf

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000003263fcec80827504357ea088a0f30a613ed8cecf
Arg [1] : 0000000000000000000000003263fcec80827504357ea088a0f30a613ed8cecf


Deployed Bytecode Sourcemap

4715:11221:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6659:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7511:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6936:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7680:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12294:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6845:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8001:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13784:190;;;;;;;;;;;;;:::i;:::-;;7039:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3794:148;;;;;;;;;;;;;:::i;:::-;;3580:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6750:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7185:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12118:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13581:191;;;;;;;;;;;;;:::i;:::-;;11283:823;;;;;;;;;;;;;:::i;:::-;;15678:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7360:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6659:83;6696:13;6729:5;;;;;;;;;;;;;;;;;6722:12;;6659:83;:::o;7511:161::-;7586:4;7603:39;7612:12;:10;:12::i;:::-;7626:7;7635:6;7603:8;:39::i;:::-;7660:4;7653:11;;7511:161;;;;:::o;6936:95::-;6989:7;5217:27;7009:14;;6936:95;:::o;7680:313::-;7778:4;7795:36;7805:6;7813:9;7824:6;7795:9;:36::i;:::-;7842:121;7851:6;7859:12;:10;:12::i;:::-;7873:89;7911:6;7873:89;;;;;;;;;;;;;;;;;:11;:19;7885:6;7873:19;;;;;;;;;;;;;;;:33;7893:12;:10;:12::i;:::-;7873:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7842:8;:121::i;:::-;7981:4;7974:11;;7680:313;;;;;:::o;12294:88::-;3717:12;:10;:12::i;:::-;3707:22;;:6;;;;;;;;;;:22;;;3699:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12369:5:::1;12354:4;:12;12359:6;12354:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12294:88:::0;:::o;6845:83::-;6886:5;5477:2;6904:16;;6845:83;:::o;8001:103::-;3717:12;:10;:12::i;:::-;3707:22;;:6;;;;;;;;;;:22;;;3699:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8091:5:::1;8073:15;;:23;;;;;;;;;;;;;;;;;;8001:103:::0;:::o;13784:190::-;13850:11;;;;;;;;;;;13834:27;;:12;:10;:12::i;:::-;:27;;;13826:36;;;;;;13873:26;13902:21;13873:50;;13934:32;13947:18;13934:12;:32::i;:::-;13784:190;:::o;7039:138::-;7105:7;7132:37;7152:7;:16;7160:7;7152:16;;;;;;;;;;;;;;;;7132:19;:37::i;:::-;7125:44;;7039:138;;;:::o;3794:148::-;3717:12;:10;:12::i;:::-;3707:22;;:6;;;;;;;;;;:22;;;3699:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3901:1:::1;3864:40;;3885:6;::::0;::::1;;;;;;;;3864:40;;;;;;;;;;;;3932:1;3915:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3794:148::o:0;3580:79::-;3618:7;3645:6;;;;;;;;;;;3638:13;;3580:79;:::o;6750:87::-;6789:13;6822:7;;;;;;;;;;;;;;;;;6815:14;;6750:87;:::o;7185:167::-;7263:4;7280:42;7290:12;:10;:12::i;:::-;7304:9;7315:6;7280:9;:42::i;:::-;7340:4;7333:11;;7185:167;;;;:::o;12118:164::-;3717:12;:10;:12::i;:::-;3707:22;;:6;;;;;;;;;;:22;;;3699:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12192:6:::1;12187:88;12208:5;:12;12204:1;:16;12187:88;;;12259:4;12242;:14;12247:5;12253:1;12247:8;;;;;;;;;;;;;;;;;;;;;;12242:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12222:3;;;;;:::i;:::-;;;;12187:88;;;;12118:164:::0;:::o;13581:191::-;13647:11;;;;;;;;;;;13631:27;;:12;:10;:12::i;:::-;:27;;;13623:36;;;;;;13670:23;13696:24;13714:4;13696:9;:24::i;:::-;13670:50;;13731:33;13748:15;13731:16;:33::i;:::-;13581:191;:::o;11283:823::-;3717:12;:10;:12::i;:::-;3707:22;;:6;;;;;;;;;;:22;;;3699:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11347:11:::1;;;;;;;;;;;11346:12;11338:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11396:35;11453:42;11396:100;;11525:16;11507:15;;:34;;;;;;;;;;;;;;;;;;11552:58;11569:4;11584:15;;;;;;;;;;;5217:27;11552:8;:58::i;:::-;11655:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11637:56;;;11702:4;11709:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11637:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11621:13;;:112;;;;;;;;;;;;;;;;;;11744:15;;;;;;;;;;;:31;;;11783:21;11814:4;11820:24;11838:4;11820:9;:24::i;:::-;11845:1;11847::::0;11849:7:::1;:5;:7::i;:::-;11857:15;11744:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11898:4;11884:11;;:18;;;;;;;;;;;;;;;;;;11931:4;11913:15;;:22;;;;;;;;;;;;;;;;;;11961:26;11946:12;:41;;;;12012:4;11998:11;;:18;;;;;;;;;;;;;;;;;;12034:13;;;;;;;;;;;12027:29;;;12065:15;;;;;;;;;;;12083:14;12027:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3777:1;11283:823::o:0;15678:255::-;3717:12;:10;:12::i;:::-;3707:22;;:6;;;;;;;;;;:22;;;3699:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15780:1:::1;15765:12;:16;15757:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15841:36;15871:5;15841:25;15853:12;5217:27;15841:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;15826:12;:51;;;;15893:32;15912:12;;15893:32;;;;;;:::i;:::-;;;;;;;;15678:255:::0;:::o;7360:143::-;7441:7;7468:11;:18;7480:5;7468:18;;;;;;;;;;;;;;;:27;7487:7;7468:27;;;;;;;;;;;;;;;;7461:34;;7360:143;;;;:::o;1298:98::-;1351:7;1378:10;1371:17;;1298:98;:::o;8719:335::-;8829:1;8812:19;;:5;:19;;;;8804:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8910:1;8891:21;;:7;:21;;;;8883:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8992:6;8962:11;:18;8974:5;8962:18;;;;;;;;;;;;;;;:27;8981:7;8962:27;;;;;;;;;;;;;;;:36;;;;9030:7;9014:32;;9023:5;9014:32;;;9039:6;9014:32;;;;;;:::i;:::-;;;;;;;;8719:335;;;:::o;9062:1544::-;9166:1;9150:18;;:4;:18;;;;9142:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9243:1;9229:16;;:2;:16;;;;9221:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9313:1;9304:6;:10;9296:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9381:1;9371:7;:11;;;;9404:1;9393:8;:12;;;;9428:7;:5;:7::i;:::-;9420:15;;:4;:15;;;;:32;;;;;9445:7;:5;:7::i;:::-;9439:13;;:2;:13;;;;9420:32;9416:992;;;9478:4;:10;9483:4;9478:10;;;;;;;;;;;;;;;;;;;;;;;;;9477:11;:24;;;;;9493:4;:8;9498:2;9493:8;;;;;;;;;;;;;;;;;;;;;;;;;9492:9;9477:24;9469:33;;;;;;9529:13;;;;;;;;;;;9521:21;;:4;:21;;;:55;;;;;9560:15;;;;;;;;;;;9546:30;;:2;:30;;;;9521:55;:83;;;;;9582:18;:22;9601:2;9582:22;;;;;;;;;;;;;;;;;;;;;;;;;9580:24;9521:83;:102;;;;;9608:15;;;;;;;;;;;9521:102;9517:296;;;9662:12;;9652:6;:22;;9644:31;;;;;;9717:15;9702:8;:12;9711:2;9702:12;;;;;;;;;;;;;;;;:30;9694:39;;;;;;9786:10;9767:15;:30;;;;:::i;:::-;9752:8;:12;9761:2;9752:12;;;;;;;;;;;;;;;:45;;;;9517:296;9837:13;;;;;;;;;;;9831:19;;:2;:19;;;:55;;;;;9870:15;;;;;;;;;;;9854:32;;:4;:32;;;;9831:55;:85;;;;;9892:18;:24;9911:4;9892:24;;;;;;;;;;;;;;;;;;;;;;;;;9890:26;9831:85;9827:168;;;9947:1;9937:7;:11;;;;9978:1;9967:8;:12;;;;9827:168;10009:28;10040:24;10058:4;10040:9;:24::i;:::-;10009:55;;10084:6;;;;;;;;;;;10083:7;:32;;;;;10102:13;;;;;;;;;;;10094:21;;:4;:21;;;;10083:32;:47;;;;;10119:11;;;;;;;;;;;10083:47;10079:318;;;10151:38;10168:20;10151:16;:38::i;:::-;10208:26;10237:21;10208:50;;10301:1;10280:18;:22;10277:105;;;10327:35;10340:21;10327:12;:35::i;:::-;10277:105;10079:318;;9416:992;;10418:12;10433:4;10418:19;;10453:18;:24;10472:4;10453:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10481:18;:22;10500:2;10481:22;;;;;;;;;;;;;;;;;;;;;;;;;10453:50;10450:96;;;10529:5;10519:15;;10450:96;10560:38;10575:4;10580:2;10583:6;10590:7;10560:14;:38::i;:::-;9062:1544;;;;:::o;2435:190::-;2521:7;2554:1;2549;:6;;2557:12;2541:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2581:9;2597:1;2593;:5;;;;:::i;:::-;2581:17;;2616:1;2609:8;;;2435:190;;;;;:::o;11113:158::-;11170:11;;;;;;;;;;;:20;;:35;11191:13;11202:1;11191:6;:10;;:13;;;;:::i;:::-;11170:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11216:23;;;;;;;;;;;:32;;:47;11249:13;11260:1;11249:6;:10;;:13;;;;:::i;:::-;11216:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11113:158;:::o;8112:254::-;8179:7;8218;;8207;:18;;8199:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;8283:19;8306:10;:8;:10::i;:::-;8283:33;;8334:24;8346:11;8334:7;:11;;:24;;;;:::i;:::-;8327:31;;;8112:254;;;:::o;10614:483::-;6109:4;6100:6;;:13;;;;;;;;;;;;;;;;;;10692:21:::1;10730:1;10716:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10692:40;;10761:4;10743;10748:1;10743:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;10787:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10777:4;10782:1;10777:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;10820:62;10837:4;10852:15;;;;;;;;;;;10870:11;10820:8;:62::i;:::-;10893:15;;;;;;;;;;;:66;;;10974:11;11000:1;11016:4;11043;11063:15;10893:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;6124:1;6145:5:::0;6136:6;;:14;;;;;;;;;;;;;;;;;;10614:483;:::o;2633:246::-;2691:7;2720:1;2715;:6;2711:47;;;2745:1;2738:8;;;;2711:47;2768:9;2784:1;2780;:5;;;;:::i;:::-;2768:17;;2813:1;2808;2804;:5;;;;:::i;:::-;:10;2796:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2870:1;2863:8;;;2633:246;;;;;:::o;2887:132::-;2945:7;2972:39;2976:1;2979;2972:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2965:46;;2887:132;;;;:::o;12398:263::-;12510:7;12506:40;;12532:14;:12;:14::i;:::-;12506:40;12557:44;12575:6;12583:9;12594:6;12557:17;:44::i;:::-;12616:7;12612:41;;12638:15;:13;:15::i;:::-;12612:41;12398:263;;;;:::o;15237:163::-;15278:7;15299:15;15316;15335:19;:17;:19::i;:::-;15298:56;;;;15372:20;15384:7;15372;:11;;:20;;;;:::i;:::-;15365:27;;;;15237:163;:::o;3027:189::-;3113:7;3145:1;3141;:5;3148:12;3133:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3172:9;3188:1;3184;:5;;;;:::i;:::-;3172:17;;3207:1;3200:8;;;3027:189;;;;;:::o;8374:210::-;8431:1;8420:7;;:12;:29;;;;;8448:1;8436:8;;:13;8420:29;8417:41;;;8451:7;;8417:41;8486:7;;8468:15;:25;;;;8523:8;;8504:16;:27;;;;8552:1;8542:7;:11;;;;8575:1;8564:8;:12;;;;8374:210;:::o;12669:488::-;12768:15;12785:23;12810:12;12824:23;12849:12;12863:13;12880:19;12891:7;12880:10;:19::i;:::-;12767:132;;;;;;;;;;;;12928:28;12948:7;12928;:15;12936:6;12928:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12910:7;:15;12918:6;12910:15;;;;;;;;;;;;;;;:46;;;;12988:39;13011:15;12988:7;:18;12996:9;12988:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12967:7;:18;12975:9;12967:18;;;;;;;;;;;;;;;:60;;;;13039:16;13049:5;13039:9;:16::i;:::-;13066:23;13078:4;13084;13066:11;:23::i;:::-;13122:9;13105:44;;13114:6;13105:44;;;13133:15;13105:44;;;;;;:::i;:::-;;;;;;;;12669:488;;;;;;;;;:::o;8596:115::-;8650:15;;8640:7;:25;;;;8687:16;;8676:8;:27;;;;8596:115::o;15408:262::-;15458:7;15467;15487:15;15505:7;;15487:25;;15523:15;5217:27;15523:25;;15579:20;5217:27;15579:7;;:11;;:20;;;;:::i;:::-;15569:7;:30;15565:61;;;15609:7;;5217:27;15601:25;;;;;;;;15565:61;15645:7;15654;15637:25;;;;;;15408:262;;;:::o;13988:468::-;14047:7;14056;14065;14074;14083;14092;14113:23;14138:12;14152:13;14169:39;14181:7;14190;;14199:8;;14169:11;:39::i;:::-;14112:96;;;;;;14219:19;14242:10;:8;:10::i;:::-;14219:33;;14264:15;14281:23;14306:12;14322:46;14334:7;14343:4;14349:5;14356:11;14322;:46::i;:::-;14263:105;;;;;;14387:7;14396:15;14413:4;14419:15;14436:4;14442:5;14379:69;;;;;;;;;;;;;;;;;;;13988:468;;;;;;;:::o;2291:136::-;2349:7;2376:43;2380:1;2383;2376:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2369:50;;2291:136;;;;:::o;2104:179::-;2162:7;2182:9;2198:1;2194;:5;;;;:::i;:::-;2182:17;;2223:1;2218;:6;;2210:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2274:1;2267:8;;;2104:179;;;;:::o;13165:212::-;13218:19;13241:10;:8;:10::i;:::-;13218:33;;13262:13;13278:22;13288:11;13278:5;:9;;:22;;;;:::i;:::-;13262:38;;13336:33;13363:5;13336:7;:22;13352:4;13336:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13311:7;:22;13327:4;13311:22;;;;;;;;;;;;;;;:58;;;;13165:212;;;:::o;13385:147::-;13463:17;13475:4;13463:7;;:11;;:17;;;;:::i;:::-;13453:7;:27;;;;13504:20;13519:4;13504:10;;:14;;:20;;;;:::i;:::-;13491:10;:33;;;;13385:147;;:::o;14464:351::-;14557:7;14566;14575;14595:12;14610:28;14634:3;14610:19;14622:6;14610:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14595:43;;14649:13;14665:29;14690:3;14665:20;14677:7;14665;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14649:45;;14705:23;14731:28;14753:5;14731:17;14743:4;14731:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14705:54;;14778:15;14795:4;14801:5;14770:37;;;;;;;;;14464:351;;;;;;;:::o;14823:409::-;14933:7;14942;14951;14971:15;14989:24;15001:11;14989:7;:11;;:24;;;;:::i;:::-;14971:42;;15024:12;15039:21;15048:11;15039:4;:8;;:21;;;;:::i;:::-;15024:36;;15071:13;15087:22;15097:11;15087:5;:9;;:22;;;;:::i;:::-;15071:38;;15120:23;15146:28;15168:5;15146:17;15158:4;15146:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15120:54;;15193:7;15202:15;15219:4;15185:39;;;;;;;;;;14823:409;;;;;;;;:::o;24:623:1:-;;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;274:6;267:5;260:21;300:4;293:5;289:16;282:23;;325:6;375:3;367:4;359:6;355:17;350:3;346:27;343:36;340:2;;;392:1;389;382:12;340:2;420:1;405:236;430:6;427:1;424:13;405:236;;;497:3;525:37;558:3;546:10;525:37;:::i;:::-;520:3;513:50;592:4;587:3;583:14;576:21;;626:4;621:3;617:14;610:21;;465:176;452:1;449;445:9;440:14;;405:236;;;409:14;126:521;;;;;;;:::o;653:139::-;;737:6;724:20;715:29;;753:33;780:5;753:33;:::i;:::-;705:87;;;;:::o;798:143::-;;886:6;880:13;871:22;;902:33;929:5;902:33;:::i;:::-;861:80;;;;:::o;964:303::-;;1084:3;1077:4;1069:6;1065:17;1061:27;1051:2;;1102:1;1099;1092:12;1051:2;1142:6;1129:20;1167:94;1257:3;1249:6;1242:4;1234:6;1230:17;1167:94;:::i;:::-;1158:103;;1041:226;;;;;:::o;1273:133::-;;1354:6;1341:20;1332:29;;1370:30;1394:5;1370:30;:::i;:::-;1322:84;;;;:::o;1412:137::-;;1497:6;1491:13;1482:22;;1513:30;1537:5;1513:30;:::i;:::-;1472:77;;;;:::o;1555:139::-;;1639:6;1626:20;1617:29;;1655:33;1682:5;1655:33;:::i;:::-;1607:87;;;;:::o;1700:143::-;;1788:6;1782:13;1773:22;;1804:33;1831:5;1804:33;:::i;:::-;1763:80;;;;:::o;1849:262::-;;1957:2;1945:9;1936:7;1932:23;1928:32;1925:2;;;1973:1;1970;1963:12;1925:2;2016:1;2041:53;2086:7;2077:6;2066:9;2062:22;2041:53;:::i;:::-;2031:63;;1987:117;1915:196;;;;:::o;2117:284::-;;2236:2;2224:9;2215:7;2211:23;2207:32;2204:2;;;2252:1;2249;2242:12;2204:2;2295:1;2320:64;2376:7;2367:6;2356:9;2352:22;2320:64;:::i;:::-;2310:74;;2266:128;2194:207;;;;:::o;2407:407::-;;;2532:2;2520:9;2511:7;2507:23;2503:32;2500:2;;;2548:1;2545;2538:12;2500:2;2591:1;2616:53;2661:7;2652:6;2641:9;2637:22;2616:53;:::i;:::-;2606:63;;2562:117;2718:2;2744:53;2789:7;2780:6;2769:9;2765:22;2744:53;:::i;:::-;2734:63;;2689:118;2490:324;;;;;:::o;2820:552::-;;;;2962:2;2950:9;2941:7;2937:23;2933:32;2930:2;;;2978:1;2975;2968:12;2930:2;3021:1;3046:53;3091:7;3082:6;3071:9;3067:22;3046:53;:::i;:::-;3036:63;;2992:117;3148:2;3174:53;3219:7;3210:6;3199:9;3195:22;3174:53;:::i;:::-;3164:63;;3119:118;3276:2;3302:53;3347:7;3338:6;3327:9;3323:22;3302:53;:::i;:::-;3292:63;;3247:118;2920:452;;;;;:::o;3378:407::-;;;3503:2;3491:9;3482:7;3478:23;3474:32;3471:2;;;3519:1;3516;3509:12;3471:2;3562:1;3587:53;3632:7;3623:6;3612:9;3608:22;3587:53;:::i;:::-;3577:63;;3533:117;3689:2;3715:53;3760:7;3751:6;3740:9;3736:22;3715:53;:::i;:::-;3705:63;;3660:118;3461:324;;;;;:::o;3791:405::-;;3924:2;3912:9;3903:7;3899:23;3895:32;3892:2;;;3940:1;3937;3930:12;3892:2;4011:1;4000:9;3996:17;3983:31;4041:18;4033:6;4030:30;4027:2;;;4073:1;4070;4063:12;4027:2;4101:78;4171:7;4162:6;4151:9;4147:22;4101:78;:::i;:::-;4091:88;;3954:235;3882:314;;;;:::o;4202:256::-;;4307:2;4295:9;4286:7;4282:23;4278:32;4275:2;;;4323:1;4320;4313:12;4275:2;4366:1;4391:50;4433:7;4424:6;4413:9;4409:22;4391:50;:::i;:::-;4381:60;;4337:114;4265:193;;;;:::o;4464:278::-;;4580:2;4568:9;4559:7;4555:23;4551:32;4548:2;;;4596:1;4593;4586:12;4548:2;4639:1;4664:61;4717:7;4708:6;4697:9;4693:22;4664:61;:::i;:::-;4654:71;;4610:125;4538:204;;;;:::o;4748:262::-;;4856:2;4844:9;4835:7;4831:23;4827:32;4824:2;;;4872:1;4869;4862:12;4824:2;4915:1;4940:53;4985:7;4976:6;4965:9;4961:22;4940:53;:::i;:::-;4930:63;;4886:117;4814:196;;;;:::o;5016:596::-;;;;5169:2;5157:9;5148:7;5144:23;5140:32;5137:2;;;5185:1;5182;5175:12;5137:2;5228:1;5253:64;5309:7;5300:6;5289:9;5285:22;5253:64;:::i;:::-;5243:74;;5199:128;5366:2;5392:64;5448:7;5439:6;5428:9;5424:22;5392:64;:::i;:::-;5382:74;;5337:129;5505:2;5531:64;5587:7;5578:6;5567:9;5563:22;5531:64;:::i;:::-;5521:74;;5476:129;5127:485;;;;;:::o;5618:179::-;;5708:46;5750:3;5742:6;5708:46;:::i;:::-;5786:4;5781:3;5777:14;5763:28;;5698:99;;;;:::o;5803:108::-;5880:24;5898:5;5880:24;:::i;:::-;5875:3;5868:37;5858:53;;:::o;5917:118::-;6004:24;6022:5;6004:24;:::i;:::-;5999:3;5992:37;5982:53;;:::o;6071:732::-;;6219:54;6267:5;6219:54;:::i;:::-;6289:86;6368:6;6363:3;6289:86;:::i;:::-;6282:93;;6399:56;6449:5;6399:56;:::i;:::-;6478:7;6509:1;6494:284;6519:6;6516:1;6513:13;6494:284;;;6595:6;6589:13;6622:63;6681:3;6666:13;6622:63;:::i;:::-;6615:70;;6708:60;6761:6;6708:60;:::i;:::-;6698:70;;6554:224;6541:1;6538;6534:9;6529:14;;6494:284;;;6498:14;6794:3;6787:10;;6195:608;;;;;;;:::o;6809:109::-;6890:21;6905:5;6890:21;:::i;:::-;6885:3;6878:34;6868:50;;:::o;6924:147::-;7019:45;7058:5;7019:45;:::i;:::-;7014:3;7007:58;6997:74;;:::o;7077:364::-;;7193:39;7226:5;7193:39;:::i;:::-;7248:71;7312:6;7307:3;7248:71;:::i;:::-;7241:78;;7328:52;7373:6;7368:3;7361:4;7354:5;7350:16;7328:52;:::i;:::-;7405:29;7427:6;7405:29;:::i;:::-;7400:3;7396:39;7389:46;;7169:272;;;;;:::o;7447:366::-;;7610:67;7674:2;7669:3;7610:67;:::i;:::-;7603:74;;7686:93;7775:3;7686:93;:::i;:::-;7804:2;7799:3;7795:12;7788:19;;7593:220;;;:::o;7819:366::-;;7982:67;8046:2;8041:3;7982:67;:::i;:::-;7975:74;;8058:93;8147:3;8058:93;:::i;:::-;8176:2;8171:3;8167:12;8160:19;;7965:220;;;:::o;8191:366::-;;8354:67;8418:2;8413:3;8354:67;:::i;:::-;8347:74;;8430:93;8519:3;8430:93;:::i;:::-;8548:2;8543:3;8539:12;8532:19;;8337:220;;;:::o;8563:366::-;;8726:67;8790:2;8785:3;8726:67;:::i;:::-;8719:74;;8802:93;8891:3;8802:93;:::i;:::-;8920:2;8915:3;8911:12;8904:19;;8709:220;;;:::o;8935:366::-;;9098:67;9162:2;9157:3;9098:67;:::i;:::-;9091:74;;9174:93;9263:3;9174:93;:::i;:::-;9292:2;9287:3;9283:12;9276:19;;9081:220;;;:::o;9307:366::-;;9470:67;9534:2;9529:3;9470:67;:::i;:::-;9463:74;;9546:93;9635:3;9546:93;:::i;:::-;9664:2;9659:3;9655:12;9648:19;;9453:220;;;:::o;9679:366::-;;9842:67;9906:2;9901:3;9842:67;:::i;:::-;9835:74;;9918:93;10007:3;9918:93;:::i;:::-;10036:2;10031:3;10027:12;10020:19;;9825:220;;;:::o;10051:366::-;;10214:67;10278:2;10273:3;10214:67;:::i;:::-;10207:74;;10290:93;10379:3;10290:93;:::i;:::-;10408:2;10403:3;10399:12;10392:19;;10197:220;;;:::o;10423:366::-;;10586:67;10650:2;10645:3;10586:67;:::i;:::-;10579:74;;10662:93;10751:3;10662:93;:::i;:::-;10780:2;10775:3;10771:12;10764:19;;10569:220;;;:::o;10795:366::-;;10958:67;11022:2;11017:3;10958:67;:::i;:::-;10951:74;;11034:93;11123:3;11034:93;:::i;:::-;11152:2;11147:3;11143:12;11136:19;;10941:220;;;:::o;11167:366::-;;11330:67;11394:2;11389:3;11330:67;:::i;:::-;11323:74;;11406:93;11495:3;11406:93;:::i;:::-;11524:2;11519:3;11515:12;11508:19;;11313:220;;;:::o;11539:118::-;11626:24;11644:5;11626:24;:::i;:::-;11621:3;11614:37;11604:53;;:::o;11663:112::-;11746:22;11762:5;11746:22;:::i;:::-;11741:3;11734:35;11724:51;;:::o;11781:222::-;;11912:2;11901:9;11897:18;11889:26;;11925:71;11993:1;11982:9;11978:17;11969:6;11925:71;:::i;:::-;11879:124;;;;:::o;12009:332::-;;12168:2;12157:9;12153:18;12145:26;;12181:71;12249:1;12238:9;12234:17;12225:6;12181:71;:::i;:::-;12262:72;12330:2;12319:9;12315:18;12306:6;12262:72;:::i;:::-;12135:206;;;;;:::o;12347:332::-;;12506:2;12495:9;12491:18;12483:26;;12519:71;12587:1;12576:9;12572:17;12563:6;12519:71;:::i;:::-;12600:72;12668:2;12657:9;12653:18;12644:6;12600:72;:::i;:::-;12473:206;;;;;:::o;12685:807::-;;12972:3;12961:9;12957:19;12949:27;;12986:71;13054:1;13043:9;13039:17;13030:6;12986:71;:::i;:::-;13067:72;13135:2;13124:9;13120:18;13111:6;13067:72;:::i;:::-;13149:80;13225:2;13214:9;13210:18;13201:6;13149:80;:::i;:::-;13239;13315:2;13304:9;13300:18;13291:6;13239:80;:::i;:::-;13329:73;13397:3;13386:9;13382:19;13373:6;13329:73;:::i;:::-;13412;13480:3;13469:9;13465:19;13456:6;13412:73;:::i;:::-;12939:553;;;;;;;;;:::o;13498:210::-;;13623:2;13612:9;13608:18;13600:26;;13636:65;13698:1;13687:9;13683:17;13674:6;13636:65;:::i;:::-;13590:118;;;;:::o;13714:313::-;;13865:2;13854:9;13850:18;13842:26;;13914:9;13908:4;13904:20;13900:1;13889:9;13885:17;13878:47;13942:78;14015:4;14006:6;13942:78;:::i;:::-;13934:86;;13832:195;;;;:::o;14033:419::-;;14237:2;14226:9;14222:18;14214:26;;14286:9;14280:4;14276:20;14272:1;14261:9;14257:17;14250:47;14314:131;14440:4;14314:131;:::i;:::-;14306:139;;14204:248;;;:::o;14458:419::-;;14662:2;14651:9;14647:18;14639:26;;14711:9;14705:4;14701:20;14697:1;14686:9;14682:17;14675:47;14739:131;14865:4;14739:131;:::i;:::-;14731:139;;14629:248;;;:::o;14883:419::-;;15087:2;15076:9;15072:18;15064:26;;15136:9;15130:4;15126:20;15122:1;15111:9;15107:17;15100:47;15164:131;15290:4;15164:131;:::i;:::-;15156:139;;15054:248;;;:::o;15308:419::-;;15512:2;15501:9;15497:18;15489:26;;15561:9;15555:4;15551:20;15547:1;15536:9;15532:17;15525:47;15589:131;15715:4;15589:131;:::i;:::-;15581:139;;15479:248;;;:::o;15733:419::-;;15937:2;15926:9;15922:18;15914:26;;15986:9;15980:4;15976:20;15972:1;15961:9;15957:17;15950:47;16014:131;16140:4;16014:131;:::i;:::-;16006:139;;15904:248;;;:::o;16158:419::-;;16362:2;16351:9;16347:18;16339:26;;16411:9;16405:4;16401:20;16397:1;16386:9;16382:17;16375:47;16439:131;16565:4;16439:131;:::i;:::-;16431:139;;16329:248;;;:::o;16583:419::-;;16787:2;16776:9;16772:18;16764:26;;16836:9;16830:4;16826:20;16822:1;16811:9;16807:17;16800:47;16864:131;16990:4;16864:131;:::i;:::-;16856:139;;16754:248;;;:::o;17008:419::-;;17212:2;17201:9;17197:18;17189:26;;17261:9;17255:4;17251:20;17247:1;17236:9;17232:17;17225:47;17289:131;17415:4;17289:131;:::i;:::-;17281:139;;17179:248;;;:::o;17433:419::-;;17637:2;17626:9;17622:18;17614:26;;17686:9;17680:4;17676:20;17672:1;17661:9;17657:17;17650:47;17714:131;17840:4;17714:131;:::i;:::-;17706:139;;17604:248;;;:::o;17858:419::-;;18062:2;18051:9;18047:18;18039:26;;18111:9;18105:4;18101:20;18097:1;18086:9;18082:17;18075:47;18139:131;18265:4;18139:131;:::i;:::-;18131:139;;18029:248;;;:::o;18283:419::-;;18487:2;18476:9;18472:18;18464:26;;18536:9;18530:4;18526:20;18522:1;18511:9;18507:17;18500:47;18564:131;18690:4;18564:131;:::i;:::-;18556:139;;18454:248;;;:::o;18708:222::-;;18839:2;18828:9;18824:18;18816:26;;18852:71;18920:1;18909:9;18905:17;18896:6;18852:71;:::i;:::-;18806:124;;;;:::o;18936:831::-;;19237:3;19226:9;19222:19;19214:27;;19251:71;19319:1;19308:9;19304:17;19295:6;19251:71;:::i;:::-;19332:80;19408:2;19397:9;19393:18;19384:6;19332:80;:::i;:::-;19459:9;19453:4;19449:20;19444:2;19433:9;19429:18;19422:48;19487:108;19590:4;19581:6;19487:108;:::i;:::-;19479:116;;19605:72;19673:2;19662:9;19658:18;19649:6;19605:72;:::i;:::-;19687:73;19755:3;19744:9;19740:19;19731:6;19687:73;:::i;:::-;19204:563;;;;;;;;:::o;19773:214::-;;19900:2;19889:9;19885:18;19877:26;;19913:67;19977:1;19966:9;19962:17;19953:6;19913:67;:::i;:::-;19867:120;;;;:::o;19993:129::-;;20054:20;;:::i;:::-;20044:30;;20083:33;20111:4;20103:6;20083:33;:::i;:::-;20034:88;;;:::o;20128:75::-;;20194:2;20188:9;20178:19;;20168:35;:::o;20209:311::-;;20376:18;20368:6;20365:30;20362:2;;;20398:18;;:::i;:::-;20362:2;20448:4;20440:6;20436:17;20428:25;;20508:4;20502;20498:15;20490:23;;20291:229;;;:::o;20526:132::-;;20616:3;20608:11;;20646:4;20641:3;20637:14;20629:22;;20598:60;;;:::o;20664:114::-;;20765:5;20759:12;20749:22;;20738:40;;;:::o;20784:99::-;;20870:5;20864:12;20854:22;;20843:40;;;:::o;20889:113::-;;20991:4;20986:3;20982:14;20974:22;;20964:38;;;:::o;21008:184::-;;21141:6;21136:3;21129:19;21181:4;21176:3;21172:14;21157:29;;21119:73;;;;:::o;21198:169::-;;21316:6;21311:3;21304:19;21356:4;21351:3;21347:14;21332:29;;21294:73;;;;:::o;21373:305::-;;21432:20;21450:1;21432:20;:::i;:::-;21427:25;;21466:20;21484:1;21466:20;:::i;:::-;21461:25;;21620:1;21552:66;21548:74;21545:1;21542:81;21539:2;;;21626:18;;:::i;:::-;21539:2;21670:1;21667;21663:9;21656:16;;21417:261;;;;:::o;21684:185::-;;21741:20;21759:1;21741:20;:::i;:::-;21736:25;;21775:20;21793:1;21775:20;:::i;:::-;21770:25;;21814:1;21804:2;;21819:18;;:::i;:::-;21804:2;21861:1;21858;21854:9;21849:14;;21726:143;;;;:::o;21875:348::-;;21938:20;21956:1;21938:20;:::i;:::-;21933:25;;21972:20;21990:1;21972:20;:::i;:::-;21967:25;;22160:1;22092:66;22088:74;22085:1;22082:81;22077:1;22070:9;22063:17;22059:105;22056:2;;;22167:18;;:::i;:::-;22056:2;22215:1;22212;22208:9;22197:20;;21923:300;;;;:::o;22229:191::-;;22289:20;22307:1;22289:20;:::i;:::-;22284:25;;22323:20;22341:1;22323:20;:::i;:::-;22318:25;;22362:1;22359;22356:8;22353:2;;;22367:18;;:::i;:::-;22353:2;22412:1;22409;22405:9;22397:17;;22274:146;;;;:::o;22426:96::-;;22492:24;22510:5;22492:24;:::i;:::-;22481:35;;22471:51;;;:::o;22528:90::-;;22605:5;22598:13;22591:21;22580:32;;22570:48;;;:::o;22624:126::-;;22701:42;22694:5;22690:54;22679:65;;22669:81;;;:::o;22756:77::-;;22822:5;22811:16;;22801:32;;;:::o;22839:86::-;;22914:4;22907:5;22903:16;22892:27;;22882:43;;;:::o;22931:121::-;;23022:24;23040:5;23022:24;:::i;:::-;23009:37;;22999:53;;;:::o;23058:307::-;23126:1;23136:113;23150:6;23147:1;23144:13;23136:113;;;23235:1;23230:3;23226:11;23220:18;23216:1;23211:3;23207:11;23200:39;23172:2;23169:1;23165:10;23160:15;;23136:113;;;23267:6;23264:1;23261:13;23258:2;;;23347:1;23338:6;23333:3;23329:16;23322:27;23258:2;23107:258;;;;:::o;23371:281::-;23454:27;23476:4;23454:27;:::i;:::-;23446:6;23442:40;23584:6;23572:10;23569:22;23548:18;23536:10;23533:34;23530:62;23527:2;;;23595:18;;:::i;:::-;23527:2;23635:10;23631:2;23624:22;23414:238;;;:::o;23658:233::-;;23720:24;23738:5;23720:24;:::i;:::-;23711:33;;23766:66;23759:5;23756:77;23753:2;;;23836:18;;:::i;:::-;23753:2;23883:1;23876:5;23872:13;23865:20;;23701:190;;;:::o;23897:180::-;23945:77;23942:1;23935:88;24042:4;24039:1;24032:15;24066:4;24063:1;24056:15;24083:180;24131:77;24128:1;24121:88;24228:4;24225:1;24218:15;24252:4;24249:1;24242:15;24269:180;24317:77;24314:1;24307:88;24414:4;24411:1;24404:15;24438:4;24435:1;24428:15;24455:102;;24547:2;24543:7;24538:2;24531:5;24527:14;24523:28;24513:38;;24503:54;;;:::o;24563:222::-;24703:34;24699:1;24691:6;24687:14;24680:58;24772:5;24767:2;24759:6;24755:15;24748:30;24669:116;:::o;24791:229::-;24931:34;24927:1;24919:6;24915:14;24908:58;25000:12;24995:2;24987:6;24983:15;24976:37;24897:123;:::o;25026:221::-;25166:34;25162:1;25154:6;25150:14;25143:58;25235:4;25230:2;25222:6;25218:15;25211:29;25132:115;:::o;25253:177::-;25393:29;25389:1;25381:6;25377:14;25370:53;25359:71;:::o;25436:179::-;25576:31;25572:1;25564:6;25560:14;25553:55;25542:73;:::o;25621:220::-;25761:34;25757:1;25749:6;25745:14;25738:58;25830:3;25825:2;25817:6;25813:15;25806:28;25727:114;:::o;25847:182::-;25987:34;25983:1;25975:6;25971:14;25964:58;25953:76;:::o;26035:228::-;26175:34;26171:1;26163:6;26159:14;26152:58;26244:11;26239:2;26231:6;26227:15;26220:36;26141:122;:::o;26269:224::-;26409:34;26405:1;26397:6;26393:14;26386:58;26478:7;26473:2;26465:6;26461:15;26454:32;26375:118;:::o;26499:223::-;26639:34;26635:1;26627:6;26623:14;26616:58;26708:6;26703:2;26695:6;26691:15;26684:31;26605:117;:::o;26728:173::-;26868:25;26864:1;26856:6;26852:14;26845:49;26834:67;:::o;26907:122::-;26980:24;26998:5;26980:24;:::i;:::-;26973:5;26970:35;26960:2;;27019:1;27016;27009:12;26960:2;26950:79;:::o;27035:116::-;27105:21;27120:5;27105:21;:::i;:::-;27098:5;27095:32;27085:2;;27141:1;27138;27131:12;27085:2;27075:76;:::o;27157:122::-;27230:24;27248:5;27230:24;:::i;:::-;27223:5;27220:35;27210:2;;27269:1;27266;27259:12;27210:2;27200:79;:::o

Swarm Source

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