ETH Price: $3,412.46 (+1.38%)

Token

rabwifhat (RAB)
 

Overview

Max Total Supply

369,369,369,369 RAB

Holders

34

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
31,167,356,549.495080279 RAB

Value
$0.00
0x3c5c77a77e35a1c7e23baf144dca1bc97cc154a5
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:
rabwifhat

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-04-16
*/

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

// SPDX-License-Identifier: UNLICENSE


pragma solidity 0.8.23;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract rabwifhat 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 public  _taxWallet;

    uint256 private _initialBuyTax=2;
    uint256 private _initialSellTax=4;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=4;
    uint256 private _reduceBuyTaxAt=2;
    uint256 private _reduceSellTaxAt=4;
    uint256 private _preventSwapBefore=26;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 369369369369 * 10**_decimals;
    string private constant _name = unicode"rabwifhat";
    string private constant _symbol = unicode"RAB";
    uint256 public _maxTxAmount = 200000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 200000000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 369369369369 * 10**_decimals;
    uint256 public _maxTaxSwap= 369369369369 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeSLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

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

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

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addSBots","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":"delSBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBotS","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeSLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendETHToFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260026006556004600755600260085560046009556002600a556004600b55601a600c555f600d556009600a6200003b919062000602565b642e90edd0006200004d919062000652565b600e556009600a62000060919062000602565b642e90edd00062000072919062000652565b600f556009600a62000085919062000602565b645600214b1962000097919062000652565b6010556009600a620000aa919062000602565b645600214b19620000bc919062000652565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055505f6014555f60155534801562000107575f80fd5b505f620001196200044260201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c56200044260201b60201c565b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a62000214919062000602565b645600214b1962000226919062000652565b60015f620002396200044260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200028b6200044960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003b56200044260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000413919062000602565b645600214b1962000425919062000652565b604051620004349190620006ad565b60405180910390a3620006c8565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004fa57808604811115620004d257620004d162000470565b5b6001851615620004e25780820291505b8081029050620004f2856200049d565b9450620004b2565b94509492505050565b5f82620005145760019050620005e6565b8162000523575f9050620005e6565b81600181146200053c576002811462000547576200057d565b6001915050620005e6565b60ff8411156200055c576200055b62000470565b5b8360020a91508482111562000576576200057562000470565b5b50620005e6565b5060208310610133831016604e8410600b8410161715620005b75782820a905083811115620005b157620005b062000470565b5b620005e6565b620005c68484846001620004a9565b92509050818404811115620005e057620005df62000470565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060e82620005ed565b91506200061b83620005f6565b92506200064a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000503565b905092915050565b5f6200065e82620005ed565b91506200066b83620005ed565b92508282026200067b81620005ed565b9150828204841483151762000695576200069462000470565b5b5092915050565b620006a781620005ed565b82525050565b5f602082019050620006c25f8301846200069c565b92915050565b61349180620006d65f395ff3fe60806040526004361061014e575f3560e01c80637d1db4a5116100b5578063b4efe6961161006e578063b4efe6961461047b578063b85866cb14610491578063bf474bed146104b9578063c9567bf9146104e3578063dd62ed3e146104f9578063ec1f3f631461053557610155565b80637d1db4a51461035b57806383035645146103855780638da5cb5b146103c15780638f9a55c0146103eb57806395d89b4114610415578063a9059cbb1461043f57610155565b8063313ce56711610107578063313ce5671461027757806347d64b33146102a157806351bc3c85146102c95780636f268a99146102df57806370a0823114610309578063715018a61461034557610155565b806306b501971461015957806306fdde0314610181578063095ea7b3146101ab5780630faee56f146101e757806318160ddd1461021157806323b872dd1461023b57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061017f600480360381019061017a91906123be565b61055d565b005b34801561018c575f80fd5b506101956105c5565b6040516101a29190612473565b60405180910390f35b3480156101b6575f80fd5b506101d160048036038101906101cc91906124ed565b610602565b6040516101de9190612545565b60405180910390f35b3480156101f2575f80fd5b506101fb61061f565b604051610208919061256d565b60405180910390f35b34801561021c575f80fd5b50610225610625565b604051610232919061256d565b60405180910390f35b348015610246575f80fd5b50610261600480360381019061025c9190612586565b610649565b60405161026e9190612545565b60405180910390f35b348015610282575f80fd5b5061028b61071d565b60405161029891906125f1565b60405180910390f35b3480156102ac575f80fd5b506102c760048036038101906102c2919061274a565b610725565b005b3480156102d4575f80fd5b506102dd610844565b005b3480156102ea575f80fd5b506102f36108db565b60405161030091906127b1565b60405180910390f35b348015610314575f80fd5b5061032f600480360381019061032a91906127ca565b610900565b60405161033c919061256d565b60405180910390f35b348015610350575f80fd5b50610359610946565b005b348015610366575f80fd5b5061036f610a94565b60405161037c919061256d565b60405180910390f35b348015610390575f80fd5b506103ab60048036038101906103a691906127ca565b610a9a565b6040516103b89190612545565b60405180910390f35b3480156103cc575f80fd5b506103d5610aec565b6040516103e29190612804565b60405180910390f35b3480156103f6575f80fd5b506103ff610b13565b60405161040c919061256d565b60405180910390f35b348015610420575f80fd5b50610429610b19565b6040516104369190612473565b60405180910390f35b34801561044a575f80fd5b50610465600480360381019061046091906124ed565b610b56565b6040516104729190612545565b60405180910390f35b348015610486575f80fd5b5061048f610b73565b005b34801561049c575f80fd5b506104b760048036038101906104b2919061274a565b610ca5565b005b3480156104c4575f80fd5b506104cd610dc3565b6040516104da919061256d565b60405180910390f35b3480156104ee575f80fd5b506104f7610dc9565b005b348015610504575f80fd5b5061051f600480360381019061051a919061281d565b6112ec565b60405161052c919061256d565b60405180910390f35b348015610540575f80fd5b5061055b600480360381019061055691906123be565b61136e565b005b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156105c1573d5f803e3d5ffd5b5050565b60606040518060400160405280600981526020017f7261627769666861740000000000000000000000000000000000000000000000815250905090565b5f61061561060e6113fa565b8484611401565b6001905092915050565b60115481565b5f6009600a61063491906129b7565b645600214b196106449190612a01565b905090565b5f6106558484846115c4565b610712846106616113fa565b61070d856040518060600160405280602881526020016134346028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106c46113fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ece9092919063ffffffff16565b611401565b600190509392505050565b5f6009905090565b61072d6113fa565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b090612a8c565b60405180910390fd5b5f5b815181101561084057600160045f8484815181106107dc576107db612aaa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107bb565b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108846113fa565b73ffffffffffffffffffffffffffffffffffffffff16146108a3575f80fd5b5f6108ad30610900565b90505f8111156108c1576108c081611f30565b5b5f4790505f8111156108d7576108d68161055d565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61094e6113fa565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d190612a8c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f5241420000000000000000000000000000000000000000000000000000000000815250905090565b5f610b69610b626113fa565b84846115c4565b6001905092915050565b610b7b6113fa565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90612a8c565b60405180910390fd5b6009600a610c1591906129b7565b645600214b19610c259190612a01565b600e819055506009600a610c3991906129b7565b645600214b19610c499190612a01565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c7e91906129b7565b645600214b19610c8e9190612a01565b604051610c9b919061256d565b60405180910390a1565b610cad6113fa565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3090612a8c565b60405180910390fd5b5f5b8151811015610dbf575f60045f848481518110610d5b57610d5a612aaa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610d3b565b5050565b60105481565b610dd16113fa565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5490612a8c565b60405180910390fd5b601360149054906101000a900460ff1615610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490612b21565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4a3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f3591906129b7565b645600214b19610f459190612a01565b611401565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd89190612b53565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110829190612b53565b6040518363ffffffff1660e01b815260040161109f929190612b7e565b6020604051808303815f875af11580156110bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110df9190612b53565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061116630610900565b5f80611170610aec565b426040518863ffffffff1660e01b815260040161119296959493929190612be7565b60606040518083038185885af11580156111ae573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111d39190612c5a565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611273929190612caa565b6020604051808303815f875af115801561128f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b39190612cfb565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113ae6113fa565b73ffffffffffffffffffffffffffffffffffffffff16146113cd575f80fd5b60085481111580156113e157506009548111155b6113e9575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146690612d96565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490612e24565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115b7919061256d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990612eb2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169790612f40565b60405180910390fd5b5f81116116e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d990612fce565b60405180910390fd5b5f6116eb610aec565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117595750611729610aec565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c1e5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117fc575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611804575f80fd5b6118406064611832600a54600d541161181f57600654611823565b6008545b8561219b90919063ffffffff16565b61221290919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118eb575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561193e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119f857600e54821115611988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197f90613036565b60405180910390fd5b600f548261199585610900565b61199f9190613054565b11156119e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d7906130d1565b60405180910390fd5b600d5f8154809291906119f2906130ef565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a8057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ac457611ac16064611ab3600b54600d5411611aa057600754611aa4565b6009545b8561219b90919063ffffffff16565b61221290919063ffffffff16565b90505b5f611ace30610900565b9050601360159054906101000a900460ff16158015611b39575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b515750601360169054906101000a900460ff165b8015611b5e575060105481115b8015611b6d5750600c54600d54115b15611c1c57601554431115611b84575f6014819055505b600360145410611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090613180565b60405180910390fd5b611be6611be184611bdc8460115461225b565b61225b565b611f30565b5f4790505f811115611bfc57611bfb4761055d565b5b60145f815480929190611c0e906130ef565b919050555043601581905550505b505b5f811115611d1d57611c768160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d14919061256d565b60405180910390a35b611d6d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e10611dc482846122d090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611eb384866122d090919063ffffffff16565b604051611ec0919061256d565b60405180910390a350505050565b5f838311158290611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c9190612473565b60405180910390fd5b505f8385611f23919061319e565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f6757611f6661260e565b5b604051908082528060200260200182016040528015611f955781602001602082028036833780820191505090505b50905030815f81518110611fac57611fab612aaa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612050573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120749190612b53565b8160018151811061208857612087612aaa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120ee3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611401565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612150959493929190613288565b5f604051808303815f87803b158015612167575f80fd5b505af1158015612179573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b5f8083036121ab575f905061220c565b5f82846121b89190612a01565b90508284826121c7919061330d565b14612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fe906133ad565b60405180910390fd5b809150505b92915050565b5f61225383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612319565b905092915050565b5f818311612269578261226b565b815b905092915050565b5f8082846122819190613054565b9050838110156122c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bd90613415565b60405180910390fd5b8091505092915050565b5f61231183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ece565b905092915050565b5f808311829061235f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123569190612473565b60405180910390fd5b505f838561236d919061330d565b9050809150509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b61239d8161238b565b81146123a7575f80fd5b50565b5f813590506123b881612394565b92915050565b5f602082840312156123d3576123d2612383565b5b5f6123e0848285016123aa565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612420578082015181840152602081019050612405565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612445826123e9565b61244f81856123f3565b935061245f818560208601612403565b6124688161242b565b840191505092915050565b5f6020820190508181035f83015261248b818461243b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124bc82612493565b9050919050565b6124cc816124b2565b81146124d6575f80fd5b50565b5f813590506124e7816124c3565b92915050565b5f806040838503121561250357612502612383565b5b5f612510858286016124d9565b9250506020612521858286016123aa565b9150509250929050565b5f8115159050919050565b61253f8161252b565b82525050565b5f6020820190506125585f830184612536565b92915050565b6125678161238b565b82525050565b5f6020820190506125805f83018461255e565b92915050565b5f805f6060848603121561259d5761259c612383565b5b5f6125aa868287016124d9565b93505060206125bb868287016124d9565b92505060406125cc868287016123aa565b9150509250925092565b5f60ff82169050919050565b6125eb816125d6565b82525050565b5f6020820190506126045f8301846125e2565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126448261242b565b810181811067ffffffffffffffff821117156126635761266261260e565b5b80604052505050565b5f61267561237a565b9050612681828261263b565b919050565b5f67ffffffffffffffff8211156126a05761269f61260e565b5b602082029050602081019050919050565b5f80fd5b5f6126c76126c284612686565b61266c565b905080838252602082019050602084028301858111156126ea576126e96126b1565b5b835b8181101561271357806126ff88826124d9565b8452602084019350506020810190506126ec565b5050509392505050565b5f82601f8301126127315761273061260a565b5b81356127418482602086016126b5565b91505092915050565b5f6020828403121561275f5761275e612383565b5b5f82013567ffffffffffffffff81111561277c5761277b612387565b5b6127888482850161271d565b91505092915050565b5f61279b82612493565b9050919050565b6127ab81612791565b82525050565b5f6020820190506127c45f8301846127a2565b92915050565b5f602082840312156127df576127de612383565b5b5f6127ec848285016124d9565b91505092915050565b6127fe816124b2565b82525050565b5f6020820190506128175f8301846127f5565b92915050565b5f806040838503121561283357612832612383565b5b5f612840858286016124d9565b9250506020612851858286016124d9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156128dd578086048111156128b9576128b861285b565b5b60018516156128c85780820291505b80810290506128d685612888565b945061289d565b94509492505050565b5f826128f557600190506129b0565b81612902575f90506129b0565b8160018114612918576002811461292257612951565b60019150506129b0565b60ff8411156129345761293361285b565b5b8360020a91508482111561294b5761294a61285b565b5b506129b0565b5060208310610133831016604e8410600b84101617156129865782820a9050838111156129815761298061285b565b5b6129b0565b6129938484846001612894565b925090508184048111156129aa576129a961285b565b5b81810290505b9392505050565b5f6129c18261238b565b91506129cc836125d6565b92506129f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128e6565b905092915050565b5f612a0b8261238b565b9150612a168361238b565b9250828202612a248161238b565b91508282048414831517612a3b57612a3a61285b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a766020836123f3565b9150612a8182612a42565b602082019050919050565b5f6020820190508181035f830152612aa381612a6a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b0b6017836123f3565b9150612b1682612ad7565b602082019050919050565b5f6020820190508181035f830152612b3881612aff565b9050919050565b5f81519050612b4d816124c3565b92915050565b5f60208284031215612b6857612b67612383565b5b5f612b7584828501612b3f565b91505092915050565b5f604082019050612b915f8301856127f5565b612b9e60208301846127f5565b9392505050565b5f819050919050565b5f819050919050565b5f612bd1612bcc612bc784612ba5565b612bae565b61238b565b9050919050565b612be181612bb7565b82525050565b5f60c082019050612bfa5f8301896127f5565b612c07602083018861255e565b612c146040830187612bd8565b612c216060830186612bd8565b612c2e60808301856127f5565b612c3b60a083018461255e565b979650505050505050565b5f81519050612c5481612394565b92915050565b5f805f60608486031215612c7157612c70612383565b5b5f612c7e86828701612c46565b9350506020612c8f86828701612c46565b9250506040612ca086828701612c46565b9150509250925092565b5f604082019050612cbd5f8301856127f5565b612cca602083018461255e565b9392505050565b612cda8161252b565b8114612ce4575f80fd5b50565b5f81519050612cf581612cd1565b92915050565b5f60208284031215612d1057612d0f612383565b5b5f612d1d84828501612ce7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d806024836123f3565b9150612d8b82612d26565b604082019050919050565b5f6020820190508181035f830152612dad81612d74565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e0e6022836123f3565b9150612e1982612db4565b604082019050919050565b5f6020820190508181035f830152612e3b81612e02565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e9c6025836123f3565b9150612ea782612e42565b604082019050919050565b5f6020820190508181035f830152612ec981612e90565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f2a6023836123f3565b9150612f3582612ed0565b604082019050919050565b5f6020820190508181035f830152612f5781612f1e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612fb86029836123f3565b9150612fc382612f5e565b604082019050919050565b5f6020820190508181035f830152612fe581612fac565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130206019836123f3565b915061302b82612fec565b602082019050919050565b5f6020820190508181035f83015261304d81613014565b9050919050565b5f61305e8261238b565b91506130698361238b565b92508282019050808211156130815761308061285b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130bb601a836123f3565b91506130c682613087565b602082019050919050565b5f6020820190508181035f8301526130e8816130af565b9050919050565b5f6130f98261238b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361312b5761312a61285b565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61316a6017836123f3565b915061317582613136565b602082019050919050565b5f6020820190508181035f8301526131978161315e565b9050919050565b5f6131a88261238b565b91506131b38361238b565b92508282039050818111156131cb576131ca61285b565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613203816124b2565b82525050565b5f61321483836131fa565b60208301905092915050565b5f602082019050919050565b5f613236826131d1565b61324081856131db565b935061324b836131eb565b805f5b8381101561327b5781516132628882613209565b975061326d83613220565b92505060018101905061324e565b5085935050505092915050565b5f60a08201905061329b5f83018861255e565b6132a86020830187612bd8565b81810360408301526132ba818661322c565b90506132c960608301856127f5565b6132d6608083018461255e565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133178261238b565b91506133228361238b565b925082613332576133316132e0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133976021836123f3565b91506133a28261333d565b604082019050919050565b5f6020820190508181035f8301526133c48161338b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6133ff601b836123f3565b915061340a826133cb565b602082019050919050565b5f6020820190508181035f83015261342c816133f3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203596ab22665ba068184e524e741e42b940eab11151ea5fd5268ad03499baf49d64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c80637d1db4a5116100b5578063b4efe6961161006e578063b4efe6961461047b578063b85866cb14610491578063bf474bed146104b9578063c9567bf9146104e3578063dd62ed3e146104f9578063ec1f3f631461053557610155565b80637d1db4a51461035b57806383035645146103855780638da5cb5b146103c15780638f9a55c0146103eb57806395d89b4114610415578063a9059cbb1461043f57610155565b8063313ce56711610107578063313ce5671461027757806347d64b33146102a157806351bc3c85146102c95780636f268a99146102df57806370a0823114610309578063715018a61461034557610155565b806306b501971461015957806306fdde0314610181578063095ea7b3146101ab5780630faee56f146101e757806318160ddd1461021157806323b872dd1461023b57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061017f600480360381019061017a91906123be565b61055d565b005b34801561018c575f80fd5b506101956105c5565b6040516101a29190612473565b60405180910390f35b3480156101b6575f80fd5b506101d160048036038101906101cc91906124ed565b610602565b6040516101de9190612545565b60405180910390f35b3480156101f2575f80fd5b506101fb61061f565b604051610208919061256d565b60405180910390f35b34801561021c575f80fd5b50610225610625565b604051610232919061256d565b60405180910390f35b348015610246575f80fd5b50610261600480360381019061025c9190612586565b610649565b60405161026e9190612545565b60405180910390f35b348015610282575f80fd5b5061028b61071d565b60405161029891906125f1565b60405180910390f35b3480156102ac575f80fd5b506102c760048036038101906102c2919061274a565b610725565b005b3480156102d4575f80fd5b506102dd610844565b005b3480156102ea575f80fd5b506102f36108db565b60405161030091906127b1565b60405180910390f35b348015610314575f80fd5b5061032f600480360381019061032a91906127ca565b610900565b60405161033c919061256d565b60405180910390f35b348015610350575f80fd5b50610359610946565b005b348015610366575f80fd5b5061036f610a94565b60405161037c919061256d565b60405180910390f35b348015610390575f80fd5b506103ab60048036038101906103a691906127ca565b610a9a565b6040516103b89190612545565b60405180910390f35b3480156103cc575f80fd5b506103d5610aec565b6040516103e29190612804565b60405180910390f35b3480156103f6575f80fd5b506103ff610b13565b60405161040c919061256d565b60405180910390f35b348015610420575f80fd5b50610429610b19565b6040516104369190612473565b60405180910390f35b34801561044a575f80fd5b50610465600480360381019061046091906124ed565b610b56565b6040516104729190612545565b60405180910390f35b348015610486575f80fd5b5061048f610b73565b005b34801561049c575f80fd5b506104b760048036038101906104b2919061274a565b610ca5565b005b3480156104c4575f80fd5b506104cd610dc3565b6040516104da919061256d565b60405180910390f35b3480156104ee575f80fd5b506104f7610dc9565b005b348015610504575f80fd5b5061051f600480360381019061051a919061281d565b6112ec565b60405161052c919061256d565b60405180910390f35b348015610540575f80fd5b5061055b600480360381019061055691906123be565b61136e565b005b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156105c1573d5f803e3d5ffd5b5050565b60606040518060400160405280600981526020017f7261627769666861740000000000000000000000000000000000000000000000815250905090565b5f61061561060e6113fa565b8484611401565b6001905092915050565b60115481565b5f6009600a61063491906129b7565b645600214b196106449190612a01565b905090565b5f6106558484846115c4565b610712846106616113fa565b61070d856040518060600160405280602881526020016134346028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106c46113fa565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ece9092919063ffffffff16565b611401565b600190509392505050565b5f6009905090565b61072d6113fa565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b090612a8c565b60405180910390fd5b5f5b815181101561084057600160045f8484815181106107dc576107db612aaa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107bb565b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108846113fa565b73ffffffffffffffffffffffffffffffffffffffff16146108a3575f80fd5b5f6108ad30610900565b90505f8111156108c1576108c081611f30565b5b5f4790505f8111156108d7576108d68161055d565b5b5050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61094e6113fa565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109d190612a8c565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f5241420000000000000000000000000000000000000000000000000000000000815250905090565b5f610b69610b626113fa565b84846115c4565b6001905092915050565b610b7b6113fa565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfe90612a8c565b60405180910390fd5b6009600a610c1591906129b7565b645600214b19610c259190612a01565b600e819055506009600a610c3991906129b7565b645600214b19610c499190612a01565b600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610c7e91906129b7565b645600214b19610c8e9190612a01565b604051610c9b919061256d565b60405180910390a1565b610cad6113fa565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3090612a8c565b60405180910390fd5b5f5b8151811015610dbf575f60045f848481518110610d5b57610d5a612aaa565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610d3b565b5050565b60105481565b610dd16113fa565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5490612a8c565b60405180910390fd5b601360149054906101000a900460ff1615610ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea490612b21565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4a3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610f3591906129b7565b645600214b19610f459190612a01565b611401565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd89190612b53565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110829190612b53565b6040518363ffffffff1660e01b815260040161109f929190612b7e565b6020604051808303815f875af11580156110bb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110df9190612b53565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061116630610900565b5f80611170610aec565b426040518863ffffffff1660e01b815260040161119296959493929190612be7565b60606040518083038185885af11580156111ae573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906111d39190612c5a565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611273929190612caa565b6020604051808303815f875af115801561128f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112b39190612cfb565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113ae6113fa565b73ffffffffffffffffffffffffffffffffffffffff16146113cd575f80fd5b60085481111580156113e157506009548111155b6113e9575f80fd5b806008819055508060098190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361146f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146690612d96565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d490612e24565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115b7919061256d565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611632576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162990612eb2565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169790612f40565b60405180910390fd5b5f81116116e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d990612fce565b60405180910390fd5b5f6116eb610aec565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117595750611729610aec565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c1e5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156117fc575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611804575f80fd5b6118406064611832600a54600d541161181f57600654611823565b6008545b8561219b90919063ffffffff16565b61221290919063ffffffff16565b905060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118eb575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561193e575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119f857600e54821115611988576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197f90613036565b60405180910390fd5b600f548261199585610900565b61199f9190613054565b11156119e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d7906130d1565b60405180910390fd5b600d5f8154809291906119f2906130ef565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a8057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ac457611ac16064611ab3600b54600d5411611aa057600754611aa4565b6009545b8561219b90919063ffffffff16565b61221290919063ffffffff16565b90505b5f611ace30610900565b9050601360159054906101000a900460ff16158015611b39575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b515750601360169054906101000a900460ff165b8015611b5e575060105481115b8015611b6d5750600c54600d54115b15611c1c57601554431115611b84575f6014819055505b600360145410611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090613180565b60405180910390fd5b611be6611be184611bdc8460115461225b565b61225b565b611f30565b5f4790505f811115611bfc57611bfb4761055d565b5b60145f815480929190611c0e906130ef565b919050555043601581905550505b505b5f811115611d1d57611c768160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d14919061256d565b60405180910390a35b611d6d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122d090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e10611dc482846122d090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461227390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611eb384866122d090919063ffffffff16565b604051611ec0919061256d565b60405180910390a350505050565b5f838311158290611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c9190612473565b60405180910390fd5b505f8385611f23919061319e565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f6757611f6661260e565b5b604051908082528060200260200182016040528015611f955781602001602082028036833780820191505090505b50905030815f81518110611fac57611fab612aaa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612050573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120749190612b53565b8160018151811061208857612087612aaa565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120ee3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611401565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612150959493929190613288565b5f604051808303815f87803b158015612167575f80fd5b505af1158015612179573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b5f8083036121ab575f905061220c565b5f82846121b89190612a01565b90508284826121c7919061330d565b14612207576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121fe906133ad565b60405180910390fd5b809150505b92915050565b5f61225383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612319565b905092915050565b5f818311612269578261226b565b815b905092915050565b5f8082846122819190613054565b9050838110156122c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bd90613415565b60405180910390fd5b8091505092915050565b5f61231183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ece565b905092915050565b5f808311829061235f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123569190612473565b60405180910390fd5b505f838561236d919061330d565b9050809150509392505050565b5f604051905090565b5f80fd5b5f80fd5b5f819050919050565b61239d8161238b565b81146123a7575f80fd5b50565b5f813590506123b881612394565b92915050565b5f602082840312156123d3576123d2612383565b5b5f6123e0848285016123aa565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612420578082015181840152602081019050612405565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612445826123e9565b61244f81856123f3565b935061245f818560208601612403565b6124688161242b565b840191505092915050565b5f6020820190508181035f83015261248b818461243b565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124bc82612493565b9050919050565b6124cc816124b2565b81146124d6575f80fd5b50565b5f813590506124e7816124c3565b92915050565b5f806040838503121561250357612502612383565b5b5f612510858286016124d9565b9250506020612521858286016123aa565b9150509250929050565b5f8115159050919050565b61253f8161252b565b82525050565b5f6020820190506125585f830184612536565b92915050565b6125678161238b565b82525050565b5f6020820190506125805f83018461255e565b92915050565b5f805f6060848603121561259d5761259c612383565b5b5f6125aa868287016124d9565b93505060206125bb868287016124d9565b92505060406125cc868287016123aa565b9150509250925092565b5f60ff82169050919050565b6125eb816125d6565b82525050565b5f6020820190506126045f8301846125e2565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126448261242b565b810181811067ffffffffffffffff821117156126635761266261260e565b5b80604052505050565b5f61267561237a565b9050612681828261263b565b919050565b5f67ffffffffffffffff8211156126a05761269f61260e565b5b602082029050602081019050919050565b5f80fd5b5f6126c76126c284612686565b61266c565b905080838252602082019050602084028301858111156126ea576126e96126b1565b5b835b8181101561271357806126ff88826124d9565b8452602084019350506020810190506126ec565b5050509392505050565b5f82601f8301126127315761273061260a565b5b81356127418482602086016126b5565b91505092915050565b5f6020828403121561275f5761275e612383565b5b5f82013567ffffffffffffffff81111561277c5761277b612387565b5b6127888482850161271d565b91505092915050565b5f61279b82612493565b9050919050565b6127ab81612791565b82525050565b5f6020820190506127c45f8301846127a2565b92915050565b5f602082840312156127df576127de612383565b5b5f6127ec848285016124d9565b91505092915050565b6127fe816124b2565b82525050565b5f6020820190506128175f8301846127f5565b92915050565b5f806040838503121561283357612832612383565b5b5f612840858286016124d9565b9250506020612851858286016124d9565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156128dd578086048111156128b9576128b861285b565b5b60018516156128c85780820291505b80810290506128d685612888565b945061289d565b94509492505050565b5f826128f557600190506129b0565b81612902575f90506129b0565b8160018114612918576002811461292257612951565b60019150506129b0565b60ff8411156129345761293361285b565b5b8360020a91508482111561294b5761294a61285b565b5b506129b0565b5060208310610133831016604e8410600b84101617156129865782820a9050838111156129815761298061285b565b5b6129b0565b6129938484846001612894565b925090508184048111156129aa576129a961285b565b5b81810290505b9392505050565b5f6129c18261238b565b91506129cc836125d6565b92506129f97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846128e6565b905092915050565b5f612a0b8261238b565b9150612a168361238b565b9250828202612a248161238b565b91508282048414831517612a3b57612a3a61285b565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a766020836123f3565b9150612a8182612a42565b602082019050919050565b5f6020820190508181035f830152612aa381612a6a565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b0b6017836123f3565b9150612b1682612ad7565b602082019050919050565b5f6020820190508181035f830152612b3881612aff565b9050919050565b5f81519050612b4d816124c3565b92915050565b5f60208284031215612b6857612b67612383565b5b5f612b7584828501612b3f565b91505092915050565b5f604082019050612b915f8301856127f5565b612b9e60208301846127f5565b9392505050565b5f819050919050565b5f819050919050565b5f612bd1612bcc612bc784612ba5565b612bae565b61238b565b9050919050565b612be181612bb7565b82525050565b5f60c082019050612bfa5f8301896127f5565b612c07602083018861255e565b612c146040830187612bd8565b612c216060830186612bd8565b612c2e60808301856127f5565b612c3b60a083018461255e565b979650505050505050565b5f81519050612c5481612394565b92915050565b5f805f60608486031215612c7157612c70612383565b5b5f612c7e86828701612c46565b9350506020612c8f86828701612c46565b9250506040612ca086828701612c46565b9150509250925092565b5f604082019050612cbd5f8301856127f5565b612cca602083018461255e565b9392505050565b612cda8161252b565b8114612ce4575f80fd5b50565b5f81519050612cf581612cd1565b92915050565b5f60208284031215612d1057612d0f612383565b5b5f612d1d84828501612ce7565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d806024836123f3565b9150612d8b82612d26565b604082019050919050565b5f6020820190508181035f830152612dad81612d74565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e0e6022836123f3565b9150612e1982612db4565b604082019050919050565b5f6020820190508181035f830152612e3b81612e02565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612e9c6025836123f3565b9150612ea782612e42565b604082019050919050565b5f6020820190508181035f830152612ec981612e90565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f2a6023836123f3565b9150612f3582612ed0565b604082019050919050565b5f6020820190508181035f830152612f5781612f1e565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612fb86029836123f3565b9150612fc382612f5e565b604082019050919050565b5f6020820190508181035f830152612fe581612fac565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130206019836123f3565b915061302b82612fec565b602082019050919050565b5f6020820190508181035f83015261304d81613014565b9050919050565b5f61305e8261238b565b91506130698361238b565b92508282019050808211156130815761308061285b565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130bb601a836123f3565b91506130c682613087565b602082019050919050565b5f6020820190508181035f8301526130e8816130af565b9050919050565b5f6130f98261238b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361312b5761312a61285b565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f61316a6017836123f3565b915061317582613136565b602082019050919050565b5f6020820190508181035f8301526131978161315e565b9050919050565b5f6131a88261238b565b91506131b38361238b565b92508282039050818111156131cb576131ca61285b565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613203816124b2565b82525050565b5f61321483836131fa565b60208301905092915050565b5f602082019050919050565b5f613236826131d1565b61324081856131db565b935061324b836131eb565b805f5b8381101561327b5781516132628882613209565b975061326d83613220565b92505060018101905061324e565b5085935050505092915050565b5f60a08201905061329b5f83018861255e565b6132a86020830187612bd8565b81810360408301526132ba818661322c565b90506132c960608301856127f5565b6132d6608083018461255e565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6133178261238b565b91506133228361238b565b925082613332576133316132e0565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133976021836123f3565b91506133a28261333d565b604082019050919050565b5f6020820190508181035f8301526133c48161338b565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6133ff601b836123f3565b915061340a826133cb565b602082019050919050565b5f6020820190508181035f83015261342c816133f3565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203596ab22665ba068184e524e741e42b940eab11151ea5fd5268ad03499baf49d64736f6c63430008170033

