ETH Price: $3,349.15 (-0.22%)
 

Overview

Max Total Supply

10,000,000 $MONEY

Holders

25

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.223420647 $MONEY

Value
$0.00
0x91dFd503d04AeDcdFcAB85a8e2C3F2B47AA26B0e
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:
RedEnvelopeToken

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/**
 * Telegram: https://t.me/eth_money1
 * Website:  https://redenvelopetoken.netlify.app
 * Twitter:  https://twitter.com/Money2024Token
 */


pragma solidity 0.8.20;

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 RedEnvelopeToken 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 firstBlock;

    uint256 private _initialBuyTax=250;
    uint256 private _initialSellTax=250;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=50;
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10000000 * 10**_decimals;
    string private  _name = unicode"Red Envelope Token";
    string private _symbol = unicode"$MONEY";
    uint256 public _maxTxAmount =   200000 * 10**_decimals;
    uint256 public _maxWalletSize = 200000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public _maxTaxSwap= 100000 * 10**_decimals;
  
   

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event LiquidityLocked(uint256 unlockTime, uint256 amount);

    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 view returns (string memory) {
        return _name;
    }

    function symbol() public view 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(1000);

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

                if (firstBlock + 3  > block.number) {
                    require(!isContract(to));
                }
                _buyCount++;
            }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        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 isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    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;
        firstBlock = block.number;
    }



  


    receive() external payable {}

}

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":"unlockTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LiquidityLocked","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":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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"}]

