ETH Price: $2,270.96 (+2.44%)

Token

Elon The Hero (ETH)
 

Overview

Max Total Supply

69,000,000,000 ETH

Holders

181

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 ETH

Value
$0.00
0x6bedef80e12b846baeff041ab6f8b03d15e3e5bc
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:
ETH

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-21
*/

/*
    Telegram : https://t.me/ElonTheHeroETH
    Twitter : https://x.com/ElonTheHeroETH
    Website : https://elonthehero.com/


    https://x.com/elonmusk/status/1123033196642201600
    

*/
// SPDX-License-Identifier: UNLICENSE
pragma solidity 0.8.23;
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;
    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 ETH is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=25;
    uint256 private _finalSellTax=25;
    uint256 private _reduceBuyTaxAt=2;
    uint256 private _reduceSellTaxAt=2;
    uint256 private _preventSwapBefore=20;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 69000000000 * 10**_decimals;
    string private constant _name = unicode"Elon The Hero";
    string private constant _symbol = unicode"ETH";
    uint256 public _maxTxAmount = 1380000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1380000000 *10**_decimals;
    uint256 public _taxSwapThreshold= 69000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 690000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _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 _balances[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 _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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function setFees(uint256 _buy,uint256 _sell) external{
      _finalBuyTax=_buy;
      _finalSellTax=_sell;
    }

    receive() external payable {}

    function manualSend() external {
        require(_msgSender()==_taxWallet);
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"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":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"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"}]

