ETH Price: $2,620.26 (-2.54%)
Gas: 1 Gwei

Token

HamsterOfWallStreet (HOW)
 

Overview

Max Total Supply

420,690,000 HOW

Holders

92

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
304,186.875342097 HOW

Value
$0.00
0x4df76cf47ba930203d1da71e8d51fdd9844829f9
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:
HamsterOfWallStreet

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 2023-09-04
*/

/**
,--,    ,----..                    
      ,--.'|   /   /   \             .---. 
   ,--,  | :  /   .     :           /. ./| 
,---.'|  : ' .   /   ;.  \      .--'.  ' ; 
|   | : _' |.   ;   /  ` ;     /__./ \ : | 
:   : |.'  |;   |  ; \ ; | .--'.  '   \' . 
|   ' '  ; :|   :  | ; | '/___/ \ |    ' ' 
'   |  .'. |.   |  ' ' ' :;   \  \;      : 
|   | :  | ''   ;  \; /  | \   ;  `      | 
'   : |  : ; \   \  ',  /   .   \    .\  ; 
|   | '  ,/   ;   :    /     \   \   ' \ | 
;   : ;--'     \   \ .'       :   '  |--"  
|   ,/          `---`          \   \ ;     
'---'                           '---"
 */

// SPDX-License-Identifier: MIT
/*  
    http://hamsterofwallstreet.com
    https://twitter.com/How__Eth
    https://t.me/howportal
*/
pragma solidity 0.8.19;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

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

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

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 IDexFactory {
    function createPair(
        address tokenA,
        address tokenB
    ) external returns (address pair);
}

interface IDexRouter {
    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 HamsterOfWallStreet is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "HamsterOfWallStreet";
    string private constant _symbol = "HOW ";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 420690000 * 10 ** _decimals;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderCheckpoint;

    uint256 private _iBuyTax = 25;
    uint256 private _fBuyTax = 2;
    uint256 private _buyTaxLimit = 45;

    uint256 private _iSellTax = 40;
    uint256 private _fSellTax = 2;
    uint256 private _sellTaxLimit = 45;

    uint256 private _swapPreventLimit = 15;
    uint256 private _buyCounter = 0;

    uint256 public maxTxnAmount = 4206900 * 10 ** _decimals;
    uint256 public maxWalletLimit = 4206900 * 10 ** _decimals;
    uint256 public taxSwapThreshold = 8413800 * 10 ** _decimals;
    uint256 public maxTaxSwap = 8413800 * 10 ** _decimals;

    IDexRouter private router;
    address private pair;
    address payable private feeWallet;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool public transferLimitEnabled = true;

    event MaxTxnAmountUpdated(uint maxTxnAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        feeWallet = payable(_msgSender());
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeWallet] = true;

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

    receive() external payable {}

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "ERC20: Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            taxAmount = amount
                .mul((_buyCounter > _buyTaxLimit) ? _fBuyTax : _iBuyTax)
                .div(100);