Deployed Bytecode Sourcemap

3552:8364:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10082:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5461:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6294:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4654:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5738:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6463:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5647:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10181:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11565:348;;;;;;;;;;;;;:::i;:::-;;3872:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5841:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2633:148;;;;;;;;;;;;;:::i;:::-;;4453:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10525:84;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2419:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4518:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5552:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5968:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9914:160;;;;;;;;;;;;;:::i;:::-;;10354:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4585:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10617:671;;;;;;;;;;;;;:::i;:::-;;6143:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11302:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10082:91;10138:10;;;;;;;;;;;:19;;:27;10158:6;10138:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10082:91;:::o;5461:83::-;5498:13;5531:5;;;;;;;;;;;;;;;;;5524:12;;5461:83;:::o;6294:161::-;6369:4;6386:39;6395:12;:10;:12::i;:::-;6409:7;6418:6;6386:8;:39::i;:::-;6443:4;6436:11;;6294:161;;;;:::o;4654:56::-;;;;:::o;5738:95::-;5791:7;4265:1;4323:2;:13;;;;:::i;:::-;4308:12;:28;;;;:::i;:::-;5811:14;;5738:95;:::o;6463:313::-;6561:4;6578:36;6588:6;6596:9;6607:6;6578:9;:36::i;:::-;6625:121;6634:6;6642:12;:10;:12::i;:::-;6656:89;6694:6;6656:89;;;;;;;;;;;;;;;;;:11;:19;6668:6;6656:19;;;;;;;;;;;;;;;:33;6676:12;:10;:12::i;:::-;6656:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6625:8;:121::i;:::-;6764:4;6757:11;;6463:313;;;;;:::o;5647:83::-;5688:5;4265:1;5706:16;;5647:83;:::o;10181:165::-;2556:12;:10;:12::i;:::-;2546:22;;:6;;;;;;;;;;:22;;;2538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10256:6:::1;10251:88;10272:5;:12;10268:1;:16;10251:88;;;10323:4;10306;:14;10311:5;10317:1;10311:8;;;;;;;;:::i;:::-;;;;;;;;10306:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10286:3;;;;;;;10251:88;;;;10181:165:::0;:::o;11565:348::-;11629:10;;;;;;;;;;;11615:24;;:12;:10;:12::i;:::-;:24;;;11607:33;;;;;;11651:20;11672:24;11690:4;11672:9;:24::i;:::-;11651:45;;11723:1;11710:12;:14;11707:73;;;11738:30;11755:12;11738:16;:30::i;:::-;11707:73;11790:18;11809:21;11790:40;;11855:1;11844:10;:12;11841:65;;;11870:24;11883:10;11870:12;:24::i;:::-;11841:65;11596:317;;11565:348::o;3872:34::-;;;;;;;;;;;;;:::o;5841:119::-;5907:7;5934:9;:18;5944:7;5934:18;;;;;;;;;;;;;;;;5927:25;;5841:119;;;:::o;2633:148::-;2556:12;:10;:12::i;:::-;2546:22;;:6;;;;;;;;;;:22;;;2538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2740:1:::1;2703:40;;2724:6;::::0;::::1;;;;;;;;2703:40;;;;;;;;;;;;2771:1;2754:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2633:148::o:0;4453:58::-;;;;:::o;10525:84::-;10573:4;10594;:7;10599:1;10594:7;;;;;;;;;;;;;;;;;;;;;;;;;10587:14;;10525:84;;;:::o;2419:79::-;2457:7;2484:6;;;;;;;;;;;2477:13;;2419:79;:::o;4518:60::-;;;;:::o;5552:87::-;5591:13;5624:7;;;;;;;;;;;;;;;;;5617:14;;5552:87;:::o;5968:167::-;6046:4;6063:42;6073:12;:10;:12::i;:::-;6087:9;6098:6;6063:9;:42::i;:::-;6123:4;6116:11;;5968:167;;;;:::o;9914:160::-;2556:12;:10;:12::i;:::-;2546:22;;:6;;;;;;;;;;:22;;;2538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4265:1:::1;4323:2;:13;;;;:::i;:::-;4308:12;:28;;;;:::i;:::-;9968:12;:22;;;;4265:1;4323:2;:13;;;;:::i;:::-;4308:12;:28;;;;:::i;:::-;10001:14;:22;;;;10039:27;4265:1;4323:2;:13;;;;:::i;:::-;4308:12;:28;;;;:::i;:::-;10039:27;;;;;;:::i;:::-;;;;;;;;9914:160::o:0;10354:163::-;2556:12;:10;:12::i;:::-;2546:22;;:6;;;;;;;;;;:22;;;2538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10428:6:::1;10423:87;10444:6;:13;10440:1;:17;10423:87;;;10495:5;10477:4;:15;10482:6;10489:1;10482:9;;;;;;;;:::i;:::-;;;;;;;;10477:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10459:3;;;;;;;10423:87;;;;10354:163:::0;:::o;4585:62::-;;;;:::o;10617:671::-;2556:12;:10;:12::i;:::-;2546:22;;:6;;;;;;;;;;:22;;;2538:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10681:11:::1;;;;;;;;;;;10680:12;10672:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10767:42;10730:15;;:80;;;;;;;;;;;;;;;;;;10821:58;10838:4;10853:15;;;;;;;;;;;4265:1;4323:2;:13;;;;:::i;:::-;4308:12;:28;;;;:::i;:::-;10821:8;:58::i;:::-;10924:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10906:55;;;10970:4;10977:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10906:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10890:13;;:110;;;;;;;;;;;;;;;;;;11011:15;;;;;;;;;;;:31;;;11050:21;11081:4;11087:24;11105:4;11087:9;:24::i;:::-;11112:1;11114::::0;11116:7:::1;:5;:7::i;:::-;11124:15;11011:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11158:13;;;;;;;;;;;11151:29;;;11189:15;;;;;;;;;;;11207:14;11151:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11247:4;11233:11;;:18;;;;;;;;;;;;;;;;;;11276:4;11262:11;;:18;;;;;;;;;;;;;;;;;;10617:671::o:0;6143:143::-;6224:7;6251:11;:18;6263:5;6251:18;;;;;;;;;;;;;;;:27;6270:7;6251:27;;;;;;;;;;;;;;;;6244:34;;6143:143;;;;:::o;11302:218::-;11377:10;;;;;;;;;;;11363:24;;:12;:10;:12::i;:::-;:24;;;11355:33;;;;;;11414:12;;11405:7;:21;;:47;;;;;11439:13;;11430:7;:22;;11405:47;11397:56;;;;;;11475:7;11462:12;:20;;;;11505:7;11491:13;:21;;;;11302:218;:::o;174:98::-;227:7;254:10;247:17;;174:98;:::o;6784:335::-;6894:1;6877:19;;:5;:19;;;6869:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6975:1;6956:21;;:7;:21;;;6948:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7057:6;7027:11;:18;7039:5;7027:18;;;;;;;;;;;;;;;:27;7046:7;7027:27;;;;;;;;;;;;;;;:36;;;;7095:7;7079:32;;7088:5;7079:32;;;7104:6;7079:32;;;;;;:::i;:::-;;;;;;;;6784:335;;;:::o;7127:2180::-;7231:1;7215:18;;:4;:18;;;7207:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7308:1;7294:16;;:2;:16;;;7286:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7378:1;7369:6;:10;7361:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7436:17;7478:7;:5;:7::i;:::-;7470:15;;:4;:15;;;;:32;;;;;7495:7;:5;:7::i;:::-;7489:13;;:2;:13;;;;7470:32;7466:1485;;;7528:4;:10;7533:4;7528:10;;;;;;;;;;;;;;;;;;;;;;;;;7527:11;:24;;;;;7543:4;:8;7548:2;7543:8;;;;;;;;;;;;;;;;;;;;;;;;;7542:9;7527:24;7519:33;;;;;;7579:76;7651:3;7579:67;7601:15;;7591:9;;:25;7590:55;;7631:14;;7590:55;;;7618:12;;7590:55;7579:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7567:88;;7684:13;;;;;;;;;;;7676:21;;:4;:21;;;:55;;;;;7715:15;;;;;;;;;;;7701:30;;:2;:30;;;;7676:55;:83;;;;;7737:18;:22;7756:2;7737:22;;;;;;;;;;;;;;;;;;;;;;;;;7735:24;7676:83;7672:313;;;7799:12;;7789:6;:22;;7781:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7894:14;;7884:6;7868:13;7878:2;7868:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7860:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7958:9;;:11;;;;;;;;;:::i;:::-;;;;;;7672:313;8010:13;;;;;;;;;;;8004:19;;:2;:19;;;:43;;;;;8042:4;8027:20;;:4;:20;;;;8004:43;8001:174;;;8080:79;8155:3;8080:70;8102:16;;8092:9;;:26;8091:58;;8134:15;;8091:58;;;8120:13;;8091:58;8080:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8068:91;;8001:174;8191:28;8222:24;8240:4;8222:9;:24::i;:::-;8191:55;;8266:6;;;;;;;;;;;8265:7;:30;;;;;8282:13;;;;;;;;;;;8276:19;;:2;:19;;;8265:30;:45;;;;;8299:11;;;;;;;;;;;8265:45;:89;;;;;8337:17;;8314:20;:40;8265:89;:123;;;;;8370:18;;8358:9;;:30;8265:123;8261:679;;;8428:13;;8413:12;:28;8409:90;;;8478:1;8466:9;:13;;;;8409:90;8537:1;8525:9;;:13;8517:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8585:69;8602:51;8606:6;8614:38;8618:20;8640:11;;8614:3;:38::i;:::-;8602:3;:51::i;:::-;8585:16;:69::i;:::-;8673:26;8702:21;8673:50;;8767:1;8746:18;:22;8742:106;;;8793:35;8806:21;8793:12;:35::i;:::-;8742:106;8866:9;;:11;;;;;;;;;:::i;:::-;;;;;;8912:12;8896:13;:28;;;;8390:550;8261:679;7504:1447;7466:1485;8976:1;8966:9;:11;8963:161;;;9016:39;9045:9;9016;:24;9034:4;9016:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8991:9;:24;9009:4;8991:24;;;;;;;;;;;;;;;:64;;;;9096:4;9073:39;;9082:4;9073:39;;;9102:9;9073:39;;;;;;:::i;:::-;;;;;;;;8963:161;9150:27;9170:6;9150:9;:15;9160:4;9150:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9134:9;:15;9144:4;9134:15;;;;;;;;;;;;;;;:43;;;;9202:40;9220:21;9231:9;9220:6;:10;;:21;;;;:::i;:::-;9202:9;:13;9212:2;9202:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9188:9;:13;9198:2;9188:13;;;;;;;;;;;;;;;:54;;;;9273:2;9258:41;;9267:4;9258:41;;;9277:21;9288:9;9277:6;:10;;:21;;;;:::i;:::-;9258:41;;;;;;:::i;:::-;;;;;;;;7196:2111;7127:2180;;;:::o;1311:190::-;1397:7;1430:1;1425;:6;;1433:12;1417:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1457:9;1473:1;1469;:5;;;;:::i;:::-;1457:17;;1492:1;1485:8;;;1311:190;;;;;:::o;9423:483::-;5079:4;5070:6;;:13;;;;;;;;;;;;;;;;;;9501:21:::1;9539:1;9525:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9501:40;;9570:4;9552;9557:1;9552:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9596:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9586:4;9591:1;9586:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9629:62;9646:4;9661:15;;;;;;;;;;;9679:11;9629:8;:62::i;:::-;9702:15;;;;;;;;;;;:66;;;9783:11;9809:1;9825:4;9852;9872:15;9702:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9490:416;5115:5:::0;5106:6;;:14;;;;;;;;;;;;;;;;;;9423:483;:::o;1509:246::-;1567:7;1596:1;1591;:6;1587:47;;1621:1;1614:8;;;;1587:47;1644:9;1660:1;1656;:5;;;;:::i;:::-;1644:17;;1689:1;1684;1680;:5;;;;:::i;:::-;:10;1672:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1746:1;1739:8;;;1509:246;;;;;:::o;1763:132::-;1821:7;1848:39;1852:1;1855;1848:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1841:46;;1763:132;;;;:::o;9317:98::-;9374:7;9401:1;9399;:3;9398:9;;9406:1;9398:9;;;9404:1;9398:9;9391:16;;9317:98;;;;:::o;980:179::-;1038:7;1058:9;1074:1;1070;:5;;;;:::i;:::-;1058:17;;1099:1;1094;:6;;1086:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1150:1;1143:8;;;980:179;;;;:::o;1167:136::-;1225:7;1252:43;1256:1;1259;1252:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1245:50;;1167:136;;;;:::o;1903:189::-;1989:7;2021:1;2017;:5;2024:12;2009:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2048:9;2064:1;2060;:5;;;;:::i;:::-;2048:17;;2083:1;2076:8;;;1903:189;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:117::-;5297:1;5294;5287:12;5311:180;5359:77;5356:1;5349:88;5456:4;5453:1;5446:15;5480:4;5477:1;5470:15;5497:281;5580:27;5602:4;5580:27;:::i;:::-;5572:6;5568:40;5710:6;5698:10;5695:22;5674:18;5662:10;5659:34;5656:62;5653:88;;;5721:18;;:::i;:::-;5653:88;5761:10;5757:2;5750:22;5540:238;5497:281;;:::o;5784:129::-;5818:6;5845:20;;:::i;:::-;5835:30;;5874:33;5902:4;5894:6;5874:33;:::i;:::-;5784:129;;;:::o;5919:311::-;5996:4;6086:18;6078:6;6075:30;6072:56;;;6108:18;;:::i;:::-;6072:56;6158:4;6150:6;6146:17;6138:25;;6218:4;6212;6208:15;6200:23;;5919:311;;;:::o;6236:117::-;6345:1;6342;6335:12;6376:710;6472:5;6497:81;6513:64;6570:6;6513:64;:::i;:::-;6497:81;:::i;:::-;6488:90;;6598:5;6627:6;6620:5;6613:21;6661:4;6654:5;6650:16;6643:23;;6714:4;6706:6;6702:17;6694:6;6690:30;6743:3;6735:6;6732:15;6729:122;;;6762:79;;:::i;:::-;6729:122;6877:6;6860:220;6894:6;6889:3;6886:15;6860:220;;;6969:3;6998:37;7031:3;7019:10;6998:37;:::i;:::-;6993:3;6986:50;7065:4;7060:3;7056:14;7049:21;;6936:144;6920:4;6915:3;6911:14;6904:21;;6860:220;;;6864:21;6478:608;;6376:710;;;;;:::o;7109:370::-;7180:5;7229:3;7222:4;7214:6;7210:17;7206:27;7196:122;;7237:79;;:::i;:::-;7196:122;7354:6;7341:20;7379:94;7469:3;7461:6;7454:4;7446:6;7442:17;7379:94;:::i;:::-;7370:103;;7186:293;7109:370;;;;:::o;7485:539::-;7569:6;7618:2;7606:9;7597:7;7593:23;7589:32;7586:119;;;7624:79;;:::i;:::-;7586:119;7772:1;7761:9;7757:17;7744:31;7802:18;7794:6;7791:30;7788:117;;;7824:79;;:::i;:::-;7788:117;7929:78;7999:7;7990:6;7979:9;7975:22;7929:78;:::i;:::-;7919:88;;7715:302;7485:539;;;;:::o;8030:104::-;8075:7;8104:24;8122:5;8104:24;:::i;:::-;8093:35;;8030:104;;;:::o;8140:142::-;8243:32;8269:5;8243:32;:::i;:::-;8238:3;8231:45;8140:142;;:::o;8288:254::-;8397:4;8435:2;8424:9;8420:18;8412:26;;8448:87;8532:1;8521:9;8517:17;8508:6;8448:87;:::i;:::-;8288:254;;;;:::o;8548:329::-;8607:6;8656:2;8644:9;8635:7;8631:23;8627:32;8624:119;;;8662:79;;:::i;:::-;8624:119;8782:1;8807:53;8852:7;8843:6;8832:9;8828:22;8807:53;:::i;:::-;8797:63;;8753:117;8548:329;;;;:::o;8883:118::-;8970:24;8988:5;8970:24;:::i;:::-;8965:3;8958:37;8883:118;;:::o;9007:222::-;9100:4;9138:2;9127:9;9123:18;9115:26;;9151:71;9219:1;9208:9;9204:17;9195:6;9151:71;:::i;:::-;9007:222;;;;:::o;9235:474::-;9303:6;9311;9360:2;9348:9;9339:7;9335:23;9331:32;9328:119;;;9366:79;;:::i;:::-;9328:119;9486:1;9511:53;9556:7;9547:6;9536:9;9532:22;9511:53;:::i;:::-;9501:63;;9457:117;9613:2;9639:53;9684:7;9675:6;9664:9;9660:22;9639:53;:::i;:::-;9629:63;;9584:118;9235:474;;;;;:::o;9715:180::-;9763:77;9760:1;9753:88;9860:4;9857:1;9850:15;9884:4;9881:1;9874:15;9901:102;9943:8;9990:5;9987:1;9983:13;9962:34;;9901:102;;;:::o;10009:848::-;10070:5;10077:4;10101:6;10092:15;;10125:5;10116:14;;10139:712;10160:1;10150:8;10147:15;10139:712;;;10255:4;10250:3;10246:14;10240:4;10237:24;10234:50;;;10264:18;;:::i;:::-;10234:50;10314:1;10304:8;10300:16;10297:451;;;10729:4;10722:5;10718:16;10709:25;;10297:451;10779:4;10773;10769:15;10761:23;;10809:32;10832:8;10809:32;:::i;:::-;10797:44;;10139:712;;;10009:848;;;;;;;:::o;10863:1073::-;10917:5;11108:8;11098:40;;11129:1;11120:10;;11131:5;;11098:40;11157:4;11147:36;;11174:1;11165:10;;11176:5;;11147:36;11243:4;11291:1;11286:27;;;;11327:1;11322:191;;;;11236:277;;11286:27;11304:1;11295:10;;11306:5;;;11322:191;11367:3;11357:8;11354:17;11351:43;;;11374:18;;:::i;:::-;11351:43;11423:8;11420:1;11416:16;11407:25;;11458:3;11451:5;11448:14;11445:40;;;11465:18;;:::i;:::-;11445:40;11498:5;;;11236:277;;11622:2;11612:8;11609:16;11603:3;11597:4;11594:13;11590:36;11572:2;11562:8;11559:16;11554:2;11548:4;11545:12;11541:35;11525:111;11522:246;;;11678:8;11672:4;11668:19;11659:28;;11713:3;11706:5;11703:14;11700:40;;;11720:18;;:::i;:::-;11700:40;11753:5;;11522:246;11793:42;11831:3;11821:8;11815:4;11812:1;11793:42;:::i;:::-;11778:57;;;;11867:4;11862:3;11858:14;11851:5;11848:25;11845:51;;;11876:18;;:::i;:::-;11845:51;11925:4;11918:5;11914:16;11905:25;;10863:1073;;;;;;:::o;11942:281::-;12000:5;12024:23;12042:4;12024:23;:::i;:::-;12016:31;;12068:25;12084:8;12068:25;:::i;:::-;12056:37;;12112:104;12149:66;12139:8;12133:4;12112:104;:::i;:::-;12103:113;;11942:281;;;;:::o;12229:410::-;12269:7;12292:20;12310:1;12292:20;:::i;:::-;12287:25;;12326:20;12344:1;12326:20;:::i;:::-;12321:25;;12381:1;12378;12374:9;12403:30;12421:11;12403:30;:::i;:::-;12392:41;;12582:1;12573:7;12569:15;12566:1;12563:22;12543:1;12536:9;12516:83;12493:139;;12612:18;;:::i;:::-;12493:139;12277:362;12229:410;;;;:::o;12645:182::-;12785:34;12781:1;12773:6;12769:14;12762:58;12645:182;:::o;12833:366::-;12975:3;12996:67;13060:2;13055:3;12996:67;:::i;:::-;12989:74;;13072:93;13161:3;13072:93;:::i;:::-;13190:2;13185:3;13181:12;13174:19;;12833:366;;;:::o;13205:419::-;13371:4;13409:2;13398:9;13394:18;13386:26;;13458:9;13452:4;13448:20;13444:1;13433:9;13429:17;13422:47;13486:131;13612:4;13486:131;:::i;:::-;13478:139;;13205:419;;;:::o;13630:180::-;13678:77;13675:1;13668:88;13775:4;13772:1;13765:15;13799:4;13796:1;13789:15;13816:173;13956:25;13952:1;13944:6;13940:14;13933:49;13816:173;:::o;13995:366::-;14137:3;14158:67;14222:2;14217:3;14158:67;:::i;:::-;14151:74;;14234:93;14323:3;14234:93;:::i;:::-;14352:2;14347:3;14343:12;14336:19;;13995:366;;;:::o;14367:419::-;14533:4;14571:2;14560:9;14556:18;14548:26;;14620:9;14614:4;14610:20;14606:1;14595:9;14591:17;14584:47;14648:131;14774:4;14648:131;:::i;:::-;14640:139;;14367:419;;;:::o;14792:143::-;14849:5;14880:6;14874:13;14865:22;;14896:33;14923:5;14896:33;:::i;:::-;14792:143;;;;:::o;14941:351::-;15011:6;15060:2;15048:9;15039:7;15035:23;15031:32;15028:119;;;15066:79;;:::i;:::-;15028:119;15186:1;15211:64;15267:7;15258:6;15247:9;15243:22;15211:64;:::i;:::-;15201:74;;15157:128;14941:351;;;;:::o;15298:332::-;15419:4;15457:2;15446:9;15442:18;15434:26;;15470:71;15538:1;15527:9;15523:17;15514:6;15470:71;:::i;:::-;15551:72;15619:2;15608:9;15604:18;15595:6;15551:72;:::i;:::-;15298:332;;;;;:::o;15636:85::-;15681:7;15710:5;15699:16;;15636:85;;;:::o;15727:60::-;15755:3;15776:5;15769:12;;15727:60;;;:::o;15793:158::-;15851:9;15884:61;15902:42;15911:32;15937:5;15911:32;:::i;:::-;15902:42;:::i;:::-;15884:61;:::i;:::-;15871:74;;15793:158;;;:::o;15957:147::-;16052:45;16091:5;16052:45;:::i;:::-;16047:3;16040:58;15957:147;;:::o;16110:807::-;16359:4;16397:3;16386:9;16382:19;16374:27;;16411:71;16479:1;16468:9;16464:17;16455:6;16411:71;:::i;:::-;16492:72;16560:2;16549:9;16545:18;16536:6;16492:72;:::i;:::-;16574:80;16650:2;16639:9;16635:18;16626:6;16574:80;:::i;:::-;16664;16740:2;16729:9;16725:18;16716:6;16664:80;:::i;:::-;16754:73;16822:3;16811:9;16807:19;16798:6;16754:73;:::i;:::-;16837;16905:3;16894:9;16890:19;16881:6;16837:73;:::i;:::-;16110:807;;;;;;;;;:::o;16923:143::-;16980:5;17011:6;17005:13;16996:22;;17027:33;17054:5;17027:33;:::i;:::-;16923:143;;;;:::o;17072:663::-;17160:6;17168;17176;17225:2;17213:9;17204:7;17200:23;17196:32;17193:119;;;17231:79;;:::i;:::-;17193:119;17351:1;17376:64;17432:7;17423:6;17412:9;17408:22;17376:64;:::i;:::-;17366:74;;17322:128;17489:2;17515:64;17571:7;17562:6;17551:9;17547:22;17515:64;:::i;:::-;17505:74;;17460:129;17628:2;17654:64;17710:7;17701:6;17690:9;17686:22;17654:64;:::i;:::-;17644:74;;17599:129;17072:663;;;;;:::o;17741:332::-;17862:4;17900:2;17889:9;17885:18;17877:26;;17913:71;17981:1;17970:9;17966:17;17957:6;17913:71;:::i;:::-;17994:72;18062:2;18051:9;18047:18;18038:6;17994:72;:::i;:::-;17741:332;;;;;:::o;18079:116::-;18149:21;18164:5;18149:21;:::i;:::-;18142:5;18139:32;18129:60;;18185:1;18182;18175:12;18129:60;18079:116;:::o;18201:137::-;18255:5;18286:6;18280:13;18271:22;;18302:30;18326:5;18302:30;:::i;:::-;18201:137;;;;:::o;18344:345::-;18411:6;18460:2;18448:9;18439:7;18435:23;18431:32;18428:119;;;18466:79;;:::i;:::-;18428:119;18586:1;18611:61;18664:7;18655:6;18644:9;18640:22;18611:61;:::i;:::-;18601:71;;18557:125;18344:345;;;;:::o;18695:223::-;18835:34;18831:1;18823:6;18819:14;18812:58;18904:6;18899:2;18891:6;18887:15;18880:31;18695:223;:::o;18924:366::-;19066:3;19087:67;19151:2;19146:3;19087:67;:::i;:::-;19080:74;;19163:93;19252:3;19163:93;:::i;:::-;19281:2;19276:3;19272:12;19265:19;;18924:366;;;:::o;19296:419::-;19462:4;19500:2;19489:9;19485:18;19477:26;;19549:9;19543:4;19539:20;19535:1;19524:9;19520:17;19513:47;19577:131;19703:4;19577:131;:::i;:::-;19569:139;;19296:419;;;:::o;19721:221::-;19861:34;19857:1;19849:6;19845:14;19838:58;19930:4;19925:2;19917:6;19913:15;19906:29;19721:221;:::o;19948:366::-;20090:3;20111:67;20175:2;20170:3;20111:67;:::i;:::-;20104:74;;20187:93;20276:3;20187:93;:::i;:::-;20305:2;20300:3;20296:12;20289:19;;19948:366;;;:::o;20320:419::-;20486:4;20524:2;20513:9;20509:18;20501:26;;20573:9;20567:4;20563:20;20559:1;20548:9;20544:17;20537:47;20601:131;20727:4;20601:131;:::i;:::-;20593:139;;20320:419;;;:::o;20745:224::-;20885:34;20881:1;20873:6;20869:14;20862:58;20954:7;20949:2;20941:6;20937:15;20930:32;20745:224;:::o;20975:366::-;21117:3;21138:67;21202:2;21197:3;21138:67;:::i;:::-;21131:74;;21214:93;21303:3;21214:93;:::i;:::-;21332:2;21327:3;21323:12;21316:19;;20975:366;;;:::o;21347:419::-;21513:4;21551:2;21540:9;21536:18;21528:26;;21600:9;21594:4;21590:20;21586:1;21575:9;21571:17;21564:47;21628:131;21754:4;21628:131;:::i;:::-;21620:139;;21347:419;;;:::o;21772:222::-;21912:34;21908:1;21900:6;21896:14;21889:58;21981:5;21976:2;21968:6;21964:15;21957:30;21772:222;:::o;22000:366::-;22142:3;22163:67;22227:2;22222:3;22163:67;:::i;:::-;22156:74;;22239:93;22328:3;22239:93;:::i;:::-;22357:2;22352:3;22348:12;22341:19;;22000:366;;;:::o;22372:419::-;22538:4;22576:2;22565:9;22561:18;22553:26;;22625:9;22619:4;22615:20;22611:1;22600:9;22596:17;22589:47;22653:131;22779:4;22653:131;:::i;:::-;22645:139;;22372:419;;;:::o;22797:228::-;22937:34;22933:1;22925:6;22921:14;22914:58;23006:11;23001:2;22993:6;22989:15;22982:36;22797:228;:::o;23031:366::-;23173:3;23194:67;23258:2;23253:3;23194:67;:::i;:::-;23187:74;;23270:93;23359:3;23270:93;:::i;:::-;23388:2;23383:3;23379:12;23372:19;;23031:366;;;:::o;23403:419::-;23569:4;23607:2;23596:9;23592:18;23584:26;;23656:9;23650:4;23646:20;23642:1;23631:9;23627:17;23620:47;23684:131;23810:4;23684:131;:::i;:::-;23676:139;;23403:419;;;:::o;23828:175::-;23968:27;23964:1;23956:6;23952:14;23945:51;23828:175;:::o;24009:366::-;24151:3;24172:67;24236:2;24231:3;24172:67;:::i;:::-;24165:74;;24248:93;24337:3;24248:93;:::i;:::-;24366:2;24361:3;24357:12;24350:19;;24009:366;;;:::o;24381:419::-;24547:4;24585:2;24574:9;24570:18;24562:26;;24634:9;24628:4;24624:20;24620:1;24609:9;24605:17;24598:47;24662:131;24788:4;24662:131;:::i;:::-;24654:139;;24381:419;;;:::o;24806:191::-;24846:3;24865:20;24883:1;24865:20;:::i;:::-;24860:25;;24899:20;24917:1;24899:20;:::i;:::-;24894:25;;24942:1;24939;24935:9;24928:16;;24963:3;24960:1;24957:10;24954:36;;;24970:18;;:::i;:::-;24954:36;24806:191;;;;:::o;25003:176::-;25143:28;25139:1;25131:6;25127:14;25120:52;25003:176;:::o;25185:366::-;25327:3;25348:67;25412:2;25407:3;25348:67;:::i;:::-;25341:74;;25424:93;25513:3;25424:93;:::i;:::-;25542:2;25537:3;25533:12;25526:19;;25185:366;;;:::o;25557:419::-;25723:4;25761:2;25750:9;25746:18;25738:26;;25810:9;25804:4;25800:20;25796:1;25785:9;25781:17;25774:47;25838:131;25964:4;25838:131;:::i;:::-;25830:139;;25557:419;;;:::o;25982:233::-;26021:3;26044:24;26062:5;26044:24;:::i;:::-;26035:33;;26090:66;26083:5;26080:77;26077:103;;26160:18;;:::i;:::-;26077:103;26207:1;26200:5;26196:13;26189:20;;25982:233;;;:::o;26221:173::-;26361:25;26357:1;26349:6;26345:14;26338:49;26221:173;:::o;26400:366::-;26542:3;26563:67;26627:2;26622:3;26563:67;:::i;:::-;26556:74;;26639:93;26728:3;26639:93;:::i;:::-;26757:2;26752:3;26748:12;26741:19;;26400:366;;;:::o;26772:419::-;26938:4;26976:2;26965:9;26961:18;26953:26;;27025:9;27019:4;27015:20;27011:1;27000:9;26996:17;26989:47;27053:131;27179:4;27053:131;:::i;:::-;27045:139;;26772:419;;;:::o;27197:194::-;27237:4;27257:20;27275:1;27257:20;:::i;:::-;27252:25;;27291:20;27309:1;27291:20;:::i;:::-;27286:25;;27335:1;27332;27328:9;27320:17;;27359:1;27353:4;27350:11;27347:37;;;27364:18;;:::i;:::-;27347:37;27197:194;;;;:::o;27397:114::-;27464:6;27498:5;27492:12;27482:22;;27397:114;;;:::o;27517:184::-;27616:11;27650:6;27645:3;27638:19;27690:4;27685:3;27681:14;27666:29;;27517:184;;;;:::o;27707:132::-;27774:4;27797:3;27789:11;;27827:4;27822:3;27818:14;27810:22;;27707:132;;;:::o;27845:108::-;27922:24;27940:5;27922:24;:::i;:::-;27917:3;27910:37;27845:108;;:::o;27959:179::-;28028:10;28049:46;28091:3;28083:6;28049:46;:::i;:::-;28127:4;28122:3;28118:14;28104:28;;27959:179;;;;:::o;28144:113::-;28214:4;28246;28241:3;28237:14;28229:22;;28144:113;;;:::o;28293:732::-;28412:3;28441:54;28489:5;28441:54;:::i;:::-;28511:86;28590:6;28585:3;28511:86;:::i;:::-;28504:93;;28621:56;28671:5;28621:56;:::i;:::-;28700:7;28731:1;28716:284;28741:6;28738:1;28735:13;28716:284;;;28817:6;28811:13;28844:63;28903:3;28888:13;28844:63;:::i;:::-;28837:70;;28930:60;28983:6;28930:60;:::i;:::-;28920:70;;28776:224;28763:1;28760;28756:9;28751:14;;28716:284;;;28720:14;29016:3;29009:10;;28417:608;;;28293:732;;;;:::o;29031:831::-;29294:4;29332:3;29321:9;29317:19;29309:27;;29346:71;29414:1;29403:9;29399:17;29390:6;29346:71;:::i;:::-;29427:80;29503:2;29492:9;29488:18;29479:6;29427:80;:::i;:::-;29554:9;29548:4;29544:20;29539:2;29528:9;29524:18;29517:48;29582:108;29685:4;29676:6;29582:108;:::i;:::-;29574:116;;29700:72;29768:2;29757:9;29753:18;29744:6;29700:72;:::i;:::-;29782:73;29850:3;29839:9;29835:19;29826:6;29782:73;:::i;:::-;29031:831;;;;;;;;:::o;29868:180::-;29916:77;29913:1;29906:88;30013:4;30010:1;30003:15;30037:4;30034:1;30027:15;30054:185;30094:1;30111:20;30129:1;30111:20;:::i;:::-;30106:25;;30145:20;30163:1;30145:20;:::i;:::-;30140:25;;30184:1;30174:35;;30189:18;;:::i;:::-;30174:35;30231:1;30228;30224:9;30219:14;;30054:185;;;;:::o;30245:220::-;30385:34;30381:1;30373:6;30369:14;30362:58;30454:3;30449:2;30441:6;30437:15;30430:28;30245:220;:::o;30471:366::-;30613:3;30634:67;30698:2;30693:3;30634:67;:::i;:::-;30627:74;;30710:93;30799:3;30710:93;:::i;:::-;30828:2;30823:3;30819:12;30812:19;;30471:366;;;:::o;30843:419::-;31009:4;31047:2;31036:9;31032:18;31024:26;;31096:9;31090:4;31086:20;31082:1;31071:9;31067:17;31060:47;31124:131;31250:4;31124:131;:::i;:::-;31116:139;;30843:419;;;:::o;31268:177::-;31408:29;31404:1;31396:6;31392:14;31385:53;31268:177;:::o;31451:366::-;31593:3;31614:67;31678:2;31673:3;31614:67;:::i;:::-;31607:74;;31690:93;31779:3;31690:93;:::i;:::-;31808:2;31803:3;31799:12;31792:19;;31451:366;;;:::o;31823:419::-;31989:4;32027:2;32016:9;32012:18;32004:26;;32076:9;32070:4;32066:20;32062:1;32051:9;32047:17;32040:47;32104:131;32230:4;32104:131;:::i;:::-;32096:139;;31823:419;;;:::o

Swarm Source

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