608060405260146006556014600755601960085560196009556002600a556002600b556014600c555f600d556009600a6200003b9190620005fe565b63524121006200004c91906200064e565b600e556009600a6200005f9190620005fe565b63524121006200007091906200064e565b600f556009600a620000839190620005fe565b63041cdb406200009491906200064e565b6010556009600a620000a79190620005fe565b6329209080620000b891906200064e565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f60155534801562000103575f80fd5b505f620001156200043e60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c16200043e60201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002109190620005fe565b641010b872006200022291906200064e565b60015f620002356200043e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002876200044560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003b16200043e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200040f9190620005fe565b641010b872006200042191906200064e565b604051620004309190620006a9565b60405180910390a3620006c4565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004f657808604811115620004ce57620004cd6200046c565b5b6001851615620004de5780820291505b8081029050620004ee8562000499565b9450620004ae565b94509492505050565b5f82620005105760019050620005e2565b816200051f575f9050620005e2565b8160018114620005385760028114620005435762000579565b6001915050620005e2565b60ff8411156200055857620005576200046c565b5b8360020a9150848211156200057257620005716200046c565b5b50620005e2565b5060208310610133831016604e8410600b8410161715620005b35782820a905083811115620005ad57620005ac6200046c565b5b620005e2565b620005c28484846001620004a5565b92509050818404811115620005dc57620005db6200046c565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060a82620005e9565b91506200061783620005f2565b9250620006467fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004ff565b905092915050565b5f6200065a82620005e9565b91506200066783620005e9565b92508282026200067781620005e9565b915082820484148315176200069157620006906200046c565b5b5092915050565b620006a381620005e9565b82525050565b5f602082019050620006be5f83018462000698565b92915050565b6133fd80620006d25f395ff3fe608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c9567bf914610486578063d34628cc1461049c578063dd62ed3e146104c4578063f4293890146105005761014a565b8063715018a61461034c578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c57806331c2d847146102965780633bbac579146102be57806351bc3c85146102fa57806370a08231146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b78f9c0146101b45780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610516565b60405161016f9190612396565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612454565b610553565b6040516101ab91906124ac565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d591906124c5565b610570565b005b3480156101e7575f80fd5b506101f0610582565b6040516101fd9190612512565b60405180910390f35b348015610211575f80fd5b5061021a610588565b6040516102279190612512565b60405180910390f35b34801561023b575f80fd5b506102566004803603810190610251919061252b565b6105ac565b60405161026391906124ac565b60405180910390f35b348015610277575f80fd5b50610280610680565b60405161028d9190612596565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b791906126ef565b610688565b005b3480156102c9575f80fd5b506102e460048036038101906102df9190612736565b6107a6565b6040516102f191906124ac565b60405180910390f35b348015610305575f80fd5b5061030e6107f8565b005b34801561031b575f80fd5b5061033660048036038101906103319190612736565b61088f565b6040516103439190612512565b60405180910390f35b348015610357575f80fd5b506103606108d5565b005b34801561036d575f80fd5b50610376610a23565b005b348015610383575f80fd5b5061038c610b55565b6040516103999190612512565b60405180910390f35b3480156103ad575f80fd5b506103b6610b5b565b6040516103c39190612770565b60405180910390f35b3480156103d7575f80fd5b506103e0610b82565b6040516103ed9190612512565b60405180910390f35b348015610401575f80fd5b5061040a610b88565b6040516104179190612396565b60405180910390f35b34801561042b575f80fd5b5061044660048036038101906104419190612454565b610bc5565b60405161045391906124ac565b60405180910390f35b348015610467575f80fd5b50610470610be2565b60405161047d9190612512565b60405180910390f35b348015610491575f80fd5b5061049a610be8565b005b3480156104a7575f80fd5b506104c260048036038101906104bd91906126ef565b61110b565b005b3480156104cf575f80fd5b506104ea60048036038101906104e59190612789565b61122a565b6040516104f79190612512565b60405180910390f35b34801561050b575f80fd5b506105146112ac565b005b60606040518060400160405280600d81526020017f456c6f6e20546865204865726f00000000000000000000000000000000000000815250905090565b5f61056661055f611324565b848461132b565b6001905092915050565b81600881905550806009819055505050565b60115481565b5f6009600a6105979190612923565b641010b872006105a7919061296d565b905090565b5f6105b88484846114ee565b610675846105c4611324565b610670856040518060600160405280602881526020016133a06028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610627611324565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df89092919063ffffffff16565b61132b565b600190509392505050565b5f6009905090565b610690611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610713906129f8565b60405180910390fd5b5f5b81518110156107a2575f60045f84848151811061073e5761073d612a16565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061071e565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610838611324565b73ffffffffffffffffffffffffffffffffffffffff1614610857575f80fd5b5f6108613061088f565b90505f8111156108755761087481611e5a565b5b5f4790505f81111561088b5761088a816120c5565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108dd611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610969576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610960906129f8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2b611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906129f8565b60405180910390fd5b6009600a610ac59190612923565b641010b87200610ad5919061296d565b600e819055506009600a610ae99190612923565b641010b87200610af9919061296d565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b2e9190612923565b641010b87200610b3e919061296d565b604051610b4b9190612512565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4554480000000000000000000000000000000000000000000000000000000000815250905090565b5f610bd8610bd1611324565b84846114ee565b6001905092915050565b60105481565b610bf0611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c73906129f8565b60405180910390fd5b601360149054906101000a900460ff1615610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc390612a8d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d693060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d549190612923565b641010b87200610d64919061296d565b61132b565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df79190612abf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea19190612abf565b6040518363ffffffff1660e01b8152600401610ebe929190612aea565b6020604051808303815f875af1158015610eda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efe9190612abf565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f853061088f565b5f80610f8f610b5b565b426040518863ffffffff1660e01b8152600401610fb196959493929190612b53565b60606040518083038185885af1158015610fcd573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ff29190612bc6565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611092929190612c16565b6020604051808303815f875af11580156110ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d29190612c67565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b611113611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611196906129f8565b60405180910390fd5b5f5b815181101561122657600160045f8484815181106111c2576111c1612a16565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506111a1565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112ec611324565b73ffffffffffffffffffffffffffffffffffffffff161461130b575f80fd5b5f4790505f81111561132157611320816120c5565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139090612d02565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90612d90565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114e19190612512565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390612e1e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c190612eac565b60405180910390fd5b5f811161160c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160390612f3a565b60405180910390fd5b5f611615610b5b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116835750611653610b5b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b485760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611726575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61172e575f80fd5b61176a606461175c600a54600d54116117495760065461174d565b6008545b8561212d90919063ffffffff16565b6121a490919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611815575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611868575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561192257600e548211156118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a990612fa2565b60405180910390fd5b600f54826118bf8561088f565b6118c99190612fc0565b111561190a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119019061303d565b60405180910390fd5b600d5f81548092919061191c9061305b565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119aa57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119ee576119eb60646119dd600b54600d54116119ca576007546119ce565b6009545b8561212d90919063ffffffff16565b6121a490919063ffffffff16565b90505b5f6119f83061088f565b9050601360159054906101000a900460ff16158015611a63575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a7b5750601360169054906101000a900460ff165b8015611a88575060105481115b8015611a975750600c54600d54115b15611b4657601554431115611aae575f6014819055505b600360145410611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea906130ec565b60405180910390fd5b611b10611b0b84611b06846011546121ed565b6121ed565b611e5a565b5f4790505f811115611b2657611b25476120c5565b5b60145f815480929190611b389061305b565b919050555043601581905550505b505b5f811115611c4757611ba08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3e9190612512565b60405180910390a35b611c978260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461226290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d3a611cee828461226290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ddd848661226290919063ffffffff16565b604051611dea9190612512565b60405180910390a350505050565b5f838311158290611e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e369190612396565b60405180910390fd5b505f8385611e4d919061310a565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e9157611e906125b3565b5b604051908082528060200260200182016040528015611ebf5781602001602082028036833780820191505090505b50905030815f81518110611ed657611ed5612a16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f9e9190612abf565b81600181518110611fb257611fb1612a16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120183060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461132b565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161207a9594939291906131f4565b5f604051808303815f87803b158015612091575f80fd5b505af11580156120a3573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612129573d5f803e3d5ffd5b5050565b5f80830361213d575f905061219e565b5f828461214a919061296d565b90508284826121599190613279565b14612199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219090613319565b60405180910390fd5b809150505b92915050565b5f6121e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ab565b905092915050565b5f8183116121fb57826121fd565b815b905092915050565b5f8082846122139190612fc0565b905083811015612258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224f90613381565b60405180910390fd5b8091505092915050565b5f6122a383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df8565b905092915050565b5f80831182906122f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e89190612396565b60405180910390fd5b505f83856122ff9190613279565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612343578082015181840152602081019050612328565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123688261230c565b6123728185612316565b9350612382818560208601612326565b61238b8161234e565b840191505092915050565b5f6020820190508181035f8301526123ae818461235e565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123f0826123c7565b9050919050565b612400816123e6565b811461240a575f80fd5b50565b5f8135905061241b816123f7565b92915050565b5f819050919050565b61243381612421565b811461243d575f80fd5b50565b5f8135905061244e8161242a565b92915050565b5f806040838503121561246a576124696123bf565b5b5f6124778582860161240d565b925050602061248885828601612440565b9150509250929050565b5f8115159050919050565b6124a681612492565b82525050565b5f6020820190506124bf5f83018461249d565b92915050565b5f80604083850312156124db576124da6123bf565b5b5f6124e885828601612440565b92505060206124f985828601612440565b9150509250929050565b61250c81612421565b82525050565b5f6020820190506125255f830184612503565b92915050565b5f805f60608486031215612542576125416123bf565b5b5f61254f8682870161240d565b93505060206125608682870161240d565b925050604061257186828701612440565b9150509250925092565b5f60ff82169050919050565b6125908161257b565b82525050565b5f6020820190506125a95f830184612587565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125e98261234e565b810181811067ffffffffffffffff82111715612608576126076125b3565b5b80604052505050565b5f61261a6123b6565b905061262682826125e0565b919050565b5f67ffffffffffffffff821115612645576126446125b3565b5b602082029050602081019050919050565b5f80fd5b5f61266c6126678461262b565b612611565b9050808382526020820190506020840283018581111561268f5761268e612656565b5b835b818110156126b857806126a4888261240d565b845260208401935050602081019050612691565b5050509392505050565b5f82601f8301126126d6576126d56125af565b5b81356126e684826020860161265a565b91505092915050565b5f60208284031215612704576127036123bf565b5b5f82013567ffffffffffffffff811115612721576127206123c3565b5b61272d848285016126c2565b91505092915050565b5f6020828403121561274b5761274a6123bf565b5b5f6127588482850161240d565b91505092915050565b61276a816123e6565b82525050565b5f6020820190506127835f830184612761565b92915050565b5f806040838503121561279f5761279e6123bf565b5b5f6127ac8582860161240d565b92505060206127bd8582860161240d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561284957808604811115612825576128246127c7565b5b60018516156128345780820291505b8081029050612842856127f4565b9450612809565b94509492505050565b5f82612861576001905061291c565b8161286e575f905061291c565b8160018114612884576002811461288e576128bd565b600191505061291c565b60ff8411156128a05761289f6127c7565b5b8360020a9150848211156128b7576128b66127c7565b5b5061291c565b5060208310610133831016604e8410600b84101617156128f25782820a9050838111156128ed576128ec6127c7565b5b61291c565b6128ff8484846001612800565b92509050818404811115612916576129156127c7565b5b81810290505b9392505050565b5f61292d82612421565b91506129388361257b565b92506129657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612852565b905092915050565b5f61297782612421565b915061298283612421565b925082820261299081612421565b915082820484148315176129a7576129a66127c7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129e2602083612316565b91506129ed826129ae565b602082019050919050565b5f6020820190508181035f830152612a0f816129d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a77601783612316565b9150612a8282612a43565b602082019050919050565b5f6020820190508181035f830152612aa481612a6b565b9050919050565b5f81519050612ab9816123f7565b92915050565b5f60208284031215612ad457612ad36123bf565b5b5f612ae184828501612aab565b91505092915050565b5f604082019050612afd5f830185612761565b612b0a6020830184612761565b9392505050565b5f819050919050565b5f819050919050565b5f612b3d612b38612b3384612b11565b612b1a565b612421565b9050919050565b612b4d81612b23565b82525050565b5f60c082019050612b665f830189612761565b612b736020830188612503565b612b806040830187612b44565b612b8d6060830186612b44565b612b9a6080830185612761565b612ba760a0830184612503565b979650505050505050565b5f81519050612bc08161242a565b92915050565b5f805f60608486031215612bdd57612bdc6123bf565b5b5f612bea86828701612bb2565b9350506020612bfb86828701612bb2565b9250506040612c0c86828701612bb2565b9150509250925092565b5f604082019050612c295f830185612761565b612c366020830184612503565b9392505050565b612c4681612492565b8114612c50575f80fd5b50565b5f81519050612c6181612c3d565b92915050565b5f60208284031215612c7c57612c7b6123bf565b5b5f612c8984828501612c53565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cec602483612316565b9150612cf782612c92565b604082019050919050565b5f6020820190508181035f830152612d1981612ce0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7a602283612316565b9150612d8582612d20565b604082019050919050565b5f6020820190508181035f830152612da781612d6e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e08602583612316565b9150612e1382612dae565b604082019050919050565b5f6020820190508181035f830152612e3581612dfc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e96602383612316565b9150612ea182612e3c565b604082019050919050565b5f6020820190508181035f830152612ec381612e8a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f24602983612316565b9150612f2f82612eca565b604082019050919050565b5f6020820190508181035f830152612f5181612f18565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f8c601983612316565b9150612f9782612f58565b602082019050919050565b5f6020820190508181035f830152612fb981612f80565b9050919050565b5f612fca82612421565b9150612fd583612421565b9250828201905080821115612fed57612fec6127c7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613027601a83612316565b915061303282612ff3565b602082019050919050565b5f6020820190508181035f8301526130548161301b565b9050919050565b5f61306582612421565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613097576130966127c7565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130d6601783612316565b91506130e1826130a2565b602082019050919050565b5f6020820190508181035f830152613103816130ca565b9050919050565b5f61311482612421565b915061311f83612421565b9250828203905081811115613137576131366127c7565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61316f816123e6565b82525050565b5f6131808383613166565b60208301905092915050565b5f602082019050919050565b5f6131a28261313d565b6131ac8185613147565b93506131b783613157565b805f5b838110156131e75781516131ce8882613175565b97506131d98361318c565b9250506001810190506131ba565b5085935050505092915050565b5f60a0820190506132075f830188612503565b6132146020830187612b44565b81810360408301526132268186613198565b90506132356060830185612761565b6132426080830184612503565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61328382612421565b915061328e83612421565b92508261329e5761329d61324c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613303602183612316565b915061330e826132a9565b604082019050919050565b5f6020820190508181035f830152613330816132f7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61336b601b83612316565b915061337682613337565b602082019050919050565b5f6020820190508181035f8301526133988161335f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220176e62ef0fe56c80782dc4cfb0309f5c43494d6013b08f41b5e7f269d27d33fe64736f6c63430008170033

