ETH Price: $3,059.16 (+1.16%)
Gas: 3 Gwei

Token

SEVENREALMS (TSR)
 

Overview

Max Total Supply

100,000,000 TSR

Holders

213

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
SEVENREALMS

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-13
*/

// SPDX-License-Identifier: MIT

/*

  Taxes: 5/5

  Telegram: https://t.me/sevenrealmsworld
  Twitter: https://www.twitter.com/7realmsworld
  Website: https://www.sevenrealms.world

*/

pragma solidity ^0.8.20;

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

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

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address owner,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

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

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

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

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

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

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

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

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

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

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

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

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

contract SEVENREALMS is Context, IERC20, Ownable {

    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    uint256 private _buyTax = 20;
    uint256 private _sellTax = 40;

    string private constant _name = unicode"SEVENREALMS";
    string private constant _symbol = unicode"TSR";
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10 ** _decimals;
    uint256 public _maxTxAmount = 2000000 * 10 ** _decimals;
    uint256 public _maxWalletSize = 2000000 * 10 ** _decimals;
    uint256 public _taxSwapThreshold = 500000 * 10 ** _decimals;
    uint256 public _maxTaxSwap = 500000 * 10 ** _decimals;
    uint256 public _tokenSwapThreshold = 50000000 * 10 ** _decimals;

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

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(_msgSender());
        _balances[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

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

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

    function tradingOpen() public view returns (bool) {
        return _tradingOpen;
    }

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

    function _transfer(address from, address to, uint256 amount) private {

        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 taxAmount = 0;

        if (from != owner() && to != owner()) {

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

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

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

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

            uint256 contractTokenBalance = balanceOf(address(this));

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

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

        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));

        emit Transfer(from, to, amount.sub(taxAmount));

    }

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

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

    function updateBuyTax(uint256 buyTax) external onlyOwner {
        require(buyTax < _buyTax, "Buy tax cannot be set to more than the current value");
        _buyTax = buyTax;
    }

    function updateSellTax(uint256 sellTax) external onlyOwner {
        require(sellTax < _sellTax, "Sell tax cannot be set to more than the current value");
        _sellTax = sellTax;
    }

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

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

    receive() external payable {}

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

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tokenSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"}],"name":"updateBuyTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellTax","type":"uint256"}],"name":"updateSellTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160065f6101000a81548160ff021916908315150217905550601460075560286008556009600a620000389190620005f5565b621e848062000048919062000645565b6009556009600a6200005b9190620005f5565b621e84806200006b919062000645565b600a556009600a6200007e9190620005f5565b6207a1206200008e919062000645565b600b556009600a620000a19190620005f5565b6207a120620000b1919062000645565b600c556009600a620000c49190620005f5565b6302faf080620000d5919062000645565b600d555f600f60156101000a81548160ff0219169083151502179055505f600f60166101000a81548160ff02191690831515021790555034801562000118575f80fd5b505f6200012a6200043560201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d66200043560201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002269190620005f5565b6305f5e10062000237919062000645565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200028d6200043c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004079190620005f5565b6305f5e10062000418919062000645565b604051620004279190620006a0565b60405180910390a3620006bb565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004ed57808604811115620004c557620004c462000463565b5b6001851615620004d55780820291505b8081029050620004e58562000490565b9450620004a5565b94509492505050565b5f82620005075760019050620005d9565b8162000516575f9050620005d9565b81600181146200052f57600281146200053a5762000570565b6001915050620005d9565b60ff8411156200054f576200054e62000463565b5b8360020a91508482111562000569576200056862000463565b5b50620005d9565b5060208310610133831016604e8410600b8410161715620005aa5782820a905083811115620005a457620005a362000463565b5b620005d9565b620005b984848460016200049c565b92509050818404811115620005d357620005d262000463565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060182620005e0565b91506200060e83620005e9565b92506200063d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620004f6565b905092915050565b5f6200065182620005e0565b91506200065e83620005e0565b92508282026200066e81620005e0565b9150828204841483151762000688576200068762000463565b5b5092915050565b6200069a81620005e0565b82525050565b5f602082019050620006b55f8301846200068f565b92915050565b61334480620006c95f395ff3fe608060405260043610610143575f3560e01c8063751039fc116100b5578063bf474bed1161006e578063bf474bed14610420578063c876d0b91461044a578063c9567bf914610474578063dd62ed3e1461048a578063f16f07ae146104c6578063ffb54a99146104f05761014a565b8063751039fc146103265780637d1db4a51461033c5780638da5cb5b146103665780638f9a55c01461039057806395d89b41146103ba578063a9059cbb146103e45761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c578063436d33401461029657806351bc3c85146102be57806370a08231146102d4578063715018a6146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806312185a39146101de57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261051a565b60405161016f9190612336565b60405180910390f35b348015610183575f80fd5b5061019e600480360381019061019991906123e7565b610557565b6040516101ab919061243f565b60405180910390f35b3480156101bf575f80fd5b506101c8610574565b6040516101d59190612467565b60405180910390f35b3480156101e9575f80fd5b5061020460048036038101906101ff9190612480565b61057a565b005b348015610211575f80fd5b5061021a61065c565b6040516102279190612467565b60405180910390f35b34801561023b575f80fd5b50610256600480360381019061025191906124ab565b61067f565b604051610263919061243f565b60405180910390f35b348015610277575f80fd5b50610280610753565b60405161028d9190612516565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b79190612480565b61075b565b005b3480156102c9575f80fd5b506102d261083d565b005b3480156102df575f80fd5b506102fa60048036038101906102f5919061252f565b6108d5565b6040516103079190612467565b60405180910390f35b34801561031b575f80fd5b5061032461091b565b005b348015610331575f80fd5b5061033a610a69565b005b348015610347575f80fd5b50610350610bb1565b60405161035d9190612467565b60405180910390f35b348015610371575f80fd5b5061037a610bb7565b6040516103879190612569565b60405180910390f35b34801561039b575f80fd5b506103a4610bde565b6040516103b19190612467565b60405180910390f35b3480156103c5575f80fd5b506103ce610be4565b6040516103db9190612336565b60405180910390f35b3480156103ef575f80fd5b5061040a600480360381019061040591906123e7565b610c21565b604051610417919061243f565b60405180910390f35b34801561042b575f80fd5b50610434610c3e565b6040516104419190612467565b60405180910390f35b348015610455575f80fd5b5061045e610c44565b60405161046b919061243f565b60405180910390f35b34801561047f575f80fd5b50610488610c56565b005b348015610495575f80fd5b506104b060048036038101906104ab9190612582565b611178565b6040516104bd9190612467565b60405180910390f35b3480156104d1575f80fd5b506104da6111fa565b6040516104e79190612467565b60405180910390f35b3480156104fb575f80fd5b50610504611200565b604051610511919061243f565b60405180910390f35b60606040518060400160405280600b81526020017f534556454e5245414c4d53000000000000000000000000000000000000000000815250905090565b5f61056a610563611216565b848461121d565b6001905092915050565b600c5481565b610582611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106059061260a565b60405180910390fd5b6008548110610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064990612698565b60405180910390fd5b8060088190555050565b5f6009600a61066b9190612812565b6305f5e10061067a919061285c565b905090565b5f61068b8484846113e0565b61074884610697611216565b610743856040518060600160405280602881526020016132e76028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106fa611216565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d979092919063ffffffff16565b61121d565b600190509392505050565b5f6009905090565b610763611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e69061260a565b60405180910390fd5b6007548110610833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082a9061290d565b60405180910390fd5b8060078190555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087e611216565b73ffffffffffffffffffffffffffffffffffffffff161461089d575f80fd5b5f6108a7306108d5565b90505f8111156108bb576108ba81611df9565b5b5f4790505f8111156108d1576108d081612064565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610923611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a69061260a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a71611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af49061260a565b60405180910390fd5b6009600a610b0b9190612812565b6305f5e100610b1a919061285c565b6009819055506009600a610b2e9190612812565b6305f5e100610b3d919061285c565b600a819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b8b9190612812565b6305f5e100610b9a919061285c565b604051610ba79190612467565b60405180910390a1565b60095481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600381526020017f5453520000000000000000000000000000000000000000000000000000000000815250905090565b5f610c34610c2d611216565b84846113e0565b6001905092915050565b600b5481565b60065f9054906101000a900460ff1681565b610c5e611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce19061260a565b60405180910390fd5b600f60149054906101000a900460ff1615610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612975565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd630600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dc29190612812565b6305f5e100610dd1919061285c565b61121d565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6491906129a7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0e91906129a7565b6040518363ffffffff1660e01b8152600401610f2b9291906129d2565b6020604051808303815f875af1158015610f47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6b91906129a7565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff2306108d5565b5f80610ffc610bb7565b426040518863ffffffff1660e01b815260040161101e96959493929190612a3b565b60606040518083038185885af115801561103a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061105f9190612aae565b505050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110ff929190612afe565b6020604051808303815f875af115801561111b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113f9190612b4f565b506001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600d5481565b5f600f60149054906101000a900460ff16905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290612bea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612c78565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d39190612467565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590612d06565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390612d94565b60405180910390fd5b5f81116114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f590612e22565b60405180910390fd5b5f611507610bb7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115755750611545610bb7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ae75760065f9054906101000a900460ff161561170057600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116385750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116ff574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106116bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b390612ed6565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117a95750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117fc575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561189f57600954821115611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d90612f3e565b60405180910390fd5b600a5482611853856108d5565b61185d9190612f5c565b111561189e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189590612fd9565b60405180910390fd5b5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561192757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611957576119546064611946600754856120cd90919063ffffffff16565b61214490919063ffffffff16565b90505b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119df57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a0f57611a0c60646119fe600854856120cd90919063ffffffff16565b61214490919063ffffffff16565b90505b5f611a19306108d5565b9050600f60159054906101000a900460ff16158015611a845750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a9c5750600f60169054906101000a900460ff165b8015611aa95750600b5481115b15611ae557611acb611ac684611ac184600c5461218d565b61218d565b611df9565b5f479050600d54811115611ae357611ae247612064565b5b505b505b5f811115611be657611b3f8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bdd9190612467565b60405180910390a35b611c368260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cd9611c8d828461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d7c848661220290919063ffffffff16565b604051611d899190612467565b60405180910390a350505050565b5f838311158290611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd59190612336565b60405180910390fd5b505f8385611dec9190612ff7565b9050809150509392505050565b6001600f60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e3057611e2f61302a565b5b604051908082528060200260200182016040528015611e5e5781602001602082028036833780820191505090505b50905030815f81518110611e7557611e74613057565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f3d91906129a7565b81600181518110611f5157611f50613057565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fb730600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461121d565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161201995949392919061313b565b5f604051808303815f87803b158015612030575f80fd5b505af1158015612042573d5f803e3d5ffd5b50505050505f600f60156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120c9573d5f803e3d5ffd5b5050565b5f8083036120dd575f905061213e565b5f82846120ea919061285c565b90508284826120f991906131c0565b14612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213090613260565b60405180910390fd5b809150505b92915050565b5f61218583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061224b565b905092915050565b5f81831161219b578261219d565b815b905092915050565b5f8082846121b39190612f5c565b9050838110156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906132c8565b60405180910390fd5b8091505092915050565b5f61224383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d97565b905092915050565b5f8083118290612291576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122889190612336565b60405180910390fd5b505f838561229f91906131c0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122e35780820151818401526020810190506122c8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612308826122ac565b61231281856122b6565b93506123228185602086016122c6565b61232b816122ee565b840191505092915050565b5f6020820190508181035f83015261234e81846122fe565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123838261235a565b9050919050565b61239381612379565b811461239d575f80fd5b50565b5f813590506123ae8161238a565b92915050565b5f819050919050565b6123c6816123b4565b81146123d0575f80fd5b50565b5f813590506123e1816123bd565b92915050565b5f80604083850312156123fd576123fc612356565b5b5f61240a858286016123a0565b925050602061241b858286016123d3565b9150509250929050565b5f8115159050919050565b61243981612425565b82525050565b5f6020820190506124525f830184612430565b92915050565b612461816123b4565b82525050565b5f60208201905061247a5f830184612458565b92915050565b5f6020828403121561249557612494612356565b5b5f6124a2848285016123d3565b91505092915050565b5f805f606084860312156124c2576124c1612356565b5b5f6124cf868287016123a0565b93505060206124e0868287016123a0565b92505060406124f1868287016123d3565b9150509250925092565b5f60ff82169050919050565b612510816124fb565b82525050565b5f6020820190506125295f830184612507565b92915050565b5f6020828403121561254457612543612356565b5b5f612551848285016123a0565b91505092915050565b61256381612379565b82525050565b5f60208201905061257c5f83018461255a565b92915050565b5f806040838503121561259857612597612356565b5b5f6125a5858286016123a0565b92505060206125b6858286016123a0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125f46020836122b6565b91506125ff826125c0565b602082019050919050565b5f6020820190508181035f830152612621816125e8565b9050919050565b7f53656c6c207461782063616e6e6f742062652073657420746f206d6f726520745f8201527f68616e207468652063757272656e742076616c75650000000000000000000000602082015250565b5f6126826035836122b6565b915061268d82612628565b604082019050919050565b5f6020820190508181035f8301526126af81612676565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561273857808604811115612714576127136126b6565b5b60018516156127235780820291505b8081029050612731856126e3565b94506126f8565b94509492505050565b5f82612750576001905061280b565b8161275d575f905061280b565b8160018114612773576002811461277d576127ac565b600191505061280b565b60ff84111561278f5761278e6126b6565b5b8360020a9150848211156127a6576127a56126b6565b5b5061280b565b5060208310610133831016604e8410600b84101617156127e15782820a9050838111156127dc576127db6126b6565b5b61280b565b6127ee84848460016126ef565b92509050818404811115612805576128046126b6565b5b81810290505b9392505050565b5f61281c826123b4565b9150612827836124fb565b92506128547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612741565b905092915050565b5f612866826123b4565b9150612871836123b4565b925082820261287f816123b4565b91508282048414831517612896576128956126b6565b5b5092915050565b7f427579207461782063616e6e6f742062652073657420746f206d6f72652074685f8201527f616e207468652063757272656e742076616c7565000000000000000000000000602082015250565b5f6128f76034836122b6565b91506129028261289d565b604082019050919050565b5f6020820190508181035f830152612924816128eb565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61295f6017836122b6565b915061296a8261292b565b602082019050919050565b5f6020820190508181035f83015261298c81612953565b9050919050565b5f815190506129a18161238a565b92915050565b5f602082840312156129bc576129bb612356565b5b5f6129c984828501612993565b91505092915050565b5f6040820190506129e55f83018561255a565b6129f2602083018461255a565b9392505050565b5f819050919050565b5f819050919050565b5f612a25612a20612a1b846129f9565b612a02565b6123b4565b9050919050565b612a3581612a0b565b82525050565b5f60c082019050612a4e5f83018961255a565b612a5b6020830188612458565b612a686040830187612a2c565b612a756060830186612a2c565b612a82608083018561255a565b612a8f60a0830184612458565b979650505050505050565b5f81519050612aa8816123bd565b92915050565b5f805f60608486031215612ac557612ac4612356565b5b5f612ad286828701612a9a565b9350506020612ae386828701612a9a565b9250506040612af486828701612a9a565b9150509250925092565b5f604082019050612b115f83018561255a565b612b1e6020830184612458565b9392505050565b612b2e81612425565b8114612b38575f80fd5b50565b5f81519050612b4981612b25565b92915050565b5f60208284031215612b6457612b63612356565b5b5f612b7184828501612b3b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bd46024836122b6565b9150612bdf82612b7a565b604082019050919050565b5f6020820190508181035f830152612c0181612bc8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c626022836122b6565b9150612c6d82612c08565b604082019050919050565b5f6020820190508181035f830152612c8f81612c56565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cf06025836122b6565b9150612cfb82612c96565b604082019050919050565b5f6020820190508181035f830152612d1d81612ce4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7e6023836122b6565b9150612d8982612d24565b604082019050919050565b5f6020820190508181035f830152612dab81612d72565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e0c6029836122b6565b9150612e1782612db2565b604082019050919050565b5f6020820190508181035f830152612e3981612e00565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612ec06049836122b6565b9150612ecb82612e40565b606082019050919050565b5f6020820190508181035f830152612eed81612eb4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f286019836122b6565b9150612f3382612ef4565b602082019050919050565b5f6020820190508181035f830152612f5581612f1c565b9050919050565b5f612f66826123b4565b9150612f71836123b4565b9250828201905080821115612f8957612f886126b6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fc3601a836122b6565b9150612fce82612f8f565b602082019050919050565b5f6020820190508181035f830152612ff081612fb7565b9050919050565b5f613001826123b4565b915061300c836123b4565b9250828203905081811115613024576130236126b6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130b681612379565b82525050565b5f6130c783836130ad565b60208301905092915050565b5f602082019050919050565b5f6130e982613084565b6130f3818561308e565b93506130fe8361309e565b805f5b8381101561312e57815161311588826130bc565b9750613120836130d3565b925050600181019050613101565b5085935050505092915050565b5f60a08201905061314e5f830188612458565b61315b6020830187612a2c565b818103604083015261316d81866130df565b905061317c606083018561255a565b6131896080830184612458565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131ca826123b4565b91506131d5836123b4565b9250826131e5576131e4613193565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61324a6021836122b6565b9150613255826131f0565b604082019050919050565b5f6020820190508181035f8301526132778161323e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132b2601b836122b6565b91506132bd8261327e565b602082019050919050565b5f6020820190508181035f8301526132df816132a6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a84269d1557ac4429ffbecd2ac3acc84cbe90a0c50cc70d9bca4cd11a82070fb64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610143575f3560e01c8063751039fc116100b5578063bf474bed1161006e578063bf474bed14610420578063c876d0b91461044a578063c9567bf914610474578063dd62ed3e1461048a578063f16f07ae146104c6578063ffb54a99146104f05761014a565b8063751039fc146103265780637d1db4a51461033c5780638da5cb5b146103665780638f9a55c01461039057806395d89b41146103ba578063a9059cbb146103e45761014a565b806323b872dd1161010757806323b872dd14610230578063313ce5671461026c578063436d33401461029657806351bc3c85146102be57806370a08231146102d4578063715018a6146103105761014a565b806306fdde031461014e578063095ea7b3146101785780630faee56f146101b457806312185a39146101de57806318160ddd146102065761014a565b3661014a57005b5f80fd5b348015610159575f80fd5b5061016261051a565b60405161016f9190612336565b60405180910390f35b348015610183575f80fd5b5061019e600480360381019061019991906123e7565b610557565b6040516101ab919061243f565b60405180910390f35b3480156101bf575f80fd5b506101c8610574565b6040516101d59190612467565b60405180910390f35b3480156101e9575f80fd5b5061020460048036038101906101ff9190612480565b61057a565b005b348015610211575f80fd5b5061021a61065c565b6040516102279190612467565b60405180910390f35b34801561023b575f80fd5b50610256600480360381019061025191906124ab565b61067f565b604051610263919061243f565b60405180910390f35b348015610277575f80fd5b50610280610753565b60405161028d9190612516565b60405180910390f35b3480156102a1575f80fd5b506102bc60048036038101906102b79190612480565b61075b565b005b3480156102c9575f80fd5b506102d261083d565b005b3480156102df575f80fd5b506102fa60048036038101906102f5919061252f565b6108d5565b6040516103079190612467565b60405180910390f35b34801561031b575f80fd5b5061032461091b565b005b348015610331575f80fd5b5061033a610a69565b005b348015610347575f80fd5b50610350610bb1565b60405161035d9190612467565b60405180910390f35b348015610371575f80fd5b5061037a610bb7565b6040516103879190612569565b60405180910390f35b34801561039b575f80fd5b506103a4610bde565b6040516103b19190612467565b60405180910390f35b3480156103c5575f80fd5b506103ce610be4565b6040516103db9190612336565b60405180910390f35b3480156103ef575f80fd5b5061040a600480360381019061040591906123e7565b610c21565b604051610417919061243f565b60405180910390f35b34801561042b575f80fd5b50610434610c3e565b6040516104419190612467565b60405180910390f35b348015610455575f80fd5b5061045e610c44565b60405161046b919061243f565b60405180910390f35b34801561047f575f80fd5b50610488610c56565b005b348015610495575f80fd5b506104b060048036038101906104ab9190612582565b611178565b6040516104bd9190612467565b60405180910390f35b3480156104d1575f80fd5b506104da6111fa565b6040516104e79190612467565b60405180910390f35b3480156104fb575f80fd5b50610504611200565b604051610511919061243f565b60405180910390f35b60606040518060400160405280600b81526020017f534556454e5245414c4d53000000000000000000000000000000000000000000815250905090565b5f61056a610563611216565b848461121d565b6001905092915050565b600c5481565b610582611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106059061260a565b60405180910390fd5b6008548110610652576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064990612698565b60405180910390fd5b8060088190555050565b5f6009600a61066b9190612812565b6305f5e10061067a919061285c565b905090565b5f61068b8484846113e0565b61074884610697611216565b610743856040518060600160405280602881526020016132e76028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106fa611216565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d979092919063ffffffff16565b61121d565b600190509392505050565b5f6009905090565b610763611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e69061260a565b60405180910390fd5b6007548110610833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082a9061290d565b60405180910390fd5b8060078190555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661087e611216565b73ffffffffffffffffffffffffffffffffffffffff161461089d575f80fd5b5f6108a7306108d5565b90505f8111156108bb576108ba81611df9565b5b5f4790505f8111156108d1576108d081612064565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610923611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a69061260a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a71611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af49061260a565b60405180910390fd5b6009600a610b0b9190612812565b6305f5e100610b1a919061285c565b6009819055506009600a610b2e9190612812565b6305f5e100610b3d919061285c565b600a819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610b8b9190612812565b6305f5e100610b9a919061285c565b604051610ba79190612467565b60405180910390a1565b60095481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600381526020017f5453520000000000000000000000000000000000000000000000000000000000815250905090565b5f610c34610c2d611216565b84846113e0565b6001905092915050565b600b5481565b60065f9054906101000a900460ff1681565b610c5e611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce19061260a565b60405180910390fd5b600f60149054906101000a900460ff1615610d3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3190612975565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd630600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610dc29190612812565b6305f5e100610dd1919061285c565b61121d565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e40573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e6491906129a7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0e91906129a7565b6040518363ffffffff1660e01b8152600401610f2b9291906129d2565b6020604051808303815f875af1158015610f47573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6b91906129a7565b600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff2306108d5565b5f80610ffc610bb7565b426040518863ffffffff1660e01b815260040161101e96959493929190612a3b565b60606040518083038185885af115801561103a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061105f9190612aae565b505050600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110ff929190612afe565b6020604051808303815f875af115801561111b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061113f9190612b4f565b506001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600d5481565b5f600f60149054906101000a900460ff16905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128290612bea565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612c78565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d39190612467565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590612d06565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390612d94565b60405180910390fd5b5f81116114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f590612e22565b60405180910390fd5b5f611507610bb7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115755750611545610bb7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ae75760065f9054906101000a900460ff161561170057600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116385750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116ff574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106116bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b390612ed6565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156117a95750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117fc575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561189f57600954821115611846576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183d90612f3e565b60405180910390fd5b600a5482611853856108d5565b61185d9190612f5c565b111561189e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189590612fd9565b60405180910390fd5b5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561192757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611957576119546064611946600754856120cd90919063ffffffff16565b61214490919063ffffffff16565b90505b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119df57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a0f57611a0c60646119fe600854856120cd90919063ffffffff16565b61214490919063ffffffff16565b90505b5f611a19306108d5565b9050600f60159054906101000a900460ff16158015611a845750600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a9c5750600f60169054906101000a900460ff165b8015611aa95750600b5481115b15611ae557611acb611ac684611ac184600c5461218d565b61218d565b611df9565b5f479050600d54811115611ae357611ae247612064565b5b505b505b5f811115611be657611b3f8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bdd9190612467565b60405180910390a35b611c368260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cd9611c8d828461220290919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121a590919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d7c848661220290919063ffffffff16565b604051611d899190612467565b60405180910390a350505050565b5f838311158290611dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd59190612336565b60405180910390fd5b505f8385611dec9190612ff7565b9050809150509392505050565b6001600f60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611e3057611e2f61302a565b5b604051908082528060200260200182016040528015611e5e5781602001602082028036833780820191505090505b50905030815f81518110611e7557611e74613057565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f19573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f3d91906129a7565b81600181518110611f5157611f50613057565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fb730600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461121d565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161201995949392919061313b565b5f604051808303815f87803b158015612030575f80fd5b505af1158015612042573d5f803e3d5ffd5b50505050505f600f60156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120c9573d5f803e3d5ffd5b5050565b5f8083036120dd575f905061213e565b5f82846120ea919061285c565b90508284826120f991906131c0565b14612139576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213090613260565b60405180910390fd5b809150505b92915050565b5f61218583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061224b565b905092915050565b5f81831161219b578261219d565b815b905092915050565b5f8082846121b39190612f5c565b9050838110156121f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ef906132c8565b60405180910390fd5b8091505092915050565b5f61224383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d97565b905092915050565b5f8083118290612291576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122889190612336565b60405180910390fd5b505f838561229f91906131c0565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122e35780820151818401526020810190506122c8565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612308826122ac565b61231281856122b6565b93506123228185602086016122c6565b61232b816122ee565b840191505092915050565b5f6020820190508181035f83015261234e81846122fe565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6123838261235a565b9050919050565b61239381612379565b811461239d575f80fd5b50565b5f813590506123ae8161238a565b92915050565b5f819050919050565b6123c6816123b4565b81146123d0575f80fd5b50565b5f813590506123e1816123bd565b92915050565b5f80604083850312156123fd576123fc612356565b5b5f61240a858286016123a0565b925050602061241b858286016123d3565b9150509250929050565b5f8115159050919050565b61243981612425565b82525050565b5f6020820190506124525f830184612430565b92915050565b612461816123b4565b82525050565b5f60208201905061247a5f830184612458565b92915050565b5f6020828403121561249557612494612356565b5b5f6124a2848285016123d3565b91505092915050565b5f805f606084860312156124c2576124c1612356565b5b5f6124cf868287016123a0565b93505060206124e0868287016123a0565b92505060406124f1868287016123d3565b9150509250925092565b5f60ff82169050919050565b612510816124fb565b82525050565b5f6020820190506125295f830184612507565b92915050565b5f6020828403121561254457612543612356565b5b5f612551848285016123a0565b91505092915050565b61256381612379565b82525050565b5f60208201905061257c5f83018461255a565b92915050565b5f806040838503121561259857612597612356565b5b5f6125a5858286016123a0565b92505060206125b6858286016123a0565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6125f46020836122b6565b91506125ff826125c0565b602082019050919050565b5f6020820190508181035f830152612621816125e8565b9050919050565b7f53656c6c207461782063616e6e6f742062652073657420746f206d6f726520745f8201527f68616e207468652063757272656e742076616c75650000000000000000000000602082015250565b5f6126826035836122b6565b915061268d82612628565b604082019050919050565b5f6020820190508181035f8301526126af81612676565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561273857808604811115612714576127136126b6565b5b60018516156127235780820291505b8081029050612731856126e3565b94506126f8565b94509492505050565b5f82612750576001905061280b565b8161275d575f905061280b565b8160018114612773576002811461277d576127ac565b600191505061280b565b60ff84111561278f5761278e6126b6565b5b8360020a9150848211156127a6576127a56126b6565b5b5061280b565b5060208310610133831016604e8410600b84101617156127e15782820a9050838111156127dc576127db6126b6565b5b61280b565b6127ee84848460016126ef565b92509050818404811115612805576128046126b6565b5b81810290505b9392505050565b5f61281c826123b4565b9150612827836124fb565b92506128547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612741565b905092915050565b5f612866826123b4565b9150612871836123b4565b925082820261287f816123b4565b91508282048414831517612896576128956126b6565b5b5092915050565b7f427579207461782063616e6e6f742062652073657420746f206d6f72652074685f8201527f616e207468652063757272656e742076616c7565000000000000000000000000602082015250565b5f6128f76034836122b6565b91506129028261289d565b604082019050919050565b5f6020820190508181035f830152612924816128eb565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61295f6017836122b6565b915061296a8261292b565b602082019050919050565b5f6020820190508181035f83015261298c81612953565b9050919050565b5f815190506129a18161238a565b92915050565b5f602082840312156129bc576129bb612356565b5b5f6129c984828501612993565b91505092915050565b5f6040820190506129e55f83018561255a565b6129f2602083018461255a565b9392505050565b5f819050919050565b5f819050919050565b5f612a25612a20612a1b846129f9565b612a02565b6123b4565b9050919050565b612a3581612a0b565b82525050565b5f60c082019050612a4e5f83018961255a565b612a5b6020830188612458565b612a686040830187612a2c565b612a756060830186612a2c565b612a82608083018561255a565b612a8f60a0830184612458565b979650505050505050565b5f81519050612aa8816123bd565b92915050565b5f805f60608486031215612ac557612ac4612356565b5b5f612ad286828701612a9a565b9350506020612ae386828701612a9a565b9250506040612af486828701612a9a565b9150509250925092565b5f604082019050612b115f83018561255a565b612b1e6020830184612458565b9392505050565b612b2e81612425565b8114612b38575f80fd5b50565b5f81519050612b4981612b25565b92915050565b5f60208284031215612b6457612b63612356565b5b5f612b7184828501612b3b565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612bd46024836122b6565b9150612bdf82612b7a565b604082019050919050565b5f6020820190508181035f830152612c0181612bc8565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612c626022836122b6565b9150612c6d82612c08565b604082019050919050565b5f6020820190508181035f830152612c8f81612c56565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612cf06025836122b6565b9150612cfb82612c96565b604082019050919050565b5f6020820190508181035f830152612d1d81612ce4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612d7e6023836122b6565b9150612d8982612d24565b604082019050919050565b5f6020820190508181035f830152612dab81612d72565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612e0c6029836122b6565b9150612e1782612db2565b604082019050919050565b5f6020820190508181035f830152612e3981612e00565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612ec06049836122b6565b9150612ecb82612e40565b606082019050919050565b5f6020820190508181035f830152612eed81612eb4565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612f286019836122b6565b9150612f3382612ef4565b602082019050919050565b5f6020820190508181035f830152612f5581612f1c565b9050919050565b5f612f66826123b4565b9150612f71836123b4565b9250828201905080821115612f8957612f886126b6565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612fc3601a836122b6565b9150612fce82612f8f565b602082019050919050565b5f6020820190508181035f830152612ff081612fb7565b9050919050565b5f613001826123b4565b915061300c836123b4565b9250828203905081811115613024576130236126b6565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6130b681612379565b82525050565b5f6130c783836130ad565b60208301905092915050565b5f602082019050919050565b5f6130e982613084565b6130f3818561308e565b93506130fe8361309e565b805f5b8381101561312e57815161311588826130bc565b9750613120836130d3565b925050600181019050613101565b5085935050505092915050565b5f60a08201905061314e5f830188612458565b61315b6020830187612a2c565b818103604083015261316d81866130df565b905061317c606083018561255a565b6131896080830184612458565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131ca826123b4565b91506131d5836123b4565b9250826131e5576131e4613193565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61324a6021836122b6565b9150613255826131f0565b604082019050919050565b5f6020820190508181035f8301526132778161323e565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6132b2601b836122b6565b91506132bd8261327e565b602082019050919050565b5f6020820190508181035f8301526132df816132a6565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a84269d1557ac4429ffbecd2ac3acc84cbe90a0c50cc70d9bca4cd11a82070fb64736f6c63430008150033

Deployed Bytecode Sourcemap

3914:8634:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5680:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6659:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4882:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11006:191;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5957:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6853:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5866:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10814:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12177:366;;;;;;;;;;;;;:::i;:::-;;6060:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2939:148;;;;;;;;;;;;;:::i;:::-;;7650:201;;;;;;;;;;;;;:::i;:::-;;4690:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2725:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4752:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5771:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6283:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4816:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4304:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11305:827;;;;;;;;;;;;;:::i;:::-;;6483:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4942:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6187:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5680:83;5717:13;5750:5;;;;;;;;;;;;;;;;;5743:12;;5680:83;:::o;6659:186::-;6759:4;6776:39;6785:12;:10;:12::i;:::-;6799:7;6808:6;6776:8;:39::i;:::-;6833:4;6826:11;;6659:186;;;;:::o;4882:53::-;;;;:::o;11006:191::-;2862:12;:10;:12::i;:::-;2852:22;;:6;;;;;;;;;;:22;;;2844:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11094:8:::1;;11084:7;:18;11076:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;11182:7;11171:8;:18;;;;11006:191:::0;:::o;5957:95::-;6010:7;4613:1;4668:2;:15;;;;:::i;:::-;4656:9;:27;;;;:::i;:::-;6030:14;;5957:95;:::o;6853:446::-;6985:4;7002:36;7012:6;7020:9;7031:6;7002:9;:36::i;:::-;7049:220;7072:6;7093:12;:10;:12::i;:::-;7120:138;7176:6;7120:138;;;;;;;;;;;;;;;;;:11;:19;7132:6;7120:19;;;;;;;;;;;;;;;:33;7140:12;:10;:12::i;:::-;7120:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7049:8;:220::i;:::-;7287:4;7280:11;;6853:446;;;;;:::o;5866:83::-;5907:5;4613:1;5925:16;;5866:83;:::o;10814:184::-;2862:12;:10;:12::i;:::-;2852:22;;:6;;;;;;;;;;:22;;;2844:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10899:7:::1;;10890:6;:16;10882:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;10984:6;10974:7;:16;;;;10814:184:::0;:::o;12177:366::-;12243:10;;;;;;;;;;;12227:26;;:12;:10;:12::i;:::-;:26;;;12219:35;;;;;;12265:20;12288:24;12306:4;12288:9;:24::i;:::-;12265:47;;12342:1;12327:12;:16;12323:79;;;12360:30;12377:12;12360:16;:30::i;:::-;12323:79;12412:18;12433:21;12412:42;;12482:1;12469:10;:14;12465:71;;;12500:24;12513:10;12500:12;:24::i;:::-;12465:71;12208:335;;12177:366::o;6060:119::-;6126:7;6153:9;:18;6163:7;6153:18;;;;;;;;;;;;;;;;6146:25;;6060:119;;;:::o;2939:148::-;2862:12;:10;:12::i;:::-;2852:22;;:6;;;;;;;;;;:22;;;2844:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3046:1:::1;3009:40;;3030:6;::::0;::::1;;;;;;;;3009:40;;;;;;;;;;;;3077:1;3060:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2939:148::o:0;7650:201::-;2862:12;:10;:12::i;:::-;2852:22;;:6;;;;;;;;;;:22;;;2844:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4613:1:::1;4668:2;:15;;;;:::i;:::-;4656:9;:27;;;;:::i;:::-;7704:12;:22;;;;4613:1;4668:2;:15;;;;:::i;:::-;4656:9;:27;;;;:::i;:::-;7737:14;:24;;;;7795:5;7772:20;;:28;;;;;;;;;;;;;;;;;;7816:27;4613:1;4668:2;:15;;;;:::i;:::-;4656:9;:27;;;;:::i;:::-;7816;;;;;;:::i;:::-;;;;;;;;7650:201::o:0;4690:55::-;;;;:::o;2725:79::-;2763:7;2790:6;;;;;;;;;;;2783:13;;2725:79;:::o;4752:57::-;;;;:::o;5771:87::-;5810:13;5843:7;;;;;;;;;;;;;;;;;5836:14;;5771:87;:::o;6283:192::-;6386:4;6403:42;6413:12;:10;:12::i;:::-;6427:9;6438:6;6403:9;:42::i;:::-;6463:4;6456:11;;6283:192;;;;:::o;4816:59::-;;;;:::o;4304:39::-;;;;;;;;;;;;;:::o;11305:827::-;2862:12;:10;:12::i;:::-;2852:22;;:6;;;;;;;;;;:22;;;2844:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11367:12:::1;;;;;;;;;;;11366:13;11358:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11469:42;11418:15;;:104;;;;;;;;;;;;;;;;;;11533:58;11550:4;11565:15;;;;;;;;;;;4613:1;4668:2;:15;;;;:::i;:::-;4656:9;:27;;;;:::i;:::-;11533:8;:58::i;:::-;11636:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11618:55;;;11696:4;11716:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11618:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11602:13;;:147;;;;;;;;;;;;;;;;;;11760:15;;;;;;;;;;;:31;;;11799:21;11844:4;11864:24;11882:4;11864:9;:24::i;:::-;11903:1;11919::::0;11935:7:::1;:5;:7::i;:::-;11957:15;11760:223;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12001:13;;;;;;;;;;;11994:29;;;12032:15;;;;;;;;;;;12050:14;11994:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12090:4;12076:11;;:18;;;;;;;;;;;;;;;;;;12120:4;12105:12;;:19;;;;;;;;;;;;;;;;;;11305:827::o:0;6483:168::-;6589:7;6616:11;:18;6628:5;6616:18;;;;;;;;;;;;;;;:27;6635:7;6616:27;;;;;;;;;;;;;;;;6609:34;;6483:168;;;;:::o;4942:63::-;;;;:::o;6187:88::-;6231:4;6255:12;;;;;;;;;;;6248:19;;6187:88;:::o;260:98::-;313:7;340:10;333:17;;260:98;:::o;7307:335::-;7417:1;7400:19;;:5;:19;;;7392:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7498:1;7479:21;;:7;:21;;;7471:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7580:6;7550:11;:18;7562:5;7550:18;;;;;;;;;;;;;;;:27;7569:7;7550:27;;;;;;;;;;;;;;;:36;;;;7618:7;7602:32;;7611:5;7602:32;;;7627:6;7602:32;;;;;;:::i;:::-;;;;;;;;7307:335;;;:::o;7859:2341::-;7965:1;7949:18;;:4;:18;;;7941:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8042:1;8028:16;;:2;:16;;;8020:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8112:1;8103:6;:10;8095:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8172:17;8218:7;:5;:7::i;:::-;8210:15;;:4;:15;;;;:32;;;;;8235:7;:5;:7::i;:::-;8229:13;;:2;:13;;;;8210:32;8206:1617;;;8265:20;;;;;;;;;;;8261:461;;;8324:15;;;;;;;;;;;8310:30;;:2;:30;;;;:62;;;;;8358:13;;;;;;;;;;;8344:28;;:2;:28;;;;8310:62;8306:401;;;8473:12;8431:28;:39;8460:9;8431:39;;;;;;;;;;;;;;;;:54;8397:213;;;;;;;;;;;;:::i;:::-;;;;;;;;;8675:12;8633:28;:39;8662:9;8633:39;;;;;;;;;;;;;;;:54;;;;8306:401;8261:461;8750:13;;;;;;;;;;;8742:21;;:4;:21;;;:55;;;;;8781:15;;;;;;;;;;;8767:30;;:2;:30;;;;8742:55;:82;;;;;8802:18;:22;8821:2;8802:22;;;;;;;;;;;;;;;;;;;;;;;;;8801:23;8742:82;8738:281;;;8863:12;;8853:6;:22;;8845:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8958:14;;8948:6;8932:13;8942:2;8932:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8924:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8738:281;9046:13;;;;;;;;;;;9038:21;;:4;:21;;;:44;;;;;9077:4;9063:19;;:2;:19;;;;9038:44;9035:123;;;9114:28;9138:3;9114:19;9125:7;;9114:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;9102:40;;9035:123;9184:13;;;;;;;;;;;9178:19;;:2;:19;;;:44;;;;;9217:4;9201:21;;:4;:21;;;;9178:44;9174:126;;;9255:29;9280:3;9255:20;9266:8;;9255:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;9243:41;;9174:126;9316:28;9347:24;9365:4;9347:9;:24::i;:::-;9316:55;;9393:6;;;;;;;;;;;9392:7;:30;;;;;9409:13;;;;;;;;;;;9403:19;;:2;:19;;;9392:30;:45;;;;;9426:11;;;;;;;;;;;9392:45;:89;;;;;9464:17;;9441:20;:40;9392:89;9388:410;;;9502:69;9519:51;9523:6;9531:38;9535:20;9557:11;;9531:3;:38::i;:::-;9519:3;:51::i;:::-;9502:16;:69::i;:::-;9590:26;9619:21;9590:50;;9684:19;;9663:18;:40;9659:124;;;9728:35;9741:21;9728:12;:35::i;:::-;9659:124;9483:315;9388:410;8244:1579;8206:1617;9851:1;9839:9;:13;9835:172;;;9896:39;9925:9;9896;:24;9914:4;9896:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9869:9;:24;9887:4;9869:24;;;;;;;;;;;;;;;:66;;;;9978:4;9955:40;;9964:4;9955:40;;;9985:9;9955:40;;;;;;:::i;:::-;;;;;;;;9835:172;10037:27;10057:6;10037:9;:15;10047:4;10037:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10019:9;:15;10029:4;10019:15;;;;;;;;;;;;;;;:45;;;;10091:40;10109:21;10120:9;10109:6;:10;;:21;;;;:::i;:::-;10091:9;:13;10101:2;10091:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10075:9;:13;10085:2;10075:13;;;;;;;;;;;;;;;:56;;;;10164:2;10149:41;;10158:4;10149:41;;;10168:21;10179:9;10168:6;:10;;:21;;;;:::i;:::-;10149:41;;;;;;:::i;:::-;;;;;;;;7928:2272;7859:2341;;;:::o;1527:224::-;1647:7;1680:1;1675;:6;;1683:12;1667:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1707:9;1723:1;1719;:5;;;;:::i;:::-;1707:17;;1742:1;1735:8;;;1527:224;;;;;:::o;10323:483::-;5299:4;5290:6;;:13;;;;;;;;;;;;;;;;;;10401:21:::1;10439:1;10425:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10401:40;;10470:4;10452;10457:1;10452:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10496:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10486:4;10491:1;10486:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10529:62;10546:4;10561:15;;;;;;;;;;;10579:11;10529:8;:62::i;:::-;10602:15;;;;;;;;;;;:66;;;10683:11;10709:1;10725:4;10752;10772:15;10602:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10390:416;5335:5:::0;5326:6;;:14;;;;;;;;;;;;;;;;;;10323:483;:::o;11205:92::-;11262:10;;;;;;;;;;;:19;;:27;11282:6;11262:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11205:92;:::o;1759:246::-;1817:7;1846:1;1841;:6;1837:47;;1871:1;1864:8;;;;1837:47;1894:9;1910:1;1906;:5;;;;:::i;:::-;1894:17;;1939:1;1934;1930;:5;;;;:::i;:::-;:10;1922:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1996:1;1989:8;;;1759:246;;;;;:::o;2013:132::-;2071:7;2098:39;2102:1;2105;2098:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2091:46;;2013:132;;;;:::o;10208:107::-;10265:7;10297:1;10293;:5;10292:15;;10306:1;10292:15;;;10302:1;10292:15;10285:22;;10208:107;;;;:::o;1196:179::-;1254:7;1274:9;1290:1;1286;:5;;;;:::i;:::-;1274:17;;1315:1;1310;:6;;1302:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1366:1;1359:8;;;1196:179;;;;:::o;1383:136::-;1441:7;1468:43;1472:1;1475;1468:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1461:50;;1383:136;;;;:::o;2153:223::-;2273:7;2305:1;2301;:5;2308:12;2293:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2332:9;2348:1;2344;:5;;;;:::i;:::-;2332:17;;2367:1;2360:8;;;2153: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:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:182::-;6495:34;6491:1;6483:6;6479:14;6472:58;6355:182;:::o;6543:366::-;6685:3;6706:67;6770:2;6765:3;6706:67;:::i;:::-;6699:74;;6782:93;6871:3;6782:93;:::i;:::-;6900:2;6895:3;6891:12;6884:19;;6543:366;;;:::o;6915:419::-;7081:4;7119:2;7108:9;7104:18;7096:26;;7168:9;7162:4;7158:20;7154:1;7143:9;7139:17;7132:47;7196:131;7322:4;7196:131;:::i;:::-;7188:139;;6915:419;;;:::o;7340:240::-;7480:34;7476:1;7468:6;7464:14;7457:58;7549:23;7544:2;7536:6;7532:15;7525:48;7340:240;:::o;7586:366::-;7728:3;7749:67;7813:2;7808:3;7749:67;:::i;:::-;7742:74;;7825:93;7914:3;7825:93;:::i;:::-;7943:2;7938:3;7934:12;7927:19;;7586:366;;;:::o;7958:419::-;8124:4;8162:2;8151:9;8147:18;8139:26;;8211:9;8205:4;8201:20;8197:1;8186:9;8182:17;8175:47;8239:131;8365:4;8239:131;:::i;:::-;8231:139;;7958:419;;;:::o;8383:180::-;8431:77;8428:1;8421:88;8528:4;8525:1;8518:15;8552:4;8549:1;8542:15;8569:102;8611:8;8658:5;8655:1;8651:13;8630:34;;8569:102;;;:::o;8677:848::-;8738:5;8745:4;8769:6;8760:15;;8793:5;8784:14;;8807:712;8828:1;8818:8;8815:15;8807:712;;;8923:4;8918:3;8914:14;8908:4;8905:24;8902:50;;;8932:18;;:::i;:::-;8902:50;8982:1;8972:8;8968:16;8965:451;;;9397:4;9390:5;9386:16;9377:25;;8965:451;9447:4;9441;9437:15;9429:23;;9477:32;9500:8;9477:32;:::i;:::-;9465:44;;8807:712;;;8677:848;;;;;;;:::o;9531:1073::-;9585:5;9776:8;9766:40;;9797:1;9788:10;;9799:5;;9766:40;9825:4;9815:36;;9842:1;9833:10;;9844:5;;9815:36;9911:4;9959:1;9954:27;;;;9995:1;9990:191;;;;9904:277;;9954:27;9972:1;9963:10;;9974:5;;;9990:191;10035:3;10025:8;10022:17;10019:43;;;10042:18;;:::i;:::-;10019:43;10091:8;10088:1;10084:16;10075:25;;10126:3;10119:5;10116:14;10113:40;;;10133:18;;:::i;:::-;10113:40;10166:5;;;9904:277;;10290:2;10280:8;10277:16;10271:3;10265:4;10262:13;10258:36;10240:2;10230:8;10227:16;10222:2;10216:4;10213:12;10209:35;10193:111;10190:246;;;10346:8;10340:4;10336:19;10327:28;;10381:3;10374:5;10371:14;10368:40;;;10388:18;;:::i;:::-;10368:40;10421:5;;10190:246;10461:42;10499:3;10489:8;10483:4;10480:1;10461:42;:::i;:::-;10446:57;;;;10535:4;10530:3;10526:14;10519:5;10516:25;10513:51;;;10544:18;;:::i;:::-;10513:51;10593:4;10586:5;10582:16;10573:25;;9531:1073;;;;;;:::o;10610:281::-;10668:5;10692:23;10710:4;10692:23;:::i;:::-;10684:31;;10736:25;10752:8;10736:25;:::i;:::-;10724:37;;10780:104;10817:66;10807:8;10801:4;10780:104;:::i;:::-;10771:113;;10610:281;;;;:::o;10897:410::-;10937:7;10960:20;10978:1;10960:20;:::i;:::-;10955:25;;10994:20;11012:1;10994:20;:::i;:::-;10989:25;;11049:1;11046;11042:9;11071:30;11089:11;11071:30;:::i;:::-;11060:41;;11250:1;11241:7;11237:15;11234:1;11231:22;11211:1;11204:9;11184:83;11161:139;;11280:18;;:::i;:::-;11161:139;10945:362;10897:410;;;;:::o;11313:239::-;11453:34;11449:1;11441:6;11437:14;11430:58;11522:22;11517:2;11509:6;11505:15;11498:47;11313:239;:::o;11558:366::-;11700:3;11721:67;11785:2;11780:3;11721:67;:::i;:::-;11714:74;;11797:93;11886:3;11797:93;:::i;:::-;11915:2;11910:3;11906:12;11899:19;;11558:366;;;:::o;11930:419::-;12096:4;12134:2;12123:9;12119:18;12111:26;;12183:9;12177:4;12173:20;12169:1;12158:9;12154:17;12147:47;12211:131;12337:4;12211:131;:::i;:::-;12203:139;;11930:419;;;:::o;12355:173::-;12495:25;12491:1;12483:6;12479:14;12472:49;12355:173;:::o;12534:366::-;12676:3;12697:67;12761:2;12756:3;12697:67;:::i;:::-;12690:74;;12773:93;12862:3;12773:93;:::i;:::-;12891:2;12886:3;12882:12;12875:19;;12534:366;;;:::o;12906:419::-;13072:4;13110:2;13099:9;13095:18;13087:26;;13159:9;13153:4;13149:20;13145:1;13134:9;13130:17;13123:47;13187:131;13313:4;13187:131;:::i;:::-;13179:139;;12906:419;;;:::o;13331:143::-;13388:5;13419:6;13413:13;13404:22;;13435:33;13462:5;13435:33;:::i;:::-;13331:143;;;;:::o;13480:351::-;13550:6;13599:2;13587:9;13578:7;13574:23;13570:32;13567:119;;;13605:79;;:::i;:::-;13567:119;13725:1;13750:64;13806:7;13797:6;13786:9;13782:22;13750:64;:::i;:::-;13740:74;;13696:128;13480:351;;;;:::o;13837:332::-;13958:4;13996:2;13985:9;13981:18;13973:26;;14009:71;14077:1;14066:9;14062:17;14053:6;14009:71;:::i;:::-;14090:72;14158:2;14147:9;14143:18;14134:6;14090:72;:::i;:::-;13837:332;;;;;:::o;14175:85::-;14220:7;14249:5;14238:16;;14175:85;;;:::o;14266:60::-;14294:3;14315:5;14308:12;;14266:60;;;:::o;14332:158::-;14390:9;14423:61;14441:42;14450:32;14476:5;14450:32;:::i;:::-;14441:42;:::i;:::-;14423:61;:::i;:::-;14410:74;;14332:158;;;:::o;14496:147::-;14591:45;14630:5;14591:45;:::i;:::-;14586:3;14579:58;14496:147;;:::o;14649:807::-;14898:4;14936:3;14925:9;14921:19;14913:27;;14950:71;15018:1;15007:9;15003:17;14994:6;14950:71;:::i;:::-;15031:72;15099:2;15088:9;15084:18;15075:6;15031:72;:::i;:::-;15113:80;15189:2;15178:9;15174:18;15165:6;15113:80;:::i;:::-;15203;15279:2;15268:9;15264:18;15255:6;15203:80;:::i;:::-;15293:73;15361:3;15350:9;15346:19;15337:6;15293:73;:::i;:::-;15376;15444:3;15433:9;15429:19;15420:6;15376:73;:::i;:::-;14649:807;;;;;;;;;:::o;15462:143::-;15519:5;15550:6;15544:13;15535:22;;15566:33;15593:5;15566:33;:::i;:::-;15462:143;;;;:::o;15611:663::-;15699:6;15707;15715;15764:2;15752:9;15743:7;15739:23;15735:32;15732:119;;;15770:79;;:::i;:::-;15732:119;15890:1;15915:64;15971:7;15962:6;15951:9;15947:22;15915:64;:::i;:::-;15905:74;;15861:128;16028:2;16054:64;16110:7;16101:6;16090:9;16086:22;16054:64;:::i;:::-;16044:74;;15999:129;16167:2;16193:64;16249:7;16240:6;16229:9;16225:22;16193:64;:::i;:::-;16183:74;;16138:129;15611:663;;;;;:::o;16280:332::-;16401:4;16439:2;16428:9;16424:18;16416:26;;16452:71;16520:1;16509:9;16505:17;16496:6;16452:71;:::i;:::-;16533:72;16601:2;16590:9;16586:18;16577:6;16533:72;:::i;:::-;16280:332;;;;;:::o;16618:116::-;16688:21;16703:5;16688:21;:::i;:::-;16681:5;16678:32;16668:60;;16724:1;16721;16714:12;16668:60;16618:116;:::o;16740:137::-;16794:5;16825:6;16819:13;16810:22;;16841:30;16865:5;16841:30;:::i;:::-;16740:137;;;;:::o;16883:345::-;16950:6;16999:2;16987:9;16978:7;16974:23;16970:32;16967:119;;;17005:79;;:::i;:::-;16967:119;17125:1;17150:61;17203:7;17194:6;17183:9;17179:22;17150:61;:::i;:::-;17140:71;;17096:125;16883:345;;;;:::o;17234:223::-;17374:34;17370:1;17362:6;17358:14;17351:58;17443:6;17438:2;17430:6;17426:15;17419:31;17234:223;:::o;17463:366::-;17605:3;17626:67;17690:2;17685:3;17626:67;:::i;:::-;17619:74;;17702:93;17791:3;17702:93;:::i;:::-;17820:2;17815:3;17811:12;17804:19;;17463:366;;;:::o;17835:419::-;18001:4;18039:2;18028:9;18024:18;18016:26;;18088:9;18082:4;18078:20;18074:1;18063:9;18059:17;18052:47;18116:131;18242:4;18116:131;:::i;:::-;18108:139;;17835:419;;;:::o;18260:221::-;18400:34;18396:1;18388:6;18384:14;18377:58;18469:4;18464:2;18456:6;18452:15;18445:29;18260:221;:::o;18487:366::-;18629:3;18650:67;18714:2;18709:3;18650:67;:::i;:::-;18643:74;;18726:93;18815:3;18726:93;:::i;:::-;18844:2;18839:3;18835:12;18828:19;;18487:366;;;:::o;18859:419::-;19025:4;19063:2;19052:9;19048:18;19040:26;;19112:9;19106:4;19102:20;19098:1;19087:9;19083:17;19076:47;19140:131;19266:4;19140:131;:::i;:::-;19132:139;;18859:419;;;:::o;19284:224::-;19424:34;19420:1;19412:6;19408:14;19401:58;19493:7;19488:2;19480:6;19476:15;19469:32;19284:224;:::o;19514:366::-;19656:3;19677:67;19741:2;19736:3;19677:67;:::i;:::-;19670:74;;19753:93;19842:3;19753:93;:::i;:::-;19871:2;19866:3;19862:12;19855:19;;19514:366;;;:::o;19886:419::-;20052:4;20090:2;20079:9;20075:18;20067:26;;20139:9;20133:4;20129:20;20125:1;20114:9;20110:17;20103:47;20167:131;20293:4;20167:131;:::i;:::-;20159:139;;19886:419;;;:::o;20311:222::-;20451:34;20447:1;20439:6;20435:14;20428:58;20520:5;20515:2;20507:6;20503:15;20496:30;20311:222;:::o;20539:366::-;20681:3;20702:67;20766:2;20761:3;20702:67;:::i;:::-;20695:74;;20778:93;20867:3;20778:93;:::i;:::-;20896:2;20891:3;20887:12;20880:19;;20539:366;;;:::o;20911:419::-;21077:4;21115:2;21104:9;21100:18;21092:26;;21164:9;21158:4;21154:20;21150:1;21139:9;21135:17;21128:47;21192:131;21318:4;21192:131;:::i;:::-;21184:139;;20911:419;;;:::o;21336:228::-;21476:34;21472:1;21464:6;21460:14;21453:58;21545:11;21540:2;21532:6;21528:15;21521:36;21336:228;:::o;21570:366::-;21712:3;21733:67;21797:2;21792:3;21733:67;:::i;:::-;21726:74;;21809:93;21898:3;21809:93;:::i;:::-;21927:2;21922:3;21918:12;21911:19;;21570:366;;;:::o;21942:419::-;22108:4;22146:2;22135:9;22131:18;22123:26;;22195:9;22189:4;22185:20;22181:1;22170:9;22166:17;22159:47;22223:131;22349:4;22223:131;:::i;:::-;22215:139;;21942:419;;;:::o;22367:297::-;22507:34;22503:1;22495:6;22491:14;22484:58;22576:34;22571:2;22563:6;22559:15;22552:59;22645:11;22640:2;22632:6;22628:15;22621:36;22367:297;:::o;22670:366::-;22812:3;22833:67;22897:2;22892:3;22833:67;:::i;:::-;22826:74;;22909:93;22998:3;22909:93;:::i;:::-;23027:2;23022:3;23018:12;23011:19;;22670:366;;;:::o;23042:419::-;23208:4;23246:2;23235:9;23231:18;23223:26;;23295:9;23289:4;23285:20;23281:1;23270:9;23266:17;23259:47;23323:131;23449:4;23323:131;:::i;:::-;23315:139;;23042:419;;;:::o;23467:175::-;23607:27;23603:1;23595:6;23591:14;23584:51;23467:175;:::o;23648:366::-;23790:3;23811:67;23875:2;23870:3;23811:67;:::i;:::-;23804:74;;23887:93;23976:3;23887:93;:::i;:::-;24005:2;24000:3;23996:12;23989:19;;23648:366;;;:::o;24020:419::-;24186:4;24224:2;24213:9;24209:18;24201:26;;24273:9;24267:4;24263:20;24259:1;24248:9;24244:17;24237:47;24301:131;24427:4;24301:131;:::i;:::-;24293:139;;24020:419;;;:::o;24445:191::-;24485:3;24504:20;24522:1;24504:20;:::i;:::-;24499:25;;24538:20;24556:1;24538:20;:::i;:::-;24533:25;;24581:1;24578;24574:9;24567:16;;24602:3;24599:1;24596:10;24593:36;;;24609:18;;:::i;:::-;24593:36;24445:191;;;;:::o;24642:176::-;24782:28;24778:1;24770:6;24766:14;24759:52;24642:176;:::o;24824:366::-;24966:3;24987:67;25051:2;25046:3;24987:67;:::i;:::-;24980:74;;25063:93;25152:3;25063:93;:::i;:::-;25181:2;25176:3;25172:12;25165:19;;24824:366;;;:::o;25196:419::-;25362:4;25400:2;25389:9;25385:18;25377:26;;25449:9;25443:4;25439:20;25435:1;25424:9;25420:17;25413:47;25477:131;25603:4;25477:131;:::i;:::-;25469:139;;25196:419;;;:::o;25621:194::-;25661:4;25681:20;25699:1;25681:20;:::i;:::-;25676:25;;25715:20;25733:1;25715:20;:::i;:::-;25710:25;;25759:1;25756;25752:9;25744:17;;25783:1;25777:4;25774:11;25771:37;;;25788:18;;:::i;:::-;25771:37;25621:194;;;;:::o;25821:180::-;25869:77;25866:1;25859:88;25966:4;25963:1;25956:15;25990:4;25987:1;25980:15;26007:180;26055:77;26052:1;26045:88;26152:4;26149:1;26142:15;26176:4;26173:1;26166:15;26193:114;26260:6;26294:5;26288:12;26278:22;;26193:114;;;:::o;26313:184::-;26412:11;26446:6;26441:3;26434:19;26486:4;26481:3;26477:14;26462:29;;26313:184;;;;:::o;26503:132::-;26570:4;26593:3;26585:11;;26623:4;26618:3;26614:14;26606:22;;26503:132;;;:::o;26641:108::-;26718:24;26736:5;26718:24;:::i;:::-;26713:3;26706:37;26641:108;;:::o;26755:179::-;26824:10;26845:46;26887:3;26879:6;26845:46;:::i;:::-;26923:4;26918:3;26914:14;26900:28;;26755:179;;;;:::o;26940:113::-;27010:4;27042;27037:3;27033:14;27025:22;;26940:113;;;:::o;27089:732::-;27208:3;27237:54;27285:5;27237:54;:::i;:::-;27307:86;27386:6;27381:3;27307:86;:::i;:::-;27300:93;;27417:56;27467:5;27417:56;:::i;:::-;27496:7;27527:1;27512:284;27537:6;27534:1;27531:13;27512:284;;;27613:6;27607:13;27640:63;27699:3;27684:13;27640:63;:::i;:::-;27633:70;;27726:60;27779:6;27726:60;:::i;:::-;27716:70;;27572:224;27559:1;27556;27552:9;27547:14;;27512:284;;;27516:14;27812:3;27805:10;;27213:608;;;27089:732;;;;:::o;27827:831::-;28090:4;28128:3;28117:9;28113:19;28105:27;;28142:71;28210:1;28199:9;28195:17;28186:6;28142:71;:::i;:::-;28223:80;28299:2;28288:9;28284:18;28275:6;28223:80;:::i;:::-;28350:9;28344:4;28340:20;28335:2;28324:9;28320:18;28313:48;28378:108;28481:4;28472:6;28378:108;:::i;:::-;28370:116;;28496:72;28564:2;28553:9;28549:18;28540:6;28496:72;:::i;:::-;28578:73;28646:3;28635:9;28631:19;28622:6;28578:73;:::i;:::-;27827:831;;;;;;;;:::o;28664:180::-;28712:77;28709:1;28702:88;28809:4;28806:1;28799:15;28833:4;28830:1;28823:15;28850:185;28890:1;28907:20;28925:1;28907:20;:::i;:::-;28902:25;;28941:20;28959:1;28941:20;:::i;:::-;28936:25;;28980:1;28970:35;;28985:18;;:::i;:::-;28970:35;29027:1;29024;29020:9;29015:14;;28850:185;;;;:::o;29041:220::-;29181:34;29177:1;29169:6;29165:14;29158:58;29250:3;29245:2;29237:6;29233:15;29226:28;29041:220;:::o;29267:366::-;29409:3;29430:67;29494:2;29489:3;29430:67;:::i;:::-;29423:74;;29506:93;29595:3;29506:93;:::i;:::-;29624:2;29619:3;29615:12;29608:19;;29267:366;;;:::o;29639:419::-;29805:4;29843:2;29832:9;29828:18;29820:26;;29892:9;29886:4;29882:20;29878:1;29867:9;29863:17;29856:47;29920:131;30046:4;29920:131;:::i;:::-;29912:139;;29639:419;;;:::o;30064:177::-;30204:29;30200:1;30192:6;30188:14;30181:53;30064:177;:::o;30247:366::-;30389:3;30410:67;30474:2;30469:3;30410:67;:::i;:::-;30403:74;;30486:93;30575:3;30486:93;:::i;:::-;30604:2;30599:3;30595:12;30588:19;;30247:366;;;:::o;30619:419::-;30785:4;30823:2;30812:9;30808:18;30800:26;;30872:9;30866:4;30862:20;30858:1;30847:9;30843:17;30836:47;30900:131;31026:4;30900:131;:::i;:::-;30892:139;;30619:419;;;:::o

Swarm Source

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