608060405260fa60075560fa6008555f6009555f600a556019600b556032600c55601e600d555f600e556040518060400160405280601281526020017f52656420456e76656c6f706520546f6b656e0000000000000000000000000000815250600f90816200006f91906200074b565b506040518060400160405280600681526020017f244d4f4e4559000000000000000000000000000000000000000000000000000081525060109081620000b691906200074b565b506009600a620000c79190620009b8565b62030d40620000d7919062000a08565b6011556009600a620000ea9190620009b8565b62030d40620000fa919062000a08565b6012556009600a6200010d9190620009b8565b620186a06200011d919062000a08565b6013556009600a620001309190620009b8565b620186a062000140919062000a08565b6014555f601660156101000a81548160ff0219169083151502179055505f6016806101000a81548160ff02191690831515021790555034801562000182575f80fd5b505f62000194620004b960201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35062000240620004b960201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200028f9190620009b8565b629896806200029f919062000a08565b60015f620002b2620004b960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f62000304620004c060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506200042e620004b960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200048c9190620009b8565b629896806200049c919062000a08565b604051620004ab919062000a63565b60405180910390a362000a7e565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200056357607f821691505b6020821081036200057957620005786200051e565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005dd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005a0565b620005e98683620005a0565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620006336200062d620006278462000601565b6200060a565b62000601565b9050919050565b5f819050919050565b6200064e8362000613565b620006666200065d826200063a565b848454620005ac565b825550505050565b5f90565b6200067c6200066e565b6200068981848462000643565b505050565b5b81811015620006b057620006a45f8262000672565b6001810190506200068f565b5050565b601f821115620006ff57620006c9816200057f565b620006d48462000591565b81016020851015620006e4578190505b620006fc620006f38562000591565b8301826200068e565b50505b505050565b5f82821c905092915050565b5f620007215f198460080262000704565b1980831691505092915050565b5f6200073b838362000710565b9150826002028217905092915050565b6200075682620004e7565b67ffffffffffffffff811115620007725762000771620004f1565b5b6200077e82546200054b565b6200078b828285620006b4565b5f60209050601f831160018114620007c1575f8415620007ac578287015190505b620007b885826200072e565b86555062000827565b601f198416620007d1866200057f565b5f5b82811015620007fa57848901518255600182019150602085019450602081019050620007d3565b868310156200081a578489015162000816601f89168262000710565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620008b9578086048111156200089157620008906200082f565b5b6001851615620008a15780820291505b8081029050620008b1856200085c565b945062000871565b94509492505050565b5f82620008d35760019050620009a5565b81620008e2575f9050620009a5565b8160018114620008fb576002811462000906576200093c565b6001915050620009a5565b60ff8411156200091b576200091a6200082f565b5b8360020a9150848211156200093557620009346200082f565b5b50620009a5565b5060208310610133831016604e8410600b8410161715620009765782820a90508381111562000970576200096f6200082f565b5b620009a5565b62000985848484600162000868565b925090508184048111156200099f576200099e6200082f565b5b81810290505b9392505050565b5f60ff82169050919050565b5f620009c48262000601565b9150620009d183620009ac565b925062000a007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620008c2565b905092915050565b5f62000a148262000601565b915062000a218362000601565b925082820262000a318162000601565b9150828204841483151762000a4b5762000a4a6200082f565b5b5092915050565b62000a5d8162000601565b82525050565b5f60208201905062000a785f83018462000a52565b92915050565b6133938062000a8c5f395ff3fe608060405260043610610122575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb146103c1578063bf474bed146103fd578063c9567bf914610427578063d34628cc1461043d578063dd62ed3e1461046557610129565b8063751039fc146103035780637d1db4a5146103195780638da5cb5b146103435780638f9a55c01461036d57806395d89b411461039757610129565b8063313ce567116100e6578063313ce5671461022357806331c2d8471461024d5780633bbac5791461027557806370a08231146102b1578063715018a6146102ed57610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b506101416104a1565b60405161014e9190612375565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612433565b610531565b60405161018a919061248b565b60405180910390f35b34801561019e575f80fd5b506101a761054e565b6040516101b491906124b3565b60405180910390f35b3480156101c8575f80fd5b506101d1610554565b6040516101de91906124b3565b60405180910390f35b3480156101f2575f80fd5b5061020d600480360381019061020891906124cc565b610576565b60405161021a919061248b565b60405180910390f35b34801561022e575f80fd5b5061023761064a565b6040516102449190612537565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e9190612690565b610652565b005b348015610280575f80fd5b5061029b600480360381019061029691906126d7565b610776565b6040516102a8919061248b565b60405180910390f35b3480156102bc575f80fd5b506102d760048036038101906102d291906126d7565b6107c8565b6040516102e491906124b3565b60405180910390f35b3480156102f8575f80fd5b5061030161080e565b005b34801561030e575f80fd5b5061031761095c565b005b348015610324575f80fd5b5061032d610a88565b60405161033a91906124b3565b60405180910390f35b34801561034e575f80fd5b50610357610a8e565b6040516103649190612711565b60405180910390f35b348015610378575f80fd5b50610381610ab5565b60405161038e91906124b3565b60405180910390f35b3480156103a2575f80fd5b506103ab610abb565b6040516103b89190612375565b60405180910390f35b3480156103cc575f80fd5b506103e760048036038101906103e29190612433565b610b4b565b6040516103f4919061248b565b60405180910390f35b348015610408575f80fd5b50610411610b68565b60405161041e91906124b3565b60405180910390f35b348015610432575f80fd5b5061043b610b6e565b005b348015610448575f80fd5b50610463600480360381019061045e9190612690565b611095565b005b348015610470575f80fd5b5061048b6004803603810190610486919061272a565b6111ba565b60405161049891906124b3565b60405180910390f35b6060600f80546104b090612795565b80601f01602080910402602001604051908101604052809291908181526020018280546104dc90612795565b80156105275780601f106104fe57610100808354040283529160200191610527565b820191905f5260205f20905b81548152906001019060200180831161050a57829003601f168201915b5050505050905090565b5f61054461053d61123c565b8484611243565b6001905092915050565b60145481565b5f6009600a6105639190612921565b62989680610571919061296b565b905090565b5f610582848484611406565b61063f8461058e61123c565b61063a856040518060600160405280602881526020016133366028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f161123c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dc69092919063ffffffff16565b611243565b600190509392505050565b5f6009905090565b61065a61123c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd906129f6565b60405180910390fd5b5f5b8151811015610772575f60045f84848151811061070857610707612a14565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061076a90612a41565b9150506106e8565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61081661123c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610899906129f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61096461123c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e7906129f6565b60405180910390fd5b6009600a6109fe9190612921565b62989680610a0c919061296b565b6011819055506009600a610a209190612921565b62989680610a2e919061296b565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a639190612921565b62989680610a71919061296b565b604051610a7e91906124b3565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b606060108054610aca90612795565b80601f0160208091040260200160405190810160405280929190818152602001828054610af690612795565b8015610b415780601f10610b1857610100808354040283529160200191610b41565b820191905f5260205f20905b815481529060010190602001808311610b2457829003601f168201915b5050505050905090565b5f610b5e610b5761123c565b8484611406565b6001905092915050565b60135481565b610b7661123c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906129f6565b60405180910390fd5b601660149054906101000a900460ff1615610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4990612ad2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ced3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cda9190612921565b62989680610ce8919061296b565b611243565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7b9190612b04565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e259190612b04565b6040518363ffffffff1660e01b8152600401610e42929190612b2f565b6020604051808303815f875af1158015610e5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e829190612b04565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f09306107c8565b5f80610f13610a8e565b426040518863ffffffff1660e01b8152600401610f3596959493929190612b98565b60606040518083038185885af1158015610f51573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f769190612c0b565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611016929190612c5b565b6020604051808303815f875af1158015611032573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110569190612cac565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600681905550565b61109d61123c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906129f6565b60405180910390fd5b5f5b81518110156111b657600160045f84848151811061114c5761114b612a14565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806111ae90612a41565b91505061112b565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890612d47565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690612dd5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113f991906124b3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b90612e63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d990612ef1565b60405180910390fd5b5f8111611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b90612f7f565b60405180910390fd5b5f61152d610a8e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561159b575061156b610a8e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b165760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561163e575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611646575f80fd5b6116836103e8611675600b54600e541161166257600754611666565b6009545b85611e2890919063ffffffff16565b611e9f90919063ffffffff16565b905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561172e575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611781575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611864576011548211156117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c290612fe7565b60405180910390fd5b601254826117d8856107c8565b6117e29190613005565b1115611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90613082565b60405180910390fd5b4360036006546118339190613005565b111561184c5761184283611ee8565b1561184b575f80fd5b5b600e5f81548092919061185e90612a41565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611908575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611966576012548261191a856107c8565b6119249190613005565b1115611965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195c90613082565b60405180910390fd5b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ee57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3357611a306103e8611a22600c54600e5411611a0f57600854611a13565b600a545b85611e2890919063ffffffff16565b611e9f90919063ffffffff16565b90505b5f611a3d306107c8565b9050601660159054906101000a900460ff16158015611aa8575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611abe575060168054906101000a900460ff165b8015611acb575060135481115b8015611ada5750600d54600e54115b15611b1457611afc611af784611af284601454611ef9565b611ef9565b611f11565b5f4790505f811115611b1257611b114761217c565b5b505b505b5f811115611c1557611b6e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121e490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c0c91906124b3565b60405180910390a35b611c658260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461224190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d08611cbc828461224190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121e490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dab848661224190919063ffffffff16565b604051611db891906124b3565b60405180910390a350505050565b5f838311158290611e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e049190612375565b60405180910390fd5b505f8385611e1b91906130a0565b9050809150509392505050565b5f808303611e38575f9050611e99565b5f8284611e45919061296b565b9050828482611e549190613100565b14611e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8b906131a0565b60405180910390fd5b809150505b92915050565b5f611ee083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228a565b905092915050565b5f80823b90505f8111915050919050565b5f818311611f075782611f09565b815b905092915050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f4857611f47612554565b5b604051908082528060200260200182016040528015611f765781602001602082028036833780820191505090505b50905030815f81518110611f8d57611f8c612a14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612031573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120559190612b04565b8160018151811061206957612068612a14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120cf3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611243565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612131959493929190613275565b5f604051808303815f87803b158015612148575f80fd5b505af115801561215a573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121e0573d5f803e3d5ffd5b5050565b5f8082846121f29190613005565b905083811015612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e90613317565b60405180910390fd5b8091505092915050565b5f61228283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dc6565b905092915050565b5f80831182906122d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c79190612375565b60405180910390fd5b505f83856122de9190613100565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612322578082015181840152602081019050612307565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612347826122eb565b61235181856122f5565b9350612361818560208601612305565b61236a8161232d565b840191505092915050565b5f6020820190508181035f83015261238d818461233d565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123cf826123a6565b9050919050565b6123df816123c5565b81146123e9575f80fd5b50565b5f813590506123fa816123d6565b92915050565b5f819050919050565b61241281612400565b811461241c575f80fd5b50565b5f8135905061242d81612409565b92915050565b5f80604083850312156124495761244861239e565b5b5f612456858286016123ec565b92505060206124678582860161241f565b9150509250929050565b5f8115159050919050565b61248581612471565b82525050565b5f60208201905061249e5f83018461247c565b92915050565b6124ad81612400565b82525050565b5f6020820190506124c65f8301846124a4565b92915050565b5f805f606084860312156124e3576124e261239e565b5b5f6124f0868287016123ec565b9350506020612501868287016123ec565b92505060406125128682870161241f565b9150509250925092565b5f60ff82169050919050565b6125318161251c565b82525050565b5f60208201905061254a5f830184612528565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61258a8261232d565b810181811067ffffffffffffffff821117156125a9576125a8612554565b5b80604052505050565b5f6125bb612395565b90506125c78282612581565b919050565b5f67ffffffffffffffff8211156125e6576125e5612554565b5b602082029050602081019050919050565b5f80fd5b5f61260d612608846125cc565b6125b2565b905080838252602082019050602084028301858111156126305761262f6125f7565b5b835b81811015612659578061264588826123ec565b845260208401935050602081019050612632565b5050509392505050565b5f82601f83011261267757612676612550565b5b81356126878482602086016125fb565b91505092915050565b5f602082840312156126a5576126a461239e565b5b5f82013567ffffffffffffffff8111156126c2576126c16123a2565b5b6126ce84828501612663565b91505092915050565b5f602082840312156126ec576126eb61239e565b5b5f6126f9848285016123ec565b91505092915050565b61270b816123c5565b82525050565b5f6020820190506127245f830184612702565b92915050565b5f80604083850312156127405761273f61239e565b5b5f61274d858286016123ec565b925050602061275e858286016123ec565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806127ac57607f821691505b6020821081036127bf576127be612768565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561284757808604811115612823576128226127c5565b5b60018516156128325780820291505b8081029050612840856127f2565b9450612807565b94509492505050565b5f8261285f576001905061291a565b8161286c575f905061291a565b8160018114612882576002811461288c576128bb565b600191505061291a565b60ff84111561289e5761289d6127c5565b5b8360020a9150848211156128b5576128b46127c5565b5b5061291a565b5060208310610133831016604e8410600b84101617156128f05782820a9050838111156128eb576128ea6127c5565b5b61291a565b6128fd84848460016127fe565b92509050818404811115612914576129136127c5565b5b81810290505b9392505050565b5f61292b82612400565b91506129368361251c565b92506129637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612850565b905092915050565b5f61297582612400565b915061298083612400565b925082820261298e81612400565b915082820484148315176129a5576129a46127c5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129e06020836122f5565b91506129eb826129ac565b602082019050919050565b5f6020820190508181035f830152612a0d816129d4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612a4b82612400565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a7d57612a7c6127c5565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612abc6017836122f5565b9150612ac782612a88565b602082019050919050565b5f6020820190508181035f830152612ae981612ab0565b9050919050565b5f81519050612afe816123d6565b92915050565b5f60208284031215612b1957612b1861239e565b5b5f612b2684828501612af0565b91505092915050565b5f604082019050612b425f830185612702565b612b4f6020830184612702565b9392505050565b5f819050919050565b5f819050919050565b5f612b82612b7d612b7884612b56565b612b5f565b612400565b9050919050565b612b9281612b68565b82525050565b5f60c082019050612bab5f830189612702565b612bb860208301886124a4565b612bc56040830187612b89565b612bd26060830186612b89565b612bdf6080830185612702565b612bec60a08301846124a4565b979650505050505050565b5f81519050612c0581612409565b92915050565b5f805f60608486031215612c2257612c2161239e565b5b5f612c2f86828701612bf7565b9350506020612c4086828701612bf7565b9250506040612c5186828701612bf7565b9150509250925092565b5f604082019050612c6e5f830185612702565b612c7b60208301846124a4565b9392505050565b612c8b81612471565b8114612c95575f80fd5b50565b5f81519050612ca681612c82565b92915050565b5f60208284031215612cc157612cc061239e565b5b5f612cce84828501612c98565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d316024836122f5565b9150612d3c82612cd7565b604082019050919050565b5f6020820190508181035f830152612d5e81612d25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dbf6022836122f5565b9150612dca82612d65565b604082019050919050565b5f6020820190508181035f830152612dec81612db3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e4d6025836122f5565b9150612e5882612df3565b604082019050919050565b5f6020820190508181035f830152612e7a81612e41565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612edb6023836122f5565b9150612ee682612e81565b604082019050919050565b5f6020820190508181035f830152612f0881612ecf565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f696029836122f5565b9150612f7482612f0f565b604082019050919050565b5f6020820190508181035f830152612f9681612f5d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612fd16019836122f5565b9150612fdc82612f9d565b602082019050919050565b5f6020820190508181035f830152612ffe81612fc5565b9050919050565b5f61300f82612400565b915061301a83612400565b9250828201905080821115613032576130316127c5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61306c601a836122f5565b915061307782613038565b602082019050919050565b5f6020820190508181035f83015261309981613060565b9050919050565b5f6130aa82612400565b91506130b583612400565b92508282039050818111156130cd576130cc6127c5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61310a82612400565b915061311583612400565b925082613125576131246130d3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61318a6021836122f5565b915061319582613130565b604082019050919050565b5f6020820190508181035f8301526131b78161317e565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131f0816123c5565b82525050565b5f61320183836131e7565b60208301905092915050565b5f602082019050919050565b5f613223826131be565b61322d81856131c8565b9350613238836131d8565b805f5b8381101561326857815161324f88826131f6565b975061325a8361320d565b92505060018101905061323b565b5085935050505092915050565b5f60a0820190506132885f8301886124a4565b6132956020830187612b89565b81810360408301526132a78186613219565b90506132b66060830185612702565b6132c360808301846124a4565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613301601b836122f5565b915061330c826132cd565b602082019050919050565b5f6020820190508181035f83015261332e816132f5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122048c91e98967ce5c543483710817ed7f5f60594a07f7b7cc0b3f1dad983a3f75264736f6c63430008140033

