ETH Price: $2,357.60 (+0.71%)

Token

RoCr (RoCr)
 

Overview

Max Total Supply

200,000 RoCr

Holders

12

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0.54309763 RoCr

Value
$0.00
0x30b22661b027ab643adde988906cf7b64e4b3af3
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:
RoCr

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-12
*/

/*

RoCr

buy 
sell

*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

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 RoCr is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet = payable(msg.sender);

    uint256 private _initialTax=21;
    uint256 private _finalTax=21;
    uint256 private _reduceTaxCountdown=1000;
    uint256 private _preventSwapBefore=960;   
    uint256 private _taxBots = 65;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 200_000 * 10**_decimals;
    string private constant _name = "RoCr";
    string private constant _symbol = "RoCr";

    uint256 public _maxTxAmount = 4_000 * 10**_decimals;
    uint256 public _maxWalletSize = 4_000 * 10**_decimals;
    uint256 public _taxSwap=500 * 10**_decimals;
    

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

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

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        _developmentWallet = 0xFe6D53667C0698Ac1fcA019d92d8E712A42caC31;
        _marketingWallet = 0xFe6D53667C0698Ac1fcA019d92d8E712A42caC31;
        uint256 _marketingTokens = _tTotal.mul(8).div(100);
        _balances[_marketingWallet] = _marketingTokens;
        _balances[_msgSender()] = _tTotal - _marketingTokens;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    receive() external payable {}

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != _taxWallet && to != _taxWallet && 
            from != _marketingWallet && from != _developmentWallet) {
            require(tradingOpen);

            if(!bots[from])
                taxAmount = amount.mul( (_reduceTaxCountdown==0)?_finalTax:_initialTax ).div(100);
            else
                taxAmount = amount.mul(_taxBots).div(100);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwap && _reduceTaxCountdown<=_preventSwapBefore) {
                swapTokensForEth(_taxSwap);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

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

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

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

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

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

    function excludeMultipleFromFees(address[] memory addressesToExclude, bool toExclude) public onlyOwner {
        for(uint256 i = 0;i<addressesToExclude.length;i++)
            bots[addressesToExclude[i]] = toExclude;
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }

    function manualswap() external {
        swapTokensForEth(balanceOf(address(this)));
    }

    function manualsend() external {
        sendETHToFee(address(this).balance);
    }

    function reduceTax(uint256 newInitialTax, uint256 newFinalTax) external onlyOwner {
        require(newInitialTax < _initialTax, "Only tax reduction permitted.");
        require(newFinalTax < _finalTax, "Only tax reduction permitted.");
        _initialTax = newInitialTax;
        _finalTax = newFinalTax;
    }
}

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":"_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":"_taxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBotsNew","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addressesToExclude","type":"address[]"},{"internalType":"bool","name":"toExclude","type":"bool"}],"name":"excludeMultipleFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newInitialTax","type":"uint256"},{"internalType":"uint256","name":"newFinalTax","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405233600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560065560156007556103e86008556103c06009556041600a556008600a62000070919062000abc565b610fa06200007f919062000b0d565b600b556008600a62000092919062000abc565b610fa0620000a1919062000b0d565b600c556008600a620000b4919062000abc565b6101f4620000c3919062000b0d565b600d556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055503480156200010957600080fd5b5060006200011c620007b460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a3919062000bc2565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200032d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000353919062000bc2565b6040518363ffffffff1660e01b81526004016200037292919062000c05565b6020604051808303816000875af115801562000392573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b8919062000bc2565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fe6d53667c0698ac1fca019d92d8e712a42cac31601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073fe6d53667c0698ac1fca019d92d8e712a42cac31601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000620004f76064620004e3600880600a620004bf919062000abc565b62030d40620004cf919062000b0d565b620007bc60201b620011711790919060201c565b6200083f60201b620011eb1790919060201c565b90508060016000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806008600a62000570919062000abc565b62030d4062000580919062000b0d565b6200058c919062000c32565b60016000620005a0620007b460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620005f46200089160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000727620007b460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000786919062000abc565b62030d4062000796919062000b0d565b604051620007a5919062000c7e565b60405180910390a35062000e58565b600033905090565b6000808303620007d0576000905062000839565b60008284620007e0919062000b0d565b9050828482620007f1919062000cca565b1462000834576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200082b9062000d89565b60405180910390fd5b809150505b92915050565b60006200088983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620008ba60201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000904576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008fb919062000e34565b60405180910390fd5b506000838562000915919062000cca565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009b05780860481111562000988576200098762000922565b5b6001851615620009985780820291505b8081029050620009a88562000951565b945062000968565b94509492505050565b600082620009cb576001905062000a9e565b81620009db576000905062000a9e565b8160018114620009f45760028114620009ff5762000a35565b600191505062000a9e565b60ff84111562000a145762000a1362000922565b5b8360020a91508482111562000a2e5762000a2d62000922565b5b5062000a9e565b5060208310610133831016604e8410600b841016171562000a6f5782820a90508381111562000a695762000a6862000922565b5b62000a9e565b62000a7e84848460016200095e565b9250905081840481111562000a985762000a9762000922565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ac98262000aa5565b915062000ad68362000aaf565b925062000b057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009b9565b905092915050565b600062000b1a8262000aa5565b915062000b278362000aa5565b925082820262000b378162000aa5565b9150828204841483151762000b515762000b5062000922565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b8a8262000b5d565b9050919050565b62000b9c8162000b7d565b811462000ba857600080fd5b50565b60008151905062000bbc8162000b91565b92915050565b60006020828403121562000bdb5762000bda62000b58565b5b600062000beb8482850162000bab565b91505092915050565b62000bff8162000b7d565b82525050565b600060408201905062000c1c600083018562000bf4565b62000c2b602083018462000bf4565b9392505050565b600062000c3f8262000aa5565b915062000c4c8362000aa5565b925082820390508181111562000c675762000c6662000922565b5b92915050565b62000c788162000aa5565b82525050565b600060208201905062000c95600083018462000c6d565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000cd78262000aa5565b915062000ce48362000aa5565b92508262000cf75762000cf662000c9b565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000d7160218362000d02565b915062000d7e8262000d13565b604082019050919050565b6000602082019050818103600083015262000da48162000d62565b9050919050565b600081519050919050565b60005b8381101562000dd657808201518184015260208101905062000db9565b60008484015250505050565b6000601f19601f8301169050919050565b600062000e008262000dab565b62000e0c818562000d02565b935062000e1e81856020860162000db6565b62000e298162000de2565b840191505092915050565b6000602082019050818103600083015262000e50818462000df3565b905092915050565b6131d38062000e686000396000f3fe6080604052600436106101445760003560e01c8063751039fc116100b6578063b9a410ff1161006f578063b9a410ff14610433578063bea1cb271461045c578063c3c8cd8014610485578063c9567bf91461049c578063d34628cc146104b3578063dd62ed3e146104dc5761014b565b8063751039fc146103335780637d1db4a51461034a5780638da5cb5b146103755780638f9a55c0146103a057806395d89b41146103cb578063a9059cbb146103f65761014b565b8063313ce56711610108578063313ce5671461024957806331c2d8471461027457806334376f3b1461029d5780636fc3eaec146102c857806370a08231146102df578063715018a61461031c5761014b565b806306fdde0314610150578063095ea7b31461017b5780631354f2d4146101b857806318160ddd146101e157806323b872dd1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610519565b60405161017291906121a7565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612271565b610556565b6040516101af91906122cc565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da919061242f565b610574565b005b3480156101ed57600080fd5b506101f661069e565b6040516102039190612487565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e91906124a2565b6106c1565b60405161024091906122cc565b60405180910390f35b34801561025557600080fd5b5061025e61079a565b60405161026b9190612511565b60405180910390f35b34801561028057600080fd5b5061029b6004803603810190610296919061242f565b6107a3565b005b3480156102a957600080fd5b506102b26108cd565b6040516102bf9190612487565b60405180910390f35b3480156102d457600080fd5b506102dd6108d3565b005b3480156102eb57600080fd5b506103066004803603810190610301919061252c565b6108de565b6040516103139190612487565b60405180910390f35b34801561032857600080fd5b50610331610927565b005b34801561033f57600080fd5b50610348610a7a565b005b34801561035657600080fd5b5061035f610ba7565b60405161036c9190612487565b60405180910390f35b34801561038157600080fd5b5061038a610bad565b6040516103979190612568565b60405180910390f35b3480156103ac57600080fd5b506103b5610bd6565b6040516103c29190612487565b60405180910390f35b3480156103d757600080fd5b506103e0610bdc565b6040516103ed91906121a7565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190612271565b610c19565b60405161042a91906122cc565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190612583565b610c37565b005b34801561046857600080fd5b50610483600480360381019061047e91906125ef565b610d66565b005b34801561049157600080fd5b5061049a610e90565b005b3480156104a857600080fd5b506104b1610ea3565b005b3480156104bf57600080fd5b506104da60048036038101906104d5919061242f565b610fc0565b005b3480156104e857600080fd5b5061050360048036038101906104fe919061264b565b6110ea565b6040516105109190612487565b60405180910390f35b60606040518060400160405280600481526020017f526f437200000000000000000000000000000000000000000000000000000000815250905090565b600061056a610563611235565b848461123d565b6001905092915050565b61057c611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610609576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610600906126d7565b60405180910390fd5b60005b815181101561069a5760016004600084848151811061062e5761062d6126f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061069290612755565b91505061060c565b5050565b60006008600a6106ae91906128d0565b62030d406106bc919061291b565b905090565b60006106ce848484611406565b61078f846106da611235565b61078a8560405180606001604052806028815260200161317660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610740611235565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cc39092919063ffffffff16565b61123d565b600190509392505050565b60006008905090565b6107ab611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f906126d7565b60405180910390fd5b60005b81518110156108c95760006004600084848151811061085d5761085c6126f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108c190612755565b91505061083b565b5050565b600d5481565b6108dc47611d27565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61092f611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b3906126d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a82611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b06906126d7565b60405180910390fd5b6008600a610b1d91906128d0565b62030d40610b2b919061291b565b600b819055506008600a610b3f91906128d0565b62030d40610b4d919061291b565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b8291906128d0565b62030d40610b90919061291b565b604051610b9d9190612487565b60405180910390a1565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600481526020017f526f437200000000000000000000000000000000000000000000000000000000815250905090565b6000610c2d610c26611235565b8484611406565b6001905092915050565b610c3f611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc3906126d7565b60405180910390fd5b6006548210610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d07906129a9565b60405180910390fd5b6007548110610d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4b906129a9565b60405180910390fd5b81600681905550806007819055505050565b610d6e611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df2906126d7565b60405180910390fd5b60005b8251811015610e8b578160046000858481518110610e1f57610e1e6126f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e8390612755565b915050610dfe565b505050565b610ea1610e9c306108de565b611d93565b565b610eab611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f906126d7565b60405180910390fd5b600f60149054906101000a900460ff1615610f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7f90612a15565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b610fc8611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c906126d7565b60405180910390fd5b60005b81518110156110e65760016004600084848151811061107a576110796126f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110de90612755565b915050611058565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080830361118357600090506111e5565b60008284611191919061291b565b90508284826111a09190612a64565b146111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d790612b07565b60405180910390fd5b809150505b92915050565b600061122d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061200c565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a390612b99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612c2b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113f99190612487565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90612cbd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90612d4f565b60405180910390fd5b60008111611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90612de1565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115d55750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561162f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116895750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a0657600f60149054906101000a900460ff166116a757600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661173a57611733606461172560006008541461171257600654611716565b6007545b8561117190919063ffffffff16565b6111eb90919063ffffffff16565b9050611765565b6117626064611754600a548561117190919063ffffffff16565b6111eb90919063ffffffff16565b90505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118105750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118665750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561192d57600b548211156118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790612e4d565b60405180910390fd5b600c54826118bd856108de565b6118c79190612e6d565b1115611908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ff90612eed565b60405180910390fd5b6000600854111561192c576008600081548092919061192690612f0d565b91905055505b5b6000611938306108de565b9050600f60159054906101000a900460ff161580156119a55750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119bd5750600f60169054906101000a900460ff165b80156119ca5750600d5481115b80156119da575060095460085411155b15611a04576119ea600d54611d93565b60004790506000811115611a0257611a0147611d27565b5b505b505b611a5882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aff611ab1828461206f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ba4848661206f90919063ffffffff16565b604051611bb19190612487565b60405180910390a36000811115611cbd57611c1481600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cb49190612487565b60405180910390a35b50505050565b6000838311158290611d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0291906121a7565b60405180910390fd5b5060008385611d1a9190612f36565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d8f573d6000803e3d6000fd5b5050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dcb57611dca6122ec565b5b604051908082528060200260200182016040528015611df95781602001602082028036833780820191505090505b5090503081600081518110611e1157611e106126f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611edc9190612f7f565b81600181518110611ef057611eef6126f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f5730600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461123d565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fbb9594939291906130af565b600060405180830381600087803b158015611fd557600080fd5b505af1158015611fe9573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a91906121a7565b60405180910390fd5b50600083856120629190612a64565b9050809150509392505050565b60006120b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cc3565b905092915050565b60008082846120c89190612e6d565b90508381101561210d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210490613155565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612151578082015181840152602081019050612136565b60008484015250505050565b6000601f19601f8301169050919050565b600061217982612117565b6121838185612122565b9350612193818560208601612133565b61219c8161215d565b840191505092915050565b600060208201905081810360008301526121c1818461216e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612208826121dd565b9050919050565b612218816121fd565b811461222357600080fd5b50565b6000813590506122358161220f565b92915050565b6000819050919050565b61224e8161223b565b811461225957600080fd5b50565b60008135905061226b81612245565b92915050565b60008060408385031215612288576122876121d3565b5b600061229685828601612226565b92505060206122a78582860161225c565b9150509250929050565b60008115159050919050565b6122c6816122b1565b82525050565b60006020820190506122e160008301846122bd565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6123248261215d565b810181811067ffffffffffffffff82111715612343576123426122ec565b5b80604052505050565b60006123566121c9565b9050612362828261231b565b919050565b600067ffffffffffffffff821115612382576123816122ec565b5b602082029050602081019050919050565b600080fd5b60006123ab6123a684612367565b61234c565b905080838252602082019050602084028301858111156123ce576123cd612393565b5b835b818110156123f757806123e38882612226565b8452602084019350506020810190506123d0565b5050509392505050565b600082601f830112612416576124156122e7565b5b8135612426848260208601612398565b91505092915050565b600060208284031215612445576124446121d3565b5b600082013567ffffffffffffffff811115612463576124626121d8565b5b61246f84828501612401565b91505092915050565b6124818161223b565b82525050565b600060208201905061249c6000830184612478565b92915050565b6000806000606084860312156124bb576124ba6121d3565b5b60006124c986828701612226565b93505060206124da86828701612226565b92505060406124eb8682870161225c565b9150509250925092565b600060ff82169050919050565b61250b816124f5565b82525050565b60006020820190506125266000830184612502565b92915050565b600060208284031215612542576125416121d3565b5b600061255084828501612226565b91505092915050565b612562816121fd565b82525050565b600060208201905061257d6000830184612559565b92915050565b6000806040838503121561259a576125996121d3565b5b60006125a88582860161225c565b92505060206125b98582860161225c565b9150509250929050565b6125cc816122b1565b81146125d757600080fd5b50565b6000813590506125e9816125c3565b92915050565b60008060408385031215612606576126056121d3565b5b600083013567ffffffffffffffff811115612624576126236121d8565b5b61263085828601612401565b9250506020612641858286016125da565b9150509250929050565b60008060408385031215612662576126616121d3565b5b600061267085828601612226565b925050602061268185828601612226565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126c1602083612122565b91506126cc8261268b565b602082019050919050565b600060208201905081810360008301526126f0816126b4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127608261223b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361279257612791612726565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b60018511156127f4578086048111156127d0576127cf612726565b5b60018516156127df5780820291505b80810290506127ed8561279d565b94506127b4565b94509492505050565b60008261280d57600190506128c9565b8161281b57600090506128c9565b8160018114612831576002811461283b5761286a565b60019150506128c9565b60ff84111561284d5761284c612726565b5b8360020a91508482111561286457612863612726565b5b506128c9565b5060208310610133831016604e8410600b841016171561289f5782820a90508381111561289a57612899612726565b5b6128c9565b6128ac84848460016127aa565b925090508184048111156128c3576128c2612726565b5b81810290505b9392505050565b60006128db8261223b565b91506128e6836124f5565b92506129137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127fd565b905092915050565b60006129268261223b565b91506129318361223b565b925082820261293f8161223b565b9150828204841483151761295657612955612726565b5b5092915050565b7f4f6e6c792074617820726564756374696f6e207065726d69747465642e000000600082015250565b6000612993601d83612122565b915061299e8261295d565b602082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006129ff601783612122565b9150612a0a826129c9565b602082019050919050565b60006020820190508181036000830152612a2e816129f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a6f8261223b565b9150612a7a8361223b565b925082612a8a57612a89612a35565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612af1602183612122565b9150612afc82612a95565b604082019050919050565b60006020820190508181036000830152612b2081612ae4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b83602483612122565b9150612b8e82612b27565b604082019050919050565b60006020820190508181036000830152612bb281612b76565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c15602283612122565b9150612c2082612bb9565b604082019050919050565b60006020820190508181036000830152612c4481612c08565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ca7602583612122565b9150612cb282612c4b565b604082019050919050565b60006020820190508181036000830152612cd681612c9a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d39602383612122565b9150612d4482612cdd565b604082019050919050565b60006020820190508181036000830152612d6881612d2c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dcb602983612122565b9150612dd682612d6f565b604082019050919050565b60006020820190508181036000830152612dfa81612dbe565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612e37601983612122565b9150612e4282612e01565b602082019050919050565b60006020820190508181036000830152612e6681612e2a565b9050919050565b6000612e788261223b565b9150612e838361223b565b9250828201905080821115612e9b57612e9a612726565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612ed7601a83612122565b9150612ee282612ea1565b602082019050919050565b60006020820190508181036000830152612f0681612eca565b9050919050565b6000612f188261223b565b915060008203612f2b57612f2a612726565b5b600182039050919050565b6000612f418261223b565b9150612f4c8361223b565b9250828203905081811115612f6457612f63612726565b5b92915050565b600081519050612f798161220f565b92915050565b600060208284031215612f9557612f946121d3565b5b6000612fa384828501612f6a565b91505092915050565b6000819050919050565b6000819050919050565b6000612fdb612fd6612fd184612fac565b612fb6565b61223b565b9050919050565b612feb81612fc0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613026816121fd565b82525050565b6000613038838361301d565b60208301905092915050565b6000602082019050919050565b600061305c82612ff1565b6130668185612ffc565b93506130718361300d565b8060005b838110156130a2578151613089888261302c565b975061309483613044565b925050600181019050613075565b5085935050505092915050565b600060a0820190506130c46000830188612478565b6130d16020830187612fe2565b81810360408301526130e38186613051565b90506130f26060830185612559565b6130ff6080830184612478565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061313f601b83612122565b915061314a82613109565b602082019050919050565b6000602082019050818103600083015261316e81613132565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122096c13054bfe886d813fc425700a74020e1db559b2b769d541456ca40b3c34bf964736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063751039fc116100b6578063b9a410ff1161006f578063b9a410ff14610433578063bea1cb271461045c578063c3c8cd8014610485578063c9567bf91461049c578063d34628cc146104b3578063dd62ed3e146104dc5761014b565b8063751039fc146103335780637d1db4a51461034a5780638da5cb5b146103755780638f9a55c0146103a057806395d89b41146103cb578063a9059cbb146103f65761014b565b8063313ce56711610108578063313ce5671461024957806331c2d8471461027457806334376f3b1461029d5780636fc3eaec146102c857806370a08231146102df578063715018a61461031c5761014b565b806306fdde0314610150578063095ea7b31461017b5780631354f2d4146101b857806318160ddd146101e157806323b872dd1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610519565b60405161017291906121a7565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190612271565b610556565b6040516101af91906122cc565b60405180910390f35b3480156101c457600080fd5b506101df60048036038101906101da919061242f565b610574565b005b3480156101ed57600080fd5b506101f661069e565b6040516102039190612487565b60405180910390f35b34801561021857600080fd5b50610233600480360381019061022e91906124a2565b6106c1565b60405161024091906122cc565b60405180910390f35b34801561025557600080fd5b5061025e61079a565b60405161026b9190612511565b60405180910390f35b34801561028057600080fd5b5061029b6004803603810190610296919061242f565b6107a3565b005b3480156102a957600080fd5b506102b26108cd565b6040516102bf9190612487565b60405180910390f35b3480156102d457600080fd5b506102dd6108d3565b005b3480156102eb57600080fd5b506103066004803603810190610301919061252c565b6108de565b6040516103139190612487565b60405180910390f35b34801561032857600080fd5b50610331610927565b005b34801561033f57600080fd5b50610348610a7a565b005b34801561035657600080fd5b5061035f610ba7565b60405161036c9190612487565b60405180910390f35b34801561038157600080fd5b5061038a610bad565b6040516103979190612568565b60405180910390f35b3480156103ac57600080fd5b506103b5610bd6565b6040516103c29190612487565b60405180910390f35b3480156103d757600080fd5b506103e0610bdc565b6040516103ed91906121a7565b60405180910390f35b34801561040257600080fd5b5061041d60048036038101906104189190612271565b610c19565b60405161042a91906122cc565b60405180910390f35b34801561043f57600080fd5b5061045a60048036038101906104559190612583565b610c37565b005b34801561046857600080fd5b50610483600480360381019061047e91906125ef565b610d66565b005b34801561049157600080fd5b5061049a610e90565b005b3480156104a857600080fd5b506104b1610ea3565b005b3480156104bf57600080fd5b506104da60048036038101906104d5919061242f565b610fc0565b005b3480156104e857600080fd5b5061050360048036038101906104fe919061264b565b6110ea565b6040516105109190612487565b60405180910390f35b60606040518060400160405280600481526020017f526f437200000000000000000000000000000000000000000000000000000000815250905090565b600061056a610563611235565b848461123d565b6001905092915050565b61057c611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610609576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610600906126d7565b60405180910390fd5b60005b815181101561069a5760016004600084848151811061062e5761062d6126f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061069290612755565b91505061060c565b5050565b60006008600a6106ae91906128d0565b62030d406106bc919061291b565b905090565b60006106ce848484611406565b61078f846106da611235565b61078a8560405180606001604052806028815260200161317660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610740611235565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611cc39092919063ffffffff16565b61123d565b600190509392505050565b60006008905090565b6107ab611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082f906126d7565b60405180910390fd5b60005b81518110156108c95760006004600084848151811061085d5761085c6126f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108c190612755565b91505061083b565b5050565b600d5481565b6108dc47611d27565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61092f611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b3906126d7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610a82611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b06906126d7565b60405180910390fd5b6008600a610b1d91906128d0565b62030d40610b2b919061291b565b600b819055506008600a610b3f91906128d0565b62030d40610b4d919061291b565b600c819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b8291906128d0565b62030d40610b90919061291b565b604051610b9d9190612487565b60405180910390a1565b600b5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600481526020017f526f437200000000000000000000000000000000000000000000000000000000815250905090565b6000610c2d610c26611235565b8484611406565b6001905092915050565b610c3f611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ccc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc3906126d7565b60405180910390fd5b6006548210610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d07906129a9565b60405180910390fd5b6007548110610d54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4b906129a9565b60405180910390fd5b81600681905550806007819055505050565b610d6e611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dfb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df2906126d7565b60405180910390fd5b60005b8251811015610e8b578160046000858481518110610e1f57610e1e6126f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e8390612755565b915050610dfe565b505050565b610ea1610e9c306108de565b611d93565b565b610eab611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2f906126d7565b60405180910390fd5b600f60149054906101000a900460ff1615610f88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7f90612a15565b60405180910390fd5b6001600f60166101000a81548160ff0219169083151502179055506001600f60146101000a81548160ff021916908315150217905550565b610fc8611235565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611055576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104c906126d7565b60405180910390fd5b60005b81518110156110e65760016004600084848151811061107a576110796126f7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806110de90612755565b915050611058565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080830361118357600090506111e5565b60008284611191919061291b565b90508284826111a09190612a64565b146111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d790612b07565b60405180910390fd5b809150505b92915050565b600061122d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061200c565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a390612b99565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361131b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131290612c2b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113f99190612487565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90612cbd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90612d4f565b60405180910390fd5b60008111611527576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151e90612de1565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115d55750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561162f5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116895750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611a0657600f60149054906101000a900460ff166116a757600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661173a57611733606461172560006008541461171257600654611716565b6007545b8561117190919063ffffffff16565b6111eb90919063ffffffff16565b9050611765565b6117626064611754600a548561117190919063ffffffff16565b6111eb90919063ffffffff16565b90505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156118105750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118665750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561192d57600b548211156118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790612e4d565b60405180910390fd5b600c54826118bd856108de565b6118c79190612e6d565b1115611908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ff90612eed565b60405180910390fd5b6000600854111561192c576008600081548092919061192690612f0d565b91905055505b5b6000611938306108de565b9050600f60159054906101000a900460ff161580156119a55750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156119bd5750600f60169054906101000a900460ff165b80156119ca5750600d5481115b80156119da575060095460085411155b15611a04576119ea600d54611d93565b60004790506000811115611a0257611a0147611d27565b5b505b505b611a5882600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461206f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611aff611ab1828461206f90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ba4848661206f90919063ffffffff16565b604051611bb19190612487565b60405180910390a36000811115611cbd57611c1481600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cb49190612487565b60405180910390a35b50505050565b6000838311158290611d0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0291906121a7565b60405180910390fd5b5060008385611d1a9190612f36565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d8f573d6000803e3d6000fd5b5050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611dcb57611dca6122ec565b5b604051908082528060200260200182016040528015611df95781602001602082028036833780820191505090505b5090503081600081518110611e1157611e106126f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611eb8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611edc9190612f7f565b81600181518110611ef057611eef6126f7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f5730600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461123d565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611fbb9594939291906130af565b600060405180830381600087803b158015611fd557600080fd5b505af1158015611fe9573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b60008083118290612053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204a91906121a7565b60405180910390fd5b50600083856120629190612a64565b9050809150509392505050565b60006120b183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cc3565b905092915050565b60008082846120c89190612e6d565b90508381101561210d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210490613155565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612151578082015181840152602081019050612136565b60008484015250505050565b6000601f19601f8301169050919050565b600061217982612117565b6121838185612122565b9350612193818560208601612133565b61219c8161215d565b840191505092915050565b600060208201905081810360008301526121c1818461216e565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612208826121dd565b9050919050565b612218816121fd565b811461222357600080fd5b50565b6000813590506122358161220f565b92915050565b6000819050919050565b61224e8161223b565b811461225957600080fd5b50565b60008135905061226b81612245565b92915050565b60008060408385031215612288576122876121d3565b5b600061229685828601612226565b92505060206122a78582860161225c565b9150509250929050565b60008115159050919050565b6122c6816122b1565b82525050565b60006020820190506122e160008301846122bd565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6123248261215d565b810181811067ffffffffffffffff82111715612343576123426122ec565b5b80604052505050565b60006123566121c9565b9050612362828261231b565b919050565b600067ffffffffffffffff821115612382576123816122ec565b5b602082029050602081019050919050565b600080fd5b60006123ab6123a684612367565b61234c565b905080838252602082019050602084028301858111156123ce576123cd612393565b5b835b818110156123f757806123e38882612226565b8452602084019350506020810190506123d0565b5050509392505050565b600082601f830112612416576124156122e7565b5b8135612426848260208601612398565b91505092915050565b600060208284031215612445576124446121d3565b5b600082013567ffffffffffffffff811115612463576124626121d8565b5b61246f84828501612401565b91505092915050565b6124818161223b565b82525050565b600060208201905061249c6000830184612478565b92915050565b6000806000606084860312156124bb576124ba6121d3565b5b60006124c986828701612226565b93505060206124da86828701612226565b92505060406124eb8682870161225c565b9150509250925092565b600060ff82169050919050565b61250b816124f5565b82525050565b60006020820190506125266000830184612502565b92915050565b600060208284031215612542576125416121d3565b5b600061255084828501612226565b91505092915050565b612562816121fd565b82525050565b600060208201905061257d6000830184612559565b92915050565b6000806040838503121561259a576125996121d3565b5b60006125a88582860161225c565b92505060206125b98582860161225c565b9150509250929050565b6125cc816122b1565b81146125d757600080fd5b50565b6000813590506125e9816125c3565b92915050565b60008060408385031215612606576126056121d3565b5b600083013567ffffffffffffffff811115612624576126236121d8565b5b61263085828601612401565b9250506020612641858286016125da565b9150509250929050565b60008060408385031215612662576126616121d3565b5b600061267085828601612226565b925050602061268185828601612226565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126c1602083612122565b91506126cc8261268b565b602082019050919050565b600060208201905081810360008301526126f0816126b4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127608261223b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361279257612791612726565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b60018511156127f4578086048111156127d0576127cf612726565b5b60018516156127df5780820291505b80810290506127ed8561279d565b94506127b4565b94509492505050565b60008261280d57600190506128c9565b8161281b57600090506128c9565b8160018114612831576002811461283b5761286a565b60019150506128c9565b60ff84111561284d5761284c612726565b5b8360020a91508482111561286457612863612726565b5b506128c9565b5060208310610133831016604e8410600b841016171561289f5782820a90508381111561289a57612899612726565b5b6128c9565b6128ac84848460016127aa565b925090508184048111156128c3576128c2612726565b5b81810290505b9392505050565b60006128db8261223b565b91506128e6836124f5565b92506129137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846127fd565b905092915050565b60006129268261223b565b91506129318361223b565b925082820261293f8161223b565b9150828204841483151761295657612955612726565b5b5092915050565b7f4f6e6c792074617820726564756374696f6e207065726d69747465642e000000600082015250565b6000612993601d83612122565b915061299e8261295d565b602082019050919050565b600060208201905081810360008301526129c281612986565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006129ff601783612122565b9150612a0a826129c9565b602082019050919050565b60006020820190508181036000830152612a2e816129f2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a6f8261223b565b9150612a7a8361223b565b925082612a8a57612a89612a35565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612af1602183612122565b9150612afc82612a95565b604082019050919050565b60006020820190508181036000830152612b2081612ae4565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b83602483612122565b9150612b8e82612b27565b604082019050919050565b60006020820190508181036000830152612bb281612b76565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c15602283612122565b9150612c2082612bb9565b604082019050919050565b60006020820190508181036000830152612c4481612c08565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ca7602583612122565b9150612cb282612c4b565b604082019050919050565b60006020820190508181036000830152612cd681612c9a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d39602383612122565b9150612d4482612cdd565b604082019050919050565b60006020820190508181036000830152612d6881612d2c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612dcb602983612122565b9150612dd682612d6f565b604082019050919050565b60006020820190508181036000830152612dfa81612dbe565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612e37601983612122565b9150612e4282612e01565b602082019050919050565b60006020820190508181036000830152612e6681612e2a565b9050919050565b6000612e788261223b565b9150612e838361223b565b9250828201905080821115612e9b57612e9a612726565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612ed7601a83612122565b9150612ee282612ea1565b602082019050919050565b60006020820190508181036000830152612f0681612eca565b9050919050565b6000612f188261223b565b915060008203612f2b57612f2a612726565b5b600182039050919050565b6000612f418261223b565b9150612f4c8361223b565b9250828203905081811115612f6457612f63612726565b5b92915050565b600081519050612f798161220f565b92915050565b600060208284031215612f9557612f946121d3565b5b6000612fa384828501612f6a565b91505092915050565b6000819050919050565b6000819050919050565b6000612fdb612fd6612fd184612fac565b612fb6565b61223b565b9050919050565b612feb81612fc0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613026816121fd565b82525050565b6000613038838361301d565b60208301905092915050565b6000602082019050919050565b600061305c82612ff1565b6130668185612ffc565b93506130718361300d565b8060005b838110156130a2578151613089888261302c565b975061309483613044565b925050600181019050613075565b5085935050505092915050565b600060a0820190506130c46000830188612478565b6130d16020830187612fe2565b81810360408301526130e38186613051565b90506130f26060830185612559565b6130ff6080830184612478565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061313f601b83612122565b915061314a82613109565b602082019050919050565b6000602082019050818103600083015261316e81613132565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122096c13054bfe886d813fc425700a74020e1db559b2b769d541456ca40b3c34bf964736f6c63430008110033

Deployed Bytecode Sourcemap

3505:7955:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5683:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6516:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10192:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5960:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6685:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5869:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10367:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4410:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11046:85;;;;;;;;;;;;;:::i;:::-;;6063:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2586:148;;;;;;;;;;;;;:::i;:::-;;9747:161;;;;;;;;;;;;;:::i;:::-;;4292:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2372:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4350:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5774:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6190:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11139:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10537:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10946:92;;;;;;;;;;;;;:::i;:::-;;10770:168;;;;;;;;;;;;;:::i;:::-;;10016:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6365:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5683:83;5720:13;5753:5;;;;;;;;;;;;;;;;;5746:12;;5683:83;:::o;6516:161::-;6591:4;6608:39;6617:12;:10;:12::i;:::-;6631:7;6640:6;6608:8;:39::i;:::-;6665:4;6658:11;;6516:161;;;;:::o;10192:167::-;2509:12;:10;:12::i;:::-;2499:22;;:6;;;;;;;;;;:22;;;2491:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10269:6:::1;10264:88;10285:5;:12;10281:1;:16;10264:88;;;10336:4;10319;:14;10324:5;10330:1;10324:8;;;;;;;;:::i;:::-;;;;;;;;10319:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10299:3;;;;;:::i;:::-;;;;10264:88;;;;10192:167:::0;:::o;5960:95::-;6013:7;4125:1;4178:2;:13;;;;:::i;:::-;4168:7;:23;;;;:::i;:::-;6033:14;;5960:95;:::o;6685:313::-;6783:4;6800:36;6810:6;6818:9;6829:6;6800:9;:36::i;:::-;6847:121;6856:6;6864:12;:10;:12::i;:::-;6878:89;6916:6;6878:89;;;;;;;;;;;;;;;;;:11;:19;6890:6;6878:19;;;;;;;;;;;;;;;:33;6898:12;:10;:12::i;:::-;6878:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6847:8;:121::i;:::-;6986:4;6979:11;;6685:313;;;;;:::o;5869:83::-;5910:5;4125:1;5928:16;;5869:83;:::o;10367:162::-;2509:12;:10;:12::i;:::-;2499:22;;:6;;;;;;;;;;:22;;;2491:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10440:6:::1;10435:87;10456:6;:13;10452:1;:17;10435:87;;;10507:5;10489:4;:15;10494:6;10501:1;10494:9;;;;;;;;:::i;:::-;;;;;;;;10489:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10471:3;;;;;:::i;:::-;;;;10435:87;;;;10367:162:::0;:::o;4410:43::-;;;;:::o;11046:85::-;11088:35;11101:21;11088:12;:35::i;:::-;11046:85::o;6063:119::-;6129:7;6156:9;:18;6166:7;6156:18;;;;;;;;;;;;;;;;6149:25;;6063:119;;;:::o;2586:148::-;2509:12;:10;:12::i;:::-;2499:22;;:6;;;;;;;;;;:22;;;2491:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2693:1:::1;2656:40;;2677:6;::::0;::::1;;;;;;;;2656:40;;;;;;;;;;;;2724:1;2707:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2586:148::o:0;9747:161::-;2509:12;:10;:12::i;:::-;2499:22;;:6;;;;;;;;;;:22;;;2491:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4125:1:::1;4178:2;:13;;;;:::i;:::-;4168:7;:23;;;;:::i;:::-;9800:12;:22;;;;4125:1;4178:2;:13;;;;:::i;:::-;4168:7;:23;;;;:::i;:::-;9833:14;:24;;;;9873:27;4125:1;4178:2;:13;;;;:::i;:::-;4168:7;:23;;;;:::i;:::-;9873:27;;;;;;:::i;:::-;;;;;;;;9747:161::o:0;4292:51::-;;;;:::o;2372:79::-;2410:7;2437:6;;;;;;;;;;;2430:13;;2372:79;:::o;4350:53::-;;;;:::o;5774:87::-;5813:13;5846:7;;;;;;;;;;;;;;;;;5839:14;;5774:87;:::o;6190:167::-;6268:4;6285:42;6295:12;:10;:12::i;:::-;6309:9;6320:6;6285:9;:42::i;:::-;6345:4;6338:11;;6190:167;;;;:::o;11139:318::-;2509:12;:10;:12::i;:::-;2499:22;;:6;;;;;;;;;;:22;;;2491:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11256:11:::1;;11240:13;:27;11232:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;11334:9;;11320:11;:23;11312:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11402:13;11388:11;:27;;;;11438:11;11426:9;:23;;;;11139:318:::0;;:::o;10537:225::-;2509:12;:10;:12::i;:::-;2499:22;;:6;;;;;;;;;;:22;;;2491:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10655:9:::1;10651:103;10671:18;:25;10669:1;:27;10651:103;;;10745:9;10715:4;:27;10720:18;10739:1;10720:21;;;;;;;;:::i;:::-;;;;;;;;10715:27;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;10697:3;;;;;:::i;:::-;;;;10651:103;;;;10537:225:::0;;:::o;10946:92::-;10988:42;11005:24;11023:4;11005:9;:24::i;:::-;10988:16;:42::i;:::-;10946:92::o;10770:168::-;2509:12;:10;:12::i;:::-;2499:22;;:6;;;;;;;;;;:22;;;2491:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10834:11:::1;;;;;;;;;;;10833:12;10825:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10897:4;10883:11;;:18;;;;;;;;;;;;;;;;;;10926:4;10912:11;;:18;;;;;;;;;;;;;;;;;;10770:168::o:0;10016:164::-;2509:12;:10;:12::i;:::-;2499:22;;:6;;;;;;;;;;:22;;;2491:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10090:6:::1;10085:88;10106:5;:12;10102:1;:16;10085:88;;;10157:4;10140;:14;10145:5;10151:1;10145:8;;;;;;;;:::i;:::-;;;;;;;;10140:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10120:3;;;;;:::i;:::-;;;;10085:88;;;;10016:164:::0;:::o;6365:143::-;6446:7;6473:11;:18;6485:5;6473:18;;;;;;;;;;;;;;;:27;6492:7;6473:27;;;;;;;;;;;;;;;;6466:34;;6365:143;;;;:::o;1462:246::-;1520:7;1549:1;1544;:6;1540:47;;1574:1;1567:8;;;;1540:47;1597:9;1613:1;1609;:5;;;;:::i;:::-;1597:17;;1642:1;1637;1633;:5;;;;:::i;:::-;:10;1625:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1699:1;1692:8;;;1462:246;;;;;:::o;1716:132::-;1774:7;1801:39;1805:1;1808;1801:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1794:46;;1716:132;;;;:::o;127:98::-;180:7;207:10;200:17;;127:98;:::o;7006:335::-;7116:1;7099:19;;:5;:19;;;7091:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7197:1;7178:21;;:7;:21;;;7170:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7279:6;7249:11;:18;7261:5;7249:18;;;;;;;;;;;;;;;:27;7268:7;7249:27;;;;;;;;;;;;;;;:36;;;;7317:7;7301:32;;7310:5;7301:32;;;7326:6;7301:32;;;;;;:::i;:::-;;;;;;;;7006:335;;;:::o;7349:1899::-;7453:1;7437:18;;:4;:18;;;7429:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7530:1;7516:16;;:2;:16;;;7508:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7600:1;7591:6;:10;7583:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7658:17;7700:10;;;;;;;;;;;7692:18;;:4;:18;;;;:38;;;;;7720:10;;;;;;;;;;;7714:16;;:2;:16;;;;7692:38;:80;;;;;7756:16;;;;;;;;;;;7748:24;;:4;:24;;;;7692:80;:110;;;;;7784:18;;;;;;;;;;;7776:26;;:4;:26;;;;7692:110;7688:1204;;;7827:11;;;;;;;;;;;7819:20;;;;;;7860:4;:10;7865:4;7860:10;;;;;;;;;;;;;;;;;;;;;;;;;7856:192;;7901:69;7966:3;7901:60;7935:1;7914:19;;:22;7913:46;;7948:11;;7913:46;;;7938:9;;7913:46;7901:6;:10;;:60;;;;:::i;:::-;:64;;:69;;;;:::i;:::-;7889:81;;7856:192;;;8019:29;8044:3;8019:20;8030:8;;8019:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8007:41;;7856:192;8075:13;;;;;;;;;;;8067:21;;:4;:21;;;:55;;;;;8106:15;;;;;;;;;;;8092:30;;:2;:30;;;;8067:55;:83;;;;;8128:18;:22;8147:2;8128:22;;;;;;;;;;;;;;;;;;;;;;;;;8126:24;8067:83;8063:350;;;8190:12;;8180:6;:22;;8172:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8285:14;;8275:6;8259:13;8269:2;8259:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8251:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8372:1;8352:19;;:21;8349:49;;;8375:19;;:21;;;;;;;;;:::i;:::-;;;;;;8349:49;8063:350;8429:28;8460:24;8478:4;8460:9;:24::i;:::-;8429:55;;8504:6;;;;;;;;;;;8503:7;:32;;;;;8522:13;;;;;;;;;;;8514:21;;:4;:21;;;;8503:32;:47;;;;;8539:11;;;;;;;;;;;8503:47;:80;;;;;8575:8;;8554:20;:29;8503:80;:123;;;;;8608:18;;8587:19;;:39;;8503:123;8499:382;;;8647:26;8664:8;;8647:16;:26::i;:::-;8692;8721:21;8692:50;;8785:1;8764:18;:22;8761:105;;;8811:35;8824:21;8811:12;:35::i;:::-;8761:105;8628:253;8499:382;7804:1088;7688:1204;8920:27;8940:6;8920:9;:15;8930:4;8920:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8904:9;:15;8914:4;8904:15;;;;;;;;;;;;;;;:43;;;;8972:40;8990:21;9001:9;8990:6;:10;;:21;;;;:::i;:::-;8972:9;:13;8982:2;8972:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8958:9;:13;8968:2;8958:13;;;;;;;;;;;;;;;:54;;;;9043:2;9028:41;;9037:4;9028:41;;;9047:21;9058:9;9047:6;:10;;:21;;;;:::i;:::-;9028:41;;;;;;:::i;:::-;;;;;;;;9093:1;9083:9;:11;9080:161;;;9133:39;9162:9;9133;:24;9151:4;9133:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9108:9;:24;9126:4;9108:24;;;;;;;;;;;;;;;:64;;;;9213:4;9190:39;;9199:4;9190:39;;;9219:9;9190:39;;;;;;:::i;:::-;;;;;;;;9080:161;7418:1830;7349:1899;;;:::o;1264:190::-;1350:7;1383:1;1378;:6;;1386:12;1370:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1410:9;1426:1;1422;:5;;;;:::i;:::-;1410:17;;1445:1;1438:8;;;1264:190;;;;;:::o;9916:92::-;9973:10;;;;;;;;;;;:19;;:27;9993:6;9973:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9916:92;:::o;9256:483::-;4814:4;4805:6;;:13;;;;;;;;;;;;;;;;;;9334:21:::1;9372:1;9358:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9334:40;;9403:4;9385;9390:1;9385:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9429:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9419:4;9424:1;9419:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9462:62;9479:4;9494:15;;;;;;;;;;;9512:11;9462:8;:62::i;:::-;9535:15;;;;;;;;;;;:66;;;9616:11;9642:1;9658:4;9685;9705:15;9535:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9323:416;4850:5:::0;4841:6;;:14;;;;;;;;;;;;;;;;;;9256:483;:::o;1856:189::-;1942:7;1974:1;1970;:5;1977:12;1962:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2001:9;2017:1;2013;:5;;;;:::i;:::-;2001:17;;2036:1;2029:8;;;1856:189;;;;;:::o;1120:136::-;1178:7;1205:43;1209:1;1212;1205:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1198:50;;1120:136;;;;:::o;933:179::-;991:7;1011:9;1027:1;1023;:5;;;;:::i;:::-;1011:17;;1052:1;1047;:6;;1039:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1103:1;1096:8;;;933:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:117::-;3555:1;3552;3545:12;3569:180;3617:77;3614:1;3607:88;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3755:281;3838:27;3860:4;3838:27;:::i;:::-;3830:6;3826:40;3968:6;3956:10;3953:22;3932:18;3920:10;3917:34;3914:62;3911:88;;;3979:18;;:::i;:::-;3911:88;4019:10;4015:2;4008:22;3798:238;3755:281;;:::o;4042:129::-;4076:6;4103:20;;:::i;:::-;4093:30;;4132:33;4160:4;4152:6;4132:33;:::i;:::-;4042:129;;;:::o;4177:311::-;4254:4;4344:18;4336:6;4333:30;4330:56;;;4366:18;;:::i;:::-;4330:56;4416:4;4408:6;4404:17;4396:25;;4476:4;4470;4466:15;4458:23;;4177:311;;;:::o;4494:117::-;4603:1;4600;4593:12;4634:710;4730:5;4755:81;4771:64;4828:6;4771:64;:::i;:::-;4755:81;:::i;:::-;4746:90;;4856:5;4885:6;4878:5;4871:21;4919:4;4912:5;4908:16;4901:23;;4972:4;4964:6;4960:17;4952:6;4948:30;5001:3;4993:6;4990:15;4987:122;;;5020:79;;:::i;:::-;4987:122;5135:6;5118:220;5152:6;5147:3;5144:15;5118:220;;;5227:3;5256:37;5289:3;5277:10;5256:37;:::i;:::-;5251:3;5244:50;5323:4;5318:3;5314:14;5307:21;;5194:144;5178:4;5173:3;5169:14;5162:21;;5118:220;;;5122:21;4736:608;;4634:710;;;;;:::o;5367:370::-;5438:5;5487:3;5480:4;5472:6;5468:17;5464:27;5454:122;;5495:79;;:::i;:::-;5454:122;5612:6;5599:20;5637:94;5727:3;5719:6;5712:4;5704:6;5700:17;5637:94;:::i;:::-;5628:103;;5444:293;5367:370;;;;:::o;5743:539::-;5827:6;5876:2;5864:9;5855:7;5851:23;5847:32;5844:119;;;5882:79;;:::i;:::-;5844:119;6030:1;6019:9;6015:17;6002:31;6060:18;6052:6;6049:30;6046:117;;;6082:79;;:::i;:::-;6046:117;6187:78;6257:7;6248:6;6237:9;6233:22;6187:78;:::i;:::-;6177:88;;5973:302;5743:539;;;;:::o;6288:118::-;6375:24;6393:5;6375:24;:::i;:::-;6370:3;6363:37;6288:118;;:::o;6412:222::-;6505:4;6543:2;6532:9;6528:18;6520:26;;6556:71;6624:1;6613:9;6609:17;6600:6;6556:71;:::i;:::-;6412:222;;;;:::o;6640:619::-;6717:6;6725;6733;6782:2;6770:9;6761:7;6757:23;6753:32;6750:119;;;6788:79;;:::i;:::-;6750:119;6908:1;6933:53;6978:7;6969:6;6958:9;6954:22;6933:53;:::i;:::-;6923:63;;6879:117;7035:2;7061:53;7106:7;7097:6;7086:9;7082:22;7061:53;:::i;:::-;7051:63;;7006:118;7163:2;7189:53;7234:7;7225:6;7214:9;7210:22;7189:53;:::i;:::-;7179:63;;7134:118;6640:619;;;;;:::o;7265:86::-;7300:7;7340:4;7333:5;7329:16;7318:27;;7265:86;;;:::o;7357:112::-;7440:22;7456:5;7440:22;:::i;:::-;7435:3;7428:35;7357:112;;:::o;7475:214::-;7564:4;7602:2;7591:9;7587:18;7579:26;;7615:67;7679:1;7668:9;7664:17;7655:6;7615:67;:::i;:::-;7475:214;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:116::-;8932:21;8947:5;8932:21;:::i;:::-;8925:5;8922:32;8912:60;;8968:1;8965;8958:12;8912:60;8862:116;:::o;8984:133::-;9027:5;9065:6;9052:20;9043:29;;9081:30;9105:5;9081:30;:::i;:::-;8984:133;;;;:::o;9123:678::-;9213:6;9221;9270:2;9258:9;9249:7;9245:23;9241:32;9238:119;;;9276:79;;:::i;:::-;9238:119;9424:1;9413:9;9409:17;9396:31;9454:18;9446:6;9443:30;9440:117;;;9476:79;;:::i;:::-;9440:117;9581:78;9651:7;9642:6;9631:9;9627:22;9581:78;:::i;:::-;9571:88;;9367:302;9708:2;9734:50;9776:7;9767:6;9756:9;9752:22;9734:50;:::i;:::-;9724:60;;9679:115;9123:678;;;;;:::o;9807:474::-;9875:6;9883;9932:2;9920:9;9911:7;9907:23;9903:32;9900:119;;;9938:79;;:::i;:::-;9900:119;10058:1;10083:53;10128:7;10119:6;10108:9;10104:22;10083:53;:::i;:::-;10073:63;;10029:117;10185:2;10211:53;10256:7;10247:6;10236:9;10232:22;10211:53;:::i;:::-;10201:63;;10156:118;9807:474;;;;;:::o;10287:182::-;10427:34;10423:1;10415:6;10411:14;10404:58;10287:182;:::o;10475:366::-;10617:3;10638:67;10702:2;10697:3;10638:67;:::i;:::-;10631:74;;10714:93;10803:3;10714:93;:::i;:::-;10832:2;10827:3;10823:12;10816:19;;10475:366;;;:::o;10847:419::-;11013:4;11051:2;11040:9;11036:18;11028:26;;11100:9;11094:4;11090:20;11086:1;11075:9;11071:17;11064:47;11128:131;11254:4;11128:131;:::i;:::-;11120:139;;10847:419;;;:::o;11272:180::-;11320:77;11317:1;11310:88;11417:4;11414:1;11407:15;11441:4;11438:1;11431:15;11458:180;11506:77;11503:1;11496:88;11603:4;11600:1;11593:15;11627:4;11624:1;11617:15;11644:233;11683:3;11706:24;11724:5;11706:24;:::i;:::-;11697:33;;11752:66;11745:5;11742:77;11739:103;;11822:18;;:::i;:::-;11739:103;11869:1;11862:5;11858:13;11851:20;;11644:233;;;:::o;11883:102::-;11925:8;11972:5;11969:1;11965:13;11944:34;;11883:102;;;:::o;11991:848::-;12052:5;12059:4;12083:6;12074:15;;12107:5;12098:14;;12121:712;12142:1;12132:8;12129:15;12121:712;;;12237:4;12232:3;12228:14;12222:4;12219:24;12216:50;;;12246:18;;:::i;:::-;12216:50;12296:1;12286:8;12282:16;12279:451;;;12711:4;12704:5;12700:16;12691:25;;12279:451;12761:4;12755;12751:15;12743:23;;12791:32;12814:8;12791:32;:::i;:::-;12779:44;;12121:712;;;11991:848;;;;;;;:::o;12845:1073::-;12899:5;13090:8;13080:40;;13111:1;13102:10;;13113:5;;13080:40;13139:4;13129:36;;13156:1;13147:10;;13158:5;;13129:36;13225:4;13273:1;13268:27;;;;13309:1;13304:191;;;;13218:277;;13268:27;13286:1;13277:10;;13288:5;;;13304:191;13349:3;13339:8;13336:17;13333:43;;;13356:18;;:::i;:::-;13333:43;13405:8;13402:1;13398:16;13389:25;;13440:3;13433:5;13430:14;13427:40;;;13447:18;;:::i;:::-;13427:40;13480:5;;;13218:277;;13604:2;13594:8;13591:16;13585:3;13579:4;13576:13;13572:36;13554:2;13544:8;13541:16;13536:2;13530:4;13527:12;13523:35;13507:111;13504:246;;;13660:8;13654:4;13650:19;13641:28;;13695:3;13688:5;13685:14;13682:40;;;13702:18;;:::i;:::-;13682:40;13735:5;;13504:246;13775:42;13813:3;13803:8;13797:4;13794:1;13775:42;:::i;:::-;13760:57;;;;13849:4;13844:3;13840:14;13833:5;13830:25;13827:51;;;13858:18;;:::i;:::-;13827:51;13907:4;13900:5;13896:16;13887:25;;12845:1073;;;;;;:::o;13924:281::-;13982:5;14006:23;14024:4;14006:23;:::i;:::-;13998:31;;14050:25;14066:8;14050:25;:::i;:::-;14038:37;;14094:104;14131:66;14121:8;14115:4;14094:104;:::i;:::-;14085:113;;13924:281;;;;:::o;14211:410::-;14251:7;14274:20;14292:1;14274:20;:::i;:::-;14269:25;;14308:20;14326:1;14308:20;:::i;:::-;14303:25;;14363:1;14360;14356:9;14385:30;14403:11;14385:30;:::i;:::-;14374:41;;14564:1;14555:7;14551:15;14548:1;14545:22;14525:1;14518:9;14498:83;14475:139;;14594:18;;:::i;:::-;14475:139;14259:362;14211:410;;;;:::o;14627:179::-;14767:31;14763:1;14755:6;14751:14;14744:55;14627:179;:::o;14812:366::-;14954:3;14975:67;15039:2;15034:3;14975:67;:::i;:::-;14968:74;;15051:93;15140:3;15051:93;:::i;:::-;15169:2;15164:3;15160:12;15153:19;;14812:366;;;:::o;15184:419::-;15350:4;15388:2;15377:9;15373:18;15365:26;;15437:9;15431:4;15427:20;15423:1;15412:9;15408:17;15401:47;15465:131;15591:4;15465:131;:::i;:::-;15457:139;;15184:419;;;:::o;15609:173::-;15749:25;15745:1;15737:6;15733:14;15726:49;15609:173;:::o;15788:366::-;15930:3;15951:67;16015:2;16010:3;15951:67;:::i;:::-;15944:74;;16027:93;16116:3;16027:93;:::i;:::-;16145:2;16140:3;16136:12;16129:19;;15788:366;;;:::o;16160:419::-;16326:4;16364:2;16353:9;16349:18;16341:26;;16413:9;16407:4;16403:20;16399:1;16388:9;16384:17;16377:47;16441:131;16567:4;16441:131;:::i;:::-;16433:139;;16160:419;;;:::o;16585:180::-;16633:77;16630:1;16623:88;16730:4;16727:1;16720:15;16754:4;16751:1;16744:15;16771:185;16811:1;16828:20;16846:1;16828:20;:::i;:::-;16823:25;;16862:20;16880:1;16862:20;:::i;:::-;16857:25;;16901:1;16891:35;;16906:18;;:::i;:::-;16891:35;16948:1;16945;16941:9;16936:14;;16771:185;;;;:::o;16962:220::-;17102:34;17098:1;17090:6;17086:14;17079:58;17171:3;17166:2;17158:6;17154:15;17147:28;16962:220;:::o;17188:366::-;17330:3;17351:67;17415:2;17410:3;17351:67;:::i;:::-;17344:74;;17427:93;17516:3;17427:93;:::i;:::-;17545:2;17540:3;17536:12;17529:19;;17188:366;;;:::o;17560:419::-;17726:4;17764:2;17753:9;17749:18;17741:26;;17813:9;17807:4;17803:20;17799:1;17788:9;17784:17;17777:47;17841:131;17967:4;17841:131;:::i;:::-;17833:139;;17560:419;;;:::o;17985:223::-;18125:34;18121:1;18113:6;18109:14;18102:58;18194:6;18189:2;18181:6;18177:15;18170:31;17985:223;:::o;18214:366::-;18356:3;18377:67;18441:2;18436:3;18377:67;:::i;:::-;18370:74;;18453:93;18542:3;18453:93;:::i;:::-;18571:2;18566:3;18562:12;18555:19;;18214:366;;;:::o;18586:419::-;18752:4;18790:2;18779:9;18775:18;18767:26;;18839:9;18833:4;18829:20;18825:1;18814:9;18810:17;18803:47;18867:131;18993:4;18867:131;:::i;:::-;18859:139;;18586:419;;;:::o;19011:221::-;19151:34;19147:1;19139:6;19135:14;19128:58;19220:4;19215:2;19207:6;19203:15;19196:29;19011:221;:::o;19238:366::-;19380:3;19401:67;19465:2;19460:3;19401:67;:::i;:::-;19394:74;;19477:93;19566:3;19477:93;:::i;:::-;19595:2;19590:3;19586:12;19579:19;;19238:366;;;:::o;19610:419::-;19776:4;19814:2;19803:9;19799:18;19791:26;;19863:9;19857:4;19853:20;19849:1;19838:9;19834:17;19827:47;19891:131;20017:4;19891:131;:::i;:::-;19883:139;;19610:419;;;:::o;20035:224::-;20175:34;20171:1;20163:6;20159:14;20152:58;20244:7;20239:2;20231:6;20227:15;20220:32;20035:224;:::o;20265:366::-;20407:3;20428:67;20492:2;20487:3;20428:67;:::i;:::-;20421:74;;20504:93;20593:3;20504:93;:::i;:::-;20622:2;20617:3;20613:12;20606:19;;20265:366;;;:::o;20637:419::-;20803:4;20841:2;20830:9;20826:18;20818:26;;20890:9;20884:4;20880:20;20876:1;20865:9;20861:17;20854:47;20918:131;21044:4;20918:131;:::i;:::-;20910:139;;20637:419;;;:::o;21062:222::-;21202:34;21198:1;21190:6;21186:14;21179:58;21271:5;21266:2;21258:6;21254:15;21247:30;21062:222;:::o;21290:366::-;21432:3;21453:67;21517:2;21512:3;21453:67;:::i;:::-;21446:74;;21529:93;21618:3;21529:93;:::i;:::-;21647:2;21642:3;21638:12;21631:19;;21290:366;;;:::o;21662:419::-;21828:4;21866:2;21855:9;21851:18;21843:26;;21915:9;21909:4;21905:20;21901:1;21890:9;21886:17;21879:47;21943:131;22069:4;21943:131;:::i;:::-;21935:139;;21662:419;;;:::o;22087:228::-;22227:34;22223:1;22215:6;22211:14;22204:58;22296:11;22291:2;22283:6;22279:15;22272:36;22087:228;:::o;22321:366::-;22463:3;22484:67;22548:2;22543:3;22484:67;:::i;:::-;22477:74;;22560:93;22649:3;22560:93;:::i;:::-;22678:2;22673:3;22669:12;22662:19;;22321:366;;;:::o;22693:419::-;22859:4;22897:2;22886:9;22882:18;22874:26;;22946:9;22940:4;22936:20;22932:1;22921:9;22917:17;22910:47;22974:131;23100:4;22974:131;:::i;:::-;22966:139;;22693:419;;;:::o;23118:175::-;23258:27;23254:1;23246:6;23242:14;23235:51;23118:175;:::o;23299:366::-;23441:3;23462:67;23526:2;23521:3;23462:67;:::i;:::-;23455:74;;23538:93;23627:3;23538:93;:::i;:::-;23656:2;23651:3;23647:12;23640:19;;23299:366;;;:::o;23671:419::-;23837:4;23875:2;23864:9;23860:18;23852:26;;23924:9;23918:4;23914:20;23910:1;23899:9;23895:17;23888:47;23952:131;24078:4;23952:131;:::i;:::-;23944:139;;23671:419;;;:::o;24096:191::-;24136:3;24155:20;24173:1;24155:20;:::i;:::-;24150:25;;24189:20;24207:1;24189:20;:::i;:::-;24184:25;;24232:1;24229;24225:9;24218:16;;24253:3;24250:1;24247:10;24244:36;;;24260:18;;:::i;:::-;24244:36;24096:191;;;;:::o;24293:176::-;24433:28;24429:1;24421:6;24417:14;24410:52;24293:176;:::o;24475:366::-;24617:3;24638:67;24702:2;24697:3;24638:67;:::i;:::-;24631:74;;24714:93;24803:3;24714:93;:::i;:::-;24832:2;24827:3;24823:12;24816:19;;24475:366;;;:::o;24847:419::-;25013:4;25051:2;25040:9;25036:18;25028:26;;25100:9;25094:4;25090:20;25086:1;25075:9;25071:17;25064:47;25128:131;25254:4;25128:131;:::i;:::-;25120:139;;24847:419;;;:::o;25272:171::-;25311:3;25334:24;25352:5;25334:24;:::i;:::-;25325:33;;25380:4;25373:5;25370:15;25367:41;;25388:18;;:::i;:::-;25367:41;25435:1;25428:5;25424:13;25417:20;;25272:171;;;:::o;25449:194::-;25489:4;25509:20;25527:1;25509:20;:::i;:::-;25504:25;;25543:20;25561:1;25543:20;:::i;:::-;25538:25;;25587:1;25584;25580:9;25572:17;;25611:1;25605:4;25602:11;25599:37;;;25616:18;;:::i;:::-;25599:37;25449:194;;;;:::o;25649:143::-;25706:5;25737:6;25731:13;25722:22;;25753:33;25780:5;25753:33;:::i;:::-;25649:143;;;;:::o;25798:351::-;25868:6;25917:2;25905:9;25896:7;25892:23;25888:32;25885:119;;;25923:79;;:::i;:::-;25885:119;26043:1;26068:64;26124:7;26115:6;26104:9;26100:22;26068:64;:::i;:::-;26058:74;;26014:128;25798:351;;;;:::o;26155:85::-;26200:7;26229:5;26218:16;;26155:85;;;:::o;26246:60::-;26274:3;26295:5;26288:12;;26246:60;;;:::o;26312:158::-;26370:9;26403:61;26421:42;26430:32;26456:5;26430:32;:::i;:::-;26421:42;:::i;:::-;26403:61;:::i;:::-;26390:74;;26312:158;;;:::o;26476:147::-;26571:45;26610:5;26571:45;:::i;:::-;26566:3;26559:58;26476:147;;:::o;26629:114::-;26696:6;26730:5;26724:12;26714:22;;26629:114;;;:::o;26749:184::-;26848:11;26882:6;26877:3;26870:19;26922:4;26917:3;26913:14;26898:29;;26749:184;;;;:::o;26939:132::-;27006:4;27029:3;27021:11;;27059:4;27054:3;27050:14;27042:22;;26939:132;;;:::o;27077:108::-;27154:24;27172:5;27154:24;:::i;:::-;27149:3;27142:37;27077:108;;:::o;27191:179::-;27260:10;27281:46;27323:3;27315:6;27281:46;:::i;:::-;27359:4;27354:3;27350:14;27336:28;;27191:179;;;;:::o;27376:113::-;27446:4;27478;27473:3;27469:14;27461:22;;27376:113;;;:::o;27525:732::-;27644:3;27673:54;27721:5;27673:54;:::i;:::-;27743:86;27822:6;27817:3;27743:86;:::i;:::-;27736:93;;27853:56;27903:5;27853:56;:::i;:::-;27932:7;27963:1;27948:284;27973:6;27970:1;27967:13;27948:284;;;28049:6;28043:13;28076:63;28135:3;28120:13;28076:63;:::i;:::-;28069:70;;28162:60;28215:6;28162:60;:::i;:::-;28152:70;;28008:224;27995:1;27992;27988:9;27983:14;;27948:284;;;27952:14;28248:3;28241:10;;27649:608;;;27525:732;;;;:::o;28263:831::-;28526:4;28564:3;28553:9;28549:19;28541:27;;28578:71;28646:1;28635:9;28631:17;28622:6;28578:71;:::i;:::-;28659:80;28735:2;28724:9;28720:18;28711:6;28659:80;:::i;:::-;28786:9;28780:4;28776:20;28771:2;28760:9;28756:18;28749:48;28814:108;28917:4;28908:6;28814:108;:::i;:::-;28806:116;;28932:72;29000:2;28989:9;28985:18;28976:6;28932:72;:::i;:::-;29014:73;29082:3;29071:9;29067:19;29058:6;29014:73;:::i;:::-;28263:831;;;;;;;;:::o;29100:177::-;29240:29;29236:1;29228:6;29224:14;29217:53;29100:177;:::o;29283:366::-;29425:3;29446:67;29510:2;29505:3;29446:67;:::i;:::-;29439:74;;29522:93;29611:3;29522:93;:::i;:::-;29640:2;29635:3;29631:12;29624:19;;29283:366;;;:::o;29655:419::-;29821:4;29859:2;29848:9;29844:18;29836:26;;29908:9;29902:4;29898:20;29894:1;29883:9;29879:17;29872:47;29936:131;30062:4;29936:131;:::i;:::-;29928:139;;29655:419;;;:::o

Swarm Source

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