Deployed Bytecode

0x608060405260043610610143575f3560e01c8063715018a6116100b5578063a9059cbb1161006e578063a9059cbb14610420578063bf474bed1461045c578063c9567bf914610486578063d34628cc1461049c578063dd62ed3e146104c4578063f4293890146105005761014a565b8063715018a61461034c578063751039fc146103625780637d1db4a5146103785780638da5cb5b146103a25780638f9a55c0146103cc57806395d89b41146103f65761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c57806331c2d847146102965780633bbac579146102be57806351bc3c85146102fa57806370a08231146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630b78f9c0146101b45780630faee56f146101dc57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b50610162610516565b60405161016f9190612396565b60405180910390f35b348015610183575f80fd5b5061019e60048036038101906101999190612454565b610553565b6040516101ab91906124ac565b60405180910390f35b3480156101bf575f80fd5b506101da60048036038101906101d591906124c5565b610570565b005b3480156101e7575f80fd5b506101f0610582565b6040516101fd9190612512565b60405180910390f35b348015610211575f80fd5b5061021a610588565b6040516102279190612512565b60405180910390f35b34801561023b575f80fd5b506102566004803603810190610251919061252b565b6105ac565b60405161026391906124ac565b60405180910390f35b348015610277575f80fd5b50610280610680565b60405161028d9190612596565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b791906126ef565b610688565b005b3480156102c9575f80fd5b506102e460048036038101906102df9190612736565b6107a6565b6040516102f191906124ac565b60405180910390f35b348015610305575f80fd5b5061030e6107f8565b005b34801561031b575f80fd5b5061033660048036038101906103319190612736565b61088f565b6040516103439190612512565b60405180910390f35b348015610357575f80fd5b506103606108d5565b005b34801561036d575f80fd5b50610376610a23565b005b348015610383575f80fd5b5061038c610b55565b6040516103999190612512565b60405180910390f35b3480156103ad575f80fd5b506103b6610b5b565b6040516103c39190612770565b60405180910390f35b3480156103d7575f80fd5b506103e0610b82565b6040516103ed9190612512565b60405180910390f35b348015610401575f80fd5b5061040a610b88565b6040516104179190612396565b60405180910390f35b34801561042b575f80fd5b5061044660048036038101906104419190612454565b610bc5565b60405161045391906124ac565b60405180910390f35b348015610467575f80fd5b50610470610be2565b60405161047d9190612512565b60405180910390f35b348015610491575f80fd5b5061049a610be8565b005b3480156104a7575f80fd5b506104c260048036038101906104bd91906126ef565b61110b565b005b3480156104cf575f80fd5b506104ea60048036038101906104e59190612789565b61122a565b6040516104f79190612512565b60405180910390f35b34801561050b575f80fd5b506105146112ac565b005b60606040518060400160405280600d81526020017f456c6f6e20546865204865726f00000000000000000000000000000000000000815250905090565b5f61056661055f611324565b848461132b565b6001905092915050565b81600881905550806009819055505050565b60115481565b5f6009600a6105979190612923565b641010b872006105a7919061296d565b905090565b5f6105b88484846114ee565b610675846105c4611324565b610670856040518060600160405280602881526020016133a06028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610627611324565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611df89092919063ffffffff16565b61132b565b600190509392505050565b5f6009905090565b610690611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461071c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610713906129f8565b60405180910390fd5b5f5b81518110156107a2575f60045f84848151811061073e5761073d612a16565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061071e565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610838611324565b73ffffffffffffffffffffffffffffffffffffffff1614610857575f80fd5b5f6108613061088f565b90505f8111156108755761087481611e5a565b5b5f4790505f81111561088b5761088a816120c5565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108dd611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610969576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610960906129f8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a2b611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ab7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aae906129f8565b60405180910390fd5b6009600a610ac59190612923565b641010b87200610ad5919061296d565b600e819055506009600a610ae99190612923565b641010b87200610af9919061296d565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b2e9190612923565b641010b87200610b3e919061296d565b604051610b4b9190612512565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f4554480000000000000000000000000000000000000000000000000000000000815250905090565b5f610bd8610bd1611324565b84846114ee565b6001905092915050565b60105481565b610bf0611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c73906129f8565b60405180910390fd5b601360149054906101000a900460ff1615610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc390612a8d565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d693060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d549190612923565b641010b87200610d64919061296d565b61132b565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610df79190612abf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e7d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ea19190612abf565b6040518363ffffffff1660e01b8152600401610ebe929190612aea565b6020604051808303815f875af1158015610eda573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610efe9190612abf565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f853061088f565b5f80610f8f610b5b565b426040518863ffffffff1660e01b8152600401610fb196959493929190612b53565b60606040518083038185885af1158015610fcd573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ff29190612bc6565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611092929190612c16565b6020604051808303815f875af11580156110ae573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110d29190612c67565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b611113611324565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611196906129f8565b60405180910390fd5b5f5b815181101561122657600160045f8484815181106111c2576111c1612a16565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506111a1565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112ec611324565b73ffffffffffffffffffffffffffffffffffffffff161461130b575f80fd5b5f4790505f81111561132157611320816120c5565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611399576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139090612d02565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90612d90565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114e19190612512565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361155c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155390612e1e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c190612eac565b60405180910390fd5b5f811161160c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160390612f3a565b60405180910390fd5b5f611615610b5b565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116835750611653610b5b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b485760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611726575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61172e575f80fd5b61176a606461175c600a54600d54116117495760065461174d565b6008545b8561212d90919063ffffffff16565b6121a490919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611815575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611868575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561192257600e548211156118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a990612fa2565b60405180910390fd5b600f54826118bf8561088f565b6118c99190612fc0565b111561190a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119019061303d565b60405180910390fd5b600d5f81548092919061191c9061305b565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119aa57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119ee576119eb60646119dd600b54600d54116119ca576007546119ce565b6009545b8561212d90919063ffffffff16565b6121a490919063ffffffff16565b90505b5f6119f83061088f565b9050601360159054906101000a900460ff16158015611a63575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a7b5750601360169054906101000a900460ff165b8015611a88575060105481115b8015611a975750600c54600d54115b15611b4657601554431115611aae575f6014819055505b600360145410611af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aea906130ec565b60405180910390fd5b611b10611b0b84611b06846011546121ed565b6121ed565b611e5a565b5f4790505f811115611b2657611b25476120c5565b5b60145f815480929190611b389061305b565b919050555043601581905550505b505b5f811115611c4757611ba08160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c3e9190612512565b60405180910390a35b611c978260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461226290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d3a611cee828461226290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ddd848661226290919063ffffffff16565b604051611dea9190612512565b60405180910390a350505050565b5f838311158290611e3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e369190612396565b60405180910390fd5b505f8385611e4d919061310a565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e9157611e906125b3565b5b604051908082528060200260200182016040528015611ebf5781602001602082028036833780820191505090505b50905030815f81518110611ed657611ed5612a16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f7a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f9e9190612abf565b81600181518110611fb257611fb1612a16565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120183060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461132b565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161207a9594939291906131f4565b5f604051808303815f87803b158015612091575f80fd5b505af11580156120a3573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612129573d5f803e3d5ffd5b5050565b5f80830361213d575f905061219e565b5f828461214a919061296d565b90508284826121599190613279565b14612199576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219090613319565b60405180910390fd5b809150505b92915050565b5f6121e583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ab565b905092915050565b5f8183116121fb57826121fd565b815b905092915050565b5f8082846122139190612fc0565b905083811015612258576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224f90613381565b60405180910390fd5b8091505092915050565b5f6122a383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611df8565b905092915050565b5f80831182906122f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e89190612396565b60405180910390fd5b505f83856122ff9190613279565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612343578082015181840152602081019050612328565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123688261230c565b6123728185612316565b9350612382818560208601612326565b61238b8161234e565b840191505092915050565b5f6020820190508181035f8301526123ae818461235e565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123f0826123c7565b9050919050565b612400816123e6565b811461240a575f80fd5b50565b5f8135905061241b816123f7565b92915050565b5f819050919050565b61243381612421565b811461243d575f80fd5b50565b5f8135905061244e8161242a565b92915050565b5f806040838503121561246a576124696123bf565b5b5f6124778582860161240d565b925050602061248885828601612440565b9150509250929050565b5f8115159050919050565b6124a681612492565b82525050565b5f6020820190506124bf5f83018461249d565b92915050565b5f80604083850312156124db576124da6123bf565b5b5f6124e885828601612440565b92505060206124f985828601612440565b9150509250929050565b61250c81612421565b82525050565b5f6020820190506125255f830184612503565b92915050565b5f805f60608486031215612542576125416123bf565b5b5f61254f8682870161240d565b93505060206125608682870161240d565b925050604061257186828701612440565b9150509250925092565b5f60ff82169050919050565b6125908161257b565b82525050565b5f6020820190506125a95f830184612587565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6125e98261234e565b810181811067ffffffffffffffff82111715612608576126076125b3565b5b80604052505050565b5f61261a6123b6565b905061262682826125e0565b919050565b5f67ffffffffffffffff821115612645576126446125b3565b5b602082029050602081019050919050565b5f80fd5b5f61266c6126678461262b565b612611565b9050808382526020820190506020840283018581111561268f5761268e612656565b5b835b818110156126b857806126a4888261240d565b845260208401935050602081019050612691565b5050509392505050565b5f82601f8301126126d6576126d56125af565b5b81356126e684826020860161265a565b91505092915050565b5f60208284031215612704576127036123bf565b5b5f82013567ffffffffffffffff811115612721576127206123c3565b5b61272d848285016126c2565b91505092915050565b5f6020828403121561274b5761274a6123bf565b5b5f6127588482850161240d565b91505092915050565b61276a816123e6565b82525050565b5f6020820190506127835f830184612761565b92915050565b5f806040838503121561279f5761279e6123bf565b5b5f6127ac8582860161240d565b92505060206127bd8582860161240d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561284957808604811115612825576128246127c7565b5b60018516156128345780820291505b8081029050612842856127f4565b9450612809565b94509492505050565b5f82612861576001905061291c565b8161286e575f905061291c565b8160018114612884576002811461288e576128bd565b600191505061291c565b60ff8411156128a05761289f6127c7565b5b8360020a9150848211156128b7576128b66127c7565b5b5061291c565b5060208310610133831016604e8410600b84101617156128f25782820a9050838111156128ed576128ec6127c7565b5b61291c565b6128ff8484846001612800565b92509050818404811115612916576129156127c7565b5b81810290505b9392505050565b5f61292d82612421565b91506129388361257b565b92506129657fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612852565b905092915050565b5f61297782612421565b915061298283612421565b925082820261299081612421565b915082820484148315176129a7576129a66127c7565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129e2602083612316565b91506129ed826129ae565b602082019050919050565b5f6020820190508181035f830152612a0f816129d6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612a77601783612316565b9150612a8282612a43565b602082019050919050565b5f6020820190508181035f830152612aa481612a6b565b9050919050565b5f81519050612ab9816123f7565b92915050565b5f60208284031215612ad457612ad36123bf565b5b5f612ae184828501612aab565b91505092915050565b5f604082019050612afd5f830185612761565b612b0a6020830184612761565b9392505050565b5f819050919050565b5f819050919050565b5f612b3d612b38612b3384612b11565b612b1a565b612421565b9050919050565b612b4d81612b23565b82525050565b5f60c082019050612b665f830189612761565b612b736020830188612503565b612b806040830187612b44565b612b8d6060830186612b44565b612b9a6080830185612761565b612ba760a0830184612503565b979650505050505050565b5f81519050612bc08161242a565b92915050565b5f805f60608486031215612bdd57612bdc6123bf565b5b5f612bea86828701612bb2565b9350506020612bfb86828701612bb2565b9250506040612c0c86828701612bb2565b9150509250925092565b5f604082019050612c295f830185612761565b612c366020830184612503565b9392505050565b612c4681612492565b8114612c50575f80fd5b50565b5f81519050612c6181612c3d565b92915050565b5f60208284031215612c7c57612c7b6123bf565b5b5f612c8984828501612c53565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612cec602483612316565b9150612cf782612c92565b604082019050919050565b5f6020820190508181035f830152612d1981612ce0565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7a602283612316565b9150612d8582612d20565b604082019050919050565b5f6020820190508181035f830152612da781612d6e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e08602583612316565b9150612e1382612dae565b604082019050919050565b5f6020820190508181035f830152612e3581612dfc565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e96602383612316565b9150612ea182612e3c565b604082019050919050565b5f6020820190508181035f830152612ec381612e8a565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f24602983612316565b9150612f2f82612eca565b604082019050919050565b5f6020820190508181035f830152612f5181612f18565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f8c601983612316565b9150612f9782612f58565b602082019050919050565b5f6020820190508181035f830152612fb981612f80565b9050919050565b5f612fca82612421565b9150612fd583612421565b9250828201905080821115612fed57612fec6127c7565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613027601a83612316565b915061303282612ff3565b602082019050919050565b5f6020820190508181035f8301526130548161301b565b9050919050565b5f61306582612421565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613097576130966127c7565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6130d6601783612316565b91506130e1826130a2565b602082019050919050565b5f6020820190508181035f830152613103816130ca565b9050919050565b5f61311482612421565b915061311f83612421565b9250828203905081811115613137576131366127c7565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61316f816123e6565b82525050565b5f6131808383613166565b60208301905092915050565b5f602082019050919050565b5f6131a28261313d565b6131ac8185613147565b93506131b783613157565b805f5b838110156131e75781516131ce8882613175565b97506131d98361318c565b9250506001810190506131ba565b5085935050505092915050565b5f60a0820190506132075f830188612503565b6132146020830187612b44565b81810360408301526132268186613198565b90506132356060830185612761565b6132426080830184612503565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61328382612421565b915061328e83612421565b92508261329e5761329d61324c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613303602183612316565b915061330e826132a9565b604082019050919050565b5f6020820190508181035f830152613330816132f7565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61336b601b83612316565b915061337682613337565b602082019050919050565b5f6020820190508181035f8301526133988161335f565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220176e62ef0fe56c80782dc4cfb0309f5c43494d6013b08f41b5e7f269d27d33fe64736f6c63430008170033