Deployed Bytecode

0x608060405260043610610122575f3560e01c8063751039fc1161009f578063a9059cbb11610063578063a9059cbb146103c1578063bf474bed146103fd578063c9567bf914610427578063d34628cc1461043d578063dd62ed3e1461046557610129565b8063751039fc146103035780637d1db4a5146103195780638da5cb5b146103435780638f9a55c01461036d57806395d89b411461039757610129565b8063313ce567116100e6578063313ce5671461022357806331c2d8471461024d5780633bbac5791461027557806370a08231146102b1578063715018a6146102ed57610129565b806306fdde031461012d578063095ea7b3146101575780630faee56f1461019357806318160ddd146101bd57806323b872dd146101e757610129565b3661012957005b5f80fd5b348015610138575f80fd5b506101416104a1565b60405161014e9190612375565b60405180910390f35b348015610162575f80fd5b5061017d60048036038101906101789190612433565b610531565b60405161018a919061248b565b60405180910390f35b34801561019e575f80fd5b506101a761054e565b6040516101b491906124b3565b60405180910390f35b3480156101c8575f80fd5b506101d1610554565b6040516101de91906124b3565b60405180910390f35b3480156101f2575f80fd5b5061020d600480360381019061020891906124cc565b610576565b60405161021a919061248b565b60405180910390f35b34801561022e575f80fd5b5061023761064a565b6040516102449190612537565b60405180910390f35b348015610258575f80fd5b50610273600480360381019061026e9190612690565b610652565b005b348015610280575f80fd5b5061029b600480360381019061029691906126d7565b610776565b6040516102a8919061248b565b60405180910390f35b3480156102bc575f80fd5b506102d760048036038101906102d291906126d7565b6107c8565b6040516102e491906124b3565b60405180910390f35b3480156102f8575f80fd5b5061030161080e565b005b34801561030e575f80fd5b5061031761095c565b005b348015610324575f80fd5b5061032d610a88565b60405161033a91906124b3565b60405180910390f35b34801561034e575f80fd5b50610357610a8e565b6040516103649190612711565b60405180910390f35b348015610378575f80fd5b50610381610ab5565b60405161038e91906124b3565b60405180910390f35b3480156103a2575f80fd5b506103ab610abb565b6040516103b89190612375565b60405180910390f35b3480156103cc575f80fd5b506103e760048036038101906103e29190612433565b610b4b565b6040516103f4919061248b565b60405180910390f35b348015610408575f80fd5b50610411610b68565b60405161041e91906124b3565b60405180910390f35b348015610432575f80fd5b5061043b610b6e565b005b348015610448575f80fd5b50610463600480360381019061045e9190612690565b611095565b005b348015610470575f80fd5b5061048b6004803603810190610486919061272a565b6111ba565b60405161049891906124b3565b60405180910390f35b6060600f80546104b090612795565b80601f01602080910402602001604051908101604052809291908181526020018280546104dc90612795565b80156105275780601f106104fe57610100808354040283529160200191610527565b820191905f5260205f20905b81548152906001019060200180831161050a57829003601f168201915b5050505050905090565b5f61054461053d61123c565b8484611243565b6001905092915050565b60145481565b5f6009600a6105639190612921565b62989680610571919061296b565b905090565b5f610582848484611406565b61063f8461058e61123c565b61063a856040518060600160405280602881526020016133366028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f161123c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dc69092919063ffffffff16565b611243565b600190509392505050565b5f6009905090565b61065a61123c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106dd906129f6565b60405180910390fd5b5f5b8151811015610772575f60045f84848151811061070857610707612a14565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808061076a90612a41565b9150506106e8565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61081661123c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610899906129f6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61096461123c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e7906129f6565b60405180910390fd5b6009600a6109fe9190612921565b62989680610a0c919061296b565b6011819055506009600a610a209190612921565b62989680610a2e919061296b565b6012819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a639190612921565b62989680610a71919061296b565b604051610a7e91906124b3565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b606060108054610aca90612795565b80601f0160208091040260200160405190810160405280929190818152602001828054610af690612795565b8015610b415780601f10610b1857610100808354040283529160200191610b41565b820191905f5260205f20905b815481529060010190602001808311610b2457829003601f168201915b5050505050905090565b5f610b5e610b5761123c565b8484611406565b6001905092915050565b60135481565b610b7661123c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf9906129f6565b60405180910390fd5b601660149054906101000a900460ff1615610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4990612ad2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ced3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610cda9190612921565b62989680610ce8919061296b565b611243565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d7b9190612b04565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e01573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e259190612b04565b6040518363ffffffff1660e01b8152600401610e42929190612b2f565b6020604051808303815f875af1158015610e5e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e829190612b04565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f09306107c8565b5f80610f13610a8e565b426040518863ffffffff1660e01b8152600401610f3596959493929190612b98565b60606040518083038185885af1158015610f51573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f769190612c0b565b50505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611016929190612c5b565b6020604051808303815f875af1158015611032573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110569190612cac565b5060016016806101000a81548160ff0219169083151502179055506001601660146101000a81548160ff02191690831515021790555043600681905550565b61109d61123c565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611120906129f6565b60405180910390fd5b5f5b81518110156111b657600160045f84848151811061114c5761114b612a14565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806111ae90612a41565b91505061112b565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a890612d47565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131690612dd5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113f991906124b3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146b90612e63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d990612ef1565b60405180910390fd5b5f8111611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b90612f7f565b60405180910390fd5b5f61152d610a8e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561159b575061156b610a8e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b165760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561163e575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611646575f80fd5b6116836103e8611675600b54600e541161166257600754611666565b6009545b85611e2890919063ffffffff16565b611e9f90919063ffffffff16565b905060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561172e575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611781575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611864576011548211156117cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c290612fe7565b60405180910390fd5b601254826117d8856107c8565b6117e29190613005565b1115611823576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181a90613082565b60405180910390fd5b4360036006546118339190613005565b111561184c5761184283611ee8565b1561184b575f80fd5b5b600e5f81548092919061185e90612a41565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611908575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611966576012548261191a856107c8565b6119249190613005565b1115611965576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195c90613082565b60405180910390fd5b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ee57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a3357611a306103e8611a22600c54600e5411611a0f57600854611a13565b600a545b85611e2890919063ffffffff16565b611e9f90919063ffffffff16565b90505b5f611a3d306107c8565b9050601660159054906101000a900460ff16158015611aa8575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611abe575060168054906101000a900460ff165b8015611acb575060135481115b8015611ada5750600d54600e54115b15611b1457611afc611af784611af284601454611ef9565b611ef9565b611f11565b5f4790505f811115611b1257611b114761217c565b5b505b505b5f811115611c1557611b6e8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121e490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c0c91906124b3565b60405180910390a35b611c658260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461224190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d08611cbc828461224190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121e490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dab848661224190919063ffffffff16565b604051611db891906124b3565b60405180910390a350505050565b5f838311158290611e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e049190612375565b60405180910390fd5b505f8385611e1b91906130a0565b9050809150509392505050565b5f808303611e38575f9050611e99565b5f8284611e45919061296b565b9050828482611e549190613100565b14611e94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8b906131a0565b60405180910390fd5b809150505b92915050565b5f611ee083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228a565b905092915050565b5f80823b90505f8111915050919050565b5f818311611f075782611f09565b815b905092915050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f4857611f47612554565b5b604051908082528060200260200182016040528015611f765781602001602082028036833780820191505090505b50905030815f81518110611f8d57611f8c612a14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612031573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120559190612b04565b8160018151811061206957612068612a14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120cf3060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611243565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612131959493929190613275565b5f604051808303815f87803b158015612148575f80fd5b505af115801561215a573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121e0573d5f803e3d5ffd5b5050565b5f8082846121f29190613005565b905083811015612237576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222e90613317565b60405180910390fd5b8091505092915050565b5f61228283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611dc6565b905092915050565b5f80831182906122d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122c79190612375565b60405180910390fd5b505f83856122de9190613100565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612322578082015181840152602081019050612307565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612347826122eb565b61235181856122f5565b9350612361818560208601612305565b61236a8161232d565b840191505092915050565b5f6020820190508181035f83015261238d818461233d565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123cf826123a6565b9050919050565b6123df816123c5565b81146123e9575f80fd5b50565b5f813590506123fa816123d6565b92915050565b5f819050919050565b61241281612400565b811461241c575f80fd5b50565b5f8135905061242d81612409565b92915050565b5f80604083850312156124495761244861239e565b5b5f612456858286016123ec565b92505060206124678582860161241f565b9150509250929050565b5f8115159050919050565b61248581612471565b82525050565b5f60208201905061249e5f83018461247c565b92915050565b6124ad81612400565b82525050565b5f6020820190506124c65f8301846124a4565b92915050565b5f805f606084860312156124e3576124e261239e565b5b5f6124f0868287016123ec565b9350506020612501868287016123ec565b92505060406125128682870161241f565b9150509250925092565b5f60ff82169050919050565b6125318161251c565b82525050565b5f60208201905061254a5f830184612528565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61258a8261232d565b810181811067ffffffffffffffff821117156125a9576125a8612554565b5b80604052505050565b5f6125bb612395565b90506125c78282612581565b919050565b5f67ffffffffffffffff8211156125e6576125e5612554565b5b602082029050602081019050919050565b5f80fd5b5f61260d612608846125cc565b6125b2565b905080838252602082019050602084028301858111156126305761262f6125f7565b5b835b81811015612659578061264588826123ec565b845260208401935050602081019050612632565b5050509392505050565b5f82601f83011261267757612676612550565b5b81356126878482602086016125fb565b91505092915050565b5f602082840312156126a5576126a461239e565b5b5f82013567ffffffffffffffff8111156126c2576126c16123a2565b5b6126ce84828501612663565b91505092915050565b5f602082840312156126ec576126eb61239e565b5b5f6126f9848285016123ec565b91505092915050565b61270b816123c5565b82525050565b5f6020820190506127245f830184612702565b92915050565b5f80604083850312156127405761273f61239e565b5b5f61274d858286016123ec565b925050602061275e858286016123ec565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806127ac57607f821691505b6020821081036127bf576127be612768565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561284757808604811115612823576128226127c5565b5b60018516156128325780820291505b8081029050612840856127f2565b9450612807565b94509492505050565b5f8261285f576001905061291a565b8161286c575f905061291a565b8160018114612882576002811461288c576128bb565b600191505061291a565b60ff84111561289e5761289d6127c5565b5b8360020a9150848211156128b5576128b46127c5565b5b5061291a565b5060208310610133831016604e8410600b84101617156128f05782820a9050838111156128eb576128ea6127c5565b5b61291a565b6128fd84848460016127fe565b92509050818404811115612914576129136127c5565b5b81810290505b9392505050565b5f61292b82612400565b91506129368361251c565b92506129637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612850565b905092915050565b5f61297582612400565b915061298083612400565b925082820261298e81612400565b915082820484148315176129a5576129a46127c5565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6129e06020836122f5565b91506129eb826129ac565b602082019050919050565b5f6020820190508181035f830152612a0d816129d4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612a4b82612400565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a7d57612a7c6127c5565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612abc6017836122f5565b9150612ac782612a88565b602082019050919050565b5f6020820190508181035f830152612ae981612ab0565b9050919050565b5f81519050612afe816123d6565b92915050565b5f60208284031215612b1957612b1861239e565b5b5f612b2684828501612af0565b91505092915050565b5f604082019050612b425f830185612702565b612b4f6020830184612702565b9392505050565b5f819050919050565b5f819050919050565b5f612b82612b7d612b7884612b56565b612b5f565b612400565b9050919050565b612b9281612b68565b82525050565b5f60c082019050612bab5f830189612702565b612bb860208301886124a4565b612bc56040830187612b89565b612bd26060830186612b89565b612bdf6080830185612702565b612bec60a08301846124a4565b979650505050505050565b5f81519050612c0581612409565b92915050565b5f805f60608486031215612c2257612c2161239e565b5b5f612c2f86828701612bf7565b9350506020612c4086828701612bf7565b9250506040612c5186828701612bf7565b9150509250925092565b5f604082019050612c6e5f830185612702565b612c7b60208301846124a4565b9392505050565b612c8b81612471565b8114612c95575f80fd5b50565b5f81519050612ca681612c82565b92915050565b5f60208284031215612cc157612cc061239e565b5b5f612cce84828501612c98565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d316024836122f5565b9150612d3c82612cd7565b604082019050919050565b5f6020820190508181035f830152612d5e81612d25565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612dbf6022836122f5565b9150612dca82612d65565b604082019050919050565b5f6020820190508181035f830152612dec81612db3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e4d6025836122f5565b9150612e5882612df3565b604082019050919050565b5f6020820190508181035f830152612e7a81612e41565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612edb6023836122f5565b9150612ee682612e81565b604082019050919050565b5f6020820190508181035f830152612f0881612ecf565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612f696029836122f5565b9150612f7482612f0f565b604082019050919050565b5f6020820190508181035f830152612f9681612f5d565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612fd16019836122f5565b9150612fdc82612f9d565b602082019050919050565b5f6020820190508181035f830152612ffe81612fc5565b9050919050565b5f61300f82612400565b915061301a83612400565b9250828201905080821115613032576130316127c5565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61306c601a836122f5565b915061307782613038565b602082019050919050565b5f6020820190508181035f83015261309981613060565b9050919050565b5f6130aa82612400565b91506130b583612400565b92508282039050818111156130cd576130cc6127c5565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61310a82612400565b915061311583612400565b925082613125576131246130d3565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61318a6021836122f5565b915061319582613130565b604082019050919050565b5f6020820190508181035f8301526131b78161317e565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6131f0816123c5565b82525050565b5f61320183836131e7565b60208301905092915050565b5f602082019050919050565b5f613223826131be565b61322d81856131c8565b9350613238836131d8565b805f5b8381101561326857815161324f88826131f6565b975061325a8361320d565b92505060018101905061323b565b5085935050505092915050565b5f60a0820190506132885f8301886124a4565b6132956020830187612b89565b81810360408301526132a78186613219565b90506132b66060830185612702565b6132c360808301846124a4565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613301601b836122f5565b915061330c826132cd565b602082019050919050565b5f6020820190508181035f83015261332e816132f5565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122048c91e98967ce5c543483710817ed7f5f60594a07f7b7cc0b3f1dad983a3f75264736f6c63430008140033