            if (transferLimitEnabled) {
                if (to != address(router) && to != address(pair)) {
                    require(
                        _holderCheckpoint[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                    );
                    _holderCheckpoint[tx.origin] = block.number;
                }
            }

            if (
                from == pair && to != address(router) && !_isExcludedFromFee[to]
            ) {
                require(amount <= maxTxnAmount, "Exceeds the maxTxnAmount.");
                require(
                    balanceOf(to) + amount <= maxWalletLimit,
                    "Exceeds the maxWalletLimit."
                );
                _buyCounter++;
            }

            if (to == pair && from != address(this)) {
                taxAmount = amount
                    .mul((_buyCounter > _sellTaxLimit) ? _fSellTax : _iSellTax)
                    .div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (
                !inSwap &&
                to == pair &&
                swapEnabled &&
                contractTokenBalance > taxSwapThreshold &&
                _buyCounter > _swapPreventLimit
            ) {
                swapTokensForEth(
                    getMin(amount, getMin(contractTokenBalance, maxTaxSwap))
                );
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0.005 ether) {
                    transferFee(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 transferFee(uint256 amount) private {
        feeWallet.transfer(amount);
    }

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

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

    function enableTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");
        router = IDexRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(router), _totalSupply);
        pair = IDexFactory(router.factory()).createPair(
            address(this),
            router.WETH()
        );
        router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)),
            0,
            0,
            owner(),
            block.timestamp
        );
        IERC20(pair).approve(address(router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    function clearTransferLimits() external onlyOwner {
        maxTxnAmount = _totalSupply;
        maxWalletLimit = _totalSupply;
        transferLimitEnabled = false;
        emit MaxTxnAmountUpdated(_totalSupply);
    }

    function setBuyFee(
        uint256 _iBuy,
        uint256 _fBuy,
        uint256 _buyLimit
    ) external onlyOwner {
        _iBuyTax = _iBuy;
        _fBuyTax = _fBuy;
        _buyTaxLimit = _buyLimit;
    }

    function setSellFee(
        uint256 _iSell,
        uint256 _fSell,
        uint256 _sellLimit
    ) external onlyOwner {
        _iSellTax = _iSell;
        _fSellTax = _fSell;
        _sellTaxLimit = _sellLimit;
    }

    function swapFee() external {
        require(_msgSender() == feeWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            transferFee(ethBalance);
        }
    }

    function removeStuckToken(address _token, uint256 _amount) external {
        require(_msgSender() == feeWallet);
        IERC20(_token).transfer(feeWallet, _amount);
    }
}

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 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":"maxTxnAmount","type":"uint256"}],"name":"MaxTxnAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"clearTransferLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxnAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"removeStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_iBuy","type":"uint256"},{"internalType":"uint256","name":"_fBuy","type":"uint256"},{"internalType":"uint256","name":"_buyLimit","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_iSell","type":"uint256"},{"internalType":"uint256","name":"_fSell","type":"uint256"},{"internalType":"uint256","name":"_sellLimit","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferLimitEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260196005556002600655602d60075560286008556002600955602d600a55600f600b556000600c556009600a6200003c91906200059b565b624031346200004c9190620005ec565b600d556009600a6200005f91906200059b565b624031346200006f9190620005ec565b600e556009600a6200008291906200059b565b62806268620000929190620005ec565b600f556009600a620000a591906200059b565b62806268620000b59190620005ec565b6010556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055503480156200011657600080fd5b50600062000129620003f960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d7620003f960201b60201c565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022791906200059b565b6319133850620002389190620005ec565b600160006200024c620003f960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200036c620003f960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620003cb91906200059b565b6319133850620003dc9190620005ec565b604051620003eb919062000648565b60405180910390a362000665565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200048f5780860481111562000467576200046662000401565b5b6001851615620004775780820291505b8081029050620004878562000430565b945062000447565b94509492505050565b600082620004aa57600190506200057d565b81620004ba57600090506200057d565b8160018114620004d35760028114620004de5762000514565b60019150506200057d565b60ff841115620004f357620004f262000401565b5b8360020a9150848211156200050d576200050c62000401565b5b506200057d565b5060208310610133831016604e8410600b84101617156200054e5782820a90508381111562000548576200054762000401565b5b6200057d565b6200055d84848460016200043d565b9250905081840481111562000577576200057662000401565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005a88262000584565b9150620005b5836200058e565b9250620005e47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000498565b905092915050565b6000620005f98262000584565b9150620006068362000584565b9250828202620006168162000584565b9150828204841483151762000630576200062f62000401565b5b5092915050565b620006428162000584565b82525050565b60006020820190506200065f600083018462000637565b92915050565b61343d80620006756000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b41146103eb578063a9059cbb14610416578063ce261d1014610453578063cf46f24c1461047c578063dd62ed3e146104a7578063e54081d0146104e457610140565b806370a082311461032a578063715018a614610367578063717944e01461037e5780638a8c523c146103a95780638da5cb5b146103c057610140565b806325519cf2116100fd57806325519cf21461023e578063313ce5671461026757806354cf2aeb146102925780635e7b655c146102a957806362997f8c146102d457806366a88d96146102ff57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad5780631d865c30146101d857806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104fb565b60405161016791906123e2565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061249d565b610538565b6040516101a491906124f8565b60405180910390f35b3480156101b957600080fd5b506101c2610556565b6040516101cf9190612522565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa919061253d565b61057a565b005b34801561020d57600080fd5b5061022860048036038101906102239190612590565b610629565b60405161023591906124f8565b60405180910390f35b34801561024a57600080fd5b506102656004803603810190610260919061253d565b610702565b005b34801561027357600080fd5b5061027c6107b1565b60405161028991906125ff565b60405180910390f35b34801561029e57600080fd5b506102a76107ba565b005b3480156102b557600080fd5b506102be610857565b6040516102cb9190612522565b60405180910390f35b3480156102e057600080fd5b506102e961085d565b6040516102f69190612522565b60405180910390f35b34801561030b57600080fd5b50610314610863565b6040516103219190612522565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c919061261a565b610869565b60405161035e9190612522565b60405180910390f35b34801561037357600080fd5b5061037c6108b2565b005b34801561038a57600080fd5b50610393610a05565b6040516103a091906124f8565b60405180910390f35b3480156103b557600080fd5b506103be610a18565b005b3480156103cc57600080fd5b506103d5610f50565b6040516103e29190612656565b60405180910390f35b3480156103f757600080fd5b50610400610f79565b60405161040d91906123e2565b60405180910390f35b34801561042257600080fd5b5061043d6004803603810190610438919061249d565b610fb6565b60405161044a91906124f8565b60405180910390f35b34801561045f57600080fd5b5061047a6004803603810190610475919061249d565b610fd4565b005b34801561048857600080fd5b506104916110da565b60405161049e9190612522565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612671565b6110e0565b6040516104db9190612522565b60405180910390f35b3480156104f057600080fd5b506104f9611167565b005b60606040518060400160405280601381526020017f48616d737465724f6657616c6c53747265657400000000000000000000000000815250905090565b600061054c6105456112b2565b84846112ba565b6001905092915050565b60006009600a6105669190612813565b6319133850610575919061285e565b905090565b6105826112b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610606906128ec565b60405180910390fd5b826008819055508160098190555080600a81905550505050565b6000610636848484611483565b6106f7846106426112b2565b6106f2856040518060600160405280602881526020016133e060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a86112b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b6112ba565b600190509392505050565b61070a6112b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e906128ec565b60405180910390fd5b826005819055508160068190555080600781905550505050565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107fb6112b2565b73ffffffffffffffffffffffffffffffffffffffff161461081b57600080fd5b600061082630610869565b9050600081111561083b5761083a81611e85565b5b6000479050600081111561085357610852816120fe565b5b5050565b600f5481565b60105481565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108ba6112b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e906128ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601360179054906101000a900460ff1681565b610a206112b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa4906128ec565b60405180910390fd5b601360149054906101000a900460ff1615610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af490612958565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b9b30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b879190612813565b6319133850610b96919061285e565b6112ba565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2c919061298d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd9919061298d565b6040518363ffffffff1660e01b8152600401610cf69291906129ba565b6020604051808303816000875af1158015610d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d39919061298d565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dc230610869565b600080610dcd610f50565b426040518863ffffffff1660e01b8152600401610def96959493929190612a28565b60606040518083038185885af1158015610e0d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e329190612a9e565b505050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ed4929190612af1565b6020604051808303816000875af1158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190612b46565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f484f572000000000000000000000000000000000000000000000000000000000815250905090565b6000610fca610fc36112b2565b8484611483565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110156112b2565b73ffffffffffffffffffffffffffffffffffffffff161461103557600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611092929190612bc8565b6020604051808303816000875af11580156110b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d59190612b46565b505050565b600d5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61116f6112b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f3906128ec565b60405180910390fd5b6009600a61120a9190612813565b6319133850611219919061285e565b600d819055506009600a61122d9190612813565b631913385061123c919061285e565b600e819055506000601360176101000a81548160ff0219169083151502179055507ff7376c86cf503c5788ae74467ebc95b750bc4d5c64790343f9b4f42bdf376eee6009600a61128c9190612813565b631913385061129b919061285e565b6040516112a89190612522565b60405180910390a1565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132090612c63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f90612cf5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114769190612522565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e990612d87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155890612e19565b60405180910390fd5b600081116115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90612eab565b60405180910390fd5b60006115ae610f50565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561161c57506115ec610f50565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b645761165d606461164f600754600c541161163c57600554611640565b6006545b8561216a90919063ffffffff16565b6121e490919063ffffffff16565b9050601360179054906101000a900460ff16156117ec57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117205750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117eb5743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d90612f63565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118975750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118ed5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119a857600d54821115611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90612fcf565b60405180910390fd5b600e548261194485610869565b61194e9190612fef565b111561198f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119869061306f565b60405180910390fd5b600c60008154809291906119a29061308f565b91905055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a3157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a7557611a726064611a64600a54600c5411611a5157600854611a55565b6009545b8561216a90919063ffffffff16565b6121e490919063ffffffff16565b90505b6000611a8030610869565b9050601360159054906101000a900460ff16158015611aec5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b045750601360169054906101000a900460ff165b8015611b115750600f5481115b8015611b205750600b54600c54115b15611b6257611b42611b3d84611b388460105461222e565b61222e565b611e85565b60004790506611c37937e08000811115611b6057611b5f476120fe565b5b505b505b6000811115611c6857611bbf81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5f9190612522565b60405180910390a35b611cba82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d61611d1382846122a590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e0684866122a590919063ffffffff16565b604051611e139190612522565b60405180910390a350505050565b6000838311158290611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6091906123e2565b60405180910390fd5b5060008385611e7891906130d7565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ebd57611ebc61310b565b5b604051908082528060200260200182016040528015611eeb5781602001602082028036833780820191505090505b5090503081600081518110611f0357611f0261313a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611faa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fce919061298d565b81600181518110611fe257611fe161313a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061204930601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ba565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120ad959493929190613227565b600060405180830381600087803b1580156120c757600080fd5b505af11580156120db573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612166573d6000803e3d6000fd5b5050565b600080830361217c57600090506121de565b6000828461218a919061285e565b905082848261219991906132b0565b146121d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d090613353565b60405180910390fd5b809150505b92915050565b600061222683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ef565b905092915050565b600081831161223d578261223f565b815b905092915050565b60008082846122569190612fef565b90508381101561229b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612292906133bf565b60405180910390fd5b8091505092915050565b60006122e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e21565b905092915050565b60008083118290612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232d91906123e2565b60405180910390fd5b506000838561234591906132b0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561238c578082015181840152602081019050612371565b60008484015250505050565b6000601f19601f8301169050919050565b60006123b482612352565b6123be818561235d565b93506123ce81856020860161236e565b6123d781612398565b840191505092915050565b600060208201905081810360008301526123fc81846123a9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061243482612409565b9050919050565b61244481612429565b811461244f57600080fd5b50565b6000813590506124618161243b565b92915050565b6000819050919050565b61247a81612467565b811461248557600080fd5b50565b60008135905061249781612471565b92915050565b600080604083850312156124b4576124b3612404565b5b60006124c285828601612452565b92505060206124d385828601612488565b9150509250929050565b60008115159050919050565b6124f2816124dd565b82525050565b600060208201905061250d60008301846124e9565b92915050565b61251c81612467565b82525050565b60006020820190506125376000830184612513565b92915050565b60008060006060848603121561255657612555612404565b5b600061256486828701612488565b935050602061257586828701612488565b925050604061258686828701612488565b9150509250925092565b6000806000606084860312156125a9576125a8612404565b5b60006125b786828701612452565b93505060206125c886828701612452565b92505060406125d986828701612488565b9150509250925092565b600060ff82169050919050565b6125f9816125e3565b82525050565b600060208201905061261460008301846125f0565b92915050565b6000602082840312156126305761262f612404565b5b600061263e84828501612452565b91505092915050565b61265081612429565b82525050565b600060208201905061266b6000830184612647565b92915050565b6000806040838503121561268857612687612404565b5b600061269685828601612452565b92505060206126a785828601612452565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561273757808604811115612713576127126126b1565b5b60018516156127225780820291505b8081029050612730856126e0565b94506126f7565b94509492505050565b600082612750576001905061280c565b8161275e576000905061280c565b8160018114612774576002811461277e576127ad565b600191505061280c565b60ff8411156127905761278f6126b1565b5b8360020a9150848211156127a7576127a66126b1565b5b5061280c565b5060208310610133831016604e8410600b84101617156127e25782820a9050838111156127dd576127dc6126b1565b5b61280c565b6127ef84848460016126ed565b92509050818404811115612806576128056126b1565b5b81810290505b9392505050565b600061281e82612467565b9150612829836125e3565b92506128567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612740565b905092915050565b600061286982612467565b915061287483612467565b925082820261288281612467565b91508282048414831517612899576128986126b1565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128d660208361235d565b91506128e1826128a0565b602082019050919050565b60006020820190508181036000830152612905816128c9565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061294260178361235d565b915061294d8261290c565b602082019050919050565b6000602082019050818103600083015261297181612935565b9050919050565b6000815190506129878161243b565b92915050565b6000602082840312156129a3576129a2612404565b5b60006129b184828501612978565b91505092915050565b60006040820190506129cf6000830185612647565b6129dc6020830184612647565b9392505050565b6000819050919050565b6000819050919050565b6000612a12612a0d612a08846129e3565b6129ed565b612467565b9050919050565b612a22816129f7565b82525050565b600060c082019050612a3d6000830189612647565b612a4a6020830188612513565b612a576040830187612a19565b612a646060830186612a19565b612a716080830185612647565b612a7e60a0830184612513565b979650505050505050565b600081519050612a9881612471565b92915050565b600080600060608486031215612ab757612ab6612404565b5b6000612ac586828701612a89565b9350506020612ad686828701612a89565b9250506040612ae786828701612a89565b9150509250925092565b6000604082019050612b066000830185612647565b612b136020830184612513565b9392505050565b612b23816124dd565b8114612b2e57600080fd5b50565b600081519050612b4081612b1a565b92915050565b600060208284031215612b5c57612b5b612404565b5b6000612b6a84828501612b31565b91505092915050565b6000612b8e612b89612b8484612409565b6129ed565b612409565b9050919050565b6000612ba082612b73565b9050919050565b6000612bb282612b95565b9050919050565b612bc281612ba7565b82525050565b6000604082019050612bdd6000830185612bb9565b612bea6020830184612513565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c4d60248361235d565b9150612c5882612bf1565b604082019050919050565b60006020820190508181036000830152612c7c81612c40565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cdf60228361235d565b9150612cea82612c83565b604082019050919050565b60006020820190508181036000830152612d0e81612cd2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d7160258361235d565b9150612d7c82612d15565b604082019050919050565b60006020820190508181036000830152612da081612d64565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e0360238361235d565b9150612e0e82612da7565b604082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b7f45524332303a205472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b6000612e9560308361235d565b9150612ea082612e39565b604082019050919050565b60006020820190508181036000830152612ec481612e88565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612f4d60498361235d565b9150612f5882612ecb565b606082019050919050565b60006020820190508181036000830152612f7c81612f40565b9050919050565b7f4578636565647320746865206d617854786e416d6f756e742e00000000000000600082015250565b6000612fb960198361235d565b9150612fc482612f83565b602082019050919050565b60006020820190508181036000830152612fe881612fac565b9050919050565b6000612ffa82612467565b915061300583612467565b925082820190508082111561301d5761301c6126b1565b5b92915050565b7f4578636565647320746865206d617857616c6c65744c696d69742e0000000000600082015250565b6000613059601b8361235d565b915061306482613023565b602082019050919050565b600060208201905081810360008301526130888161304c565b9050919050565b600061309a82612467565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130cc576130cb6126b1565b5b600182019050919050565b60006130e282612467565b91506130ed83612467565b9250828203905081811115613105576131046126b1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61319e81612429565b82525050565b60006131b08383613195565b60208301905092915050565b6000602082019050919050565b60006131d482613169565b6131de8185613174565b93506131e983613185565b8060005b8381101561321a57815161320188826131a4565b975061320c836131bc565b9250506001810190506131ed565b5085935050505092915050565b600060a08201905061323c6000830188612513565b6132496020830187612a19565b818103604083015261325b81866131c9565b905061326a6060830185612647565b6132776080830184612513565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132bb82612467565b91506132c683612467565b9250826132d6576132d5613281565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061333d60218361235d565b9150613348826132e1565b604082019050919050565b6000602082019050818103600083015261336c81613330565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006133a9601b8361235d565b91506133b482613373565b602082019050919050565b600060208201905081810360008301526133d88161339c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207b279bb6bd0addc58821f24f5fdd4ab04497e77ff0e767fa3d090e5137946d4764736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab57806395d89b411161006f57806395d89b41146103eb578063a9059cbb14610416578063ce261d1014610453578063cf46f24c1461047c578063dd62ed3e146104a7578063e54081d0146104e457610140565b806370a082311461032a578063715018a614610367578063717944e01461037e5780638a8c523c146103a95780638da5cb5b146103c057610140565b806325519cf2116100fd57806325519cf21461023e578063313ce5671461026757806354cf2aeb146102925780635e7b655c146102a957806362997f8c146102d457806366a88d96146102ff57610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad5780631d865c30146101d857806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104fb565b60405161016791906123e2565b60405180910390f35b34801561017c57600080fd5b506101976004803603810190610192919061249d565b610538565b6040516101a491906124f8565b60405180910390f35b3480156101b957600080fd5b506101c2610556565b6040516101cf9190612522565b60405180910390f35b3480156101e457600080fd5b506101ff60048036038101906101fa919061253d565b61057a565b005b34801561020d57600080fd5b5061022860048036038101906102239190612590565b610629565b60405161023591906124f8565b60405180910390f35b34801561024a57600080fd5b506102656004803603810190610260919061253d565b610702565b005b34801561027357600080fd5b5061027c6107b1565b60405161028991906125ff565b60405180910390f35b34801561029e57600080fd5b506102a76107ba565b005b3480156102b557600080fd5b506102be610857565b6040516102cb9190612522565b60405180910390f35b3480156102e057600080fd5b506102e961085d565b6040516102f69190612522565b60405180910390f35b34801561030b57600080fd5b50610314610863565b6040516103219190612522565b60405180910390f35b34801561033657600080fd5b50610351600480360381019061034c919061261a565b610869565b60405161035e9190612522565b60405180910390f35b34801561037357600080fd5b5061037c6108b2565b005b34801561038a57600080fd5b50610393610a05565b6040516103a091906124f8565b60405180910390f35b3480156103b557600080fd5b506103be610a18565b005b3480156103cc57600080fd5b506103d5610f50565b6040516103e29190612656565b60405180910390f35b3480156103f757600080fd5b50610400610f79565b60405161040d91906123e2565b60405180910390f35b34801561042257600080fd5b5061043d6004803603810190610438919061249d565b610fb6565b60405161044a91906124f8565b60405180910390f35b34801561045f57600080fd5b5061047a6004803603810190610475919061249d565b610fd4565b005b34801561048857600080fd5b506104916110da565b60405161049e9190612522565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612671565b6110e0565b6040516104db9190612522565b60405180910390f35b3480156104f057600080fd5b506104f9611167565b005b60606040518060400160405280601381526020017f48616d737465724f6657616c6c53747265657400000000000000000000000000815250905090565b600061054c6105456112b2565b84846112ba565b6001905092915050565b60006009600a6105669190612813565b6319133850610575919061285e565b905090565b6105826112b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610606906128ec565b60405180910390fd5b826008819055508160098190555080600a81905550505050565b6000610636848484611483565b6106f7846106426112b2565b6106f2856040518060600160405280602881526020016133e060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106a86112b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e219092919063ffffffff16565b6112ba565b600190509392505050565b61070a6112b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610797576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078e906128ec565b60405180910390fd5b826005819055508160068190555080600781905550505050565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107fb6112b2565b73ffffffffffffffffffffffffffffffffffffffff161461081b57600080fd5b600061082630610869565b9050600081111561083b5761083a81611e85565b5b6000479050600081111561085357610852816120fe565b5b5050565b600f5481565b60105481565b600e5481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108ba6112b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161093e906128ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601360179054906101000a900460ff1681565b610a206112b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa4906128ec565b60405180910390fd5b601360149054906101000a900460ff1615610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af490612958565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610b9b30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610b879190612813565b6319133850610b96919061285e565b6112ba565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c2c919061298d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cd9919061298d565b6040518363ffffffff1660e01b8152600401610cf69291906129ba565b6020604051808303816000875af1158015610d15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d39919061298d565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610dc230610869565b600080610dcd610f50565b426040518863ffffffff1660e01b8152600401610def96959493929190612a28565b60606040518083038185885af1158015610e0d573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e329190612a9e565b505050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610ed4929190612af1565b6020604051808303816000875af1158015610ef3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f179190612b46565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f484f572000000000000000000000000000000000000000000000000000000000815250905090565b6000610fca610fc36112b2565b8484611483565b6001905092915050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110156112b2565b73ffffffffffffffffffffffffffffffffffffffff161461103557600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401611092929190612bc8565b6020604051808303816000875af11580156110b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d59190612b46565b505050565b600d5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61116f6112b2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111f3906128ec565b60405180910390fd5b6009600a61120a9190612813565b6319133850611219919061285e565b600d819055506009600a61122d9190612813565b631913385061123c919061285e565b600e819055506000601360176101000a81548160ff0219169083151502179055507ff7376c86cf503c5788ae74467ebc95b750bc4d5c64790343f9b4f42bdf376eee6009600a61128c9190612813565b631913385061129b919061285e565b6040516112a89190612522565b60405180910390a1565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611329576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132090612c63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611398576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138f90612cf5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114769190612522565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e990612d87565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611561576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155890612e19565b60405180910390fd5b600081116115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90612eab565b60405180910390fd5b60006115ae610f50565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561161c57506115ec610f50565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b645761165d606461164f600754600c541161163c57600554611640565b6006545b8561216a90919063ffffffff16565b6121e490919063ffffffff16565b9050601360179054906101000a900460ff16156117ec57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156117205750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117eb5743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106117a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179d90612f63565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118975750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118ed5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119a857600d54821115611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e90612fcf565b60405180910390fd5b600e548261194485610869565b61194e9190612fef565b111561198f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119869061306f565b60405180910390fd5b600c60008154809291906119a29061308f565b91905055505b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a3157503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a7557611a726064611a64600a54600c5411611a5157600854611a55565b6009545b8561216a90919063ffffffff16565b6121e490919063ffffffff16565b90505b6000611a8030610869565b9050601360159054906101000a900460ff16158015611aec5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b045750601360169054906101000a900460ff165b8015611b115750600f5481115b8015611b205750600b54600c54115b15611b6257611b42611b3d84611b388460105461222e565b61222e565b611e85565b60004790506611c37937e08000811115611b6057611b5f476120fe565b5b505b505b6000811115611c6857611bbf81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224790919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5f9190612522565b60405180910390a35b611cba82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d61611d1382846122a590919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461224790919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e0684866122a590919063ffffffff16565b604051611e139190612522565b60405180910390a350505050565b6000838311158290611e69576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6091906123e2565b60405180910390fd5b5060008385611e7891906130d7565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ebd57611ebc61310b565b5b604051908082528060200260200182016040528015611eeb5781602001602082028036833780820191505090505b5090503081600081518110611f0357611f0261313a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611faa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fce919061298d565b81600181518110611fe257611fe161313a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061204930601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846112ba565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120ad959493929190613227565b600060405180830381600087803b1580156120c757600080fd5b505af11580156120db573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612166573d6000803e3d6000fd5b5050565b600080830361217c57600090506121de565b6000828461218a919061285e565b905082848261219991906132b0565b146121d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d090613353565b60405180910390fd5b809150505b92915050565b600061222683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ef565b905092915050565b600081831161223d578261223f565b815b905092915050565b60008082846122569190612fef565b90508381101561229b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612292906133bf565b60405180910390fd5b8091505092915050565b60006122e783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e21565b905092915050565b60008083118290612336576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161232d91906123e2565b60405180910390fd5b506000838561234591906132b0565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561238c578082015181840152602081019050612371565b60008484015250505050565b6000601f19601f8301169050919050565b60006123b482612352565b6123be818561235d565b93506123ce81856020860161236e565b6123d781612398565b840191505092915050565b600060208201905081810360008301526123fc81846123a9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061243482612409565b9050919050565b61244481612429565b811461244f57600080fd5b50565b6000813590506124618161243b565b92915050565b6000819050919050565b61247a81612467565b811461248557600080fd5b50565b60008135905061249781612471565b92915050565b600080604083850312156124b4576124b3612404565b5b60006124c285828601612452565b92505060206124d385828601612488565b9150509250929050565b60008115159050919050565b6124f2816124dd565b82525050565b600060208201905061250d60008301846124e9565b92915050565b61251c81612467565b82525050565b60006020820190506125376000830184612513565b92915050565b60008060006060848603121561255657612555612404565b5b600061256486828701612488565b935050602061257586828701612488565b925050604061258686828701612488565b9150509250925092565b6000806000606084860312156125a9576125a8612404565b5b60006125b786828701612452565b93505060206125c886828701612452565b92505060406125d986828701612488565b9150509250925092565b600060ff82169050919050565b6125f9816125e3565b82525050565b600060208201905061261460008301846125f0565b92915050565b6000602082840312156126305761262f612404565b5b600061263e84828501612452565b91505092915050565b61265081612429565b82525050565b600060208201905061266b6000830184612647565b92915050565b6000806040838503121561268857612687612404565b5b600061269685828601612452565b92505060206126a785828601612452565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561273757808604811115612713576127126126b1565b5b60018516156127225780820291505b8081029050612730856126e0565b94506126f7565b94509492505050565b600082612750576001905061280c565b8161275e576000905061280c565b8160018114612774576002811461277e576127ad565b600191505061280c565b60ff8411156127905761278f6126b1565b5b8360020a9150848211156127a7576127a66126b1565b5b5061280c565b5060208310610133831016604e8410600b84101617156127e25782820a9050838111156127dd576127dc6126b1565b5b61280c565b6127ef84848460016126ed565b92509050818404811115612806576128056126b1565b5b81810290505b9392505050565b600061281e82612467565b9150612829836125e3565b92506128567fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612740565b905092915050565b600061286982612467565b915061287483612467565b925082820261288281612467565b91508282048414831517612899576128986126b1565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006128d660208361235d565b91506128e1826128a0565b602082019050919050565b60006020820190508181036000830152612905816128c9565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061294260178361235d565b915061294d8261290c565b602082019050919050565b6000602082019050818103600083015261297181612935565b9050919050565b6000815190506129878161243b565b92915050565b6000602082840312156129a3576129a2612404565b5b60006129b184828501612978565b91505092915050565b60006040820190506129cf6000830185612647565b6129dc6020830184612647565b9392505050565b6000819050919050565b6000819050919050565b6000612a12612a0d612a08846129e3565b6129ed565b612467565b9050919050565b612a22816129f7565b82525050565b600060c082019050612a3d6000830189612647565b612a4a6020830188612513565b612a576040830187612a19565b612a646060830186612a19565b612a716080830185612647565b612a7e60a0830184612513565b979650505050505050565b600081519050612a9881612471565b92915050565b600080600060608486031215612ab757612ab6612404565b5b6000612ac586828701612a89565b9350506020612ad686828701612a89565b9250506040612ae786828701612a89565b9150509250925092565b6000604082019050612b066000830185612647565b612b136020830184612513565b9392505050565b612b23816124dd565b8114612b2e57600080fd5b50565b600081519050612b4081612b1a565b92915050565b600060208284031215612b5c57612b5b612404565b5b6000612b6a84828501612b31565b91505092915050565b6000612b8e612b89612b8484612409565b6129ed565b612409565b9050919050565b6000612ba082612b73565b9050919050565b6000612bb282612b95565b9050919050565b612bc281612ba7565b82525050565b6000604082019050612bdd6000830185612bb9565b612bea6020830184612513565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612c4d60248361235d565b9150612c5882612bf1565b604082019050919050565b60006020820190508181036000830152612c7c81612c40565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cdf60228361235d565b9150612cea82612c83565b604082019050919050565b60006020820190508181036000830152612d0e81612cd2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d7160258361235d565b9150612d7c82612d15565b604082019050919050565b60006020820190508181036000830152612da081612d64565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e0360238361235d565b9150612e0e82612da7565b604082019050919050565b60006020820190508181036000830152612e3281612df6565b9050919050565b7f45524332303a205472616e7366657220616d6f756e74206d757374206265206760008201527f726561746572207468616e207a65726f00000000000000000000000000000000602082015250565b6000612e9560308361235d565b9150612ea082612e39565b604082019050919050565b60006020820190508181036000830152612ec481612e88565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612f4d60498361235d565b9150612f5882612ecb565b606082019050919050565b60006020820190508181036000830152612f7c81612f40565b9050919050565b7f4578636565647320746865206d617854786e416d6f756e742e00000000000000600082015250565b6000612fb960198361235d565b9150612fc482612f83565b602082019050919050565b60006020820190508181036000830152612fe881612fac565b9050919050565b6000612ffa82612467565b915061300583612467565b925082820190508082111561301d5761301c6126b1565b5b92915050565b7f4578636565647320746865206d617857616c6c65744c696d69742e0000000000600082015250565b6000613059601b8361235d565b915061306482613023565b602082019050919050565b600060208201905081810360008301526130888161304c565b9050919050565b600061309a82612467565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130cc576130cb6126b1565b5b600182019050919050565b60006130e282612467565b91506130ed83612467565b9250828203905081811115613105576131046126b1565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61319e81612429565b82525050565b60006131b08383613195565b60208301905092915050565b6000602082019050919050565b60006131d482613169565b6131de8185613174565b93506131e983613185565b8060005b8381101561321a57815161320188826131a4565b975061320c836131bc565b9250506001810190506131ed565b5085935050505092915050565b600060a08201905061323c6000830188612513565b6132496020830187612a19565b818103604083015261325b81866131c9565b905061326a6060830185612647565b6132776080830184612513565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132bb82612467565b91506132c683612467565b9250826132d6576132d5613281565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061333d60218361235d565b9150613348826132e1565b604082019050919050565b6000602082019050818103600083015261336c81613330565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b60006133a9601b8361235d565b91506133b482613373565b602082019050919050565b600060208201905081810360008301526133d88161339c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207b279bb6bd0addc58821f24f5fdd4ab04497e77ff0e767fa3d090e5137946d4764736f6c63430008130033

Deployed Bytecode Sourcemap

3443:9027:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5308:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6196:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5585:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11687:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6390:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11461:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5494:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11923:361;;;;;;;;;;;;;:::i;:::-;;4454:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4520:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4390:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5693:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2482:148;;;;;;;;;;;;;:::i;:::-;;4785:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10499:722;;;;;;;;;;;;;:::i;:::-;;2268:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5399:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5820:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12292:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4328:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6020:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11229:224;;;;;;;;;;;;;:::i;:::-;;5308:83;5345:13;5378:5;;;;;;;;;;;;;;;;;5371:12;;5308:83;:::o;6196:186::-;6296:4;6313:39;6322:12;:10;:12::i;:::-;6336:7;6345:6;6313:8;:39::i;:::-;6370:4;6363:11;;6196:186;;;;:::o;5585:100::-;5638:7;3684:1;3744:2;:15;;;;:::i;:::-;3732:9;:27;;;;:::i;:::-;5658:19;;5585:100;:::o;11687:228::-;2405:12;:10;:12::i;:::-;2395:22;;:6;;;;;;;;;;:22;;;2387:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11835:6:::1;11823:9;:18;;;;11864:6;11852:9;:18;;;;11897:10;11881:13;:26;;;;11687:228:::0;;;:::o;6390:446::-;6522:4;6539:36;6549:6;6557:9;6568:6;6539:9;:36::i;:::-;6586:220;6609:6;6630:12;:10;:12::i;:::-;6657:138;6713:6;6657:138;;;;;;;;;;;;;;;;;:11;:19;6669:6;6657:19;;;;;;;;;;;;;;;:33;6677:12;:10;:12::i;:::-;6657:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;6586:8;:220::i;:::-;6824:4;6817:11;;6390:446;;;;;:::o;11461:218::-;2405:12;:10;:12::i;:::-;2395:22;;:6;;;;;;;;;;:22;;;2387:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11604:5:::1;11593:8;:16;;;;11631:5;11620:8;:16;;;;11662:9;11647:12;:24;;;;11461:218:::0;;;:::o;5494:83::-;5535:5;3684:1;5553:16;;5494:83;:::o;11923:361::-;11986:9;;;;;;;;;;;11970:25;;:12;:10;:12::i;:::-;:25;;;11962:34;;;;;;12007:20;12030:24;12048:4;12030:9;:24::i;:::-;12007:47;;12084:1;12069:12;:16;12065:79;;;12102:30;12119:12;12102:16;:30::i;:::-;12065:79;12154:18;12175:21;12154:42;;12224:1;12211:10;:14;12207:70;;;12242:23;12254:10;12242:11;:23::i;:::-;12207:70;11951:333;;11923:361::o;4454:59::-;;;;:::o;4520:53::-;;;;:::o;4390:57::-;;;;:::o;5693:119::-;5759:7;5786:9;:18;5796:7;5786:18;;;;;;;;;;;;;;;;5779:25;;5693:119;;;:::o;2482:148::-;2405:12;:10;:12::i;:::-;2395:22;;:6;;;;;;;;;;:22;;;2387:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2589:1:::1;2552:40;;2573:6;::::0;::::1;;;;;;;;2552:40;;;;;;;;;;;;2620:1;2603:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2482:148::o:0;4785:39::-;;;;;;;;;;;;;:::o;10499:722::-;2405:12;:10;:12::i;:::-;2395:22;;:6;;;;;;;;;;:22;;;2387:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10563:11:::1;;;;;;;;;;;10562:12;10554:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;10633:42;10613:6;;:63;;;;;;;;;;;;;;;;;;10687:54;10704:4;10719:6;;;;;;;;;;;3684:1;3744:2;:15;;;;:::i;:::-;3732:9;:27;;;;:::i;:::-;10687:8;:54::i;:::-;10771:6;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10759:40;;;10822:4;10842:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10759:107;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10752:4;;:114;;;;;;;;;;;;;;;;;;10877:6;;;;;;;;;;;:22;;;10907:21;10952:4;10972:24;10990:4;10972:9;:24::i;:::-;11011:1;11027::::0;11043:7:::1;:5;:7::i;:::-;11065:15;10877:214;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11109:4;;;;;;;;;;;11102:20;;;11131:6;;;;;;;;;;;11140:14;11102:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11180:4;11166:11;;:18;;;;;;;;;;;;;;;;;;11209:4;11195:11;;:18;;;;;;;;;;;;;;;;;;10499:722::o:0;2268:79::-;2306:7;2333:6;;;;;;;;;;;2326:13;;2268:79;:::o;5399:87::-;5438:13;5471:7;;;;;;;;;;;;;;;;;5464:14;;5399:87;:::o;5820:192::-;5923:4;5940:42;5950:12;:10;:12::i;:::-;5964:9;5975:6;5940:9;:42::i;:::-;6000:4;5993:11;;5820:192;;;;:::o;12292:175::-;12395:9;;;;;;;;;;;12379:25;;:12;:10;:12::i;:::-;:25;;;12371:34;;;;;;12423:6;12416:23;;;12440:9;;;;;;;;;;;12451:7;12416:43;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12292:175;;:::o;4328:55::-;;;;:::o;6020:168::-;6126:7;6153:11;:18;6165:5;6153:18;;;;;;;;;;;;;;;:27;6172:7;6153:27;;;;;;;;;;;;;;;;6146:34;;6020:168;;;;:::o;11229:224::-;2405:12;:10;:12::i;:::-;2395:22;;:6;;;;;;;;;;:22;;;2387:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3684:1:::1;3744:2;:15;;;;:::i;:::-;3732:9;:27;;;;:::i;:::-;11290:12;:27;;;;3684:1;3744:2;:15;;;;:::i;:::-;3732:9;:27;;;;:::i;:::-;11328:14;:29;;;;11391:5;11368:20;;:28;;;;;;;;;;;;;;;;;;11412:33;3684:1;3744:2;:15;;;;:::i;:::-;3732:9;:27;;;;:::i;:::-;11412:33;;;;;;:::i;:::-;;;;;;;;11229:224::o:0;1821:98::-;1874:7;1901:10;1894:17;;1821:98;:::o;6844:335::-;6954:1;6937:19;;:5;:19;;;6929:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7035:1;7016:21;;:7;:21;;;7008:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7117:6;7087:11;:18;7099:5;7087:18;;;;;;;;;;;;;;;:27;7106:7;7087:27;;;;;;;;;;;;;;;:36;;;;7155:7;7139:32;;7148:5;7139:32;;;7164:6;7139:32;;;;;;:::i;:::-;;;;;;;;6844:335;;;:::o;7187:2624::-;7291:1;7275:18;;:4;:18;;;7267:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7368:1;7354:16;;:2;:16;;;7346:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7438:1;7429:6;:10;7421:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7503:17;7547:7;:5;:7::i;:::-;7539:15;;:4;:15;;;;:32;;;;;7564:7;:5;:7::i;:::-;7558:13;;:2;:13;;;;7539:32;7535:1905;;;7600:107;7703:3;7600:80;7644:12;;7630:11;;:26;7629:50;;7671:8;;7629:50;;;7660:8;;7629:50;7600:6;:28;;:80;;;;:::i;:::-;:102;;:107;;;;:::i;:::-;7588:119;;7728:20;;;;;;;;;;;7724:421;;;7787:6;;;;;;;;;;;7773:21;;:2;:21;;;;:44;;;;;7812:4;;;;;;;;;;;7798:19;;:2;:19;;;;7773:44;7769:361;;;7907:12;7876:17;:28;7894:9;7876:28;;;;;;;;;;;;;;;;:43;7842:202;;;;;;;;;;;;:::i;:::-;;;;;;;;;8098:12;8067:17;:28;8085:9;8067:28;;;;;;;;;;;;;;;:43;;;;7769:361;7724:421;8191:4;;;;;;;;;;;8183:12;;:4;:12;;;:37;;;;;8213:6;;;;;;;;;;;8199:21;;:2;:21;;;;8183:37;:64;;;;;8225:18;:22;8244:2;8225:22;;;;;;;;;;;;;;;;;;;;;;;;;8224:23;8183:64;8161:389;;;8300:12;;8290:6;:22;;8282:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8417:14;;8407:6;8391:13;8401:2;8391:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8361:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;8521:11;;:13;;;;;;;;;:::i;:::-;;;;;;8161:389;8576:4;;;;;;;;;;;8570:10;;:2;:10;;;:35;;;;;8600:4;8584:21;;:4;:21;;;;8570:35;8566:206;;;8638:118;8752:3;8638:87;8686:13;;8672:11;;:27;8671:53;;8715:9;;8671:53;;;8703:9;;8671:53;8638:6;:32;;:87;;;;:::i;:::-;:113;;:118;;;;:::i;:::-;8626:130;;8566:206;8788:28;8819:24;8837:4;8819:9;:24::i;:::-;8788:55;;8881:6;;;;;;;;;;;8880:7;:38;;;;;8914:4;;;;;;;;;;;8908:10;;:2;:10;;;8880:38;:70;;;;;8939:11;;;;;;;;;;;8880:70;:130;;;;;8994:16;;8971:20;:39;8880:130;:182;;;;;9045:17;;9031:11;;:31;8880:182;8858:571;;;9097:114;9136:56;9143:6;9151:40;9158:20;9180:10;;9151:6;:40::i;:::-;9136:6;:56::i;:::-;9097:16;:114::i;:::-;9230:26;9259:21;9230:50;;9324:11;9303:18;:32;9299:115;;;9360:34;9372:21;9360:11;:34::i;:::-;9299:115;9078:351;8858:571;7573:1867;7535:1905;9468:1;9456:9;:13;9452:172;;;9513:39;9542:9;9513;:24;9531:4;9513:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9486:9;:24;9504:4;9486:24;;;;;;;;;;;;;;;:66;;;;9595:4;9572:40;;9581:4;9572:40;;;9602:9;9572:40;;;;;;:::i;:::-;;;;;;;;9452:172;9652:27;9672:6;9652:9;:15;9662:4;9652:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9634:9;:15;9644:4;9634:15;;;;;;;;;;;;;;;:45;;;;9706:40;9724:21;9735:9;9724:6;:10;;:21;;;;:::i;:::-;9706:9;:13;9716:2;9706:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9690:9;:13;9700:2;9690:13;;;;;;;;;;;;;;;:56;;;;9777:2;9762:41;;9771:4;9762:41;;;9781:21;9792:9;9781:6;:10;;:21;;;;:::i;:::-;9762:41;;;;;;:::i;:::-;;;;;;;;7256:2555;7187:2624;;;:::o;12829:224::-;12949:7;12982:1;12977;:6;;12985:12;12969:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13009:9;13025:1;13021;:5;;;;:::i;:::-;13009:17;;13044:1;13037:8;;;12829:224;;;;;:::o;9917:456::-;4927:4;4918:6;;:13;;;;;;;;;;;;;;;;;;9995:21:::1;10033:1;10019:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9995:40;;10064:4;10046;10051:1;10046:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10090:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10080:4;10085:1;10080:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10114:53;10131:4;10146:6;;;;;;;;;;;10155:11;10114:8;:53::i;:::-;10178:6;;;;;;;;;;;:57;;;10250:11;10276:1;10292:4;10319;10339:15;10178:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9984:389;4963:5:::0;4954:6;;:14;;;;;;;;;;;;;;;;;;9917:456;:::o;9819:90::-;9875:9;;;;;;;;;;;:18;;:26;9894:6;9875:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9819:90;:::o;13061:246::-;13119:7;13148:1;13143;:6;13139:47;;13173:1;13166:8;;;;13139:47;13196:9;13212:1;13208;:5;;;;:::i;:::-;13196:17;;13241:1;13236;13232;:5;;;;:::i;:::-;:10;13224:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;13298:1;13291:8;;;13061:246;;;;;:::o;13315:132::-;13373:7;13400:39;13404:1;13407;13400:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;13393:46;;13315:132;;;;:::o;10381:110::-;10441:7;10473:1;10469;:5;10468:15;;10482:1;10468:15;;;10478:1;10468:15;10461:22;;10381:110;;;;:::o;12498:179::-;12556:7;12576:9;12592:1;12588;:5;;;;:::i;:::-;12576:17;;12617:1;12612;:6;;12604:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12668:1;12661:8;;;12498:179;;;;:::o;12685:136::-;12743:7;12770:43;12774:1;12777;12770:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;12763:50;;12685:136;;;;:::o;13455:223::-;13575:7;13607:1;13603;:5;13610:12;13595:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;13634:9;13650:1;13646;:5;;;;:::i;:::-;13634:17;;13669:1;13662:8;;;13455:223;;;;;:::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;1430:117::-;1539:1;1536;1529: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:::-;4500:6;4508;4516;4565:2;4553:9;4544:7;4540:23;4536:32;4533:119;;;4571:79;;:::i;:::-;4533:119;4691:1;4716:53;4761:7;4752:6;4741:9;4737:22;4716:53;:::i;:::-;4706:63;;4662:117;4818:2;4844:53;4889:7;4880:6;4869:9;4865:22;4844:53;:::i;:::-;4834:63;;4789:118;4946:2;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4917:118;4423:619;;;;;:::o;5048:86::-;5083:7;5123:4;5116:5;5112:16;5101:27;;5048:86;;;:::o;5140:112::-;5223:22;5239:5;5223:22;:::i;:::-;5218:3;5211:35;5140:112;;:::o;5258:214::-;5347:4;5385:2;5374:9;5370:18;5362:26;;5398:67;5462:1;5451:9;5447:17;5438:6;5398:67;:::i;:::-;5258:214;;;;:::o;5478:329::-;5537:6;5586:2;5574:9;5565:7;5561:23;5557:32;5554:119;;;5592:79;;:::i;:::-;5554:119;5712:1;5737:53;5782:7;5773:6;5762:9;5758:22;5737:53;:::i;:::-;5727:63;;5683:117;5478:329;;;;:::o;5813:118::-;5900:24;5918:5;5900:24;:::i;:::-;5895:3;5888:37;5813:118;;:::o;5937:222::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:71;6149:1;6138:9;6134:17;6125:6;6081:71;:::i;:::-;5937:222;;;;:::o;6165:474::-;6233:6;6241;6290:2;6278:9;6269:7;6265:23;6261:32;6258:119;;;6296:79;;:::i;:::-;6258:119;6416:1;6441:53;6486:7;6477:6;6466:9;6462:22;6441:53;:::i;:::-;6431:63;;6387:117;6543:2;6569:53;6614:7;6605:6;6594:9;6590:22;6569:53;:::i;:::-;6559:63;;6514:118;6165:474;;;;;:::o;6645:180::-;6693:77;6690:1;6683:88;6790:4;6787:1;6780:15;6814:4;6811:1;6804:15;6831:102;6873:8;6920:5;6917:1;6913:13;6892:34;;6831:102;;;:::o;6939:848::-;7000:5;7007:4;7031:6;7022:15;;7055:5;7046:14;;7069:712;7090:1;7080:8;7077:15;7069:712;;;7185:4;7180:3;7176:14;7170:4;7167:24;7164:50;;;7194:18;;:::i;:::-;7164:50;7244:1;7234:8;7230:16;7227:451;;;7659:4;7652:5;7648:16;7639:25;;7227:451;7709:4;7703;7699:15;7691:23;;7739:32;7762:8;7739:32;:::i;:::-;7727:44;;7069:712;;;6939:848;;;;;;;:::o;7793:1073::-;7847:5;8038:8;8028:40;;8059:1;8050:10;;8061:5;;8028:40;8087:4;8077:36;;8104:1;8095:10;;8106:5;;8077:36;8173:4;8221:1;8216:27;;;;8257:1;8252:191;;;;8166:277;;8216:27;8234:1;8225:10;;8236:5;;;8252:191;8297:3;8287:8;8284:17;8281:43;;;8304:18;;:::i;:::-;8281:43;8353:8;8350:1;8346:16;8337:25;;8388:3;8381:5;8378:14;8375:40;;;8395:18;;:::i;:::-;8375:40;8428:5;;;8166:277;;8552:2;8542:8;8539:16;8533:3;8527:4;8524:13;8520:36;8502:2;8492:8;8489:16;8484:2;8478:4;8475:12;8471:35;8455:111;8452:246;;;8608:8;8602:4;8598:19;8589:28;;8643:3;8636:5;8633:14;8630:40;;;8650:18;;:::i;:::-;8630:40;8683:5;;8452:246;8723:42;8761:3;8751:8;8745:4;8742:1;8723:42;:::i;:::-;8708:57;;;;8797:4;8792:3;8788:14;8781:5;8778:25;8775:51;;;8806:18;;:::i;:::-;8775:51;8855:4;8848:5;8844:16;8835:25;;7793:1073;;;;;;:::o;8872:281::-;8930:5;8954:23;8972:4;8954:23;:::i;:::-;8946:31;;8998:25;9014:8;8998:25;:::i;:::-;8986:37;;9042:104;9079:66;9069:8;9063:4;9042:104;:::i;:::-;9033:113;;8872:281;;;;:::o;9159:410::-;9199:7;9222:20;9240:1;9222:20;:::i;:::-;9217:25;;9256:20;9274:1;9256:20;:::i;:::-;9251:25;;9311:1;9308;9304:9;9333:30;9351:11;9333:30;:::i;:::-;9322:41;;9512:1;9503:7;9499:15;9496:1;9493:22;9473:1;9466:9;9446:83;9423:139;;9542:18;;:::i;:::-;9423:139;9207:362;9159:410;;;;:::o;9575:182::-;9715:34;9711:1;9703:6;9699:14;9692:58;9575:182;:::o;9763:366::-;9905:3;9926:67;9990:2;9985:3;9926:67;:::i;:::-;9919:74;;10002:93;10091:3;10002:93;:::i;:::-;10120:2;10115:3;10111:12;10104:19;;9763:366;;;:::o;10135:419::-;10301:4;10339:2;10328:9;10324:18;10316:26;;10388:9;10382:4;10378:20;10374:1;10363:9;10359:17;10352:47;10416:131;10542:4;10416:131;:::i;:::-;10408:139;;10135:419;;;:::o;10560:173::-;10700:25;10696:1;10688:6;10684:14;10677:49;10560:173;:::o;10739:366::-;10881:3;10902:67;10966:2;10961:3;10902:67;:::i;:::-;10895:74;;10978:93;11067:3;10978:93;:::i;:::-;11096:2;11091:3;11087:12;11080:19;;10739:366;;;:::o;11111:419::-;11277:4;11315:2;11304:9;11300:18;11292:26;;11364:9;11358:4;11354:20;11350:1;11339:9;11335:17;11328:47;11392:131;11518:4;11392:131;:::i;:::-;11384:139;;11111:419;;;:::o;11536:143::-;11593:5;11624:6;11618:13;11609:22;;11640:33;11667:5;11640:33;:::i;:::-;11536:143;;;;:::o;11685:351::-;11755:6;11804:2;11792:9;11783:7;11779:23;11775:32;11772:119;;;11810:79;;:::i;:::-;11772:119;11930:1;11955:64;12011:7;12002:6;11991:9;11987:22;11955:64;:::i;:::-;11945:74;;11901:128;11685:351;;;;:::o;12042:332::-;12163:4;12201:2;12190:9;12186:18;12178:26;;12214:71;12282:1;12271:9;12267:17;12258:6;12214:71;:::i;:::-;12295:72;12363:2;12352:9;12348:18;12339:6;12295:72;:::i;:::-;12042:332;;;;;:::o;12380:85::-;12425:7;12454:5;12443:16;;12380:85;;;:::o;12471:60::-;12499:3;12520:5;12513:12;;12471:60;;;:::o;12537:158::-;12595:9;12628:61;12646:42;12655:32;12681:5;12655:32;:::i;:::-;12646:42;:::i;:::-;12628:61;:::i;:::-;12615:74;;12537:158;;;:::o;12701:147::-;12796:45;12835:5;12796:45;:::i;:::-;12791:3;12784:58;12701:147;;:::o;12854:807::-;13103:4;13141:3;13130:9;13126:19;13118:27;;13155:71;13223:1;13212:9;13208:17;13199:6;13155:71;:::i;:::-;13236:72;13304:2;13293:9;13289:18;13280:6;13236:72;:::i;:::-;13318:80;13394:2;13383:9;13379:18;13370:6;13318:80;:::i;:::-;13408;13484:2;13473:9;13469:18;13460:6;13408:80;:::i;:::-;13498:73;13566:3;13555:9;13551:19;13542:6;13498:73;:::i;:::-;13581;13649:3;13638:9;13634:19;13625:6;13581:73;:::i;:::-;12854:807;;;;;;;;;:::o;13667:143::-;13724:5;13755:6;13749:13;13740:22;;13771:33;13798:5;13771:33;:::i;:::-;13667:143;;;;:::o;13816:663::-;13904:6;13912;13920;13969:2;13957:9;13948:7;13944:23;13940:32;13937:119;;;13975:79;;:::i;:::-;13937:119;14095:1;14120:64;14176:7;14167:6;14156:9;14152:22;14120:64;:::i;:::-;14110:74;;14066:128;14233:2;14259:64;14315:7;14306:6;14295:9;14291:22;14259:64;:::i;:::-;14249:74;;14204:129;14372:2;14398:64;14454:7;14445:6;14434:9;14430:22;14398:64;:::i;:::-;14388:74;;14343:129;13816:663;;;;;:::o;14485:332::-;14606:4;14644:2;14633:9;14629:18;14621:26;;14657:71;14725:1;14714:9;14710:17;14701:6;14657:71;:::i;:::-;14738:72;14806:2;14795:9;14791:18;14782:6;14738:72;:::i;:::-;14485:332;;;;;:::o;14823:116::-;14893:21;14908:5;14893:21;:::i;:::-;14886:5;14883:32;14873:60;;14929:1;14926;14919:12;14873:60;14823:116;:::o;14945:137::-;14999:5;15030:6;15024:13;15015:22;;15046:30;15070:5;15046:30;:::i;:::-;14945:137;;;;:::o;15088:345::-;15155:6;15204:2;15192:9;15183:7;15179:23;15175:32;15172:119;;;15210:79;;:::i;:::-;15172:119;15330:1;15355:61;15408:7;15399:6;15388:9;15384:22;15355:61;:::i;:::-;15345:71;;15301:125;15088:345;;;;:::o;15439:142::-;15489:9;15522:53;15540:34;15549:24;15567:5;15549:24;:::i;:::-;15540:34;:::i;:::-;15522:53;:::i;:::-;15509:66;;15439:142;;;:::o;15587:126::-;15637:9;15670:37;15701:5;15670:37;:::i;:::-;15657:50;;15587:126;;;:::o;15719:134::-;15777:9;15810:37;15841:5;15810:37;:::i;:::-;15797:50;;15719:134;;;:::o;15859:147::-;15954:45;15993:5;15954:45;:::i;:::-;15949:3;15942:58;15859:147;;:::o;16012:348::-;16141:4;16179:2;16168:9;16164:18;16156:26;;16192:79;16268:1;16257:9;16253:17;16244:6;16192:79;:::i;:::-;16281:72;16349:2;16338:9;16334:18;16325:6;16281:72;:::i;:::-;16012:348;;;;;:::o;16366:223::-;16506:34;16502:1;16494:6;16490:14;16483:58;16575:6;16570:2;16562:6;16558:15;16551:31;16366:223;:::o;16595:366::-;16737:3;16758:67;16822:2;16817:3;16758:67;:::i;:::-;16751:74;;16834:93;16923:3;16834:93;:::i;:::-;16952:2;16947:3;16943:12;16936:19;;16595:366;;;:::o;16967:419::-;17133:4;17171:2;17160:9;17156:18;17148:26;;17220:9;17214:4;17210:20;17206:1;17195:9;17191:17;17184:47;17248:131;17374:4;17248:131;:::i;:::-;17240:139;;16967:419;;;:::o;17392:221::-;17532:34;17528:1;17520:6;17516:14;17509:58;17601:4;17596:2;17588:6;17584:15;17577:29;17392:221;:::o;17619:366::-;17761:3;17782:67;17846:2;17841:3;17782:67;:::i;:::-;17775:74;;17858:93;17947:3;17858:93;:::i;:::-;17976:2;17971:3;17967:12;17960:19;;17619:366;;;:::o;17991:419::-;18157:4;18195:2;18184:9;18180:18;18172:26;;18244:9;18238:4;18234:20;18230:1;18219:9;18215:17;18208:47;18272:131;18398:4;18272:131;:::i;:::-;18264:139;;17991:419;;;:::o;18416:224::-;18556:34;18552:1;18544:6;18540:14;18533:58;18625:7;18620:2;18612:6;18608:15;18601:32;18416:224;:::o;18646:366::-;18788:3;18809:67;18873:2;18868:3;18809:67;:::i;:::-;18802:74;;18885:93;18974:3;18885:93;:::i;:::-;19003:2;18998:3;18994:12;18987:19;;18646:366;;;:::o;19018:419::-;19184:4;19222:2;19211:9;19207:18;19199:26;;19271:9;19265:4;19261:20;19257:1;19246:9;19242:17;19235:47;19299:131;19425:4;19299:131;:::i;:::-;19291:139;;19018:419;;;:::o;19443:222::-;19583:34;19579:1;19571:6;19567:14;19560:58;19652:5;19647:2;19639:6;19635:15;19628:30;19443:222;:::o;19671:366::-;19813:3;19834:67;19898:2;19893:3;19834:67;:::i;:::-;19827:74;;19910:93;19999:3;19910:93;:::i;:::-;20028:2;20023:3;20019:12;20012:19;;19671:366;;;:::o;20043:419::-;20209:4;20247:2;20236:9;20232:18;20224:26;;20296:9;20290:4;20286:20;20282:1;20271:9;20267:17;20260:47;20324:131;20450:4;20324:131;:::i;:::-;20316:139;;20043:419;;;:::o;20468:235::-;20608:34;20604:1;20596:6;20592:14;20585:58;20677:18;20672:2;20664:6;20660:15;20653:43;20468:235;:::o;20709:366::-;20851:3;20872:67;20936:2;20931:3;20872:67;:::i;:::-;20865:74;;20948:93;21037:3;20948:93;:::i;:::-;21066:2;21061:3;21057:12;21050:19;;20709:366;;;:::o;21081:419::-;21247:4;21285:2;21274:9;21270:18;21262:26;;21334:9;21328:4;21324:20;21320:1;21309:9;21305:17;21298:47;21362:131;21488:4;21362:131;:::i;:::-;21354:139;;21081:419;;;:::o;21506:297::-;21646:34;21642:1;21634:6;21630:14;21623:58;21715:34;21710:2;21702:6;21698:15;21691:59;21784:11;21779:2;21771:6;21767:15;21760:36;21506:297;:::o;21809:366::-;21951:3;21972:67;22036:2;22031:3;21972:67;:::i;:::-;21965:74;;22048:93;22137:3;22048:93;:::i;:::-;22166:2;22161:3;22157:12;22150:19;;21809:366;;;:::o;22181:419::-;22347:4;22385:2;22374:9;22370:18;22362:26;;22434:9;22428:4;22424:20;22420:1;22409:9;22405:17;22398:47;22462:131;22588:4;22462:131;:::i;:::-;22454:139;;22181:419;;;:::o;22606:175::-;22746:27;22742:1;22734:6;22730:14;22723:51;22606:175;:::o;22787:366::-;22929:3;22950:67;23014:2;23009:3;22950:67;:::i;:::-;22943:74;;23026:93;23115:3;23026:93;:::i;:::-;23144:2;23139:3;23135:12;23128:19;;22787:366;;;:::o;23159:419::-;23325:4;23363:2;23352:9;23348:18;23340:26;;23412:9;23406:4;23402:20;23398:1;23387:9;23383:17;23376:47;23440:131;23566:4;23440:131;:::i;:::-;23432:139;;23159:419;;;:::o;23584:191::-;23624:3;23643:20;23661:1;23643:20;:::i;:::-;23638:25;;23677:20;23695:1;23677:20;:::i;:::-;23672:25;;23720:1;23717;23713:9;23706:16;;23741:3;23738:1;23735:10;23732:36;;;23748:18;;:::i;:::-;23732:36;23584:191;;;;:::o;23781:177::-;23921:29;23917:1;23909:6;23905:14;23898:53;23781:177;:::o;23964:366::-;24106:3;24127:67;24191:2;24186:3;24127:67;:::i;:::-;24120:74;;24203:93;24292:3;24203:93;:::i;:::-;24321:2;24316:3;24312:12;24305:19;;23964:366;;;:::o;24336:419::-;24502:4;24540:2;24529:9;24525:18;24517:26;;24589:9;24583:4;24579:20;24575:1;24564:9;24560:17;24553:47;24617:131;24743:4;24617:131;:::i;:::-;24609:139;;24336:419;;;:::o;24761:233::-;24800:3;24823:24;24841:5;24823:24;:::i;:::-;24814:33;;24869:66;24862:5;24859:77;24856:103;;24939:18;;:::i;:::-;24856:103;24986:1;24979:5;24975:13;24968:20;;24761:233;;;:::o;25000:194::-;25040:4;25060:20;25078:1;25060:20;:::i;:::-;25055:25;;25094:20;25112:1;25094:20;:::i;:::-;25089:25;;25138:1;25135;25131:9;25123:17;;25162:1;25156:4;25153:11;25150:37;;;25167:18;;:::i;:::-;25150:37;25000:194;;;;:::o;25200:180::-;25248:77;25245:1;25238:88;25345:4;25342:1;25335:15;25369:4;25366:1;25359:15;25386:180;25434:77;25431:1;25424:88;25531:4;25528:1;25521:15;25555:4;25552:1;25545:15;25572:114;25639:6;25673:5;25667:12;25657:22;;25572:114;;;:::o;25692:184::-;25791:11;25825:6;25820:3;25813:19;25865:4;25860:3;25856:14;25841:29;;25692:184;;;;:::o;25882:132::-;25949:4;25972:3;25964:11;;26002:4;25997:3;25993:14;25985:22;;25882:132;;;:::o;26020:108::-;26097:24;26115:5;26097:24;:::i;:::-;26092:3;26085:37;26020:108;;:::o;26134:179::-;26203:10;26224:46;26266:3;26258:6;26224:46;:::i;:::-;26302:4;26297:3;26293:14;26279:28;;26134:179;;;;:::o;26319:113::-;26389:4;26421;26416:3;26412:14;26404:22;;26319:113;;;:::o;26468:732::-;26587:3;26616:54;26664:5;26616:54;:::i;:::-;26686:86;26765:6;26760:3;26686:86;:::i;:::-;26679:93;;26796:56;26846:5;26796:56;:::i;:::-;26875:7;26906:1;26891:284;26916:6;26913:1;26910:13;26891:284;;;26992:6;26986:13;27019:63;27078:3;27063:13;27019:63;:::i;:::-;27012:70;;27105:60;27158:6;27105:60;:::i;:::-;27095:70;;26951:224;26938:1;26935;26931:9;26926:14;;26891:284;;;26895:14;27191:3;27184:10;;26592:608;;;26468:732;;;;:::o;27206:831::-;27469:4;27507:3;27496:9;27492:19;27484:27;;27521:71;27589:1;27578:9;27574:17;27565:6;27521:71;:::i;:::-;27602:80;27678:2;27667:9;27663:18;27654:6;27602:80;:::i;:::-;27729:9;27723:4;27719:20;27714:2;27703:9;27699:18;27692:48;27757:108;27860:4;27851:6;27757:108;:::i;:::-;27749:116;;27875:72;27943:2;27932:9;27928:18;27919:6;27875:72;:::i;:::-;27957:73;28025:3;28014:9;28010:19;28001:6;27957:73;:::i;:::-;27206:831;;;;;;;;:::o;28043:180::-;28091:77;28088:1;28081:88;28188:4;28185:1;28178:15;28212:4;28209:1;28202:15;28229:185;28269:1;28286:20;28304:1;28286:20;:::i;:::-;28281:25;;28320:20;28338:1;28320:20;:::i;:::-;28315:25;;28359:1;28349:35;;28364:18;;:::i;:::-;28349:35;28406:1;28403;28399:9;28394:14;;28229:185;;;;:::o;28420:220::-;28560:34;28556:1;28548:6;28544:14;28537:58;28629:3;28624:2;28616:6;28612:15;28605:28;28420:220;:::o;28646:366::-;28788:3;28809:67;28873:2;28868:3;28809:67;:::i;:::-;28802:74;;28885:93;28974:3;28885:93;:::i;:::-;29003:2;28998:3;28994:12;28987:19;;28646:366;;;:::o;29018:419::-;29184:4;29222:2;29211:9;29207:18;29199:26;;29271:9;29265:4;29261:20;29257:1;29246:9;29242:17;29235:47;29299:131;29425:4;29299:131;:::i;:::-;29291:139;;29018:419;;;:::o;29443:177::-;29583:29;29579:1;29571:6;29567:14;29560:53;29443:177;:::o;29626:366::-;29768:3;29789:67;29853:2;29848:3;29789:67;:::i;:::-;29782:74;;29865:93;29954:3;29865:93;:::i;:::-;29983:2;29978:3;29974:12;29967:19;;29626:366;;;:::o;29998:419::-;30164:4;30202:2;30191:9;30187:18;30179:26;;30251:9;30245:4;30241:20;30237:1;30226:9;30222:17;30215:47;30279:131;30405:4;30279:131;:::i;:::-;30271:139;;29998:419;;;:::o

Swarm Source

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