Deployed Bytecode Sourcemap

3674:8462:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5572:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6405:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11410:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4768:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5849:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6574:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5758:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10464:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10634:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11785:348;;;;;;;;;;;;;:::i;:::-;;5952:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2755:148;;;;;;;;;;;;;:::i;:::-;;10025:159;;;;;;;;;;;;;:::i;:::-;;4576:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2541:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4639:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5663:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6079:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4703:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10725:671;;;;;;;;;;;;;:::i;:::-;;10292:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6254:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11570:209;;;;;;;;;;;;;:::i;:::-;;5572:83;5609:13;5642:5;;;;;;;;;;;;;;;;;5635:12;;5572:83;:::o;6405:161::-;6480:4;6497:39;6506:12;:10;:12::i;:::-;6520:7;6529:6;6497:8;:39::i;:::-;6554:4;6547:11;;6405:161;;;;:::o;11410:115::-;11485:4;11472:12;:17;;;;11512:5;11498:13;:19;;;;11410:115;;:::o;4768:53::-;;;;:::o;5849:95::-;5902:7;4385:1;4442:2;:13;;;;:::i;:::-;4428:11;:27;;;;:::i;:::-;5922:14;;5849:95;:::o;6574:313::-;6672:4;6689:36;6699:6;6707:9;6718:6;6689:9;:36::i;:::-;6736:121;6745:6;6753:12;:10;:12::i;:::-;6767:89;6805:6;6767:89;;;;;;;;;;;;;;;;;:11;:19;6779:6;6767:19;;;;;;;;;;;;;;;:33;6787:12;:10;:12::i;:::-;6767:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6736:8;:121::i;:::-;6875:4;6868:11;;6574:313;;;;;:::o;5758:83::-;5799:5;4385:1;5817:16;;5758:83;:::o;10464:162::-;2678:12;:10;:12::i;:::-;2668:22;;:6;;;;;;;;;;:22;;;2660:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10537:6:::1;10532:87;10553:6;:13;10549:1;:17;10532:87;;;10604:5;10586:4;:15;10591:6;10598:1;10591:9;;;;;;;;:::i;:::-;;;;;;;;10586:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10568:3;;;;;;;10532:87;;;;10464:162:::0;:::o;10634:83::-;10681:4;10702;:7;10707:1;10702:7;;;;;;;;;;;;;;;;;;;;;;;;;10695:14;;10634:83;;;:::o;11785:348::-;11849:10;;;;;;;;;;;11835:24;;:12;:10;:12::i;:::-;:24;;;11827:33;;;;;;11871:20;11892:24;11910:4;11892:9;:24::i;:::-;11871:45;;11943:1;11930:12;:14;11927:73;;;11958:30;11975:12;11958:16;:30::i;:::-;11927:73;12010:18;12029:21;12010:40;;12075:1;12064:10;:12;12061:65;;;12090:24;12103:10;12090:12;:24::i;:::-;12061:65;11816:317;;11785:348::o;5952:119::-;6018:7;6045:9;:18;6055:7;6045:18;;;;;;;;;;;;;;;;6038:25;;5952:119;;;:::o;2755:148::-;2678:12;:10;:12::i;:::-;2668:22;;:6;;;;;;;;;;:22;;;2660:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2862:1:::1;2825:40;;2846:6;::::0;::::1;;;;;;;;2825:40;;;;;;;;;;;;2893:1;2876:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2755:148::o:0;10025:159::-;2678:12;:10;:12::i;:::-;2668:22;;:6;;;;;;;;;;:22;;;2660:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4385:1:::1;4442:2;:13;;;;:::i;:::-;4428:11;:27;;;;:::i;:::-;10078:12;:22;;;;4385:1;4442:2;:13;;;;:::i;:::-;4428:11;:27;;;;:::i;:::-;10111:14;:22;;;;10149:27;4385:1;4442:2;:13;;;;:::i;:::-;4428:11;:27;;;;:::i;:::-;10149;;;;;;:::i;:::-;;;;;;;;10025:159::o:0;4576:56::-;;;;:::o;2541:79::-;2579:7;2606:6;;;;;;;;;;;2599:13;;2541:79;:::o;4639:57::-;;;;:::o;5663:87::-;5702:13;5735:7;;;;;;;;;;;;;;;;;5728:14;;5663:87;:::o;6079:167::-;6157:4;6174:42;6184:12;:10;:12::i;:::-;6198:9;6209:6;6174:9;:42::i;:::-;6234:4;6227:11;;6079:167;;;;:::o;4703:58::-;;;;:::o;10725:671::-;2678:12;:10;:12::i;:::-;2668:22;;:6;;;;;;;;;;:22;;;2660:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10789:11:::1;;;;;;;;;;;10788:12;10780:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10875:42;10838:15;;:80;;;;;;;;;;;;;;;;;;10929:58;10946:4;10961:15;;;;;;;;;;;4385:1;4442:2;:13;;;;:::i;:::-;4428:11;:27;;;;:::i;:::-;10929:8;:58::i;:::-;11032:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11014:55;;;11078:4;11085:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11014:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10998:13;;:110;;;;;;;;;;;;;;;;;;11119:15;;;;;;;;;;;:31;;;11158:21;11189:4;11195:24;11213:4;11195:9;:24::i;:::-;11220:1;11222::::0;11224:7:::1;:5;:7::i;:::-;11232:15;11119:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11266:13;;;;;;;;;;;11259:29;;;11297:15;;;;;;;;;;;11315:14;11259:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11355:4;11341:11;;:18;;;;;;;;;;;;;;;;;;11384:4;11370:11;;:18;;;;;;;;;;;;;;;;;;10725:671::o:0;10292:164::-;2678:12;:10;:12::i;:::-;2668:22;;:6;;;;;;;;;;:22;;;2660:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10366:6:::1;10361:88;10382:5;:12;10378:1;:16;10361:88;;;10433:4;10416;:14;10421:5;10427:1;10421:8;;;;;;;;:::i;:::-;;;;;;;;10416:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10396:3;;;;;;;10361:88;;;;10292:164:::0;:::o;6254:143::-;6335:7;6362:11;:18;6374:5;6362:18;;;;;;;;;;;;;;;:27;6381:7;6362:27;;;;;;;;;;;;;;;;6355:34;;6254:143;;;;:::o;11570:209::-;11634:10;;;;;;;;;;;11620:24;;:12;:10;:12::i;:::-;:24;;;11612:33;;;;;;11656:18;11675:21;11656:40;;11721:1;11710:10;:12;11707:65;;;11736:24;11749:10;11736:12;:24::i;:::-;11707:65;11601:178;11570:209::o;300:98::-;353:7;380:10;373:17;;300:98;:::o;6895:335::-;7005:1;6988:19;;:5;:19;;;6980:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7086:1;7067:21;;:7;:21;;;7059:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7168:6;7138:11;:18;7150:5;7138:18;;;;;;;;;;;;;;;:27;7157:7;7138:27;;;;;;;;;;;;;;;:36;;;;7206:7;7190:32;;7199:5;7190:32;;;7215:6;7190:32;;;;;;:::i;:::-;;;;;;;;6895:335;;;:::o;7238:2180::-;7342:1;7326:18;;:4;:18;;;7318:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7419:1;7405:16;;:2;:16;;;7397:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7489:1;7480:6;:10;7472:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7547:17;7589:7;:5;:7::i;:::-;7581:15;;:4;:15;;;;:32;;;;;7606:7;:5;:7::i;:::-;7600:13;;:2;:13;;;;7581:32;7577:1485;;;7639:4;:10;7644:4;7639:10;;;;;;;;;;;;;;;;;;;;;;;;;7638:11;:24;;;;;7654:4;:8;7659:2;7654:8;;;;;;;;;;;;;;;;;;;;;;;;;7653:9;7638:24;7630:33;;;;;;7690:76;7762:3;7690:67;7712:15;;7702:9;;:25;7701:55;;7742:14;;7701:55;;;7729:12;;7701:55;7690:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7678:88;;7795:13;;;;;;;;;;;7787:21;;:4;:21;;;:55;;;;;7826:15;;;;;;;;;;;7812:30;;:2;:30;;;;7787:55;:83;;;;;7848:18;:22;7867:2;7848:22;;;;;;;;;;;;;;;;;;;;;;;;;7846:24;7787:83;7783:313;;;7910:12;;7900:6;:22;;7892:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8005:14;;7995:6;7979:13;7989:2;7979:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7971:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8069:9;;:11;;;;;;;;;:::i;:::-;;;;;;7783:313;8121:13;;;;;;;;;;;8115:19;;:2;:19;;;:43;;;;;8153:4;8138:20;;:4;:20;;;;8115:43;8112:174;;;8191:79;8266:3;8191:70;8213:16;;8203:9;;:26;8202:58;;8245:15;;8202:58;;;8231:13;;8202:58;8191:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8179:91;;8112:174;8302:28;8333:24;8351:4;8333:9;:24::i;:::-;8302:55;;8377:6;;;;;;;;;;;8376:7;:30;;;;;8393:13;;;;;;;;;;;8387:19;;:2;:19;;;8376:30;:45;;;;;8410:11;;;;;;;;;;;8376:45;:89;;;;;8448:17;;8425:20;:40;8376:89;:123;;;;;8481:18;;8469:9;;:30;8376:123;8372:679;;;8539:13;;8524:12;:28;8520:90;;;8589:1;8577:9;:13;;;;8520:90;8648:1;8636:9;;:13;8628:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8696:69;8713:51;8717:6;8725:38;8729:20;8751:11;;8725:3;:38::i;:::-;8713:3;:51::i;:::-;8696:16;:69::i;:::-;8784:26;8813:21;8784:50;;8878:1;8857:18;:22;8853:106;;;8904:35;8917:21;8904:12;:35::i;:::-;8853:106;8977:9;;:11;;;;;;;;;:::i;:::-;;;;;;9023:12;9007:13;:28;;;;8501:550;8372:679;7615:1447;7577:1485;9087:1;9077:9;:11;9074:161;;;9127:39;9156:9;9127;:24;9145:4;9127:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9102:9;:24;9120:4;9102:24;;;;;;;;;;;;;;;:64;;;;9207:4;9184:39;;9193:4;9184:39;;;9213:9;9184:39;;;;;;:::i;:::-;;;;;;;;9074:161;9261:27;9281:6;9261:9;:15;9271:4;9261:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9245:9;:15;9255:4;9245:15;;;;;;;;;;;;;;;:43;;;;9313:40;9331:21;9342:9;9331:6;:10;;:21;;;;:::i;:::-;9313:9;:13;9323:2;9313:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9299:9;:13;9309:2;9299:13;;;;;;;;;;;;;;;:54;;;;9384:2;9369:41;;9378:4;9369:41;;;9388:21;9399:9;9388:6;:10;;:21;;;;:::i;:::-;9369:41;;;;;;:::i;:::-;;;;;;;;7307:2111;7238:2180;;;:::o;1433:190::-;1519:7;1552:1;1547;:6;;1555:12;1539:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1579:9;1595:1;1591;:5;;;;:::i;:::-;1579:17;;1614:1;1607:8;;;1433:190;;;;;:::o;9534:483::-;5190:4;5181:6;;:13;;;;;;;;;;;;;;;;;;9612:21:::1;9650:1;9636:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9612:40;;9681:4;9663;9668:1;9663:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9707:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9697:4;9702:1;9697:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9740:62;9757:4;9772:15;;;;;;;;;;;9790:11;9740:8;:62::i;:::-;9813:15;;;;;;;;;;;:66;;;9894:11;9920:1;9936:4;9963;9983:15;9813:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9601:416;5226:5:::0;5217:6;;:14;;;;;;;;;;;;;;;;;;9534:483;:::o;10192:92::-;10249:10;;;;;;;;;;;:19;;:27;10269:6;10249:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10192:92;:::o;1631:246::-;1689:7;1718:1;1713;:6;1709:47;;1743:1;1736:8;;;;1709:47;1766:9;1782:1;1778;:5;;;;:::i;:::-;1766:17;;1811:1;1806;1802;:5;;;;:::i;:::-;:10;1794:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1868:1;1861:8;;;1631:246;;;;;:::o;1885:132::-;1943:7;1970:39;1974:1;1977;1970:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1963:46;;1885:132;;;;:::o;9428:98::-;9485:7;9512:1;9510;:3;9509:9;;9517:1;9509:9;;;9515:1;9509:9;9502:16;;9428:98;;;;:::o;1102:179::-;1160:7;1180:9;1196:1;1192;:5;;;;:::i;:::-;1180:17;;1221:1;1216;:6;;1208:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1272:1;1265:8;;;1102:179;;;;:::o;1289:136::-;1347:7;1374:43;1378:1;1381;1374:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1367:50;;1289:136;;;;:::o;2025:189::-;2111:7;2143:1;2139;:5;2146:12;2131:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2170:9;2186:1;2182;:5;;;;:::i;:::-;2170:17;;2205:1;2198:8;;;2025:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:117::-;5442:1;5439;5432:12;5456:180;5504:77;5501:1;5494:88;5601:4;5598:1;5591:15;5625:4;5622:1;5615:15;5642:281;5725:27;5747:4;5725:27;:::i;:::-;5717:6;5713:40;5855:6;5843:10;5840:22;5819:18;5807:10;5804:34;5801:62;5798:88;;;5866:18;;:::i;:::-;5798:88;5906:10;5902:2;5895:22;5685:238;5642:281;;:::o;5929:129::-;5963:6;5990:20;;:::i;:::-;5980:30;;6019:33;6047:4;6039:6;6019:33;:::i;:::-;5929:129;;;:::o;6064:311::-;6141:4;6231:18;6223:6;6220:30;6217:56;;;6253:18;;:::i;:::-;6217:56;6303:4;6295:6;6291:17;6283:25;;6363:4;6357;6353:15;6345:23;;6064:311;;;:::o;6381:117::-;6490:1;6487;6480:12;6521:710;6617:5;6642:81;6658:64;6715:6;6658:64;:::i;:::-;6642:81;:::i;:::-;6633:90;;6743:5;6772:6;6765:5;6758:21;6806:4;6799:5;6795:16;6788:23;;6859:4;6851:6;6847:17;6839:6;6835:30;6888:3;6880:6;6877:15;6874:122;;;6907:79;;:::i;:::-;6874:122;7022:6;7005:220;7039:6;7034:3;7031:15;7005:220;;;7114:3;7143:37;7176:3;7164:10;7143:37;:::i;:::-;7138:3;7131:50;7210:4;7205:3;7201:14;7194:21;;7081:144;7065:4;7060:3;7056:14;7049:21;;7005:220;;;7009:21;6623:608;;6521:710;;;;;:::o;7254:370::-;7325:5;7374:3;7367:4;7359:6;7355:17;7351:27;7341:122;;7382:79;;:::i;:::-;7341:122;7499:6;7486:20;7524:94;7614:3;7606:6;7599:4;7591:6;7587:17;7524:94;:::i;:::-;7515:103;;7331:293;7254:370;;;;:::o;7630:539::-;7714:6;7763:2;7751:9;7742:7;7738:23;7734:32;7731:119;;;7769:79;;:::i;:::-;7731:119;7917:1;7906:9;7902:17;7889:31;7947:18;7939:6;7936:30;7933:117;;;7969:79;;:::i;:::-;7933:117;8074:78;8144:7;8135:6;8124:9;8120:22;8074:78;:::i;:::-;8064:88;;7860:302;7630:539;;;;:::o;8175:329::-;8234:6;8283:2;8271:9;8262:7;8258:23;8254:32;8251:119;;;8289:79;;:::i;:::-;8251:119;8409:1;8434:53;8479:7;8470:6;8459:9;8455:22;8434:53;:::i;:::-;8424:63;;8380:117;8175:329;;;;:::o;8510:118::-;8597:24;8615:5;8597:24;:::i;:::-;8592:3;8585:37;8510:118;;:::o;8634:222::-;8727:4;8765:2;8754:9;8750:18;8742:26;;8778:71;8846:1;8835:9;8831:17;8822:6;8778:71;:::i;:::-;8634:222;;;;:::o;8862:474::-;8930:6;8938;8987:2;8975:9;8966:7;8962:23;8958:32;8955:119;;;8993:79;;:::i;:::-;8955:119;9113:1;9138:53;9183:7;9174:6;9163:9;9159:22;9138:53;:::i;:::-;9128:63;;9084:117;9240:2;9266:53;9311:7;9302:6;9291:9;9287:22;9266:53;:::i;:::-;9256:63;;9211:118;8862:474;;;;;:::o;9342:180::-;9390:77;9387:1;9380:88;9487:4;9484:1;9477:15;9511:4;9508:1;9501:15;9528:102;9570:8;9617:5;9614:1;9610:13;9589:34;;9528:102;;;:::o;9636:848::-;9697:5;9704:4;9728:6;9719:15;;9752:5;9743:14;;9766:712;9787:1;9777:8;9774:15;9766:712;;;9882:4;9877:3;9873:14;9867:4;9864:24;9861:50;;;9891:18;;:::i;:::-;9861:50;9941:1;9931:8;9927:16;9924:451;;;10356:4;10349:5;10345:16;10336:25;;9924:451;10406:4;10400;10396:15;10388:23;;10436:32;10459:8;10436:32;:::i;:::-;10424:44;;9766:712;;;9636:848;;;;;;;:::o;10490:1073::-;10544:5;10735:8;10725:40;;10756:1;10747:10;;10758:5;;10725:40;10784:4;10774:36;;10801:1;10792:10;;10803:5;;10774:36;10870:4;10918:1;10913:27;;;;10954:1;10949:191;;;;10863:277;;10913:27;10931:1;10922:10;;10933:5;;;10949:191;10994:3;10984:8;10981:17;10978:43;;;11001:18;;:::i;:::-;10978:43;11050:8;11047:1;11043:16;11034:25;;11085:3;11078:5;11075:14;11072:40;;;11092:18;;:::i;:::-;11072:40;11125:5;;;10863:277;;11249:2;11239:8;11236:16;11230:3;11224:4;11221:13;11217:36;11199:2;11189:8;11186:16;11181:2;11175:4;11172:12;11168:35;11152:111;11149:246;;;11305:8;11299:4;11295:19;11286:28;;11340:3;11333:5;11330:14;11327:40;;;11347:18;;:::i;:::-;11327:40;11380:5;;11149:246;11420:42;11458:3;11448:8;11442:4;11439:1;11420:42;:::i;:::-;11405:57;;;;11494:4;11489:3;11485:14;11478:5;11475:25;11472:51;;;11503:18;;:::i;:::-;11472:51;11552:4;11545:5;11541:16;11532:25;;10490:1073;;;;;;:::o;11569:281::-;11627:5;11651:23;11669:4;11651:23;:::i;:::-;11643:31;;11695:25;11711:8;11695:25;:::i;:::-;11683:37;;11739:104;11776:66;11766:8;11760:4;11739:104;:::i;:::-;11730:113;;11569:281;;;;:::o;11856:410::-;11896:7;11919:20;11937:1;11919:20;:::i;:::-;11914:25;;11953:20;11971:1;11953:20;:::i;:::-;11948:25;;12008:1;12005;12001:9;12030:30;12048:11;12030:30;:::i;:::-;12019:41;;12209:1;12200:7;12196:15;12193:1;12190:22;12170:1;12163:9;12143:83;12120:139;;12239:18;;:::i;:::-;12120:139;11904:362;11856:410;;;;:::o;12272:182::-;12412:34;12408:1;12400:6;12396:14;12389:58;12272:182;:::o;12460:366::-;12602:3;12623:67;12687:2;12682:3;12623:67;:::i;:::-;12616:74;;12699:93;12788:3;12699:93;:::i;:::-;12817:2;12812:3;12808:12;12801:19;;12460:366;;;:::o;12832:419::-;12998:4;13036:2;13025:9;13021:18;13013:26;;13085:9;13079:4;13075:20;13071:1;13060:9;13056:17;13049:47;13113:131;13239:4;13113:131;:::i;:::-;13105:139;;12832:419;;;:::o;13257:180::-;13305:77;13302:1;13295:88;13402:4;13399:1;13392:15;13426:4;13423:1;13416:15;13443:173;13583:25;13579:1;13571:6;13567:14;13560:49;13443:173;:::o;13622:366::-;13764:3;13785:67;13849:2;13844:3;13785:67;:::i;:::-;13778:74;;13861:93;13950:3;13861:93;:::i;:::-;13979:2;13974:3;13970:12;13963:19;;13622:366;;;:::o;13994:419::-;14160:4;14198:2;14187:9;14183:18;14175:26;;14247:9;14241:4;14237:20;14233:1;14222:9;14218:17;14211:47;14275:131;14401:4;14275:131;:::i;:::-;14267:139;;13994:419;;;:::o;14419:143::-;14476:5;14507:6;14501:13;14492:22;;14523:33;14550:5;14523:33;:::i;:::-;14419:143;;;;:::o;14568:351::-;14638:6;14687:2;14675:9;14666:7;14662:23;14658:32;14655:119;;;14693:79;;:::i;:::-;14655:119;14813:1;14838:64;14894:7;14885:6;14874:9;14870:22;14838:64;:::i;:::-;14828:74;;14784:128;14568:351;;;;:::o;14925:332::-;15046:4;15084:2;15073:9;15069:18;15061:26;;15097:71;15165:1;15154:9;15150:17;15141:6;15097:71;:::i;:::-;15178:72;15246:2;15235:9;15231:18;15222:6;15178:72;:::i;:::-;14925:332;;;;;:::o;15263:85::-;15308:7;15337:5;15326:16;;15263:85;;;:::o;15354:60::-;15382:3;15403:5;15396:12;;15354:60;;;:::o;15420:158::-;15478:9;15511:61;15529:42;15538:32;15564:5;15538:32;:::i;:::-;15529:42;:::i;:::-;15511:61;:::i;:::-;15498:74;;15420:158;;;:::o;15584:147::-;15679:45;15718:5;15679:45;:::i;:::-;15674:3;15667:58;15584:147;;:::o;15737:807::-;15986:4;16024:3;16013:9;16009:19;16001:27;;16038:71;16106:1;16095:9;16091:17;16082:6;16038:71;:::i;:::-;16119:72;16187:2;16176:9;16172:18;16163:6;16119:72;:::i;:::-;16201:80;16277:2;16266:9;16262:18;16253:6;16201:80;:::i;:::-;16291;16367:2;16356:9;16352:18;16343:6;16291:80;:::i;:::-;16381:73;16449:3;16438:9;16434:19;16425:6;16381:73;:::i;:::-;16464;16532:3;16521:9;16517:19;16508:6;16464:73;:::i;:::-;15737:807;;;;;;;;;:::o;16550:143::-;16607:5;16638:6;16632:13;16623:22;;16654:33;16681:5;16654:33;:::i;:::-;16550:143;;;;:::o;16699:663::-;16787:6;16795;16803;16852:2;16840:9;16831:7;16827:23;16823:32;16820:119;;;16858:79;;:::i;:::-;16820:119;16978:1;17003:64;17059:7;17050:6;17039:9;17035:22;17003:64;:::i;:::-;16993:74;;16949:128;17116:2;17142:64;17198:7;17189:6;17178:9;17174:22;17142:64;:::i;:::-;17132:74;;17087:129;17255:2;17281:64;17337:7;17328:6;17317:9;17313:22;17281:64;:::i;:::-;17271:74;;17226:129;16699:663;;;;;:::o;17368:332::-;17489:4;17527:2;17516:9;17512:18;17504:26;;17540:71;17608:1;17597:9;17593:17;17584:6;17540:71;:::i;:::-;17621:72;17689:2;17678:9;17674:18;17665:6;17621:72;:::i;:::-;17368:332;;;;;:::o;17706:116::-;17776:21;17791:5;17776:21;:::i;:::-;17769:5;17766:32;17756:60;;17812:1;17809;17802:12;17756:60;17706:116;:::o;17828:137::-;17882:5;17913:6;17907:13;17898:22;;17929:30;17953:5;17929:30;:::i;:::-;17828:137;;;;:::o;17971:345::-;18038:6;18087:2;18075:9;18066:7;18062:23;18058:32;18055:119;;;18093:79;;:::i;:::-;18055:119;18213:1;18238:61;18291:7;18282:6;18271:9;18267:22;18238:61;:::i;:::-;18228:71;;18184:125;17971:345;;;;:::o;18322:223::-;18462:34;18458:1;18450:6;18446:14;18439:58;18531:6;18526:2;18518:6;18514:15;18507:31;18322:223;:::o;18551:366::-;18693:3;18714:67;18778:2;18773:3;18714:67;:::i;:::-;18707:74;;18790:93;18879:3;18790:93;:::i;:::-;18908:2;18903:3;18899:12;18892:19;;18551:366;;;:::o;18923:419::-;19089:4;19127:2;19116:9;19112:18;19104:26;;19176:9;19170:4;19166:20;19162:1;19151:9;19147:17;19140:47;19204:131;19330:4;19204:131;:::i;:::-;19196:139;;18923:419;;;:::o;19348:221::-;19488:34;19484:1;19476:6;19472:14;19465:58;19557:4;19552:2;19544:6;19540:15;19533:29;19348:221;:::o;19575:366::-;19717:3;19738:67;19802:2;19797:3;19738:67;:::i;:::-;19731:74;;19814:93;19903:3;19814:93;:::i;:::-;19932:2;19927:3;19923:12;19916:19;;19575:366;;;:::o;19947:419::-;20113:4;20151:2;20140:9;20136:18;20128:26;;20200:9;20194:4;20190:20;20186:1;20175:9;20171:17;20164:47;20228:131;20354:4;20228:131;:::i;:::-;20220:139;;19947:419;;;:::o;20372:224::-;20512:34;20508:1;20500:6;20496:14;20489:58;20581:7;20576:2;20568:6;20564:15;20557:32;20372:224;:::o;20602:366::-;20744:3;20765:67;20829:2;20824:3;20765:67;:::i;:::-;20758:74;;20841:93;20930:3;20841:93;:::i;:::-;20959:2;20954:3;20950:12;20943:19;;20602:366;;;:::o;20974:419::-;21140:4;21178:2;21167:9;21163:18;21155:26;;21227:9;21221:4;21217:20;21213:1;21202:9;21198:17;21191:47;21255:131;21381:4;21255:131;:::i;:::-;21247:139;;20974:419;;;:::o;21399:222::-;21539:34;21535:1;21527:6;21523:14;21516:58;21608:5;21603:2;21595:6;21591:15;21584:30;21399:222;:::o;21627:366::-;21769:3;21790:67;21854:2;21849:3;21790:67;:::i;:::-;21783:74;;21866:93;21955:3;21866:93;:::i;:::-;21984:2;21979:3;21975:12;21968:19;;21627:366;;;:::o;21999:419::-;22165:4;22203:2;22192:9;22188:18;22180:26;;22252:9;22246:4;22242:20;22238:1;22227:9;22223:17;22216:47;22280:131;22406:4;22280:131;:::i;:::-;22272:139;;21999:419;;;:::o;22424:228::-;22564:34;22560:1;22552:6;22548:14;22541:58;22633:11;22628:2;22620:6;22616:15;22609:36;22424:228;:::o;22658:366::-;22800:3;22821:67;22885:2;22880:3;22821:67;:::i;:::-;22814:74;;22897:93;22986:3;22897:93;:::i;:::-;23015:2;23010:3;23006:12;22999:19;;22658:366;;;:::o;23030:419::-;23196:4;23234:2;23223:9;23219:18;23211:26;;23283:9;23277:4;23273:20;23269:1;23258:9;23254:17;23247:47;23311:131;23437:4;23311:131;:::i;:::-;23303:139;;23030:419;;;:::o;23455:175::-;23595:27;23591:1;23583:6;23579:14;23572:51;23455:175;:::o;23636:366::-;23778:3;23799:67;23863:2;23858:3;23799:67;:::i;:::-;23792:74;;23875:93;23964:3;23875:93;:::i;:::-;23993:2;23988:3;23984:12;23977:19;;23636:366;;;:::o;24008:419::-;24174:4;24212:2;24201:9;24197:18;24189:26;;24261:9;24255:4;24251:20;24247:1;24236:9;24232:17;24225:47;24289:131;24415:4;24289:131;:::i;:::-;24281:139;;24008:419;;;:::o;24433:191::-;24473:3;24492:20;24510:1;24492:20;:::i;:::-;24487:25;;24526:20;24544:1;24526:20;:::i;:::-;24521:25;;24569:1;24566;24562:9;24555:16;;24590:3;24587:1;24584:10;24581:36;;;24597:18;;:::i;:::-;24581:36;24433:191;;;;:::o;24630:176::-;24770:28;24766:1;24758:6;24754:14;24747:52;24630:176;:::o;24812:366::-;24954:3;24975:67;25039:2;25034:3;24975:67;:::i;:::-;24968:74;;25051:93;25140:3;25051:93;:::i;:::-;25169:2;25164:3;25160:12;25153:19;;24812:366;;;:::o;25184:419::-;25350:4;25388:2;25377:9;25373:18;25365:26;;25437:9;25431:4;25427:20;25423:1;25412:9;25408:17;25401:47;25465:131;25591:4;25465:131;:::i;:::-;25457:139;;25184:419;;;:::o;25609:233::-;25648:3;25671:24;25689:5;25671:24;:::i;:::-;25662:33;;25717:66;25710:5;25707:77;25704:103;;25787:18;;:::i;:::-;25704:103;25834:1;25827:5;25823:13;25816:20;;25609:233;;;:::o;25848:173::-;25988:25;25984:1;25976:6;25972:14;25965:49;25848:173;:::o;26027:366::-;26169:3;26190:67;26254:2;26249:3;26190:67;:::i;:::-;26183:74;;26266:93;26355:3;26266:93;:::i;:::-;26384:2;26379:3;26375:12;26368:19;;26027:366;;;:::o;26399:419::-;26565:4;26603:2;26592:9;26588:18;26580:26;;26652:9;26646:4;26642:20;26638:1;26627:9;26623:17;26616:47;26680:131;26806:4;26680:131;:::i;:::-;26672:139;;26399:419;;;:::o;26824:194::-;26864:4;26884:20;26902:1;26884:20;:::i;:::-;26879:25;;26918:20;26936:1;26918:20;:::i;:::-;26913:25;;26962:1;26959;26955:9;26947:17;;26986:1;26980:4;26977:11;26974:37;;;26991:18;;:::i;:::-;26974:37;26824:194;;;;:::o;27024:114::-;27091:6;27125:5;27119:12;27109:22;;27024:114;;;:::o;27144:184::-;27243:11;27277:6;27272:3;27265:19;27317:4;27312:3;27308:14;27293:29;;27144:184;;;;:::o;27334:132::-;27401:4;27424:3;27416:11;;27454:4;27449:3;27445:14;27437:22;;27334:132;;;:::o;27472:108::-;27549:24;27567:5;27549:24;:::i;:::-;27544:3;27537:37;27472:108;;:::o;27586:179::-;27655:10;27676:46;27718:3;27710:6;27676:46;:::i;:::-;27754:4;27749:3;27745:14;27731:28;;27586:179;;;;:::o;27771:113::-;27841:4;27873;27868:3;27864:14;27856:22;;27771:113;;;:::o;27920:732::-;28039:3;28068:54;28116:5;28068:54;:::i;:::-;28138:86;28217:6;28212:3;28138:86;:::i;:::-;28131:93;;28248:56;28298:5;28248:56;:::i;:::-;28327:7;28358:1;28343:284;28368:6;28365:1;28362:13;28343:284;;;28444:6;28438:13;28471:63;28530:3;28515:13;28471:63;:::i;:::-;28464:70;;28557:60;28610:6;28557:60;:::i;:::-;28547:70;;28403:224;28390:1;28387;28383:9;28378:14;;28343:284;;;28347:14;28643:3;28636:10;;28044:608;;;27920:732;;;;:::o;28658:831::-;28921:4;28959:3;28948:9;28944:19;28936:27;;28973:71;29041:1;29030:9;29026:17;29017:6;28973:71;:::i;:::-;29054:80;29130:2;29119:9;29115:18;29106:6;29054:80;:::i;:::-;29181:9;29175:4;29171:20;29166:2;29155:9;29151:18;29144:48;29209:108;29312:4;29303:6;29209:108;:::i;:::-;29201:116;;29327:72;29395:2;29384:9;29380:18;29371:6;29327:72;:::i;:::-;29409:73;29477:3;29466:9;29462:19;29453:6;29409:73;:::i;:::-;28658:831;;;;;;;;:::o;29495:180::-;29543:77;29540:1;29533:88;29640:4;29637:1;29630:15;29664:4;29661:1;29654:15;29681:185;29721:1;29738:20;29756:1;29738:20;:::i;:::-;29733:25;;29772:20;29790:1;29772:20;:::i;:::-;29767:25;;29811:1;29801:35;;29816:18;;:::i;:::-;29801:35;29858:1;29855;29851:9;29846:14;;29681:185;;;;:::o;29872:220::-;30012:34;30008:1;30000:6;29996:14;29989:58;30081:3;30076:2;30068:6;30064:15;30057:28;29872:220;:::o;30098:366::-;30240:3;30261:67;30325:2;30320:3;30261:67;:::i;:::-;30254:74;;30337:93;30426:3;30337:93;:::i;:::-;30455:2;30450:3;30446:12;30439:19;;30098:366;;;:::o;30470:419::-;30636:4;30674:2;30663:9;30659:18;30651:26;;30723:9;30717:4;30713:20;30709:1;30698:9;30694:17;30687:47;30751:131;30877:4;30751:131;:::i;:::-;30743:139;;30470:419;;;:::o;30895:177::-;31035:29;31031:1;31023:6;31019:14;31012:53;30895:177;:::o;31078:366::-;31220:3;31241:67;31305:2;31300:3;31241:67;:::i;:::-;31234:74;;31317:93;31406:3;31317:93;:::i;:::-;31435:2;31430:3;31426:12;31419:19;;31078:366;;;:::o;31450:419::-;31616:4;31654:2;31643:9;31639:18;31631:26;;31703:9;31697:4;31693:20;31689:1;31678:9;31674:17;31667:47;31731:131;31857:4;31731:131;:::i;:::-;31723:139;;31450:419;;;:::o

Swarm Source

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