Deployed Bytecode Sourcemap

3626:8082:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6374:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4741:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5818:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6543:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5727:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10686:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10856:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5921:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:148;;;;;;;;;;;;;:::i;:::-;;10247:159;;;;;;;;;;;;;:::i;:::-;;4556:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2493:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4617:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5632:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6048:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4678:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10947:707;;;;;;;;;;;;;:::i;:::-;;10514:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6223:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5541:83;5578:13;5611:5;5604:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:83;:::o;6374:161::-;6449:4;6466:39;6475:12;:10;:12::i;:::-;6489:7;6498:6;6466:8;:39::i;:::-;6523:4;6516:11;;6374:161;;;;:::o;4741:50::-;;;;:::o;5818:95::-;5871:7;4377:1;4431:2;:13;;;;:::i;:::-;4420:8;:24;;;;:::i;:::-;5891:14;;5818:95;:::o;6543:313::-;6641:4;6658:36;6668:6;6676:9;6687:6;6658:9;:36::i;:::-;6705:121;6714:6;6722:12;:10;:12::i;:::-;6736:89;6774:6;6736:89;;;;;;;;;;;;;;;;;:11;:19;6748:6;6736:19;;;;;;;;;;;;;;;:33;6756:12;:10;:12::i;:::-;6736:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6705:8;:121::i;:::-;6844:4;6837:11;;6543:313;;;;;:::o;5727:83::-;5768:5;4377:1;5786:16;;5727:83;:::o;10686:162::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10759:6:::1;10754:87;10775:6;:13;10771:1;:17;10754:87;;;10826:5;10808:4;:15;10813:6;10820:1;10813:9;;;;;;;;:::i;:::-;;;;;;;;10808:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10790:3;;;;;:::i;:::-;;;;10754:87;;;;10686:162:::0;:::o;10856:83::-;10903:4;10924;:7;10929:1;10924:7;;;;;;;;;;;;;;;;;;;;;;;;;10917:14;;10856:83;;;:::o;5921:119::-;5987:7;6014:9;:18;6024:7;6014:18;;;;;;;;;;;;;;;;6007:25;;5921:119;;;:::o;2707:148::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2814:1:::1;2777:40;;2798:6;::::0;::::1;;;;;;;;2777:40;;;;;;;;;;;;2845:1;2828:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2707:148::o:0;10247:159::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4377:1:::1;4431:2;:13;;;;:::i;:::-;4420:8;:24;;;;:::i;:::-;10300:12;:22;;;;4377:1;4431:2;:13;;;;:::i;:::-;4420:8;:24;;;;:::i;:::-;10333:14;:22;;;;10371:27;4377:1;4431:2;:13;;;;:::i;:::-;4420:8;:24;;;;:::i;:::-;10371:27;;;;;;:::i;:::-;;;;;;;;10247:159::o:0;4556:54::-;;;;:::o;2493:79::-;2531:7;2558:6;;;;;;;;;;;2551:13;;2493:79;:::o;4617:54::-;;;;:::o;5632:87::-;5671:13;5704:7;5697:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5632:87;:::o;6048:167::-;6126:4;6143:42;6153:12;:10;:12::i;:::-;6167:9;6178:6;6143:9;:42::i;:::-;6203:4;6196:11;;6048:167;;;;:::o;4678:56::-;;;;:::o;10947:707::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11011:11:::1;;;;;;;;;;;11010:12;11002:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11097:42;11060:15;;:80;;;;;;;;;;;;;;;;;;11151:58;11168:4;11183:15;;;;;;;;;;;4377:1;4431:2;:13;;;;:::i;:::-;4420:8;:24;;;;:::i;:::-;11151:8;:58::i;:::-;11254:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11236:55;;;11300:4;11307:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11236:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11220:13;;:110;;;;;;;;;;;;;;;;;;11341:15;;;;;;;;;;;:31;;;11380:21;11411:4;11417:24;11435:4;11417:9;:24::i;:::-;11442:1;11444::::0;11446:7:::1;:5;:7::i;:::-;11454:15;11341:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11488:13;;;;;;;;;;;11481:29;;;11519:15;;;;;;;;;;;11537:14;11481:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11577:4;11563:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11606:4;11592:11;;:18;;;;;;;;;;;;;;;;;;11634:12;11621:10;:25;;;;10947:707::o:0;10514:164::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10588:6:::1;10583:88;10604:5;:12;10600:1;:16;10583:88;;;10655:4;10638;:14;10643:5;10649:1;10643:8;;;;;;;;:::i;:::-;;;;;;;;10638:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10618:3;;;;;:::i;:::-;;;;10583:88;;;;10514:164:::0;:::o;6223:143::-;6304:7;6331:11;:18;6343:5;6331:18;;;;;;;;;;;;;;;:27;6350:7;6331:27;;;;;;;;;;;;;;;;6324:34;;6223:143;;;;:::o;247:98::-;300:7;327:10;320:17;;247:98;:::o;6864:335::-;6974:1;6957:19;;:5;:19;;;6949:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7055:1;7036:21;;:7;:21;;;7028:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7137:6;7107:11;:18;7119:5;7107:18;;;;;;;;;;;;;;;:27;7126:7;7107:27;;;;;;;;;;;;;;;:36;;;;7175:7;7159:32;;7168:5;7159:32;;;7184:6;7159:32;;;;;;:::i;:::-;;;;;;;;6864:335;;;:::o;7207:2230::-;7311:1;7295:18;;:4;:18;;;7287:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7388:1;7374:16;;:2;:16;;;7366:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7458:1;7449:6;:10;7441:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7516:17;7558:7;:5;:7::i;:::-;7550:15;;:4;:15;;;;:32;;;;;7575:7;:5;:7::i;:::-;7569:13;;:2;:13;;;;7550:32;7546:1535;;;7608:4;:10;7613:4;7608:10;;;;;;;;;;;;;;;;;;;;;;;;;7607:11;:24;;;;;7623:4;:8;7628:2;7623:8;;;;;;;;;;;;;;;;;;;;;;;;;7622:9;7607:24;7599:33;;;;;;7659:77;7731:4;7659:67;7681:15;;7671:9;;:25;7670:55;;7711:14;;7670:55;;;7698:12;;7670:55;7659:6;:10;;:67;;;;:::i;:::-;:71;;:77;;;;:::i;:::-;7647:89;;7765:13;;;;;;;;;;;7757:21;;:4;:21;;;:55;;;;;7796:15;;;;;;;;;;;7782:30;;:2;:30;;;;7757:55;:83;;;;;7818:18;:22;7837:2;7818:22;;;;;;;;;;;;;;;;;;;;;;;;;7816:24;7757:83;7753:436;;;7880:12;;7870:6;:22;;7862:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7975:14;;7965:6;7949:13;7959:2;7949:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7941:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8063:12;8058:1;8045:10;;:14;;;;:::i;:::-;:30;8041:103;;;8109:14;8120:2;8109:10;:14::i;:::-;8108:15;8100:24;;;;;;8041:103;8162:9;;:11;;;;;;;;;:::i;:::-;;;;;;7753:436;8215:13;;;;;;;;;;;8209:19;;:2;:19;;;;:47;;;;;8234:18;:22;8253:2;8234:22;;;;;;;;;;;;;;;;;;;;;;;;;8232:24;8209:47;8205:167;;;8311:14;;8301:6;8285:13;8295:2;8285:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8277:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8205:167;8397:13;;;;;;;;;;;8391:19;;:2;:19;;;:43;;;;;8429:4;8414:20;;:4;:20;;;;8391:43;8388:175;;;8467:80;8542:4;8467:70;8489:16;;8479:9;;:26;8478:58;;8521:15;;8478:58;;;8507:13;;8478:58;8467:6;:10;;:70;;;;:::i;:::-;:74;;:80;;;;:::i;:::-;8455:92;;8388:175;8579:28;8610:24;8628:4;8610:9;:24::i;:::-;8579:55;;8654:6;;;;;;;;;;;8653:7;:32;;;;;8672:13;;;;;;;;;;;8664:21;;:2;:21;;;8653:32;:47;;;;;8689:11;;;;;;;;;;8653:47;:89;;;;;8725:17;;8704:20;:38;8653:89;:121;;;;;8756:18;;8746:9;;:28;8653:121;8649:421;;;8795:67;8812:49;8816:6;8823:37;8827:20;8848:11;;8823:3;:37::i;:::-;8812:3;:49::i;:::-;8795:16;:67::i;:::-;8881:26;8910:21;8881:50;;8974:1;8953:18;:22;8950:105;;;9000:35;9013:21;9000:12;:35::i;:::-;8950:105;8776:294;8649:421;7584:1497;7546:1535;9106:1;9096:9;:11;9093:161;;;9146:39;9175:9;9146;:24;9164:4;9146:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9121:9;:24;9139:4;9121:24;;;;;;;;;;;;;;;:64;;;;9226:4;9203:39;;9212:4;9203:39;;;9232:9;9203:39;;;;;;:::i;:::-;;;;;;;;9093:161;9280:27;9300:6;9280:9;:15;9290:4;9280:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9264:9;:15;9274:4;9264:15;;;;;;;;;;;;;;;:43;;;;9332:40;9350:21;9361:9;9350:6;:10;;:21;;;;:::i;:::-;9332:9;:13;9342:2;9332:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9318:9;:13;9328:2;9318:13;;;;;;;;;;;;;;;:54;;;;9403:2;9388:41;;9397:4;9388:41;;;9407:21;9418:9;9407:6;:10;;:21;;;;:::i;:::-;9388:41;;;;;;:::i;:::-;;;;;;;;7276:2161;7207:2230;;;:::o;1385:190::-;1471:7;1504:1;1499;:6;;1507:12;1491:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1531:9;1547:1;1543;:5;;;;:::i;:::-;1531:17;;1566:1;1559:8;;;1385:190;;;;;:::o;1583:246::-;1641:7;1670:1;1665;:6;1661:47;;1695:1;1688:8;;;;1661:47;1718:9;1734:1;1730;:5;;;;:::i;:::-;1718:17;;1763:1;1758;1754;:5;;;;:::i;:::-;:10;1746:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1820:1;1813:8;;;1583:246;;;;;:::o;1837:132::-;1895:7;1922:39;1926:1;1929;1922:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1915:46;;1837:132;;;;:::o;9553:195::-;9612:4;9629:12;9696:7;9684:20;9676:28;;9739:1;9732:4;:8;9725:15;;;9553:195;;;:::o;9447:98::-;9504:7;9531:1;9529;:3;9528:9;;9536:1;9528:9;;;9534:1;9528:9;9521:16;;9447:98;;;;:::o;9756:483::-;5157:4;5148:6;;:13;;;;;;;;;;;;;;;;;;9834:21:::1;9872:1;9858:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9834:40;;9903:4;9885;9890:1;9885:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9929:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9919:4;9924:1;9919:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9962:62;9979:4;9994:15;;;;;;;;;;;10012:11;9962:8;:62::i;:::-;10035:15;;;;;;;;;;;:66;;;10116:11;10142:1;10158:4;10185;10205:15;10035:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9823:416;5193:5:::0;5184:6;;:14;;;;;;;;;;;;;;;;;;9756:483;:::o;10414:92::-;10471:10;;;;;;;;;;;:19;;:27;10491:6;10471:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10414:92;:::o;1054:179::-;1112:7;1132:9;1148:1;1144;:5;;;;:::i;:::-;1132:17;;1173:1;1168;:6;;1160:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1224:1;1217:8;;;1054:179;;;;:::o;1241:136::-;1299:7;1326:43;1330:1;1333;1326:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1319:50;;1241:136;;;;:::o;1977:189::-;2063:7;2095:1;2091;:5;2098:12;2083:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2122:9;2138:1;2134;:5;;;;:::i;:::-;2122:17;;2157:1;2150:8;;;1977: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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:180::-;8910:77;8907:1;8900:88;9007:4;9004:1;8997:15;9031:4;9028:1;9021:15;9048:320;9092:6;9129:1;9123:4;9119:12;9109:22;;9176:1;9170:4;9166:12;9197:18;9187:81;;9253:4;9245:6;9241:17;9231:27;;9187:81;9315:2;9307:6;9304:14;9284:18;9281:38;9278:84;;9334:18;;:::i;:::-;9278:84;9099:269;9048:320;;;:::o;9374:180::-;9422:77;9419:1;9412:88;9519:4;9516:1;9509:15;9543:4;9540:1;9533:15;9560:102;9602:8;9649:5;9646:1;9642:13;9621:34;;9560:102;;;:::o;9668:848::-;9729:5;9736:4;9760:6;9751:15;;9784:5;9775:14;;9798:712;9819:1;9809:8;9806:15;9798:712;;;9914:4;9909:3;9905:14;9899:4;9896:24;9893:50;;;9923:18;;:::i;:::-;9893:50;9973:1;9963:8;9959:16;9956:451;;;10388:4;10381:5;10377:16;10368:25;;9956:451;10438:4;10432;10428:15;10420:23;;10468:32;10491:8;10468:32;:::i;:::-;10456:44;;9798:712;;;9668:848;;;;;;;:::o;10522:1073::-;10576:5;10767:8;10757:40;;10788:1;10779:10;;10790:5;;10757:40;10816:4;10806:36;;10833:1;10824:10;;10835:5;;10806:36;10902:4;10950:1;10945:27;;;;10986:1;10981:191;;;;10895:277;;10945:27;10963:1;10954:10;;10965:5;;;10981:191;11026:3;11016:8;11013:17;11010:43;;;11033:18;;:::i;:::-;11010:43;11082:8;11079:1;11075:16;11066:25;;11117:3;11110:5;11107:14;11104:40;;;11124:18;;:::i;:::-;11104:40;11157:5;;;10895:277;;11281:2;11271:8;11268:16;11262:3;11256:4;11253:13;11249:36;11231:2;11221:8;11218:16;11213:2;11207:4;11204:12;11200:35;11184:111;11181:246;;;11337:8;11331:4;11327:19;11318:28;;11372:3;11365:5;11362:14;11359:40;;;11379:18;;:::i;:::-;11359:40;11412:5;;11181:246;11452:42;11490:3;11480:8;11474:4;11471:1;11452:42;:::i;:::-;11437:57;;;;11526:4;11521:3;11517:14;11510:5;11507:25;11504:51;;;11535:18;;:::i;:::-;11504:51;11584:4;11577:5;11573:16;11564:25;;10522:1073;;;;;;:::o;11601:281::-;11659:5;11683:23;11701:4;11683:23;:::i;:::-;11675:31;;11727:25;11743:8;11727:25;:::i;:::-;11715:37;;11771:104;11808:66;11798:8;11792:4;11771:104;:::i;:::-;11762:113;;11601:281;;;;:::o;11888:410::-;11928:7;11951:20;11969:1;11951:20;:::i;:::-;11946:25;;11985:20;12003:1;11985:20;:::i;:::-;11980:25;;12040:1;12037;12033:9;12062:30;12080:11;12062:30;:::i;:::-;12051:41;;12241:1;12232:7;12228:15;12225:1;12222:22;12202:1;12195:9;12175:83;12152:139;;12271:18;;:::i;:::-;12152:139;11936:362;11888:410;;;;:::o;12304:182::-;12444:34;12440:1;12432:6;12428:14;12421:58;12304:182;:::o;12492:366::-;12634:3;12655:67;12719:2;12714:3;12655:67;:::i;:::-;12648:74;;12731:93;12820:3;12731:93;:::i;:::-;12849:2;12844:3;12840:12;12833:19;;12492:366;;;:::o;12864:419::-;13030:4;13068:2;13057:9;13053:18;13045:26;;13117:9;13111:4;13107:20;13103:1;13092:9;13088:17;13081:47;13145:131;13271:4;13145:131;:::i;:::-;13137:139;;12864:419;;;:::o;13289:180::-;13337:77;13334:1;13327:88;13434:4;13431:1;13424:15;13458:4;13455:1;13448:15;13475:233;13514:3;13537:24;13555:5;13537:24;:::i;:::-;13528:33;;13583:66;13576:5;13573:77;13570:103;;13653:18;;:::i;:::-;13570:103;13700:1;13693:5;13689:13;13682:20;;13475:233;;;:::o;13714:173::-;13854:25;13850:1;13842:6;13838:14;13831:49;13714:173;:::o;13893:366::-;14035:3;14056:67;14120:2;14115:3;14056:67;:::i;:::-;14049:74;;14132:93;14221:3;14132:93;:::i;:::-;14250:2;14245:3;14241:12;14234:19;;13893:366;;;:::o;14265:419::-;14431:4;14469:2;14458:9;14454:18;14446:26;;14518:9;14512:4;14508:20;14504:1;14493:9;14489:17;14482:47;14546:131;14672:4;14546:131;:::i;:::-;14538:139;;14265:419;;;:::o;14690:143::-;14747:5;14778:6;14772:13;14763:22;;14794:33;14821:5;14794:33;:::i;:::-;14690:143;;;;:::o;14839:351::-;14909:6;14958:2;14946:9;14937:7;14933:23;14929:32;14926:119;;;14964:79;;:::i;:::-;14926:119;15084:1;15109:64;15165:7;15156:6;15145:9;15141:22;15109:64;:::i;:::-;15099:74;;15055:128;14839:351;;;;:::o;15196:332::-;15317:4;15355:2;15344:9;15340:18;15332:26;;15368:71;15436:1;15425:9;15421:17;15412:6;15368:71;:::i;:::-;15449:72;15517:2;15506:9;15502:18;15493:6;15449:72;:::i;:::-;15196:332;;;;;:::o;15534:85::-;15579:7;15608:5;15597:16;;15534:85;;;:::o;15625:60::-;15653:3;15674:5;15667:12;;15625:60;;;:::o;15691:158::-;15749:9;15782:61;15800:42;15809:32;15835:5;15809:32;:::i;:::-;15800:42;:::i;:::-;15782:61;:::i;:::-;15769:74;;15691:158;;;:::o;15855:147::-;15950:45;15989:5;15950:45;:::i;:::-;15945:3;15938:58;15855:147;;:::o;16008:807::-;16257:4;16295:3;16284:9;16280:19;16272:27;;16309:71;16377:1;16366:9;16362:17;16353:6;16309:71;:::i;:::-;16390:72;16458:2;16447:9;16443:18;16434:6;16390:72;:::i;:::-;16472:80;16548:2;16537:9;16533:18;16524:6;16472:80;:::i;:::-;16562;16638:2;16627:9;16623:18;16614:6;16562:80;:::i;:::-;16652:73;16720:3;16709:9;16705:19;16696:6;16652:73;:::i;:::-;16735;16803:3;16792:9;16788:19;16779:6;16735:73;:::i;:::-;16008:807;;;;;;;;;:::o;16821:143::-;16878:5;16909:6;16903:13;16894:22;;16925:33;16952:5;16925:33;:::i;:::-;16821:143;;;;:::o;16970:663::-;17058:6;17066;17074;17123:2;17111:9;17102:7;17098:23;17094:32;17091:119;;;17129:79;;:::i;:::-;17091:119;17249:1;17274:64;17330:7;17321:6;17310:9;17306:22;17274:64;:::i;:::-;17264:74;;17220:128;17387:2;17413:64;17469:7;17460:6;17449:9;17445:22;17413:64;:::i;:::-;17403:74;;17358:129;17526:2;17552:64;17608:7;17599:6;17588:9;17584:22;17552:64;:::i;:::-;17542:74;;17497:129;16970:663;;;;;:::o;17639:332::-;17760:4;17798:2;17787:9;17783:18;17775:26;;17811:71;17879:1;17868:9;17864:17;17855:6;17811:71;:::i;:::-;17892:72;17960:2;17949:9;17945:18;17936:6;17892:72;:::i;:::-;17639:332;;;;;:::o;17977:116::-;18047:21;18062:5;18047:21;:::i;:::-;18040:5;18037:32;18027:60;;18083:1;18080;18073:12;18027:60;17977:116;:::o;18099:137::-;18153:5;18184:6;18178:13;18169:22;;18200:30;18224:5;18200:30;:::i;:::-;18099:137;;;;:::o;18242:345::-;18309:6;18358:2;18346:9;18337:7;18333:23;18329:32;18326:119;;;18364:79;;:::i;:::-;18326:119;18484:1;18509:61;18562:7;18553:6;18542:9;18538:22;18509:61;:::i;:::-;18499:71;;18455:125;18242:345;;;;:::o;18593:223::-;18733:34;18729:1;18721:6;18717:14;18710:58;18802:6;18797:2;18789:6;18785:15;18778:31;18593:223;:::o;18822:366::-;18964:3;18985:67;19049:2;19044:3;18985:67;:::i;:::-;18978:74;;19061:93;19150:3;19061:93;:::i;:::-;19179:2;19174:3;19170:12;19163:19;;18822:366;;;:::o;19194:419::-;19360:4;19398:2;19387:9;19383:18;19375:26;;19447:9;19441:4;19437:20;19433:1;19422:9;19418:17;19411:47;19475:131;19601:4;19475:131;:::i;:::-;19467:139;;19194:419;;;:::o;19619:221::-;19759:34;19755:1;19747:6;19743:14;19736:58;19828:4;19823:2;19815:6;19811:15;19804:29;19619:221;:::o;19846:366::-;19988:3;20009:67;20073:2;20068:3;20009:67;:::i;:::-;20002:74;;20085:93;20174:3;20085:93;:::i;:::-;20203:2;20198:3;20194:12;20187:19;;19846:366;;;:::o;20218:419::-;20384:4;20422:2;20411:9;20407:18;20399:26;;20471:9;20465:4;20461:20;20457:1;20446:9;20442:17;20435:47;20499:131;20625:4;20499:131;:::i;:::-;20491:139;;20218:419;;;:::o;20643:224::-;20783:34;20779:1;20771:6;20767:14;20760:58;20852:7;20847:2;20839:6;20835:15;20828:32;20643:224;:::o;20873:366::-;21015:3;21036:67;21100:2;21095:3;21036:67;:::i;:::-;21029:74;;21112:93;21201:3;21112:93;:::i;:::-;21230:2;21225:3;21221:12;21214:19;;20873:366;;;:::o;21245:419::-;21411:4;21449:2;21438:9;21434:18;21426:26;;21498:9;21492:4;21488:20;21484:1;21473:9;21469:17;21462:47;21526:131;21652:4;21526:131;:::i;:::-;21518:139;;21245:419;;;:::o;21670:222::-;21810:34;21806:1;21798:6;21794:14;21787:58;21879:5;21874:2;21866:6;21862:15;21855:30;21670:222;:::o;21898:366::-;22040:3;22061:67;22125:2;22120:3;22061:67;:::i;:::-;22054:74;;22137:93;22226:3;22137:93;:::i;:::-;22255:2;22250:3;22246:12;22239:19;;21898:366;;;:::o;22270:419::-;22436:4;22474:2;22463:9;22459:18;22451:26;;22523:9;22517:4;22513:20;22509:1;22498:9;22494:17;22487:47;22551:131;22677:4;22551:131;:::i;:::-;22543:139;;22270:419;;;:::o;22695:228::-;22835:34;22831:1;22823:6;22819:14;22812:58;22904:11;22899:2;22891:6;22887:15;22880:36;22695:228;:::o;22929:366::-;23071:3;23092:67;23156:2;23151:3;23092:67;:::i;:::-;23085:74;;23168:93;23257:3;23168:93;:::i;:::-;23286:2;23281:3;23277:12;23270:19;;22929:366;;;:::o;23301:419::-;23467:4;23505:2;23494:9;23490:18;23482:26;;23554:9;23548:4;23544:20;23540:1;23529:9;23525:17;23518:47;23582:131;23708:4;23582:131;:::i;:::-;23574:139;;23301:419;;;:::o;23726:175::-;23866:27;23862:1;23854:6;23850:14;23843:51;23726:175;:::o;23907:366::-;24049:3;24070:67;24134:2;24129:3;24070:67;:::i;:::-;24063:74;;24146:93;24235:3;24146:93;:::i;:::-;24264:2;24259:3;24255:12;24248:19;;23907:366;;;:::o;24279:419::-;24445:4;24483:2;24472:9;24468:18;24460:26;;24532:9;24526:4;24522:20;24518:1;24507:9;24503:17;24496:47;24560:131;24686:4;24560:131;:::i;:::-;24552:139;;24279:419;;;:::o;24704:191::-;24744:3;24763:20;24781:1;24763:20;:::i;:::-;24758:25;;24797:20;24815:1;24797:20;:::i;:::-;24792:25;;24840:1;24837;24833:9;24826:16;;24861:3;24858:1;24855:10;24852:36;;;24868:18;;:::i;:::-;24852:36;24704:191;;;;:::o;24901:176::-;25041:28;25037:1;25029:6;25025:14;25018:52;24901:176;:::o;25083:366::-;25225:3;25246:67;25310:2;25305:3;25246:67;:::i;:::-;25239:74;;25322:93;25411:3;25322:93;:::i;:::-;25440:2;25435:3;25431:12;25424:19;;25083:366;;;:::o;25455:419::-;25621:4;25659:2;25648:9;25644:18;25636:26;;25708:9;25702:4;25698:20;25694:1;25683:9;25679:17;25672:47;25736:131;25862:4;25736:131;:::i;:::-;25728:139;;25455:419;;;:::o;25880:194::-;25920:4;25940:20;25958:1;25940:20;:::i;:::-;25935:25;;25974:20;25992:1;25974:20;:::i;:::-;25969:25;;26018:1;26015;26011:9;26003:17;;26042:1;26036:4;26033:11;26030:37;;;26047:18;;:::i;:::-;26030:37;25880:194;;;;:::o;26080:180::-;26128:77;26125:1;26118:88;26225:4;26222:1;26215:15;26249:4;26246:1;26239:15;26266:185;26306:1;26323:20;26341:1;26323:20;:::i;:::-;26318:25;;26357:20;26375:1;26357:20;:::i;:::-;26352:25;;26396:1;26386:35;;26401:18;;:::i;:::-;26386:35;26443:1;26440;26436:9;26431:14;;26266:185;;;;:::o;26457:220::-;26597:34;26593:1;26585:6;26581:14;26574:58;26666:3;26661:2;26653:6;26649:15;26642:28;26457:220;:::o;26683:366::-;26825:3;26846:67;26910:2;26905:3;26846:67;:::i;:::-;26839:74;;26922:93;27011:3;26922:93;:::i;:::-;27040:2;27035:3;27031:12;27024:19;;26683:366;;;:::o;27055:419::-;27221:4;27259:2;27248:9;27244:18;27236:26;;27308:9;27302:4;27298:20;27294:1;27283:9;27279:17;27272:47;27336:131;27462:4;27336:131;:::i;:::-;27328:139;;27055:419;;;:::o;27480:114::-;27547:6;27581:5;27575:12;27565:22;;27480:114;;;:::o;27600:184::-;27699:11;27733:6;27728:3;27721:19;27773:4;27768:3;27764:14;27749:29;;27600:184;;;;:::o;27790:132::-;27857:4;27880:3;27872:11;;27910:4;27905:3;27901:14;27893:22;;27790:132;;;:::o;27928:108::-;28005:24;28023:5;28005:24;:::i;:::-;28000:3;27993:37;27928:108;;:::o;28042:179::-;28111:10;28132:46;28174:3;28166:6;28132:46;:::i;:::-;28210:4;28205:3;28201:14;28187:28;;28042:179;;;;:::o;28227:113::-;28297:4;28329;28324:3;28320:14;28312:22;;28227:113;;;:::o;28376:732::-;28495:3;28524:54;28572:5;28524:54;:::i;:::-;28594:86;28673:6;28668:3;28594:86;:::i;:::-;28587:93;;28704:56;28754:5;28704:56;:::i;:::-;28783:7;28814:1;28799:284;28824:6;28821:1;28818:13;28799:284;;;28900:6;28894:13;28927:63;28986:3;28971:13;28927:63;:::i;:::-;28920:70;;29013:60;29066:6;29013:60;:::i;:::-;29003:70;;28859:224;28846:1;28843;28839:9;28834:14;;28799:284;;;28803:14;29099:3;29092:10;;28500:608;;;28376:732;;;;:::o;29114:831::-;29377:4;29415:3;29404:9;29400:19;29392:27;;29429:71;29497:1;29486:9;29482:17;29473:6;29429:71;:::i;:::-;29510:80;29586:2;29575:9;29571:18;29562:6;29510:80;:::i;:::-;29637:9;29631:4;29627:20;29622:2;29611:9;29607:18;29600:48;29665:108;29768:4;29759:6;29665:108;:::i;:::-;29657:116;;29783:72;29851:2;29840:9;29836:18;29827:6;29783:72;:::i;:::-;29865:73;29933:3;29922:9;29918:19;29909:6;29865:73;:::i;:::-;29114:831;;;;;;;;:::o;29951:177::-;30091:29;30087:1;30079:6;30075:14;30068:53;29951:177;:::o;30134:366::-;30276:3;30297:67;30361:2;30356:3;30297:67;:::i;:::-;30290:74;;30373:93;30462:3;30373:93;:::i;:::-;30491:2;30486:3;30482:12;30475:19;;30134:366;;;:::o;30506:419::-;30672:4;30710:2;30699:9;30695:18;30687:26;;30759:9;30753:4;30749:20;30745:1;30734:9;30730:17;30723:47;30787:131;30913:4;30787:131;:::i;:::-;30779:139;;30506:419;;;:::o

Swarm Source

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