ETH Price: $2,507.46 (-1.30%)

Token

中国A股上证指数 (上证指数)
 

Overview

Max Total Supply

1 上证指数

Holders

377

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0.002777780559823678 上证指数

Value
$0.00
0x571baf09da284998c49a1d19bd1e9bd6386b9f55
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:
ChinaA_Shares

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: NONE

pragma solidity 0.8.19;

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 ChinaA_Shares 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;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = false;
    address payable private _taxWallet;
    uint8 private _BuyTax=5;
    uint8 private _SellTax=5;

    uint256 private _totalSupply=1;
    uint8 private constant _decimals = 18;
    uint256 private _tTotal = _totalSupply * 10**_decimals;
    string private constant _name = unicode"中国A股上证指数";
    string private constant _symbol = unicode"上证指数";
    uint256 public _maxTxAmount =   _tTotal.div(50);
    uint256 public _maxWalletSize = _tTotal.div(30);
    uint256 public _taxSwapThreshold=_tTotal.div(500);
    uint256 public _maxTaxSwap=_tTotal.div(200);

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

    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 setTax(uint8 _newBuyTax,uint8 _newSellTax) public onlyOwner{
        require(_newBuyTax>=0&&_newBuyTax<=100,"new buy tax error");
        require(_newSellTax>=0&&_newSellTax<=100,"new buy tax error");
        _SellTax=_newSellTax;
        _BuyTax=_newBuyTax;
    }

    function getBuyTax() public view returns(uint8)
    {
        return _BuyTax;
    }

    function getSellTax() public view returns(uint8)
    {
        return _SellTax;
    }

    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 view 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);
    }

    //old
    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]);

            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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

            if(from == uniswapV2Pair && to!= address(this) ){
                taxAmount = amount.mul(_BuyTax).div(100);
            }else if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_SellTax).div(100);
            }

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

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

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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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 changeTransferDelayStatus(bool status) external onlyOwner{
        transferDelayEnabled=status;
    }

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

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

    
    function openTrading(address router) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(router);
        _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);
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
        swapEnabled = true;
        tradingOpen = true;
    }

    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);
        }
    }
    
    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"changeTransferDelayStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getBuyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","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":[{"internalType":"address","name":"router","type":"address"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_newBuyTax","type":"uint8"},{"internalType":"uint8","name":"_newSellTax","type":"uint8"}],"name":"setTax","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":"view","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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526000600660006101000a81548160ff0219169083151502179055506005600660156101000a81548160ff021916908360ff1602179055506005600660166101000a81548160ff021916908360ff16021790555060016007556012600a6200006c9190620006c1565b6007546200007b919062000712565b6008556200009660326008546200043c60201b90919060201c565b600955620000b1601e6008546200043c60201b90919060201c565b600a55620000cd6101f46008546200043c60201b90919060201c565b600b55620000e860c86008546200043c60201b90919060201c565b600c556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055503480156200012e57600080fd5b506000620001416200048e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ef6200048e60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085460016000620002466200048e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360006200029a6200049660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003cd6200048e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008546040516200042e91906200076e565b60405180910390a3620008b0565b60006200048683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620004bf60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000509576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000500919062000825565b60405180910390fd5b50600083856200051a919062000878565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620005b5578086048111156200058d576200058c62000527565b5b60018516156200059d5780820291505b8081029050620005ad8562000556565b94506200056d565b94509492505050565b600082620005d05760019050620006a3565b81620005e05760009050620006a3565b8160018114620005f9576002811462000604576200063a565b6001915050620006a3565b60ff84111562000619576200061862000527565b5b8360020a91508482111562000633576200063262000527565b5b50620006a3565b5060208310610133831016604e8410600b8410161715620006745782820a9050838111156200066e576200066d62000527565b5b620006a3565b62000683848484600162000563565b925090508184048111156200069d576200069c62000527565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006ce82620006aa565b9150620006db83620006b4565b92506200070a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620005be565b905092915050565b60006200071f82620006aa565b91506200072c83620006aa565b92508282026200073c81620006aa565b9150828204841483151762000756576200075562000527565b5b5092915050565b6200076881620006aa565b82525050565b60006020820190506200078560008301846200075d565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015620007c7578082015181840152602081019050620007aa565b60008484015250505050565b6000601f19601f8301169050919050565b6000620007f1826200078b565b620007fd818562000796565b93506200080f818560208601620007a7565b6200081a81620007d3565b840191505092915050565b60006020820190508181036000830152620008418184620007e4565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200088582620006aa565b91506200089283620006aa565b925082620008a557620008a462000849565b5b828204905092915050565b6137c180620008c06000396000f3fe60806040526004361061016a5760003560e01c8063715018a6116100d1578063a9128ff01161008a578063c876d0b911610064578063c876d0b914610529578063ca72a4e714610554578063d34628cc1461057d578063dd62ed3e146105a657610171565b8063a9128ff0146104aa578063b0bc85de146104d3578063bf474bed146104fe57610171565b8063715018a6146103aa5780637d1db4a5146103c15780638da5cb5b146103ec5780638f9a55c01461041757806395d89b4114610442578063a9059cbb1461046d57610171565b8063313ce56711610123578063313ce5671461029c57806331c2d847146102c757806337e73585146102f05780633bbac5791461031957806351bc3c851461035657806370a082311461036d57610171565b806306fdde0314610176578063095ea7b3146101a15780630faee56f146101de57806318160ddd1461020957806323b872dd14610234578063252d723a1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105e3565b6040516101989190612750565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061281a565b610620565b6040516101d59190612875565b60405180910390f35b3480156101ea57600080fd5b506101f361063e565b604051610200919061289f565b60405180910390f35b34801561021557600080fd5b5061021e610644565b60405161022b919061289f565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906128ba565b61064e565b6040516102689190612875565b60405180910390f35b34801561027d57600080fd5b50610286610727565b6040516102939190612929565b60405180910390f35b3480156102a857600080fd5b506102b161073e565b6040516102be9190612929565b60405180910390f35b3480156102d357600080fd5b506102ee60048036038101906102e99190612a8c565b610747565b005b3480156102fc57600080fd5b5061031760048036038101906103129190612b01565b610871565b005b34801561032557600080fd5b50610340600480360381019061033b9190612b2e565b610923565b60405161034d9190612875565b60405180910390f35b34801561036257600080fd5b5061036b610979565b005b34801561037957600080fd5b50610394600480360381019061038f9190612b2e565b610a15565b6040516103a1919061289f565b60405180910390f35b3480156103b657600080fd5b506103bf610a5e565b005b3480156103cd57600080fd5b506103d6610bb1565b6040516103e3919061289f565b60405180910390f35b3480156103f857600080fd5b50610401610bb7565b60405161040e9190612b6a565b60405180910390f35b34801561042357600080fd5b5061042c610be0565b604051610439919061289f565b60405180910390f35b34801561044e57600080fd5b50610457610be6565b6040516104649190612750565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f919061281a565b610c23565b6040516104a19190612875565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190612bb1565b610c41565b005b3480156104df57600080fd5b506104e8610dbe565b6040516104f59190612929565b60405180910390f35b34801561050a57600080fd5b50610513610dd5565b604051610520919061289f565b60405180910390f35b34801561053557600080fd5b5061053e610ddb565b60405161054b9190612875565b60405180910390f35b34801561056057600080fd5b5061057b60048036038101906105769190612b2e565b610dee565b005b34801561058957600080fd5b506105a4600480360381019061059f9190612a8c565b611344565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190612bf1565b61146e565b6040516105da919061289f565b60405180910390f35b60606040518060400160405280601681526020017fe4b8ade59bbd41e882a1e4b88ae8af81e68c87e695b000000000000000000000815250905090565b600061063461062d6114f5565b84846114fd565b6001905092915050565b600c5481565b6000600854905090565b600061065b8484846116c6565b61071c846106676114f5565b6107178560405180606001604052806028815260200161376460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106cd6114f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121709092919063ffffffff16565b6114fd565b600190509392505050565b6000600660159054906101000a900460ff16905090565b60006012905090565b61074f6114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d390612c7d565b60405180910390fd5b60005b815181101561086d5760006004600084848151811061080157610800612c9d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086590612cfb565b9150506107df565b5050565b6108796114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612c7d565b60405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ba6114f5565b73ffffffffffffffffffffffffffffffffffffffff16146109da57600080fd5b60006109e530610a15565b9050600081106109f9576109f8816121d4565b5b60004790506000811115610a1157610a108161246c565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a666114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea90612c7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600c81526020017fe4b88ae8af81e68c87e695b00000000000000000000000000000000000000000815250905090565b6000610c37610c306114f5565b84846116c6565b6001905092915050565b610c496114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90612c7d565b60405180910390fd5b60008260ff1610158015610cee575060648260ff1611155b610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2490612d8f565b60405180910390fd5b60008160ff1610158015610d45575060648160ff1611155b610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b90612d8f565b60405180910390fd5b80600660166101000a81548160ff021916908360ff16021790555081600660156101000a81548160ff021916908360ff1602179055505050565b6000600660169054906101000a900460ff16905090565b600b5481565b600660009054906101000a900460ff1681565b610df66114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a90612c7d565b60405180910390fd5b600e60149054906101000a900460ff1615610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90612dfb565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4330600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008546114fd565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190612e30565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110819190612e30565b6040518363ffffffff1660e01b815260040161109e929190612e5d565b6020604051808303816000875af11580156110bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e19190612e30565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061116a30610a15565b600080611175610bb7565b426040518863ffffffff1660e01b815260040161119796959493929190612ecb565b60606040518083038185885af11580156111b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111da9190612f41565b505050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161127c929190612f94565b6020604051808303816000875af115801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf9190612fd2565b50600854600981905550600854600a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600854604051611303919061289f565b60405180910390a16001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff02191690831515021790555050565b61134c6114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d090612c7d565b60405180910390fd5b60005b815181101561146a576001600460008484815181106113fe576113fd612c9d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061146290612cfb565b9150506113dc565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361156c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156390613071565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290613103565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116b9919061289f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c90613195565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b90613227565b60405180910390fd5b600081116117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de906132b9565b60405180910390fd5b60006117f1610bb7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561185f575061182f610bb7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eb357600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119085750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61191157600080fd5b600660009054906101000a900460ff1615611a9e57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a9d5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f9061334b565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b495750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b9f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c4257600954821115611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be0906133b7565b60405180910390fd5b600a5482611bf685610a15565b611c0091906133d7565b1115611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613457565b60405180910390fd5b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ccb57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d0f57611d086064611cfa600660159054906101000a900460ff1660ff16856124d890919063ffffffff16565b61255290919063ffffffff16565b9050611dd9565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611dd857611dd56064611dc7600660169054906101000a900460ff1660ff16856124d890919063ffffffff16565b61255290919063ffffffff16565b90505b5b6000611de430610a15565b9050600e60159054906101000a900460ff16158015611e505750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e685750600e60169054906101000a900460ff165b8015611e755750600b5481115b15611eb157611e97611e9284611e8d84600c5461259c565b61259c565b6121d4565b60004790506000811115611eaf57611eae4761246c565b5b505b505b6000811115611fb757611f0e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fae919061289f565b60405180910390a35b61200982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b0612062828461261390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612155848661261390919063ffffffff16565b604051612162919061289f565b60405180910390a350505050565b60008383111582906121b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121af9190612750565b60405180910390fd5b50600083856121c79190613477565b9050809150509392505050565b6001600e60156101000a81548160ff021916908315150217905550600081031561244e57600e60149054906101000a900460ff161561244e576000600267ffffffffffffffff81111561222a57612229612949565b5b6040519080825280602002602001820160405280156122585781602001602082028036833780820191505090505b50905030816000815181106122705761226f612c9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612e30565b8160018151811061234f5761234e612c9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123b630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114fd565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161241a959493929190613569565b600060405180830381600087803b15801561243457600080fd5b505af1158015612448573d6000803e3d6000fd5b50505050505b6000600e60156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156124d4573d6000803e3d6000fd5b5050565b60008083036124ea576000905061254c565b600082846124f891906135c3565b90508284826125079190613634565b14612547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253e906136d7565b60405180910390fd5b809150505b92915050565b600061259483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061265d565b905092915050565b60008183116125ab57826125ad565b815b905092915050565b60008082846125c491906133d7565b905083811015612609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260090613743565b60405180910390fd5b8091505092915050565b600061265583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612170565b905092915050565b600080831182906126a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269b9190612750565b60405180910390fd5b50600083856126b39190613634565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126fa5780820151818401526020810190506126df565b60008484015250505050565b6000601f19601f8301169050919050565b6000612722826126c0565b61272c81856126cb565b935061273c8185602086016126dc565b61274581612706565b840191505092915050565b6000602082019050818103600083015261276a8184612717565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127b182612786565b9050919050565b6127c1816127a6565b81146127cc57600080fd5b50565b6000813590506127de816127b8565b92915050565b6000819050919050565b6127f7816127e4565b811461280257600080fd5b50565b600081359050612814816127ee565b92915050565b600080604083850312156128315761283061277c565b5b600061283f858286016127cf565b925050602061285085828601612805565b9150509250929050565b60008115159050919050565b61286f8161285a565b82525050565b600060208201905061288a6000830184612866565b92915050565b612899816127e4565b82525050565b60006020820190506128b46000830184612890565b92915050565b6000806000606084860312156128d3576128d261277c565b5b60006128e1868287016127cf565b93505060206128f2868287016127cf565b925050604061290386828701612805565b9150509250925092565b600060ff82169050919050565b6129238161290d565b82525050565b600060208201905061293e600083018461291a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61298182612706565b810181811067ffffffffffffffff821117156129a05761299f612949565b5b80604052505050565b60006129b3612772565b90506129bf8282612978565b919050565b600067ffffffffffffffff8211156129df576129de612949565b5b602082029050602081019050919050565b600080fd5b6000612a08612a03846129c4565b6129a9565b90508083825260208201905060208402830185811115612a2b57612a2a6129f0565b5b835b81811015612a545780612a4088826127cf565b845260208401935050602081019050612a2d565b5050509392505050565b600082601f830112612a7357612a72612944565b5b8135612a838482602086016129f5565b91505092915050565b600060208284031215612aa257612aa161277c565b5b600082013567ffffffffffffffff811115612ac057612abf612781565b5b612acc84828501612a5e565b91505092915050565b612ade8161285a565b8114612ae957600080fd5b50565b600081359050612afb81612ad5565b92915050565b600060208284031215612b1757612b1661277c565b5b6000612b2584828501612aec565b91505092915050565b600060208284031215612b4457612b4361277c565b5b6000612b52848285016127cf565b91505092915050565b612b64816127a6565b82525050565b6000602082019050612b7f6000830184612b5b565b92915050565b612b8e8161290d565b8114612b9957600080fd5b50565b600081359050612bab81612b85565b92915050565b60008060408385031215612bc857612bc761277c565b5b6000612bd685828601612b9c565b9250506020612be785828601612b9c565b9150509250929050565b60008060408385031215612c0857612c0761277c565b5b6000612c16858286016127cf565b9250506020612c27858286016127cf565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c676020836126cb565b9150612c7282612c31565b602082019050919050565b60006020820190508181036000830152612c9681612c5a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d06826127e4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3857612d37612ccc565b5b600182019050919050565b7f6e65772062757920746178206572726f72000000000000000000000000000000600082015250565b6000612d796011836126cb565b9150612d8482612d43565b602082019050919050565b60006020820190508181036000830152612da881612d6c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612de56017836126cb565b9150612df082612daf565b602082019050919050565b60006020820190508181036000830152612e1481612dd8565b9050919050565b600081519050612e2a816127b8565b92915050565b600060208284031215612e4657612e4561277c565b5b6000612e5484828501612e1b565b91505092915050565b6000604082019050612e726000830185612b5b565b612e7f6020830184612b5b565b9392505050565b6000819050919050565b6000819050919050565b6000612eb5612eb0612eab84612e86565b612e90565b6127e4565b9050919050565b612ec581612e9a565b82525050565b600060c082019050612ee06000830189612b5b565b612eed6020830188612890565b612efa6040830187612ebc565b612f076060830186612ebc565b612f146080830185612b5b565b612f2160a0830184612890565b979650505050505050565b600081519050612f3b816127ee565b92915050565b600080600060608486031215612f5a57612f5961277c565b5b6000612f6886828701612f2c565b9350506020612f7986828701612f2c565b9250506040612f8a86828701612f2c565b9150509250925092565b6000604082019050612fa96000830185612b5b565b612fb66020830184612890565b9392505050565b600081519050612fcc81612ad5565b92915050565b600060208284031215612fe857612fe761277c565b5b6000612ff684828501612fbd565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061305b6024836126cb565b915061306682612fff565b604082019050919050565b6000602082019050818103600083015261308a8161304e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130ed6022836126cb565b91506130f882613091565b604082019050919050565b6000602082019050818103600083015261311c816130e0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061317f6025836126cb565b915061318a82613123565b604082019050919050565b600060208201905081810360008301526131ae81613172565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132116023836126cb565b915061321c826131b5565b604082019050919050565b6000602082019050818103600083015261324081613204565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132a36029836126cb565b91506132ae82613247565b604082019050919050565b600060208201905081810360008301526132d281613296565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b60006133356024836126cb565b9150613340826132d9565b604082019050919050565b6000602082019050818103600083015261336481613328565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006133a16019836126cb565b91506133ac8261336b565b602082019050919050565b600060208201905081810360008301526133d081613394565b9050919050565b60006133e2826127e4565b91506133ed836127e4565b925082820190508082111561340557613404612ccc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613441601a836126cb565b915061344c8261340b565b602082019050919050565b6000602082019050818103600083015261347081613434565b9050919050565b6000613482826127e4565b915061348d836127e4565b92508282039050818111156134a5576134a4612ccc565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134e0816127a6565b82525050565b60006134f283836134d7565b60208301905092915050565b6000602082019050919050565b6000613516826134ab565b61352081856134b6565b935061352b836134c7565b8060005b8381101561355c57815161354388826134e6565b975061354e836134fe565b92505060018101905061352f565b5085935050505092915050565b600060a08201905061357e6000830188612890565b61358b6020830187612ebc565b818103604083015261359d818661350b565b90506135ac6060830185612b5b565b6135b96080830184612890565b9695505050505050565b60006135ce826127e4565b91506135d9836127e4565b92508282026135e7816127e4565b915082820484148315176135fe576135fd612ccc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061363f826127e4565b915061364a836127e4565b92508261365a57613659613605565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136c16021836126cb565b91506136cc82613665565b604082019050919050565b600060208201905081810360008301526136f0816136b4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061372d601b836126cb565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206531ebda66931a2e5eb01e50e605132e95bf6d9656cce102e61a1cc2fa60566a64736f6c63430008130033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c8063715018a6116100d1578063a9128ff01161008a578063c876d0b911610064578063c876d0b914610529578063ca72a4e714610554578063d34628cc1461057d578063dd62ed3e146105a657610171565b8063a9128ff0146104aa578063b0bc85de146104d3578063bf474bed146104fe57610171565b8063715018a6146103aa5780637d1db4a5146103c15780638da5cb5b146103ec5780638f9a55c01461041757806395d89b4114610442578063a9059cbb1461046d57610171565b8063313ce56711610123578063313ce5671461029c57806331c2d847146102c757806337e73585146102f05780633bbac5791461031957806351bc3c851461035657806370a082311461036d57610171565b806306fdde0314610176578063095ea7b3146101a15780630faee56f146101de57806318160ddd1461020957806323b872dd14610234578063252d723a1461027157610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105e3565b6040516101989190612750565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c3919061281a565b610620565b6040516101d59190612875565b60405180910390f35b3480156101ea57600080fd5b506101f361063e565b604051610200919061289f565b60405180910390f35b34801561021557600080fd5b5061021e610644565b60405161022b919061289f565b60405180910390f35b34801561024057600080fd5b5061025b600480360381019061025691906128ba565b61064e565b6040516102689190612875565b60405180910390f35b34801561027d57600080fd5b50610286610727565b6040516102939190612929565b60405180910390f35b3480156102a857600080fd5b506102b161073e565b6040516102be9190612929565b60405180910390f35b3480156102d357600080fd5b506102ee60048036038101906102e99190612a8c565b610747565b005b3480156102fc57600080fd5b5061031760048036038101906103129190612b01565b610871565b005b34801561032557600080fd5b50610340600480360381019061033b9190612b2e565b610923565b60405161034d9190612875565b60405180910390f35b34801561036257600080fd5b5061036b610979565b005b34801561037957600080fd5b50610394600480360381019061038f9190612b2e565b610a15565b6040516103a1919061289f565b60405180910390f35b3480156103b657600080fd5b506103bf610a5e565b005b3480156103cd57600080fd5b506103d6610bb1565b6040516103e3919061289f565b60405180910390f35b3480156103f857600080fd5b50610401610bb7565b60405161040e9190612b6a565b60405180910390f35b34801561042357600080fd5b5061042c610be0565b604051610439919061289f565b60405180910390f35b34801561044e57600080fd5b50610457610be6565b6040516104649190612750565b60405180910390f35b34801561047957600080fd5b50610494600480360381019061048f919061281a565b610c23565b6040516104a19190612875565b60405180910390f35b3480156104b657600080fd5b506104d160048036038101906104cc9190612bb1565b610c41565b005b3480156104df57600080fd5b506104e8610dbe565b6040516104f59190612929565b60405180910390f35b34801561050a57600080fd5b50610513610dd5565b604051610520919061289f565b60405180910390f35b34801561053557600080fd5b5061053e610ddb565b60405161054b9190612875565b60405180910390f35b34801561056057600080fd5b5061057b60048036038101906105769190612b2e565b610dee565b005b34801561058957600080fd5b506105a4600480360381019061059f9190612a8c565b611344565b005b3480156105b257600080fd5b506105cd60048036038101906105c89190612bf1565b61146e565b6040516105da919061289f565b60405180910390f35b60606040518060400160405280601681526020017fe4b8ade59bbd41e882a1e4b88ae8af81e68c87e695b000000000000000000000815250905090565b600061063461062d6114f5565b84846114fd565b6001905092915050565b600c5481565b6000600854905090565b600061065b8484846116c6565b61071c846106676114f5565b6107178560405180606001604052806028815260200161376460289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106cd6114f5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546121709092919063ffffffff16565b6114fd565b600190509392505050565b6000600660159054906101000a900460ff16905090565b60006012905090565b61074f6114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107d390612c7d565b60405180910390fd5b60005b815181101561086d5760006004600084848151811061080157610800612c9d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061086590612cfb565b9150506107df565b5050565b6108796114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612c7d565b60405180910390fd5b80600660006101000a81548160ff02191690831515021790555050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109ba6114f5565b73ffffffffffffffffffffffffffffffffffffffff16146109da57600080fd5b60006109e530610a15565b9050600081106109f9576109f8816121d4565b5b60004790506000811115610a1157610a108161246c565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610a666114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aea90612c7d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600c81526020017fe4b88ae8af81e68c87e695b00000000000000000000000000000000000000000815250905090565b6000610c37610c306114f5565b84846116c6565b6001905092915050565b610c496114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90612c7d565b60405180910390fd5b60008260ff1610158015610cee575060648260ff1611155b610d2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2490612d8f565b60405180910390fd5b60008160ff1610158015610d45575060648160ff1611155b610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b90612d8f565b60405180910390fd5b80600660166101000a81548160ff021916908360ff16021790555081600660156101000a81548160ff021916908360ff1602179055505050565b6000600660169054906101000a900460ff16905090565b600b5481565b600660009054906101000a900460ff1681565b610df66114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7a90612c7d565b60405180910390fd5b600e60149054906101000a900460ff1615610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90612dfb565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610f4330600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008546114fd565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190612e30565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561105d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110819190612e30565b6040518363ffffffff1660e01b815260040161109e929190612e5d565b6020604051808303816000875af11580156110bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110e19190612e30565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061116a30610a15565b600080611175610bb7565b426040518863ffffffff1660e01b815260040161119796959493929190612ecb565b60606040518083038185885af11580156111b5573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906111da9190612f41565b505050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161127c929190612f94565b6020604051808303816000875af115801561129b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bf9190612fd2565b50600854600981905550600854600a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf600854604051611303919061289f565b60405180910390a16001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff02191690831515021790555050565b61134c6114f5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d090612c7d565b60405180910390fd5b60005b815181101561146a576001600460008484815181106113fe576113fd612c9d565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061146290612cfb565b9150506113dc565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361156c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156390613071565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290613103565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116b9919061289f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c90613195565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179b90613227565b60405180910390fd5b600081116117e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117de906132b9565b60405180910390fd5b60006117f1610bb7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561185f575061182f610bb7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611eb357600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119085750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61191157600080fd5b600660009054906101000a900460ff1615611a9e57600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119d25750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a9d5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f9061334b565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611b495750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b9f5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c4257600954821115611be9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be0906133b7565b60405180910390fd5b600a5482611bf685610a15565b611c0091906133d7565b1115611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613457565b60405180910390fd5b5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611ccb57503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d0f57611d086064611cfa600660159054906101000a900460ff1660ff16856124d890919063ffffffff16565b61255290919063ffffffff16565b9050611dd9565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611d9857503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611dd857611dd56064611dc7600660169054906101000a900460ff1660ff16856124d890919063ffffffff16565b61255290919063ffffffff16565b90505b5b6000611de430610a15565b9050600e60159054906101000a900460ff16158015611e505750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e685750600e60169054906101000a900460ff165b8015611e755750600b5481115b15611eb157611e97611e9284611e8d84600c5461259c565b61259c565b6121d4565b60004790506000811115611eaf57611eae4761246c565b5b505b505b6000811115611fb757611f0e81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b590919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fae919061289f565b60405180910390a35b61200982600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461261390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120b0612062828461261390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125b590919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef612155848661261390919063ffffffff16565b604051612162919061289f565b60405180910390a350505050565b60008383111582906121b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121af9190612750565b60405180910390fd5b50600083856121c79190613477565b9050809150509392505050565b6001600e60156101000a81548160ff021916908315150217905550600081031561244e57600e60149054906101000a900460ff161561244e576000600267ffffffffffffffff81111561222a57612229612949565b5b6040519080825280602002602001820160405280156122585781602001602082028036833780820191505090505b50905030816000815181106122705761226f612c9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612317573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061233b9190612e30565b8160018151811061234f5761234e612c9d565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123b630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846114fd565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161241a959493929190613569565b600060405180830381600087803b15801561243457600080fd5b505af1158015612448573d6000803e3d6000fd5b50505050505b6000600e60156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156124d4573d6000803e3d6000fd5b5050565b60008083036124ea576000905061254c565b600082846124f891906135c3565b90508284826125079190613634565b14612547576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253e906136d7565b60405180910390fd5b809150505b92915050565b600061259483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061265d565b905092915050565b60008183116125ab57826125ad565b815b905092915050565b60008082846125c491906133d7565b905083811015612609576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260090613743565b60405180910390fd5b8091505092915050565b600061265583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612170565b905092915050565b600080831182906126a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161269b9190612750565b60405180910390fd5b50600083856126b39190613634565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156126fa5780820151818401526020810190506126df565b60008484015250505050565b6000601f19601f8301169050919050565b6000612722826126c0565b61272c81856126cb565b935061273c8185602086016126dc565b61274581612706565b840191505092915050565b6000602082019050818103600083015261276a8184612717565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127b182612786565b9050919050565b6127c1816127a6565b81146127cc57600080fd5b50565b6000813590506127de816127b8565b92915050565b6000819050919050565b6127f7816127e4565b811461280257600080fd5b50565b600081359050612814816127ee565b92915050565b600080604083850312156128315761283061277c565b5b600061283f858286016127cf565b925050602061285085828601612805565b9150509250929050565b60008115159050919050565b61286f8161285a565b82525050565b600060208201905061288a6000830184612866565b92915050565b612899816127e4565b82525050565b60006020820190506128b46000830184612890565b92915050565b6000806000606084860312156128d3576128d261277c565b5b60006128e1868287016127cf565b93505060206128f2868287016127cf565b925050604061290386828701612805565b9150509250925092565b600060ff82169050919050565b6129238161290d565b82525050565b600060208201905061293e600083018461291a565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61298182612706565b810181811067ffffffffffffffff821117156129a05761299f612949565b5b80604052505050565b60006129b3612772565b90506129bf8282612978565b919050565b600067ffffffffffffffff8211156129df576129de612949565b5b602082029050602081019050919050565b600080fd5b6000612a08612a03846129c4565b6129a9565b90508083825260208201905060208402830185811115612a2b57612a2a6129f0565b5b835b81811015612a545780612a4088826127cf565b845260208401935050602081019050612a2d565b5050509392505050565b600082601f830112612a7357612a72612944565b5b8135612a838482602086016129f5565b91505092915050565b600060208284031215612aa257612aa161277c565b5b600082013567ffffffffffffffff811115612ac057612abf612781565b5b612acc84828501612a5e565b91505092915050565b612ade8161285a565b8114612ae957600080fd5b50565b600081359050612afb81612ad5565b92915050565b600060208284031215612b1757612b1661277c565b5b6000612b2584828501612aec565b91505092915050565b600060208284031215612b4457612b4361277c565b5b6000612b52848285016127cf565b91505092915050565b612b64816127a6565b82525050565b6000602082019050612b7f6000830184612b5b565b92915050565b612b8e8161290d565b8114612b9957600080fd5b50565b600081359050612bab81612b85565b92915050565b60008060408385031215612bc857612bc761277c565b5b6000612bd685828601612b9c565b9250506020612be785828601612b9c565b9150509250929050565b60008060408385031215612c0857612c0761277c565b5b6000612c16858286016127cf565b9250506020612c27858286016127cf565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612c676020836126cb565b9150612c7282612c31565b602082019050919050565b60006020820190508181036000830152612c9681612c5a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612d06826127e4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d3857612d37612ccc565b5b600182019050919050565b7f6e65772062757920746178206572726f72000000000000000000000000000000600082015250565b6000612d796011836126cb565b9150612d8482612d43565b602082019050919050565b60006020820190508181036000830152612da881612d6c565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612de56017836126cb565b9150612df082612daf565b602082019050919050565b60006020820190508181036000830152612e1481612dd8565b9050919050565b600081519050612e2a816127b8565b92915050565b600060208284031215612e4657612e4561277c565b5b6000612e5484828501612e1b565b91505092915050565b6000604082019050612e726000830185612b5b565b612e7f6020830184612b5b565b9392505050565b6000819050919050565b6000819050919050565b6000612eb5612eb0612eab84612e86565b612e90565b6127e4565b9050919050565b612ec581612e9a565b82525050565b600060c082019050612ee06000830189612b5b565b612eed6020830188612890565b612efa6040830187612ebc565b612f076060830186612ebc565b612f146080830185612b5b565b612f2160a0830184612890565b979650505050505050565b600081519050612f3b816127ee565b92915050565b600080600060608486031215612f5a57612f5961277c565b5b6000612f6886828701612f2c565b9350506020612f7986828701612f2c565b9250506040612f8a86828701612f2c565b9150509250925092565b6000604082019050612fa96000830185612b5b565b612fb66020830184612890565b9392505050565b600081519050612fcc81612ad5565b92915050565b600060208284031215612fe857612fe761277c565b5b6000612ff684828501612fbd565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061305b6024836126cb565b915061306682612fff565b604082019050919050565b6000602082019050818103600083015261308a8161304e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006130ed6022836126cb565b91506130f882613091565b604082019050919050565b6000602082019050818103600083015261311c816130e0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061317f6025836126cb565b915061318a82613123565b604082019050919050565b600060208201905081810360008301526131ae81613172565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006132116023836126cb565b915061321c826131b5565b604082019050919050565b6000602082019050818103600083015261324081613204565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006132a36029836126cb565b91506132ae82613247565b604082019050919050565b600060208201905081810360008301526132d281613296565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b60006133356024836126cb565b9150613340826132d9565b604082019050919050565b6000602082019050818103600083015261336481613328565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006133a16019836126cb565b91506133ac8261336b565b602082019050919050565b600060208201905081810360008301526133d081613394565b9050919050565b60006133e2826127e4565b91506133ed836127e4565b925082820190508082111561340557613404612ccc565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613441601a836126cb565b915061344c8261340b565b602082019050919050565b6000602082019050818103600083015261347081613434565b9050919050565b6000613482826127e4565b915061348d836127e4565b92508282039050818111156134a5576134a4612ccc565b5b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6134e0816127a6565b82525050565b60006134f283836134d7565b60208301905092915050565b6000602082019050919050565b6000613516826134ab565b61352081856134b6565b935061352b836134c7565b8060005b8381101561355c57815161354388826134e6565b975061354e836134fe565b92505060018101905061352f565b5085935050505092915050565b600060a08201905061357e6000830188612890565b61358b6020830187612ebc565b818103604083015261359d818661350b565b90506135ac6060830185612b5b565b6135b96080830184612890565b9695505050505050565b60006135ce826127e4565b91506135d9836127e4565b92508282026135e7816127e4565b915082820484148315176135fe576135fd612ccc565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061363f826127e4565b915061364a836127e4565b92508261365a57613659613605565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006136c16021836126cb565b91506136cc82613665565b604082019050919050565b600060208201905081810360008301526136f0816136b4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061372d601b836126cb565b9150613738826136f7565b602082019050919050565b6000602082019050818103600083015261375c81613720565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206531ebda66931a2e5eb01e50e605132e95bf6d9656cce102e61a1cc2fa60566a64736f6c63430008130033

Deployed Bytecode Sourcemap

3474:8549:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5650:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6483:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4458:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5927:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6652:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5460:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5836:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11852:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10199:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10419:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11319:349;;;;;;;;;;;;;:::i;:::-;;6030:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2555:148;;;;;;;;;;;;;:::i;:::-;;4294:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2341:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4348:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5741:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6157:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5174:278;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5554:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4402:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3869:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10516:758;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11680:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6332:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5650:83;5687:13;5720:5;;;;;;;;;;;;;;;;;5713:12;;5650:83;:::o;6483:161::-;6558:4;6575:39;6584:12;:10;:12::i;:::-;6598:7;6607:6;6575:8;:39::i;:::-;6632:4;6625:11;;6483:161;;;;:::o;4458:43::-;;;;:::o;5927:95::-;5980:7;6007;;6000:14;;5927:95;:::o;6652:313::-;6750:4;6767:36;6777:6;6785:9;6796:6;6767:9;:36::i;:::-;6814:121;6823:6;6831:12;:10;:12::i;:::-;6845:89;6883:6;6845:89;;;;;;;;;;;;;;;;;:11;:19;6857:6;6845:19;;;;;;;;;;;;;;;:33;6865:12;:10;:12::i;:::-;6845:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6814:8;:121::i;:::-;6953:4;6946:11;;6652:313;;;;;:::o;5460:86::-;5501:5;5531:7;;;;;;;;;;;5524:14;;5460:86;:::o;5836:83::-;5877:5;4092:2;5895:16;;5836:83;:::o;11852:162::-;2478:12;:10;:12::i;:::-;2468:22;;:6;;;;;;;;;;:22;;;2460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11925:6:::1;11920:87;11941:6;:13;11937:1;:17;11920:87;;;11992:5;11974:4;:15;11979:6;11986:1;11979:9;;;;;;;;:::i;:::-;;;;;;;;11974:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11956:3;;;;;:::i;:::-;;;;11920:87;;;;11852:162:::0;:::o;10199:112::-;2478:12;:10;:12::i;:::-;2468:22;;:6;;;;;;;;;;:22;;;2460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10297:6:::1;10276:20;;:27;;;;;;;;;;;;;;;;;;10199:112:::0;:::o;10419:83::-;10466:4;10487;:7;10492:1;10487:7;;;;;;;;;;;;;;;;;;;;;;;;;10480:14;;10419:83;;;:::o;11319:349::-;11383:10;;;;;;;;;;;11369:24;;:12;:10;:12::i;:::-;:24;;;11361:33;;;;;;11405:20;11426:24;11444:4;11426:9;:24::i;:::-;11405:45;;11478:1;11464:12;:15;11461:74;;11493:30;11510:12;11493:16;:30::i;:::-;11461:74;11545:18;11564:21;11545:40;;11610:1;11599:10;:12;11596:65;;;11625:24;11638:10;11625:12;:24::i;:::-;11596:65;11350:318;;11319:349::o;6030:119::-;6096:7;6123:9;:18;6133:7;6123:18;;;;;;;;;;;;;;;;6116:25;;6030:119;;;:::o;2555:148::-;2478:12;:10;:12::i;:::-;2468:22;;:6;;;;;;;;;;:22;;;2460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2662:1:::1;2625:40;;2646:6;::::0;::::1;;;;;;;;2625:40;;;;;;;;;;;;2693:1;2676:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2555:148::o:0;4294:47::-;;;;:::o;2341:79::-;2379:7;2406:6;;;;;;;;;;;2399:13;;2341:79;:::o;4348:47::-;;;;:::o;5741:87::-;5780:13;5813:7;;;;;;;;;;;;;;;;;5806:14;;5741:87;:::o;6157:167::-;6235:4;6252:42;6262:12;:10;:12::i;:::-;6276:9;6287:6;6252:9;:42::i;:::-;6312:4;6305:11;;6157:167;;;;:::o;5174:278::-;2478:12;:10;:12::i;:::-;2468:22;;:6;;;;;;;;;;:22;;;2460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5273:1:::1;5261:10;:13;;;;:30;;;;;5288:3;5276:10;:15;;;;5261:30;5253:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;5344:1;5331:11;:14;;;;:32;;;;;5360:3;5347:11;:16;;;;5331:32;5323:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;5404:11;5395:8;;:20;;;;;;;;;;;;;;;;;;5434:10;5426:7;;:18;;;;;;;;;;;;;;;;;;5174:278:::0;;:::o;5554:88::-;5596:5;5626:8;;;;;;;;;;;5619:15;;5554:88;:::o;4402:49::-;;;;:::o;3869:40::-;;;;;;;;;;;;;:::o;10516:758::-;2478:12;:10;:12::i;:::-;2468:22;;:6;;;;;;;;;;:22;;;2460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10594:11:::1;;;;;;;;;;;10593:12;10585:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10680:6;10643:15;;:44;;;;;;;;;;;;;;;;;;10698:58;10715:4;10730:15;;;;;;;;;;;10748:7;;10698:8;:58::i;:::-;10801:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10783:55;;;10847:4;10854:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10783:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10767:13;;:110;;;;;;;;;;;;;;;;;;10888:15;;;;;;;;;;;:31;;;10927:21;10958:4;10964:24;10982:4;10964:9;:24::i;:::-;10989:1;10991::::0;10993:7:::1;:5;:7::i;:::-;11001:15;10888:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11035:13;;;;;;;;;;;11028:29;;;11066:15;;;;;;;;;;;11084:14;11028:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11125:7;;11110:12;:22;;;;11158:7;;11143:14;:22;;;;11181:27;11200:7;;11181:27;;;;;;:::i;:::-;;;;;;;;11233:4;11219:11;;:18;;;;;;;;;;;;;;;;;;11262:4;11248:11;;:18;;;;;;;;;;;;;;;;;;10516:758:::0;:::o;11680:164::-;2478:12;:10;:12::i;:::-;2468:22;;:6;;;;;;;;;;:22;;;2460:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11754:6:::1;11749:88;11770:5;:12;11766:1;:16;11749:88;;;11821:4;11804;:14;11809:5;11815:1;11809:8;;;;;;;;:::i;:::-;;;;;;;;11804:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11784:3;;;;;:::i;:::-;;;;11749:88;;;;11680:164:::0;:::o;6332:143::-;6413:7;6440:11;:18;6452:5;6440:18;;;;;;;;;;;;;;;:27;6459:7;6440:27;;;;;;;;;;;;;;;;6433:34;;6332:143;;;;:::o;96:98::-;149:7;176:10;169:17;;96:98;:::o;6973:335::-;7083:1;7066:19;;:5;:19;;;7058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7164:1;7145:21;;:7;:21;;;7137:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7246:6;7216:11;:18;7228:5;7216:18;;;;;;;;;;;;;;;:27;7235:7;7216:27;;;;;;;;;;;;;;;:36;;;;7284:7;7268:32;;7277:5;7268:32;;;7293:6;7268:32;;;;;;:::i;:::-;;;;;;;;6973:335;;;:::o;7327:2195::-;7431:1;7415:18;;:4;:18;;;7407:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7508:1;7494:16;;:2;:16;;;7486:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7578:1;7569:6;:10;7561:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7636:17;7678:7;:5;:7::i;:::-;7670:15;;:4;:15;;;;:32;;;;;7695:7;:5;:7::i;:::-;7689:13;;:2;:13;;;;7670:32;7666:1500;;;7728:4;:10;7733:4;7728:10;;;;;;;;;;;;;;;;;;;;;;;;;7727:11;:24;;;;;7743:4;:8;7748:2;7743:8;;;;;;;;;;;;;;;;;;;;;;;;;7742:9;7727:24;7719:33;;;;;;7773:20;;;;;;;;;;;7769:346;;;7832:15;;;;;;;;;;;7818:30;;:2;:30;;;;:62;;;;;7866:13;;;;;;;;;;;7852:28;;:2;:28;;;;7818:62;7814:286;;;7953:12;7911:28;:39;7940:9;7911:39;;;;;;;;;;;;;;;;:54;7903:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8068:12;8026:28;:39;8055:9;8026:39;;;;;;;;;;;;;;;:54;;;;7814:286;7769:346;8143:13;;;;;;;;;;;8135:21;;:4;:21;;;:55;;;;;8174:15;;;;;;;;;;;8160:30;;:2;:30;;;;8135:55;:83;;;;;8196:18;:22;8215:2;8196:22;;;;;;;;;;;;;;;;;;;;;;;;;8194:24;8135:83;8131:283;;;8258:12;;8248:6;:22;;8240:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8353:14;;8343:6;8327:13;8337:2;8327:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8319:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8131:283;8441:13;;;;;;;;;;;8433:21;;:4;:21;;;:43;;;;;8471:4;8458:18;;:2;:18;;;;8433:43;8430:252;;;8509:28;8533:3;8509:19;8520:7;;;;;;;;;;;8509:19;;:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8497:40;;8430:252;;;8567:13;;;;;;;;;;;8561:19;;:2;:19;;;:43;;;;;8599:4;8584:20;;:4;:20;;;;8561:43;8558:124;;;8637:29;8662:3;8637:20;8648:8;;;;;;;;;;;8637:20;;:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8625:41;;8558:124;8430:252;8698:28;8729:24;8747:4;8729:9;:24::i;:::-;8698:55;;8773:6;;;;;;;;;;;8772:7;:30;;;;;8789:13;;;;;;;;;;;8783:19;;:2;:19;;;8772:30;:45;;;;;8806:11;;;;;;;;;;;8772:45;:87;;;;;8842:17;;8821:20;:38;8772:87;8768:387;;;8880:67;8897:49;8901:6;8908:37;8912:20;8933:11;;8908:3;:37::i;:::-;8897:3;:49::i;:::-;8880:16;:67::i;:::-;8966:26;8995:21;8966:50;;9059:1;9038:18;:22;9035:105;;;9085:35;9098:21;9085:12;:35::i;:::-;9035:105;8861:294;8768:387;7704:1462;7666:1500;9191:1;9181:9;:11;9178:161;;;9231:39;9260:9;9231;:24;9249:4;9231:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9206:9;:24;9224:4;9206:24;;;;;;;;;;;;;;;:64;;;;9311:4;9288:39;;9297:4;9288:39;;;9317:9;9288:39;;;;;;:::i;:::-;;;;;;;;9178:161;9365:27;9385:6;9365:9;:15;9375:4;9365:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9349:9;:15;9359:4;9349:15;;;;;;;;;;;;;;;:43;;;;9417:40;9435:21;9446:9;9435:6;:10;;:21;;;;:::i;:::-;9417:9;:13;9427:2;9417:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9403:9;:13;9413:2;9403:13;;;;;;;;;;;;;;;:54;;;;9488:2;9473:41;;9482:4;9473:41;;;9492:21;9503:9;9492:6;:10;;:21;;;;:::i;:::-;9473:41;;;;;;:::i;:::-;;;;;;;;7396:2126;7327:2195;;;:::o;1233:190::-;1319:7;1352:1;1347;:6;;1355:12;1339:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1379:9;1395:1;1391;:5;;;;:::i;:::-;1379:17;;1414:1;1407:8;;;1233:190;;;;;:::o;9636:555::-;4792:4;4783:6;;:13;;;;;;;;;;;;;;;;;;9730:1:::1;9717:11;:14:::0;9714:27;9733:7:::1;9714:27;9755:11;;;;;;;;;;;9751:25:::0;9768:7:::1;9751:25;9786:21;9824:1;9810:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9786:40;;9855:4;9837;9842:1;9837:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9881:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9871:4;9876:1;9871:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9914:62;9931:4;9946:15;;;;;;;;;;;9964:11;9914:8;:62::i;:::-;9987:15;;;;;;;;;;;:66;;;10068:11;10094:1;10110:4;10137;10157:15;9987:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9703:488;4807:1;4828:5:::0;4819:6;;:14;;;;;;;;;;;;;;;;;;9636:555;:::o;10319:92::-;10376:10;;;;;;;;;;;:19;;:27;10396:6;10376:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10319:92;:::o;1431:246::-;1489:7;1518:1;1513;:6;1509:47;;1543:1;1536:8;;;;1509:47;1566:9;1582:1;1578;:5;;;;:::i;:::-;1566:17;;1611:1;1606;1602;:5;;;;:::i;:::-;:10;1594:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1668:1;1661:8;;;1431:246;;;;;:::o;1685:132::-;1743:7;1770:39;1774:1;1777;1770:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1763:46;;1685:132;;;;:::o;9530:98::-;9587:7;9614:1;9612;:3;9611:9;;9619:1;9611:9;;;9617:1;9611:9;9604:16;;9530:98;;;;:::o;902:179::-;960:7;980:9;996:1;992;:5;;;;:::i;:::-;980:17;;1021:1;1016;:6;;1008:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1072:1;1065:8;;;902:179;;;;:::o;1089:136::-;1147:7;1174:43;1178:1;1181;1174:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1167:50;;1089:136;;;;:::o;1825:189::-;1911:7;1943:1;1939;:5;1946:12;1931:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1970:9;1986:1;1982;:5;;;;:::i;:::-;1970:17;;2005:1;1998:8;;;1825:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:116::-;7765:21;7780:5;7765:21;:::i;:::-;7758:5;7755:32;7745:60;;7801:1;7798;7791:12;7745:60;7695:116;:::o;7817:133::-;7860:5;7898:6;7885:20;7876:29;;7914:30;7938:5;7914:30;:::i;:::-;7817:133;;;;:::o;7956:323::-;8012:6;8061:2;8049:9;8040:7;8036:23;8032:32;8029:119;;;8067:79;;:::i;:::-;8029:119;8187:1;8212:50;8254:7;8245:6;8234:9;8230:22;8212:50;:::i;:::-;8202:60;;8158:114;7956:323;;;;:::o;8285:329::-;8344:6;8393:2;8381:9;8372:7;8368:23;8364:32;8361:119;;;8399:79;;:::i;:::-;8361:119;8519:1;8544:53;8589:7;8580:6;8569:9;8565:22;8544:53;:::i;:::-;8534:63;;8490:117;8285:329;;;;:::o;8620:118::-;8707:24;8725:5;8707:24;:::i;:::-;8702:3;8695:37;8620:118;;:::o;8744:222::-;8837:4;8875:2;8864:9;8860:18;8852:26;;8888:71;8956:1;8945:9;8941:17;8932:6;8888:71;:::i;:::-;8744:222;;;;:::o;8972:118::-;9043:22;9059:5;9043:22;:::i;:::-;9036:5;9033:33;9023:61;;9080:1;9077;9070:12;9023:61;8972:118;:::o;9096:135::-;9140:5;9178:6;9165:20;9156:29;;9194:31;9219:5;9194:31;:::i;:::-;9096:135;;;;:::o;9237:466::-;9301:6;9309;9358:2;9346:9;9337:7;9333:23;9329:32;9326:119;;;9364:79;;:::i;:::-;9326:119;9484:1;9509:51;9552:7;9543:6;9532:9;9528:22;9509:51;:::i;:::-;9499:61;;9455:115;9609:2;9635:51;9678:7;9669:6;9658:9;9654:22;9635:51;:::i;:::-;9625:61;;9580:116;9237:466;;;;;:::o;9709:474::-;9777:6;9785;9834:2;9822:9;9813:7;9809:23;9805:32;9802:119;;;9840:79;;:::i;:::-;9802:119;9960:1;9985:53;10030:7;10021:6;10010:9;10006:22;9985:53;:::i;:::-;9975:63;;9931:117;10087:2;10113:53;10158:7;10149:6;10138:9;10134:22;10113:53;:::i;:::-;10103:63;;10058:118;9709:474;;;;;:::o;10189:182::-;10329:34;10325:1;10317:6;10313:14;10306:58;10189:182;:::o;10377:366::-;10519:3;10540:67;10604:2;10599:3;10540:67;:::i;:::-;10533:74;;10616:93;10705:3;10616:93;:::i;:::-;10734:2;10729:3;10725:12;10718:19;;10377:366;;;:::o;10749:419::-;10915:4;10953:2;10942:9;10938:18;10930:26;;11002:9;10996:4;10992:20;10988:1;10977:9;10973:17;10966:47;11030:131;11156:4;11030:131;:::i;:::-;11022:139;;10749:419;;;:::o;11174:180::-;11222:77;11219:1;11212:88;11319:4;11316:1;11309:15;11343:4;11340:1;11333:15;11360:180;11408:77;11405:1;11398:88;11505:4;11502:1;11495:15;11529:4;11526:1;11519:15;11546:233;11585:3;11608:24;11626:5;11608:24;:::i;:::-;11599:33;;11654:66;11647:5;11644:77;11641:103;;11724:18;;:::i;:::-;11641:103;11771:1;11764:5;11760:13;11753:20;;11546:233;;;:::o;11785:167::-;11925:19;11921:1;11913:6;11909:14;11902:43;11785:167;:::o;11958:366::-;12100:3;12121:67;12185:2;12180:3;12121:67;:::i;:::-;12114:74;;12197:93;12286:3;12197:93;:::i;:::-;12315:2;12310:3;12306:12;12299:19;;11958:366;;;:::o;12330:419::-;12496:4;12534:2;12523:9;12519:18;12511:26;;12583:9;12577:4;12573:20;12569:1;12558:9;12554:17;12547:47;12611:131;12737:4;12611:131;:::i;:::-;12603:139;;12330:419;;;:::o;12755:173::-;12895:25;12891:1;12883:6;12879:14;12872:49;12755:173;:::o;12934:366::-;13076:3;13097:67;13161:2;13156:3;13097:67;:::i;:::-;13090:74;;13173:93;13262:3;13173:93;:::i;:::-;13291:2;13286:3;13282:12;13275:19;;12934:366;;;:::o;13306:419::-;13472:4;13510:2;13499:9;13495:18;13487:26;;13559:9;13553:4;13549:20;13545:1;13534:9;13530:17;13523:47;13587:131;13713:4;13587:131;:::i;:::-;13579:139;;13306:419;;;:::o;13731:143::-;13788:5;13819:6;13813:13;13804:22;;13835:33;13862:5;13835:33;:::i;:::-;13731:143;;;;:::o;13880:351::-;13950:6;13999:2;13987:9;13978:7;13974:23;13970:32;13967:119;;;14005:79;;:::i;:::-;13967:119;14125:1;14150:64;14206:7;14197:6;14186:9;14182:22;14150:64;:::i;:::-;14140:74;;14096:128;13880:351;;;;:::o;14237:332::-;14358:4;14396:2;14385:9;14381:18;14373:26;;14409:71;14477:1;14466:9;14462:17;14453:6;14409:71;:::i;:::-;14490:72;14558:2;14547:9;14543:18;14534:6;14490:72;:::i;:::-;14237:332;;;;;:::o;14575:85::-;14620:7;14649:5;14638:16;;14575:85;;;:::o;14666:60::-;14694:3;14715:5;14708:12;;14666:60;;;:::o;14732:158::-;14790:9;14823:61;14841:42;14850:32;14876:5;14850:32;:::i;:::-;14841:42;:::i;:::-;14823:61;:::i;:::-;14810:74;;14732:158;;;:::o;14896:147::-;14991:45;15030:5;14991:45;:::i;:::-;14986:3;14979:58;14896:147;;:::o;15049:807::-;15298:4;15336:3;15325:9;15321:19;15313:27;;15350:71;15418:1;15407:9;15403:17;15394:6;15350:71;:::i;:::-;15431:72;15499:2;15488:9;15484:18;15475:6;15431:72;:::i;:::-;15513:80;15589:2;15578:9;15574:18;15565:6;15513:80;:::i;:::-;15603;15679:2;15668:9;15664:18;15655:6;15603:80;:::i;:::-;15693:73;15761:3;15750:9;15746:19;15737:6;15693:73;:::i;:::-;15776;15844:3;15833:9;15829:19;15820:6;15776:73;:::i;:::-;15049:807;;;;;;;;;:::o;15862:143::-;15919:5;15950:6;15944:13;15935:22;;15966:33;15993:5;15966:33;:::i;:::-;15862:143;;;;:::o;16011:663::-;16099:6;16107;16115;16164:2;16152:9;16143:7;16139:23;16135:32;16132:119;;;16170:79;;:::i;:::-;16132:119;16290:1;16315:64;16371:7;16362:6;16351:9;16347:22;16315:64;:::i;:::-;16305:74;;16261:128;16428:2;16454:64;16510:7;16501:6;16490:9;16486:22;16454:64;:::i;:::-;16444:74;;16399:129;16567:2;16593:64;16649:7;16640:6;16629:9;16625:22;16593:64;:::i;:::-;16583:74;;16538:129;16011:663;;;;;:::o;16680:332::-;16801:4;16839:2;16828:9;16824:18;16816:26;;16852:71;16920:1;16909:9;16905:17;16896:6;16852:71;:::i;:::-;16933:72;17001:2;16990:9;16986:18;16977:6;16933:72;:::i;:::-;16680:332;;;;;:::o;17018:137::-;17072:5;17103:6;17097:13;17088:22;;17119:30;17143:5;17119:30;:::i;:::-;17018:137;;;;:::o;17161:345::-;17228:6;17277:2;17265:9;17256:7;17252:23;17248:32;17245:119;;;17283:79;;:::i;:::-;17245:119;17403:1;17428:61;17481:7;17472:6;17461:9;17457:22;17428:61;:::i;:::-;17418:71;;17374:125;17161:345;;;;:::o;17512:223::-;17652:34;17648:1;17640:6;17636:14;17629:58;17721:6;17716:2;17708:6;17704:15;17697:31;17512:223;:::o;17741:366::-;17883:3;17904:67;17968:2;17963:3;17904:67;:::i;:::-;17897:74;;17980:93;18069:3;17980:93;:::i;:::-;18098:2;18093:3;18089:12;18082:19;;17741:366;;;:::o;18113:419::-;18279:4;18317:2;18306:9;18302:18;18294:26;;18366:9;18360:4;18356:20;18352:1;18341:9;18337:17;18330:47;18394:131;18520:4;18394:131;:::i;:::-;18386:139;;18113:419;;;:::o;18538:221::-;18678:34;18674:1;18666:6;18662:14;18655:58;18747:4;18742:2;18734:6;18730:15;18723:29;18538:221;:::o;18765:366::-;18907:3;18928:67;18992:2;18987:3;18928:67;:::i;:::-;18921:74;;19004:93;19093:3;19004:93;:::i;:::-;19122:2;19117:3;19113:12;19106:19;;18765:366;;;:::o;19137:419::-;19303:4;19341:2;19330:9;19326:18;19318:26;;19390:9;19384:4;19380:20;19376:1;19365:9;19361:17;19354:47;19418:131;19544:4;19418:131;:::i;:::-;19410:139;;19137:419;;;:::o;19562:224::-;19702:34;19698:1;19690:6;19686:14;19679:58;19771:7;19766:2;19758:6;19754:15;19747:32;19562:224;:::o;19792:366::-;19934:3;19955:67;20019:2;20014:3;19955:67;:::i;:::-;19948:74;;20031:93;20120:3;20031:93;:::i;:::-;20149:2;20144:3;20140:12;20133:19;;19792:366;;;:::o;20164:419::-;20330:4;20368:2;20357:9;20353:18;20345:26;;20417:9;20411:4;20407:20;20403:1;20392:9;20388:17;20381:47;20445:131;20571:4;20445:131;:::i;:::-;20437:139;;20164:419;;;:::o;20589:222::-;20729:34;20725:1;20717:6;20713:14;20706:58;20798:5;20793:2;20785:6;20781:15;20774:30;20589:222;:::o;20817:366::-;20959:3;20980:67;21044:2;21039:3;20980:67;:::i;:::-;20973:74;;21056:93;21145:3;21056:93;:::i;:::-;21174:2;21169:3;21165:12;21158:19;;20817:366;;;:::o;21189:419::-;21355:4;21393:2;21382:9;21378:18;21370:26;;21442:9;21436:4;21432:20;21428:1;21417:9;21413:17;21406:47;21470:131;21596:4;21470:131;:::i;:::-;21462:139;;21189:419;;;:::o;21614:228::-;21754:34;21750:1;21742:6;21738:14;21731:58;21823:11;21818:2;21810:6;21806:15;21799:36;21614:228;:::o;21848:366::-;21990:3;22011:67;22075:2;22070:3;22011:67;:::i;:::-;22004:74;;22087:93;22176:3;22087:93;:::i;:::-;22205:2;22200:3;22196:12;22189:19;;21848:366;;;:::o;22220:419::-;22386:4;22424:2;22413:9;22409:18;22401:26;;22473:9;22467:4;22463:20;22459:1;22448:9;22444:17;22437:47;22501:131;22627:4;22501:131;:::i;:::-;22493:139;;22220:419;;;:::o;22645:223::-;22785:34;22781:1;22773:6;22769:14;22762:58;22854:6;22849:2;22841:6;22837:15;22830:31;22645:223;:::o;22874:366::-;23016:3;23037:67;23101:2;23096:3;23037:67;:::i;:::-;23030:74;;23113:93;23202:3;23113:93;:::i;:::-;23231:2;23226:3;23222:12;23215:19;;22874:366;;;:::o;23246:419::-;23412:4;23450:2;23439:9;23435:18;23427:26;;23499:9;23493:4;23489:20;23485:1;23474:9;23470:17;23463:47;23527:131;23653:4;23527:131;:::i;:::-;23519:139;;23246:419;;;:::o;23671:175::-;23811:27;23807:1;23799:6;23795:14;23788:51;23671:175;:::o;23852:366::-;23994:3;24015:67;24079:2;24074:3;24015:67;:::i;:::-;24008:74;;24091:93;24180:3;24091:93;:::i;:::-;24209:2;24204:3;24200:12;24193:19;;23852:366;;;:::o;24224:419::-;24390:4;24428:2;24417:9;24413:18;24405:26;;24477:9;24471:4;24467:20;24463:1;24452:9;24448:17;24441:47;24505:131;24631:4;24505:131;:::i;:::-;24497:139;;24224:419;;;:::o;24649:191::-;24689:3;24708:20;24726:1;24708:20;:::i;:::-;24703:25;;24742:20;24760:1;24742:20;:::i;:::-;24737:25;;24785:1;24782;24778:9;24771:16;;24806:3;24803:1;24800:10;24797:36;;;24813:18;;:::i;:::-;24797:36;24649:191;;;;:::o;24846:176::-;24986:28;24982:1;24974:6;24970:14;24963:52;24846:176;:::o;25028:366::-;25170:3;25191:67;25255:2;25250:3;25191:67;:::i;:::-;25184:74;;25267:93;25356:3;25267:93;:::i;:::-;25385:2;25380:3;25376:12;25369:19;;25028:366;;;:::o;25400:419::-;25566:4;25604:2;25593:9;25589:18;25581:26;;25653:9;25647:4;25643:20;25639:1;25628:9;25624:17;25617:47;25681:131;25807:4;25681:131;:::i;:::-;25673:139;;25400:419;;;:::o;25825:194::-;25865:4;25885:20;25903:1;25885:20;:::i;:::-;25880:25;;25919:20;25937:1;25919:20;:::i;:::-;25914:25;;25963:1;25960;25956:9;25948:17;;25987:1;25981:4;25978:11;25975:37;;;25992:18;;:::i;:::-;25975:37;25825:194;;;;:::o;26025:114::-;26092:6;26126:5;26120:12;26110:22;;26025:114;;;:::o;26145:184::-;26244:11;26278:6;26273:3;26266:19;26318:4;26313:3;26309:14;26294:29;;26145:184;;;;:::o;26335:132::-;26402:4;26425:3;26417:11;;26455:4;26450:3;26446:14;26438:22;;26335:132;;;:::o;26473:108::-;26550:24;26568:5;26550:24;:::i;:::-;26545:3;26538:37;26473:108;;:::o;26587:179::-;26656:10;26677:46;26719:3;26711:6;26677:46;:::i;:::-;26755:4;26750:3;26746:14;26732:28;;26587:179;;;;:::o;26772:113::-;26842:4;26874;26869:3;26865:14;26857:22;;26772:113;;;:::o;26921:732::-;27040:3;27069:54;27117:5;27069:54;:::i;:::-;27139:86;27218:6;27213:3;27139:86;:::i;:::-;27132:93;;27249:56;27299:5;27249:56;:::i;:::-;27328:7;27359:1;27344:284;27369:6;27366:1;27363:13;27344:284;;;27445:6;27439:13;27472:63;27531:3;27516:13;27472:63;:::i;:::-;27465:70;;27558:60;27611:6;27558:60;:::i;:::-;27548:70;;27404:224;27391:1;27388;27384:9;27379:14;;27344:284;;;27348:14;27644:3;27637:10;;27045:608;;;26921:732;;;;:::o;27659:831::-;27922:4;27960:3;27949:9;27945:19;27937:27;;27974:71;28042:1;28031:9;28027:17;28018:6;27974:71;:::i;:::-;28055:80;28131:2;28120:9;28116:18;28107:6;28055:80;:::i;:::-;28182:9;28176:4;28172:20;28167:2;28156:9;28152:18;28145:48;28210:108;28313:4;28304:6;28210:108;:::i;:::-;28202:116;;28328:72;28396:2;28385:9;28381:18;28372:6;28328:72;:::i;:::-;28410:73;28478:3;28467:9;28463:19;28454:6;28410:73;:::i;:::-;27659:831;;;;;;;;:::o;28496:410::-;28536:7;28559:20;28577:1;28559:20;:::i;:::-;28554:25;;28593:20;28611:1;28593:20;:::i;:::-;28588:25;;28648:1;28645;28641:9;28670:30;28688:11;28670:30;:::i;:::-;28659:41;;28849:1;28840:7;28836:15;28833:1;28830:22;28810:1;28803:9;28783:83;28760:139;;28879:18;;:::i;:::-;28760:139;28544:362;28496:410;;;;:::o;28912:180::-;28960:77;28957:1;28950:88;29057:4;29054:1;29047:15;29081:4;29078:1;29071:15;29098:185;29138:1;29155:20;29173:1;29155:20;:::i;:::-;29150:25;;29189:20;29207:1;29189:20;:::i;:::-;29184:25;;29228:1;29218:35;;29233:18;;:::i;:::-;29218:35;29275:1;29272;29268:9;29263:14;;29098:185;;;;:::o;29289:220::-;29429:34;29425:1;29417:6;29413:14;29406:58;29498:3;29493:2;29485:6;29481:15;29474:28;29289:220;:::o;29515:366::-;29657:3;29678:67;29742:2;29737:3;29678:67;:::i;:::-;29671:74;;29754:93;29843:3;29754:93;:::i;:::-;29872:2;29867:3;29863:12;29856:19;;29515:366;;;:::o;29887:419::-;30053:4;30091:2;30080:9;30076:18;30068:26;;30140:9;30134:4;30130:20;30126:1;30115:9;30111:17;30104:47;30168:131;30294:4;30168:131;:::i;:::-;30160:139;;29887:419;;;:::o;30312:177::-;30452:29;30448:1;30440:6;30436:14;30429:53;30312:177;:::o;30495:366::-;30637:3;30658:67;30722:2;30717:3;30658:67;:::i;:::-;30651:74;;30734:93;30823:3;30734:93;:::i;:::-;30852:2;30847:3;30843:12;30836:19;;30495:366;;;:::o;30867:419::-;31033:4;31071:2;31060:9;31056:18;31048:26;;31120:9;31114:4;31110:20;31106:1;31095:9;31091:17;31084:47;31148:131;31274:4;31148:131;:::i;:::-;31140:139;;30867:419;;;:::o

Swarm Source

ipfs://6531ebda66931a2e5eb01e50e605132e95bf6d9656cce102e61a1cc2fa60566a
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.