ETH Price: $3,245.96 (+2.55%)
Gas: 2 Gwei

Token

Rug Budz (REGGIE)
 

Overview

Max Total Supply

1,000,000 REGGIE

Holders

151

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
340 REGGIE

Value
$0.00
0x9dC4e321AFcA2bDEdC460e362218D20344bb6687
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:
Rugbudz

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**  
Telegram- https://t.me/portalRugbudz
Twitter- https://twitter.com/rugbudz
Website- https://www.rugbudz.com/
*/
pragma solidity ^0.8.19;

library Address{
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{value: amount}("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor() {
        _setOwner(_msgSender());
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }

    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

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

interface IRouter {
    function factory() external pure returns (address);
    function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
    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);
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}

contract Rugbudz is Context, IERC20, Ownable {

    using Address for address payable;

    IRouter public router;
    address public pair;
    
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public _isExcludedFromFee;
    mapping (address => bool) public _isExcludedFromMaxBalance;

    uint8 private constant _decimals = 9; 
    uint256 private _tTotal = 1_000_000 * (10**_decimals);
    uint256 public swapThreshold = 2_500 * (10**_decimals);
    uint256 public maxWallet =  20_000 * (10**_decimals);
    
    uint8 public buyTax = 25;
    uint8 public sellTax = 25;

    string private constant _name = "Rug Budz"; 
    string private constant _symbol = "REGGIE";

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public marketingWallet = 0x9CfE4337BA1138ff52E88e981Ce5449171A9D48D;
    address public autoLPWallet = 0x9Bd5882F49F78Ec6e383331f0777c540c30b2D07;

    bool public transferTaxEnabled = false;
    bool private swapping;
    modifier lockTheSwap {
        swapping = true;
        _;
        swapping = false;
    }

    constructor () {
        _tOwned[_msgSender()] = _tTotal;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        _approve(owner(), address(router), ~uint256(0));

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[marketingWallet] = true;
        _isExcludedFromFee[DEAD] = true;

        _isExcludedFromMaxBalance[owner()] = true;
        _isExcludedFromMaxBalance[address(this)] = true;
        _isExcludedFromMaxBalance[pair] = true;
        _isExcludedFromMaxBalance[marketingWallet] = true;
        _isExcludedFromMaxBalance[DEAD] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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()] - amount);
        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 _preTransferCheck(address from,address to,uint256 amount) internal {
        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");
        require(balanceOf(to) + amount <= maxWallet || _isExcludedFromMaxBalance[to], "Transfer amount exceeds the maxWallet.");
        if (balanceOf(address(this)) >= swapThreshold && !swapping && from != pair && from != owner() && to != owner())
            swapAndLiquify();
    }

    function _getValues(address from,address to, uint256 amount) private returns(uint256){
        uint256 taxedTokens;
        if(from == pair){
            taxedTokens = amount * buyTax / 100;
        }else if(to == pair){
            taxedTokens = amount * sellTax / 100;
        }else{
           if(transferTaxEnabled)
            taxedTokens = amount * buyTax / 100;
        }
        if (taxedTokens > 0){
            _tOwned[address(this)] += taxedTokens;
            emit Transfer (from, address(this), taxedTokens);
        }
        return (amount - taxedTokens);
    }
    
    function _transfer(address from,address to,uint256 amount) private {
        _preTransferCheck(from, to, amount);
        _tOwned[from] -= amount;
        uint256 transferAmount = amount;
        if(!_isExcludedFromFee[from] && !_isExcludedFromFee[to])
            transferAmount = _getValues(from, to, amount);
        _tOwned[to] += transferAmount;
        emit Transfer(from, to, transferAmount);
    }

    function swapAndLiquify() private lockTheSwap{

        uint256 tokensForMarketing = swapThreshold * 80 / 100;
        uint256 tokensForLiquidity = swapThreshold * 20 / 100;
        
        if(tokensForMarketing > 0){
            uint256 ethSwapped = swapTokensForETH(tokensForMarketing);
            if(ethSwapped > 0)
                payable(marketingWallet).transfer(ethSwapped);
        }

        if(tokensForLiquidity > 0){
            uint half = tokensForLiquidity / 2;
            uint otherHalf = tokensForLiquidity - half;
            uint balAutoLP = swapTokensForETH(half);
            if (balAutoLP > 0)
                addLiquidity(otherHalf, balAutoLP);
        }

        if (address(this).balance > 0)
            payable(marketingWallet).sendValue(address(this).balance);

    }

    function swapTokensForETH(uint256 tokenAmount) private returns (uint256) {
        uint256 initialBalance = address(this).balance;
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();

        _approve(address(this), address(router), tokenAmount);

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
        return (address(this).balance - initialBalance);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        _approve(address(this), address(router), tokenAmount);

        (,uint256 ethFromLiquidity,) = router.addLiquidityETH {value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            autoLPWallet,
            block.timestamp
        );
        
        if (ethAmount - ethFromLiquidity > 0)
            payable(marketingWallet).sendValue (ethAmount - ethFromLiquidity);
    }
    
    function setContractLimits(uint256 maxWalletEXACT_) external onlyOwner{
        uint256 minimumAmount = 5_000 * (10**_decimals);
        require(maxWalletEXACT_ * (10**_decimals) >= minimumAmount, "Invalid Settings!");
        maxWallet = maxWalletEXACT_ * (10**_decimals);
    }

    function setContractSettings(uint8 buyTax_ , uint8 sellTax_) external onlyOwner{
        require(buyTax_ <= 20 && sellTax_ <= 50, "Invalid Settings!");
        buyTax = buyTax_; sellTax = sellTax_;
    }

    function setSwapThreshold(uint256 swapThresholdEXACT_) external onlyOwner{
        swapThreshold = swapThresholdEXACT_ * (10**_decimals);
    }

    function setTransferTaxSettings(bool isEnabled_) external onlyOwner{
        transferTaxEnabled = isEnabled_;
    }

    function manualSwap() external lockTheSwap{
        require(msg.sender == marketingWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0){
            uint256 ethSwapped = swapTokensForETH(tokenBalance);
            if(ethSwapped > 0)
                payable(marketingWallet).transfer(ethSwapped);
        }
        if (address(this).balance > 0)
            payable(marketingWallet).sendValue(address(this).balance);
    }
    
    receive() external payable {}

}

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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromMaxBalance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLPWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletEXACT_","type":"uint256"}],"name":"setContractLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyTax_","type":"uint8"},{"internalType":"uint8","name":"sellTax_","type":"uint8"}],"name":"setContractSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapThresholdEXACT_","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"isEnabled_","type":"bool"}],"name":"setTransferTaxSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferTaxEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000cb6565b620f424062000024919062000d07565b6007556009600a62000037919062000cb6565b6109c462000046919062000d07565b6008556009600a62000059919062000cb6565b614e2062000068919062000d07565b6009556019600a60006101000a81548160ff021916908360ff1602179055506019600a60016101000a81548160ff021916908360ff160217905550739cfe4337ba1138ff52e88e981ce5449171a9d48d600a60026101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739bd5882f49f78ec6e383331f0777c540c30b2d07600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600b60146101000a81548160ff0219169083151502179055503480156200017557600080fd5b50620001966200018a6200085660201b60201c565b6200085e60201b60201c565b60075460036000620001ad6200085660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000252573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000278919062000dbc565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000306919062000dbc565b6040518363ffffffff1660e01b81526004016200032592919062000dff565b6020604051808303816000875af115801562000345573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200036b919062000dbc565b905081600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000435620004036200092260201b60201c565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196200094b60201b60201c565b6001600560006200044b6200092260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016005600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000620005de6200092260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016006600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620007e56200085660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60075460405162000846919062000e3d565b60405180910390a3505062000f9b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620009bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b49062000ee1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a269062000f79565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000b0f919062000e3d565b60405180910390a3505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000baa5780860481111562000b825762000b8162000b1c565b5b600185161562000b925780820291505b808102905062000ba28562000b4b565b945062000b62565b94509492505050565b60008262000bc5576001905062000c98565b8162000bd5576000905062000c98565b816001811462000bee576002811462000bf95762000c2f565b600191505062000c98565b60ff84111562000c0e5762000c0d62000b1c565b5b8360020a91508482111562000c285762000c2762000b1c565b5b5062000c98565b5060208310610133831016604e8410600b841016171562000c695782820a90508381111562000c635762000c6262000b1c565b5b62000c98565b62000c78848484600162000b58565b9250905081840481111562000c925762000c9162000b1c565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000cc38262000c9f565b915062000cd08362000ca9565b925062000cff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bb3565b905092915050565b600062000d148262000c9f565b915062000d218362000c9f565b925082820262000d318162000c9f565b9150828204841483151762000d4b5762000d4a62000b1c565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d848262000d57565b9050919050565b62000d968162000d77565b811462000da257600080fd5b50565b60008151905062000db68162000d8b565b92915050565b60006020828403121562000dd55762000dd462000d52565b5b600062000de58482850162000da5565b91505092915050565b62000df98162000d77565b82525050565b600060408201905062000e16600083018562000dee565b62000e25602083018462000dee565b9392505050565b62000e378162000c9f565b82525050565b600060208201905062000e54600083018462000e2c565b92915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062000ec960248362000e5a565b915062000ed68262000e6b565b604082019050919050565b6000602082019050818103600083015262000efc8162000eba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600062000f6160228362000e5a565b915062000f6e8262000f03565b604082019050919050565b6000602082019050818103600083015262000f948162000f52565b9050919050565b6130d98062000fab6000396000f3fe6080604052600436106101bb5760003560e01c806375f0a874116100ec578063a8aa1b311161008a578063dd62ed3e11610064578063dd62ed3e1461060b578063f2fde38b14610648578063f887ea4014610671578063f8b45b051461069c576101c2565b8063a8aa1b3114610578578063a9059cbb146105a3578063cc1776d3146105e0576101c2565b80638da5cb5b116100c65780638da5cb5b146104ce57806395d89b41146104f957806396f9e9be146105245780639d0014b11461054f576101c2565b806375f0a8741461043d578063768dc710146104685780637fe74a13146104a5576101c2565b80634f7041a51161015957806356d3b98f1161013357806356d3b98f146103955780636ca83973146103c057806370a08231146103e9578063715018a614610426576101c2565b80634f7041a51461032a5780635025587b1461035557806351bc3c851461037e576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd1461028557806328c61f41146102c2578063313ce567146102ff576101c2565b80630445b667146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106c7565b6040516101e991906120b7565b60405180910390f35b3480156101fe57600080fd5b506102076106cd565b6040516102149190612162565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190612213565b61070a565b604051610251919061226e565b60405180910390f35b34801561026657600080fd5b5061026f610728565b60405161027c91906120b7565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612289565b610732565b6040516102b9919061226e565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e491906122dc565b6107ea565b6040516102f6919061226e565b60405180910390f35b34801561030b57600080fd5b5061031461080a565b6040516103219190612325565b60405180910390f35b34801561033657600080fd5b5061033f610813565b60405161034c9190612325565b60405180910390f35b34801561036157600080fd5b5061037c60048036038101906103779190612340565b610826565b005b34801561038a57600080fd5b5061039361093f565b005b3480156103a157600080fd5b506103aa610abf565b6040516103b7919061237c565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e291906123c3565b610ae5565b005b3480156103f557600080fd5b50610410600480360381019061040b91906122dc565b610b7e565b60405161041d91906120b7565b60405180910390f35b34801561043257600080fd5b5061043b610bc7565b005b34801561044957600080fd5b50610452610c4f565b60405161045f919061237c565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a91906122dc565b610c75565b60405161049c919061226e565b60405180910390f35b3480156104b157600080fd5b506104cc60048036038101906104c7919061241c565b610c95565b005b3480156104da57600080fd5b506104e3610da2565b6040516104f0919061237c565b60405180910390f35b34801561050557600080fd5b5061050e610dcb565b60405161051b9190612162565b60405180910390f35b34801561053057600080fd5b50610539610e08565b604051610546919061226e565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190612340565b610e1b565b005b34801561058457600080fd5b5061058d610eb9565b60405161059a919061237c565b60405180910390f35b3480156105af57600080fd5b506105ca60048036038101906105c59190612213565b610edf565b6040516105d7919061226e565b60405180910390f35b3480156105ec57600080fd5b506105f5610efd565b6040516106029190612325565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d919061245c565b610f10565b60405161063f91906120b7565b60405180910390f35b34801561065457600080fd5b5061066f600480360381019061066a91906122dc565b610f97565b005b34801561067d57600080fd5b5061068661108e565b60405161069391906124fb565b60405180910390f35b3480156106a857600080fd5b506106b16110b4565b6040516106be91906120b7565b60405180910390f35b60085481565b60606040518060400160405280600881526020017f527567204275647a000000000000000000000000000000000000000000000000815250905090565b600061071e6107176110ba565b84846110c2565b6001905092915050565b6000600754905090565b600061073f84848461128b565b6107df8461074b6110ba565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107956110ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107da9190612545565b6110c2565b600190509392505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b600a60009054906101000a900460ff1681565b61082e6110ba565b73ffffffffffffffffffffffffffffffffffffffff1661084c610da2565b73ffffffffffffffffffffffffffffffffffffffff16146108a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610899906125c5565b60405180910390fd5b60006009600a6108b29190612718565b6113886108bf9190612763565b9050806009600a6108d09190612718565b836108db9190612763565b101561091c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610913906127f1565b60405180910390fd5b6009600a61092a9190612718565b826109359190612763565b6009819055505050565b6001600b60156101000a81548160ff021916908315150217905550600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109b457600080fd5b60006109bf30610b7e565b90506000811115610a4c5760006109d582611469565b90506000811115610a4a57600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a48573d6000803e3d6000fd5b505b505b6000471115610aa157610aa047600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116c390919063ffffffff16565b5b506000600b60156101000a81548160ff021916908315150217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aed6110ba565b73ffffffffffffffffffffffffffffffffffffffff16610b0b610da2565b73ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b58906125c5565b60405180910390fd5b80600b60146101000a81548160ff02191690831515021790555050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bcf6110ba565b73ffffffffffffffffffffffffffffffffffffffff16610bed610da2565b73ffffffffffffffffffffffffffffffffffffffff1614610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906125c5565b60405180910390fd5b610c4d60006117b7565b565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b610c9d6110ba565b73ffffffffffffffffffffffffffffffffffffffff16610cbb610da2565b73ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d08906125c5565b60405180910390fd5b60148260ff1611158015610d29575060328160ff1611155b610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f906127f1565b60405180910390fd5b81600a60006101000a81548160ff021916908360ff16021790555080600a60016101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5245474749450000000000000000000000000000000000000000000000000000815250905090565b600b60149054906101000a900460ff1681565b610e236110ba565b73ffffffffffffffffffffffffffffffffffffffff16610e41610da2565b73ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e906125c5565b60405180910390fd5b6009600a610ea59190612718565b81610eb09190612763565b60088190555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ef3610eec6110ba565b848461128b565b6001905092915050565b600a60019054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f9f6110ba565b73ffffffffffffffffffffffffffffffffffffffff16610fbd610da2565b73ffffffffffffffffffffffffffffffffffffffff1614611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a906125c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107990612883565b60405180910390fd5b61108b816117b7565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890612915565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611197906129a7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161127e91906120b7565b60405180910390a3505050565b61129683838361187b565b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112e59190612545565b925050819055506000819050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113955750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113a8576113a5848484611b5a565b90505b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113f791906129c7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161145b91906120b7565b60405180910390a350505050565b6000804790506000600267ffffffffffffffff81111561148c5761148b6129fb565b5b6040519080825280602002602001820160405280156114ba5781602001602082028036833780820191505090505b50905030816000815181106114d2576114d1612a2a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159d9190612a6e565b816001815181106115b1576115b0612a2a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061161830600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866110c2565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b815260040161167c959493929190612b94565b600060405180830381600087803b15801561169657600080fd5b505af11580156116aa573d6000803e3d6000fd5b5050505081476116ba9190612545565b92505050919050565b80471015611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd90612c3a565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161172c90612c8b565b60006040518083038185875af1925050503d8060008114611769576040519150601f19603f3d011682016040523d82523d6000602084013e61176e565b606091505b50509050806117b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a990612d12565b60405180910390fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e190612da4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195090612e36565b60405180910390fd5b6000811161199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390612ec8565b60405180910390fd5b600954816119a984610b7e565b6119b391906129c7565b111580611a095750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3f90612f5a565b60405180910390fd5b600854611a5430610b7e565b10158015611a6f5750600b60159054906101000a900460ff16155b8015611ac95750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b085750611ad8610da2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b475750611b17610da2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b5557611b54611d88565b5b505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611be3576064600a60009054906101000a900460ff1660ff1684611bd29190612763565b611bdc9190612fa9565b9050611cad565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c69576064600a60019054906101000a900460ff1660ff1684611c589190612763565b611c629190612fa9565b9050611cac565b600b60149054906101000a900460ff1615611cab576064600a60009054906101000a900460ff1660ff1684611c9e9190612763565b611ca89190612fa9565b90505b5b5b6000811115611d725780600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d0591906129c7565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d6991906120b7565b60405180910390a35b8083611d7e9190612545565b9150509392505050565b6001600b60156101000a81548160ff021916908315150217905550600060646050600854611db69190612763565b611dc09190612fa9565b9050600060646014600854611dd59190612763565b611ddf9190612fa9565b90506000821115611e6c576000611df583611469565b90506000811115611e6a57600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e68573d6000803e3d6000fd5b505b505b6000811115611ebb576000600282611e849190612fa9565b905060008183611e949190612545565b90506000611ea183611469565b90506000811115611eb757611eb68282611f2f565b5b5050505b6000471115611f1057611f0f47600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116c390919063ffffffff16565b5b50506000600b60156101000a81548160ff021916908315150217905550565b611f5c30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110c2565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833086600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611fe796959493929190612fda565b60606040518083038185885af1158015612005573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061202a9190613050565b509150506000818361203c9190612545565b11156120995761209881836120519190612545565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116c390919063ffffffff16565b5b505050565b6000819050919050565b6120b18161209e565b82525050565b60006020820190506120cc60008301846120a8565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210c5780820151818401526020810190506120f1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612134826120d2565b61213e81856120dd565b935061214e8185602086016120ee565b61215781612118565b840191505092915050565b6000602082019050818103600083015261217c8184612129565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121b482612189565b9050919050565b6121c4816121a9565b81146121cf57600080fd5b50565b6000813590506121e1816121bb565b92915050565b6121f08161209e565b81146121fb57600080fd5b50565b60008135905061220d816121e7565b92915050565b6000806040838503121561222a57612229612184565b5b6000612238858286016121d2565b9250506020612249858286016121fe565b9150509250929050565b60008115159050919050565b61226881612253565b82525050565b6000602082019050612283600083018461225f565b92915050565b6000806000606084860312156122a2576122a1612184565b5b60006122b0868287016121d2565b93505060206122c1868287016121d2565b92505060406122d2868287016121fe565b9150509250925092565b6000602082840312156122f2576122f1612184565b5b6000612300848285016121d2565b91505092915050565b600060ff82169050919050565b61231f81612309565b82525050565b600060208201905061233a6000830184612316565b92915050565b60006020828403121561235657612355612184565b5b6000612364848285016121fe565b91505092915050565b612376816121a9565b82525050565b6000602082019050612391600083018461236d565b92915050565b6123a081612253565b81146123ab57600080fd5b50565b6000813590506123bd81612397565b92915050565b6000602082840312156123d9576123d8612184565b5b60006123e7848285016123ae565b91505092915050565b6123f981612309565b811461240457600080fd5b50565b600081359050612416816123f0565b92915050565b6000806040838503121561243357612432612184565b5b600061244185828601612407565b925050602061245285828601612407565b9150509250929050565b6000806040838503121561247357612472612184565b5b6000612481858286016121d2565b9250506020612492858286016121d2565b9150509250929050565b6000819050919050565b60006124c16124bc6124b784612189565b61249c565b612189565b9050919050565b60006124d3826124a6565b9050919050565b60006124e5826124c8565b9050919050565b6124f5816124da565b82525050565b600060208201905061251060008301846124ec565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125508261209e565b915061255b8361209e565b925082820390508181111561257357612572612516565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125af6020836120dd565b91506125ba82612579565b602082019050919050565b600060208201905081810360008301526125de816125a2565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561263c5780860481111561261857612617612516565b5b60018516156126275780820291505b8081029050612635856125e5565b94506125fc565b94509492505050565b6000826126555760019050612711565b816126635760009050612711565b81600181146126795760028114612683576126b2565b6001915050612711565b60ff84111561269557612694612516565b5b8360020a9150848211156126ac576126ab612516565b5b50612711565b5060208310610133831016604e8410600b84101617156126e75782820a9050838111156126e2576126e1612516565b5b612711565b6126f484848460016125f2565b9250905081840481111561270b5761270a612516565b5b81810290505b9392505050565b60006127238261209e565b915061272e83612309565b925061275b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612645565b905092915050565b600061276e8261209e565b91506127798361209e565b92508282026127878161209e565b9150828204841483151761279e5761279d612516565b5b5092915050565b7f496e76616c69642053657474696e677321000000000000000000000000000000600082015250565b60006127db6011836120dd565b91506127e6826127a5565b602082019050919050565b6000602082019050818103600083015261280a816127ce565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061286d6026836120dd565b915061287882612811565b604082019050919050565b6000602082019050818103600083015261289c81612860565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006128ff6024836120dd565b915061290a826128a3565b604082019050919050565b6000602082019050818103600083015261292e816128f2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006129916022836120dd565b915061299c82612935565b604082019050919050565b600060208201905081810360008301526129c081612984565b9050919050565b60006129d28261209e565b91506129dd8361209e565b92508282019050808211156129f5576129f4612516565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a68816121bb565b92915050565b600060208284031215612a8457612a83612184565b5b6000612a9284828501612a59565b91505092915050565b6000819050919050565b6000612ac0612abb612ab684612a9b565b61249c565b61209e565b9050919050565b612ad081612aa5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b0b816121a9565b82525050565b6000612b1d8383612b02565b60208301905092915050565b6000602082019050919050565b6000612b4182612ad6565b612b4b8185612ae1565b9350612b5683612af2565b8060005b83811015612b87578151612b6e8882612b11565b9750612b7983612b29565b925050600181019050612b5a565b5085935050505092915050565b600060a082019050612ba960008301886120a8565b612bb66020830187612ac7565b8181036040830152612bc88186612b36565b9050612bd7606083018561236d565b612be460808301846120a8565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000612c24601d836120dd565b9150612c2f82612bee565b602082019050919050565b60006020820190508181036000830152612c5381612c17565b9050919050565b600081905092915050565b50565b6000612c75600083612c5a565b9150612c8082612c65565b600082019050919050565b6000612c9682612c68565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000612cfc603a836120dd565b9150612d0782612ca0565b604082019050919050565b60006020820190508181036000830152612d2b81612cef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d8e6025836120dd565b9150612d9982612d32565b604082019050919050565b60006020820190508181036000830152612dbd81612d81565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e206023836120dd565b9150612e2b82612dc4565b604082019050919050565b60006020820190508181036000830152612e4f81612e13565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612eb26029836120dd565b9150612ebd82612e56565b604082019050919050565b60006020820190508181036000830152612ee181612ea5565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c65742e0000000000000000000000000000000000000000000000000000602082015250565b6000612f446026836120dd565b9150612f4f82612ee8565b604082019050919050565b60006020820190508181036000830152612f7381612f37565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fb48261209e565b9150612fbf8361209e565b925082612fcf57612fce612f7a565b5b828204905092915050565b600060c082019050612fef600083018961236d565b612ffc60208301886120a8565b6130096040830187612ac7565b6130166060830186612ac7565b613023608083018561236d565b61303060a08301846120a8565b979650505050505050565b60008151905061304a816121e7565b92915050565b60008060006060848603121561306957613068612184565b5b60006130778682870161303b565b93505060206130888682870161303b565b92505060406130998682870161303b565b915050925092509256fea2646970667358221220f0740be631b5290dd5533acdede8433ede134a812886f1c06761eeceae26f11464736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806375f0a874116100ec578063a8aa1b311161008a578063dd62ed3e11610064578063dd62ed3e1461060b578063f2fde38b14610648578063f887ea4014610671578063f8b45b051461069c576101c2565b8063a8aa1b3114610578578063a9059cbb146105a3578063cc1776d3146105e0576101c2565b80638da5cb5b116100c65780638da5cb5b146104ce57806395d89b41146104f957806396f9e9be146105245780639d0014b11461054f576101c2565b806375f0a8741461043d578063768dc710146104685780637fe74a13146104a5576101c2565b80634f7041a51161015957806356d3b98f1161013357806356d3b98f146103955780636ca83973146103c057806370a08231146103e9578063715018a614610426576101c2565b80634f7041a51461032a5780635025587b1461035557806351bc3c851461037e576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd1461028557806328c61f41146102c2578063313ce567146102ff576101c2565b80630445b667146101c757806306fdde03146101f2578063095ea7b31461021d576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc6106c7565b6040516101e991906120b7565b60405180910390f35b3480156101fe57600080fd5b506102076106cd565b6040516102149190612162565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f9190612213565b61070a565b604051610251919061226e565b60405180910390f35b34801561026657600080fd5b5061026f610728565b60405161027c91906120b7565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612289565b610732565b6040516102b9919061226e565b60405180910390f35b3480156102ce57600080fd5b506102e960048036038101906102e491906122dc565b6107ea565b6040516102f6919061226e565b60405180910390f35b34801561030b57600080fd5b5061031461080a565b6040516103219190612325565b60405180910390f35b34801561033657600080fd5b5061033f610813565b60405161034c9190612325565b60405180910390f35b34801561036157600080fd5b5061037c60048036038101906103779190612340565b610826565b005b34801561038a57600080fd5b5061039361093f565b005b3480156103a157600080fd5b506103aa610abf565b6040516103b7919061237c565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e291906123c3565b610ae5565b005b3480156103f557600080fd5b50610410600480360381019061040b91906122dc565b610b7e565b60405161041d91906120b7565b60405180910390f35b34801561043257600080fd5b5061043b610bc7565b005b34801561044957600080fd5b50610452610c4f565b60405161045f919061237c565b60405180910390f35b34801561047457600080fd5b5061048f600480360381019061048a91906122dc565b610c75565b60405161049c919061226e565b60405180910390f35b3480156104b157600080fd5b506104cc60048036038101906104c7919061241c565b610c95565b005b3480156104da57600080fd5b506104e3610da2565b6040516104f0919061237c565b60405180910390f35b34801561050557600080fd5b5061050e610dcb565b60405161051b9190612162565b60405180910390f35b34801561053057600080fd5b50610539610e08565b604051610546919061226e565b60405180910390f35b34801561055b57600080fd5b5061057660048036038101906105719190612340565b610e1b565b005b34801561058457600080fd5b5061058d610eb9565b60405161059a919061237c565b60405180910390f35b3480156105af57600080fd5b506105ca60048036038101906105c59190612213565b610edf565b6040516105d7919061226e565b60405180910390f35b3480156105ec57600080fd5b506105f5610efd565b6040516106029190612325565b60405180910390f35b34801561061757600080fd5b50610632600480360381019061062d919061245c565b610f10565b60405161063f91906120b7565b60405180910390f35b34801561065457600080fd5b5061066f600480360381019061066a91906122dc565b610f97565b005b34801561067d57600080fd5b5061068661108e565b60405161069391906124fb565b60405180910390f35b3480156106a857600080fd5b506106b16110b4565b6040516106be91906120b7565b60405180910390f35b60085481565b60606040518060400160405280600881526020017f527567204275647a000000000000000000000000000000000000000000000000815250905090565b600061071e6107176110ba565b84846110c2565b6001905092915050565b6000600754905090565b600061073f84848461128b565b6107df8461074b6110ba565b84600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107956110ba565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107da9190612545565b6110c2565b600190509392505050565b60066020528060005260406000206000915054906101000a900460ff1681565b60006009905090565b600a60009054906101000a900460ff1681565b61082e6110ba565b73ffffffffffffffffffffffffffffffffffffffff1661084c610da2565b73ffffffffffffffffffffffffffffffffffffffff16146108a2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610899906125c5565b60405180910390fd5b60006009600a6108b29190612718565b6113886108bf9190612763565b9050806009600a6108d09190612718565b836108db9190612763565b101561091c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610913906127f1565b60405180910390fd5b6009600a61092a9190612718565b826109359190612763565b6009819055505050565b6001600b60156101000a81548160ff021916908315150217905550600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109b457600080fd5b60006109bf30610b7e565b90506000811115610a4c5760006109d582611469565b90506000811115610a4a57600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610a48573d6000803e3d6000fd5b505b505b6000471115610aa157610aa047600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116c390919063ffffffff16565b5b506000600b60156101000a81548160ff021916908315150217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610aed6110ba565b73ffffffffffffffffffffffffffffffffffffffff16610b0b610da2565b73ffffffffffffffffffffffffffffffffffffffff1614610b61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b58906125c5565b60405180910390fd5b80600b60146101000a81548160ff02191690831515021790555050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bcf6110ba565b73ffffffffffffffffffffffffffffffffffffffff16610bed610da2565b73ffffffffffffffffffffffffffffffffffffffff1614610c43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3a906125c5565b60405180910390fd5b610c4d60006117b7565b565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60056020528060005260406000206000915054906101000a900460ff1681565b610c9d6110ba565b73ffffffffffffffffffffffffffffffffffffffff16610cbb610da2565b73ffffffffffffffffffffffffffffffffffffffff1614610d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d08906125c5565b60405180910390fd5b60148260ff1611158015610d29575060328160ff1611155b610d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5f906127f1565b60405180910390fd5b81600a60006101000a81548160ff021916908360ff16021790555080600a60016101000a81548160ff021916908360ff1602179055505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5245474749450000000000000000000000000000000000000000000000000000815250905090565b600b60149054906101000a900460ff1681565b610e236110ba565b73ffffffffffffffffffffffffffffffffffffffff16610e41610da2565b73ffffffffffffffffffffffffffffffffffffffff1614610e97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8e906125c5565b60405180910390fd5b6009600a610ea59190612718565b81610eb09190612763565b60088190555050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ef3610eec6110ba565b848461128b565b6001905092915050565b600a60019054906101000a900460ff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610f9f6110ba565b73ffffffffffffffffffffffffffffffffffffffff16610fbd610da2565b73ffffffffffffffffffffffffffffffffffffffff1614611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a906125c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611082576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107990612883565b60405180910390fd5b61108b816117b7565b50565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611131576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112890612915565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611197906129a7565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161127e91906120b7565b60405180910390a3505050565b61129683838361187b565b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546112e59190612545565b925050819055506000819050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113955750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156113a8576113a5848484611b5a565b90505b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113f791906129c7565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161145b91906120b7565b60405180910390a350505050565b6000804790506000600267ffffffffffffffff81111561148c5761148b6129fb565b5b6040519080825280602002602001820160405280156114ba5781602001602082028036833780820191505090505b50905030816000815181106114d2576114d1612a2a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061159d9190612a6e565b816001815181106115b1576115b0612a2a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061161830600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866110c2565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b815260040161167c959493929190612b94565b600060405180830381600087803b15801561169657600080fd5b505af11580156116aa573d6000803e3d6000fd5b5050505081476116ba9190612545565b92505050919050565b80471015611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd90612c3a565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff168260405161172c90612c8b565b60006040518083038185875af1925050503d8060008114611769576040519150601f19603f3d011682016040523d82523d6000602084013e61176e565b606091505b50509050806117b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a990612d12565b60405180910390fd5b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e190612da4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195090612e36565b60405180910390fd5b6000811161199c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199390612ec8565b60405180910390fd5b600954816119a984610b7e565b6119b391906129c7565b111580611a095750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3f90612f5a565b60405180910390fd5b600854611a5430610b7e565b10158015611a6f5750600b60159054906101000a900460ff16155b8015611ac95750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b085750611ad8610da2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611b475750611b17610da2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b5557611b54611d88565b5b505050565b600080600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611be3576064600a60009054906101000a900460ff1660ff1684611bd29190612763565b611bdc9190612fa9565b9050611cad565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c69576064600a60019054906101000a900460ff1660ff1684611c589190612763565b611c629190612fa9565b9050611cac565b600b60149054906101000a900460ff1615611cab576064600a60009054906101000a900460ff1660ff1684611c9e9190612763565b611ca89190612fa9565b90505b5b5b6000811115611d725780600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d0591906129c7565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611d6991906120b7565b60405180910390a35b8083611d7e9190612545565b9150509392505050565b6001600b60156101000a81548160ff021916908315150217905550600060646050600854611db69190612763565b611dc09190612fa9565b9050600060646014600854611dd59190612763565b611ddf9190612fa9565b90506000821115611e6c576000611df583611469565b90506000811115611e6a57600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611e68573d6000803e3d6000fd5b505b505b6000811115611ebb576000600282611e849190612fa9565b905060008183611e949190612545565b90506000611ea183611469565b90506000811115611eb757611eb68282611f2f565b5b5050505b6000471115611f1057611f0f47600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116c390919063ffffffff16565b5b50506000600b60156101000a81548160ff021916908315150217905550565b611f5c30600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110c2565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833086600080600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401611fe796959493929190612fda565b60606040518083038185885af1158015612005573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061202a9190613050565b509150506000818361203c9190612545565b11156120995761209881836120519190612545565b600a60029054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116c390919063ffffffff16565b5b505050565b6000819050919050565b6120b18161209e565b82525050565b60006020820190506120cc60008301846120a8565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210c5780820151818401526020810190506120f1565b60008484015250505050565b6000601f19601f8301169050919050565b6000612134826120d2565b61213e81856120dd565b935061214e8185602086016120ee565b61215781612118565b840191505092915050565b6000602082019050818103600083015261217c8184612129565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121b482612189565b9050919050565b6121c4816121a9565b81146121cf57600080fd5b50565b6000813590506121e1816121bb565b92915050565b6121f08161209e565b81146121fb57600080fd5b50565b60008135905061220d816121e7565b92915050565b6000806040838503121561222a57612229612184565b5b6000612238858286016121d2565b9250506020612249858286016121fe565b9150509250929050565b60008115159050919050565b61226881612253565b82525050565b6000602082019050612283600083018461225f565b92915050565b6000806000606084860312156122a2576122a1612184565b5b60006122b0868287016121d2565b93505060206122c1868287016121d2565b92505060406122d2868287016121fe565b9150509250925092565b6000602082840312156122f2576122f1612184565b5b6000612300848285016121d2565b91505092915050565b600060ff82169050919050565b61231f81612309565b82525050565b600060208201905061233a6000830184612316565b92915050565b60006020828403121561235657612355612184565b5b6000612364848285016121fe565b91505092915050565b612376816121a9565b82525050565b6000602082019050612391600083018461236d565b92915050565b6123a081612253565b81146123ab57600080fd5b50565b6000813590506123bd81612397565b92915050565b6000602082840312156123d9576123d8612184565b5b60006123e7848285016123ae565b91505092915050565b6123f981612309565b811461240457600080fd5b50565b600081359050612416816123f0565b92915050565b6000806040838503121561243357612432612184565b5b600061244185828601612407565b925050602061245285828601612407565b9150509250929050565b6000806040838503121561247357612472612184565b5b6000612481858286016121d2565b9250506020612492858286016121d2565b9150509250929050565b6000819050919050565b60006124c16124bc6124b784612189565b61249c565b612189565b9050919050565b60006124d3826124a6565b9050919050565b60006124e5826124c8565b9050919050565b6124f5816124da565b82525050565b600060208201905061251060008301846124ec565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006125508261209e565b915061255b8361209e565b925082820390508181111561257357612572612516565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125af6020836120dd565b91506125ba82612579565b602082019050919050565b600060208201905081810360008301526125de816125a2565b9050919050565b60008160011c9050919050565b6000808291508390505b600185111561263c5780860481111561261857612617612516565b5b60018516156126275780820291505b8081029050612635856125e5565b94506125fc565b94509492505050565b6000826126555760019050612711565b816126635760009050612711565b81600181146126795760028114612683576126b2565b6001915050612711565b60ff84111561269557612694612516565b5b8360020a9150848211156126ac576126ab612516565b5b50612711565b5060208310610133831016604e8410600b84101617156126e75782820a9050838111156126e2576126e1612516565b5b612711565b6126f484848460016125f2565b9250905081840481111561270b5761270a612516565b5b81810290505b9392505050565b60006127238261209e565b915061272e83612309565b925061275b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612645565b905092915050565b600061276e8261209e565b91506127798361209e565b92508282026127878161209e565b9150828204841483151761279e5761279d612516565b5b5092915050565b7f496e76616c69642053657474696e677321000000000000000000000000000000600082015250565b60006127db6011836120dd565b91506127e6826127a5565b602082019050919050565b6000602082019050818103600083015261280a816127ce565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061286d6026836120dd565b915061287882612811565b604082019050919050565b6000602082019050818103600083015261289c81612860565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006128ff6024836120dd565b915061290a826128a3565b604082019050919050565b6000602082019050818103600083015261292e816128f2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006129916022836120dd565b915061299c82612935565b604082019050919050565b600060208201905081810360008301526129c081612984565b9050919050565b60006129d28261209e565b91506129dd8361209e565b92508282019050808211156129f5576129f4612516565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050612a68816121bb565b92915050565b600060208284031215612a8457612a83612184565b5b6000612a9284828501612a59565b91505092915050565b6000819050919050565b6000612ac0612abb612ab684612a9b565b61249c565b61209e565b9050919050565b612ad081612aa5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612b0b816121a9565b82525050565b6000612b1d8383612b02565b60208301905092915050565b6000602082019050919050565b6000612b4182612ad6565b612b4b8185612ae1565b9350612b5683612af2565b8060005b83811015612b87578151612b6e8882612b11565b9750612b7983612b29565b925050600181019050612b5a565b5085935050505092915050565b600060a082019050612ba960008301886120a8565b612bb66020830187612ac7565b8181036040830152612bc88186612b36565b9050612bd7606083018561236d565b612be460808301846120a8565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000612c24601d836120dd565b9150612c2f82612bee565b602082019050919050565b60006020820190508181036000830152612c5381612c17565b9050919050565b600081905092915050565b50565b6000612c75600083612c5a565b9150612c8082612c65565b600082019050919050565b6000612c9682612c68565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b6000612cfc603a836120dd565b9150612d0782612ca0565b604082019050919050565b60006020820190508181036000830152612d2b81612cef565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d8e6025836120dd565b9150612d9982612d32565b604082019050919050565b60006020820190508181036000830152612dbd81612d81565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612e206023836120dd565b9150612e2b82612dc4565b604082019050919050565b60006020820190508181036000830152612e4f81612e13565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612eb26029836120dd565b9150612ebd82612e56565b604082019050919050565b60006020820190508181036000830152612ee181612ea5565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785760008201527f616c6c65742e0000000000000000000000000000000000000000000000000000602082015250565b6000612f446026836120dd565b9150612f4f82612ee8565b604082019050919050565b60006020820190508181036000830152612f7381612f37565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612fb48261209e565b9150612fbf8361209e565b925082612fcf57612fce612f7a565b5b828204905092915050565b600060c082019050612fef600083018961236d565b612ffc60208301886120a8565b6130096040830187612ac7565b6130166060830186612ac7565b613023608083018561236d565b61303060a08301846120a8565b979650505050505050565b60008151905061304a816121e7565b92915050565b60008060006060848603121561306957613068612184565b5b60006130778682870161303b565b93505060206130888682870161303b565b92505060406130998682870161303b565b915050925092509256fea2646970667358221220f0740be631b5290dd5533acdede8433ede134a812886f1c06761eeceae26f11464736f6c63430008130033

Deployed Bytecode Sourcemap

3269:8610:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3781:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5381:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6212:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5658:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6381:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3610:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5567:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3907:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10577:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11360:473;;;;;;;;;;;;;:::i;:::-;;4236:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11235:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5761;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1260:94;;;;;;;;;;;;;:::i;:::-;;4154:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3552:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10868:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1037:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5472;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4317:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11082:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3393:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5886:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3938:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6061:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1362:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3365:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3842:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3781:54;;;;:::o;5381:83::-;5418:13;5451:5;;;;;;;;;;;;;;;;;5444:12;;5381:83;:::o;6212:161::-;6287:4;6304:39;6313:12;:10;:12::i;:::-;6327:7;6336:6;6304:8;:39::i;:::-;6361:4;6354:11;;6212:161;;;;:::o;5658:95::-;5711:7;5738;;5731:14;;5658:95;:::o;6381:266::-;6479:4;6496:36;6506:6;6514:9;6525:6;6496:9;:36::i;:::-;6543:74;6552:6;6560:12;:10;:12::i;:::-;6610:6;6574:11;:19;6586:6;6574:19;;;;;;;;;;;;;;;:33;6594:12;:10;:12::i;:::-;6574:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;6543:8;:74::i;:::-;6635:4;6628:11;;6381:266;;;;;:::o;3610:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;5567:83::-;5608:5;3712:1;5626:16;;5567:83;:::o;3907:24::-;;;;;;;;;;;;;:::o;10577:283::-;1183:12;:10;:12::i;:::-;1172:23;;:7;:5;:7::i;:::-;:23;;;1164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10658:21:::1;3712:1;10691:2;:13;;;;:::i;:::-;10682:5;:23;;;;:::i;:::-;10658:47;;10761:13;3712:1;10743:2;:13;;;;:::i;:::-;10724:15;:33;;;;:::i;:::-;:50;;10716:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;3712:1;10838:2;:13;;;;:::i;:::-;10819:15;:33;;;;:::i;:::-;10807:9;:45;;;;10647:213;10577:283:::0;:::o;11360:473::-;4433:4;4422:8;;:15;;;;;;;;;;;;;;;;;;11435::::1;;;;;;;;;;;11421:29;;:10;:29;;;11413:38;;;::::0;::::1;;11462:20;11485:24;11503:4;11485:9;:24::i;:::-;11462:47;;11538:1;11523:12;:16;11520:194;;;11555:18;11576:30;11593:12;11576:16;:30::i;:::-;11555:51;;11637:1;11624:10;:14;11621:81;;;11665:15;;;;;;;;;;;11657:33;;:45;11691:10;11657:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;11621:81;11540:174;11520:194;11752:1;11728:21;:25;11724:101;;;11768:57;11803:21;11776:15;;;;;;;;;;;11768:34;;;;:57;;;;:::i;:::-;11724:101;11402:431;4471:5:::0;4460:8;;:16;;;;;;;;;;;;;;;;;;11360:473::o;4236:72::-;;;;;;;;;;;;;:::o;11235:117::-;1183:12;:10;:12::i;:::-;1172:23;;:7;:5;:7::i;:::-;:23;;;1164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11334:10:::1;11313:18;;:31;;;;;;;;;;;;;;;;;;11235:117:::0;:::o;5761:::-;5827:7;5854;:16;5862:7;5854:16;;;;;;;;;;;;;;;;5847:23;;5761:117;;;:::o;1260:94::-;1183:12;:10;:12::i;:::-;1172:23;;:7;:5;:7::i;:::-;:23;;;1164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1325:21:::1;1343:1;1325:9;:21::i;:::-;1260:94::o:0;4154:75::-;;;;;;;;;;;;;:::o;3552:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;10868:206::-;1183:12;:10;:12::i;:::-;1172:23;;:7;:5;:7::i;:::-;:23;;;1164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10977:2:::1;10966:7;:13;;;;:31;;;;;10995:2;10983:8;:14;;;;10966:31;10958:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;11039:7;11030:6;;:16;;;;;;;;;;;;;;;;;;11058:8;11048:7;;:18;;;;;;;;;;;;;;;;;;10868:206:::0;;:::o;1037:87::-;1083:7;1110:6;;;;;;;;;;;1103:13;;1037:87;:::o;5472:::-;5511:13;5544:7;;;;;;;;;;;;;;;;;5537:14;;5472:87;:::o;4317:38::-;;;;;;;;;;;;;:::o;11082:145::-;1183:12;:10;:12::i;:::-;1172:23;;:7;:5;:7::i;:::-;:23;;;1164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3712:1:::1;11205:2;:13;;;;:::i;:::-;11182:19;:37;;;;:::i;:::-;11166:13;:53;;;;11082:145:::0;:::o;3393:19::-;;;;;;;;;;;;;:::o;5886:167::-;5964:4;5981:42;5991:12;:10;:12::i;:::-;6005:9;6016:6;5981:9;:42::i;:::-;6041:4;6034:11;;5886:167;;;;:::o;3938:25::-;;;;;;;;;;;;;:::o;6061:143::-;6142:7;6169:11;:18;6181:5;6169:18;;;;;;;;;;;;;;;:27;6188:7;6169:27;;;;;;;;;;;;;;;;6162:34;;6061:143;;;;:::o;1362:192::-;1183:12;:10;:12::i;:::-;1172:23;;:7;:5;:7::i;:::-;:23;;;1164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1471:1:::1;1451:22;;:8;:22;;::::0;1443:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1527:19;1537:8;1527:9;:19::i;:::-;1362:192:::0;:::o;3365:21::-;;;;;;;;;;;;;:::o;3842:52::-;;;;:::o;562:115::-;615:15;658:10;643:26;;562:115;:::o;6655:335::-;6765:1;6748:19;;:5;:19;;;6740:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6846:1;6827:21;;:7;:21;;;6819:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6928:6;6898:11;:18;6910:5;6898:18;;;;;;;;;;;;;;;:27;6917:7;6898:27;;;;;;;;;;;;;;;:36;;;;6966:7;6950:32;;6959:5;6950:32;;;6975:6;6950:32;;;;;;:::i;:::-;;;;;;;;6655:335;;;:::o;8208:413::-;8286:35;8304:4;8310:2;8314:6;8286:17;:35::i;:::-;8349:6;8332:7;:13;8340:4;8332:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8366:22;8391:6;8366:31;;8412:18;:24;8431:4;8412:24;;;;;;;;;;;;;;;;;;;;;;;;;8411:25;:52;;;;;8441:18;:22;8460:2;8441:22;;;;;;;;;;;;;;;;;;;;;;;;;8440:23;8411:52;8408:115;;;8495:28;8506:4;8512:2;8516:6;8495:10;:28::i;:::-;8478:45;;8408:115;8549:14;8534:7;:11;8542:2;8534:11;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;8594:2;8579:34;;8588:4;8579:34;;;8598:14;8579:34;;;;;;:::i;:::-;;;;;;;;8275:346;8208:413;;;:::o;9457:581::-;9521:7;9541:22;9566:21;9541:46;;9598:21;9636:1;9622:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9598:40;;9667:4;9649;9654:1;9649:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9693:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9683:4;9688:1;9683:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;9719:53;9736:4;9751:6;;;;;;;;;;;9760:11;9719:8;:53::i;:::-;9785:6;;;;;;;;;;;:57;;;9857:11;9883:1;9899:4;9926;9946:15;9785:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10015:14;9991:21;:38;;;;:::i;:::-;9983:47;;;;9457:581;;;:::o;205:317::-;320:6;295:21;:31;;287:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;374:12;392:9;:14;;414:6;392:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;373:52;;;444:7;436:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;276:246;205:317;;:::o;1562:173::-;1618:16;1637:6;;;;;;;;;;;1618:25;;1663:8;1654:6;;:17;;;;;;;;;;;;;;;;;;1718:8;1687:40;;1708:8;1687:40;;;;;;;;;;;;1607:128;1562:173;:::o;7002:595::-;7113:1;7097:18;;:4;:18;;;7089:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7190:1;7176:16;;:2;:16;;;7168:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7260:1;7251:6;:10;7243:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7352:9;;7342:6;7326:13;7336:2;7326:9;:13::i;:::-;:22;;;;:::i;:::-;:35;;:68;;;;7365:25;:29;7391:2;7365:29;;;;;;;;;;;;;;;;;;;;;;;;;7326:68;7318:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;7480:13;;7452:24;7470:4;7452:9;:24::i;:::-;:41;;:54;;;;;7498:8;;;;;;;;;;;7497:9;7452:54;:70;;;;;7518:4;;;;;;;;;;;7510:12;;:4;:12;;;;7452:70;:89;;;;;7534:7;:5;:7::i;:::-;7526:15;;:4;:15;;;;7452:89;:106;;;;;7551:7;:5;:7::i;:::-;7545:13;;:2;:13;;;;7452:106;7448:141;;;7573:16;:14;:16::i;:::-;7448:141;7002:595;;;:::o;7605:591::-;7682:7;7701:19;7742:4;;;;;;;;;;;7734:12;;:4;:12;;;7731:261;;7794:3;7785:6;;;;;;;;;;;7776:15;;:6;:15;;;;:::i;:::-;:21;;;;:::i;:::-;7762:35;;7731:261;;;7823:4;;;;;;;;;;;7817:10;;:2;:10;;;7814:178;;7876:3;7866:7;;;;;;;;;;;7857:16;;:6;:16;;;;:::i;:::-;:22;;;;:::i;:::-;7843:36;;7814:178;;;7912:18;;;;;;;;;;;7909:71;;;7977:3;7968:6;;;;;;;;;;;7959:15;;:6;:15;;;;:::i;:::-;:21;;;;:::i;:::-;7945:35;;7909:71;7814:178;7731:261;8020:1;8006:11;:15;8002:147;;;8063:11;8037:7;:22;8053:4;8037:22;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;8118:4;8094:43;;8104:4;8094:43;;;8125:11;8094:43;;;;;;:::i;:::-;;;;;;;;8002:147;8176:11;8167:6;:20;;;;:::i;:::-;8159:29;;;7605:591;;;;;:::o;8629:820::-;4433:4;4422:8;;:15;;;;;;;;;;;;;;;;;;8687:26:::1;8737:3;8732:2;8716:13;;:18;;;;:::i;:::-;:24;;;;:::i;:::-;8687:53;;8751:26;8801:3;8796:2;8780:13;;:18;;;;:::i;:::-;:24;;;;:::i;:::-;8751:53;;8849:1;8828:18;:22;8825:206;;;8866:18;8887:36;8904:18;8887:16;:36::i;:::-;8866:57;;8954:1;8941:10;:14;8938:81;;;8982:15;;;;;;;;;;;8974:33;;:45;9008:10;8974:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;8938:81;8851:180;8825:206;9067:1;9046:18;:22;9043:283;;;9084:9;9117:1;9096:18;:22;;;;:::i;:::-;9084:34;;9133:14;9171:4;9150:18;:25;;;;:::i;:::-;9133:42;;9190:14;9207:22;9224:4;9207:16;:22::i;:::-;9190:39;;9260:1;9248:9;:13;9244:70;;;9280:34;9293:9;9304;9280:12;:34::i;:::-;9244:70;9069:257;;;9043:283;9366:1;9342:21;:25;9338:101;;;9382:57;9417:21;9390:15;;;;;;;;;;;9382:34;;;;:57;;;;:::i;:::-;9338:101;8674:775;;4471:5:::0;4460:8;;:16;;;;;;;;;;;;;;;;;;8629:820::o;10046:519::-;10127:53;10144:4;10159:6;;;;;;;;;;;10168:11;10127:8;:53::i;:::-;10195:24;10224:6;;;;;;;;;;;:22;;;10255:9;10289:4;10309:11;10335:1;10351;10367:12;;;;;;;;;;;10394:15;10224:196;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10193:227;;;;10476:1;10457:16;10445:9;:28;;;;:::i;:::-;:32;10441:116;;;10492:65;10540:16;10528:9;:28;;;;:::i;:::-;10500:15;;;;;;;;;;;10492:34;;;;:65;;;;:::i;:::-;10441:116;10116:449;10046:519;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:116::-;5945:21;5960:5;5945:21;:::i;:::-;5938:5;5935:32;5925:60;;5981:1;5978;5971:12;5925:60;5875:116;:::o;5997:133::-;6040:5;6078:6;6065:20;6056:29;;6094:30;6118:5;6094:30;:::i;:::-;5997:133;;;;:::o;6136:323::-;6192:6;6241:2;6229:9;6220:7;6216:23;6212:32;6209:119;;;6247:79;;:::i;:::-;6209:119;6367:1;6392:50;6434:7;6425:6;6414:9;6410:22;6392:50;:::i;:::-;6382:60;;6338:114;6136:323;;;;:::o;6465:118::-;6536:22;6552:5;6536:22;:::i;:::-;6529:5;6526:33;6516:61;;6573:1;6570;6563:12;6516:61;6465:118;:::o;6589:135::-;6633:5;6671:6;6658:20;6649:29;;6687:31;6712:5;6687:31;:::i;:::-;6589:135;;;;:::o;6730:466::-;6794:6;6802;6851:2;6839:9;6830:7;6826:23;6822:32;6819:119;;;6857:79;;:::i;:::-;6819:119;6977:1;7002:51;7045:7;7036:6;7025:9;7021:22;7002:51;:::i;:::-;6992:61;;6948:115;7102:2;7128:51;7171:7;7162:6;7151:9;7147:22;7128:51;:::i;:::-;7118:61;;7073:116;6730:466;;;;;:::o;7202:474::-;7270:6;7278;7327:2;7315:9;7306:7;7302:23;7298:32;7295:119;;;7333:79;;:::i;:::-;7295:119;7453:1;7478:53;7523:7;7514:6;7503:9;7499:22;7478:53;:::i;:::-;7468:63;;7424:117;7580:2;7606:53;7651:7;7642:6;7631:9;7627:22;7606:53;:::i;:::-;7596:63;;7551:118;7202:474;;;;;:::o;7682:60::-;7710:3;7731:5;7724:12;;7682:60;;;:::o;7748:142::-;7798:9;7831:53;7849:34;7858:24;7876:5;7858:24;:::i;:::-;7849:34;:::i;:::-;7831:53;:::i;:::-;7818:66;;7748:142;;;:::o;7896:126::-;7946:9;7979:37;8010:5;7979:37;:::i;:::-;7966:50;;7896:126;;;:::o;8028:141::-;8093:9;8126:37;8157:5;8126:37;:::i;:::-;8113:50;;8028:141;;;:::o;8175:161::-;8277:52;8323:5;8277:52;:::i;:::-;8272:3;8265:65;8175:161;;:::o;8342:252::-;8450:4;8488:2;8477:9;8473:18;8465:26;;8501:86;8584:1;8573:9;8569:17;8560:6;8501:86;:::i;:::-;8342:252;;;;:::o;8600:180::-;8648:77;8645:1;8638:88;8745:4;8742:1;8735:15;8769:4;8766:1;8759:15;8786:194;8826:4;8846:20;8864:1;8846:20;:::i;:::-;8841:25;;8880:20;8898:1;8880:20;:::i;:::-;8875:25;;8924:1;8921;8917:9;8909:17;;8948:1;8942:4;8939:11;8936:37;;;8953:18;;:::i;:::-;8936:37;8786:194;;;;:::o;8986:182::-;9126:34;9122:1;9114:6;9110:14;9103:58;8986:182;:::o;9174:366::-;9316:3;9337:67;9401:2;9396:3;9337:67;:::i;:::-;9330:74;;9413:93;9502:3;9413:93;:::i;:::-;9531:2;9526:3;9522:12;9515:19;;9174:366;;;:::o;9546:419::-;9712:4;9750:2;9739:9;9735:18;9727:26;;9799:9;9793:4;9789:20;9785:1;9774:9;9770:17;9763:47;9827:131;9953:4;9827:131;:::i;:::-;9819:139;;9546:419;;;:::o;9971:102::-;10013:8;10060:5;10057:1;10053:13;10032:34;;9971:102;;;:::o;10079:848::-;10140:5;10147:4;10171:6;10162:15;;10195:5;10186:14;;10209:712;10230:1;10220:8;10217:15;10209:712;;;10325:4;10320:3;10316:14;10310:4;10307:24;10304:50;;;10334:18;;:::i;:::-;10304:50;10384:1;10374:8;10370:16;10367:451;;;10799:4;10792:5;10788:16;10779:25;;10367:451;10849:4;10843;10839:15;10831:23;;10879:32;10902:8;10879:32;:::i;:::-;10867:44;;10209:712;;;10079:848;;;;;;;:::o;10933:1073::-;10987:5;11178:8;11168:40;;11199:1;11190:10;;11201:5;;11168:40;11227:4;11217:36;;11244:1;11235:10;;11246:5;;11217:36;11313:4;11361:1;11356:27;;;;11397:1;11392:191;;;;11306:277;;11356:27;11374:1;11365:10;;11376:5;;;11392:191;11437:3;11427:8;11424:17;11421:43;;;11444:18;;:::i;:::-;11421:43;11493:8;11490:1;11486:16;11477:25;;11528:3;11521:5;11518:14;11515:40;;;11535:18;;:::i;:::-;11515:40;11568:5;;;11306:277;;11692:2;11682:8;11679:16;11673:3;11667:4;11664:13;11660:36;11642:2;11632:8;11629:16;11624:2;11618:4;11615:12;11611:35;11595:111;11592:246;;;11748:8;11742:4;11738:19;11729:28;;11783:3;11776:5;11773:14;11770:40;;;11790:18;;:::i;:::-;11770:40;11823:5;;11592:246;11863:42;11901:3;11891:8;11885:4;11882:1;11863:42;:::i;:::-;11848:57;;;;11937:4;11932:3;11928:14;11921:5;11918:25;11915:51;;;11946:18;;:::i;:::-;11915:51;11995:4;11988:5;11984:16;11975:25;;10933:1073;;;;;;:::o;12012:281::-;12070:5;12094:23;12112:4;12094:23;:::i;:::-;12086:31;;12138:25;12154:8;12138:25;:::i;:::-;12126:37;;12182:104;12219:66;12209:8;12203:4;12182:104;:::i;:::-;12173:113;;12012:281;;;;:::o;12299:410::-;12339:7;12362:20;12380:1;12362:20;:::i;:::-;12357:25;;12396:20;12414:1;12396:20;:::i;:::-;12391:25;;12451:1;12448;12444:9;12473:30;12491:11;12473:30;:::i;:::-;12462:41;;12652:1;12643:7;12639:15;12636:1;12633:22;12613:1;12606:9;12586:83;12563:139;;12682:18;;:::i;:::-;12563:139;12347:362;12299:410;;;;:::o;12715:167::-;12855:19;12851:1;12843:6;12839:14;12832:43;12715:167;:::o;12888:366::-;13030:3;13051:67;13115:2;13110:3;13051:67;:::i;:::-;13044:74;;13127:93;13216:3;13127:93;:::i;:::-;13245:2;13240:3;13236:12;13229:19;;12888:366;;;:::o;13260:419::-;13426:4;13464:2;13453:9;13449:18;13441:26;;13513:9;13507:4;13503:20;13499:1;13488:9;13484:17;13477:47;13541:131;13667:4;13541:131;:::i;:::-;13533:139;;13260:419;;;:::o;13685:225::-;13825:34;13821:1;13813:6;13809:14;13802:58;13894:8;13889:2;13881:6;13877:15;13870:33;13685:225;:::o;13916:366::-;14058:3;14079:67;14143:2;14138:3;14079:67;:::i;:::-;14072:74;;14155:93;14244:3;14155:93;:::i;:::-;14273:2;14268:3;14264:12;14257:19;;13916:366;;;:::o;14288:419::-;14454:4;14492:2;14481:9;14477:18;14469:26;;14541:9;14535:4;14531:20;14527:1;14516:9;14512:17;14505:47;14569:131;14695:4;14569:131;:::i;:::-;14561:139;;14288:419;;;:::o;14713:223::-;14853:34;14849:1;14841:6;14837:14;14830:58;14922:6;14917:2;14909:6;14905:15;14898:31;14713:223;:::o;14942:366::-;15084:3;15105:67;15169:2;15164:3;15105:67;:::i;:::-;15098:74;;15181:93;15270:3;15181:93;:::i;:::-;15299:2;15294:3;15290:12;15283:19;;14942:366;;;:::o;15314:419::-;15480:4;15518:2;15507:9;15503:18;15495:26;;15567:9;15561:4;15557:20;15553:1;15542:9;15538:17;15531:47;15595:131;15721:4;15595:131;:::i;:::-;15587:139;;15314:419;;;:::o;15739:221::-;15879:34;15875:1;15867:6;15863:14;15856:58;15948:4;15943:2;15935:6;15931:15;15924:29;15739:221;:::o;15966:366::-;16108:3;16129:67;16193:2;16188:3;16129:67;:::i;:::-;16122:74;;16205:93;16294:3;16205:93;:::i;:::-;16323:2;16318:3;16314:12;16307:19;;15966:366;;;:::o;16338:419::-;16504:4;16542:2;16531:9;16527:18;16519:26;;16591:9;16585:4;16581:20;16577:1;16566:9;16562:17;16555:47;16619:131;16745:4;16619:131;:::i;:::-;16611:139;;16338:419;;;:::o;16763:191::-;16803:3;16822:20;16840:1;16822:20;:::i;:::-;16817:25;;16856:20;16874:1;16856:20;:::i;:::-;16851:25;;16899:1;16896;16892:9;16885:16;;16920:3;16917:1;16914:10;16911:36;;;16927:18;;:::i;:::-;16911:36;16763:191;;;;:::o;16960:180::-;17008:77;17005:1;16998:88;17105:4;17102:1;17095:15;17129:4;17126:1;17119:15;17146:180;17194:77;17191:1;17184:88;17291:4;17288:1;17281:15;17315:4;17312:1;17305:15;17332:143;17389:5;17420:6;17414:13;17405:22;;17436:33;17463:5;17436:33;:::i;:::-;17332:143;;;;:::o;17481:351::-;17551:6;17600:2;17588:9;17579:7;17575:23;17571:32;17568:119;;;17606:79;;:::i;:::-;17568:119;17726:1;17751:64;17807:7;17798:6;17787:9;17783:22;17751:64;:::i;:::-;17741:74;;17697:128;17481:351;;;;:::o;17838:85::-;17883:7;17912:5;17901:16;;17838:85;;;:::o;17929:158::-;17987:9;18020:61;18038:42;18047:32;18073:5;18047:32;:::i;:::-;18038:42;:::i;:::-;18020:61;:::i;:::-;18007:74;;17929:158;;;:::o;18093:147::-;18188:45;18227:5;18188:45;:::i;:::-;18183:3;18176:58;18093:147;;:::o;18246:114::-;18313:6;18347:5;18341:12;18331:22;;18246:114;;;:::o;18366:184::-;18465:11;18499:6;18494:3;18487:19;18539:4;18534:3;18530:14;18515:29;;18366:184;;;;:::o;18556:132::-;18623:4;18646:3;18638:11;;18676:4;18671:3;18667:14;18659:22;;18556:132;;;:::o;18694:108::-;18771:24;18789:5;18771:24;:::i;:::-;18766:3;18759:37;18694:108;;:::o;18808:179::-;18877:10;18898:46;18940:3;18932:6;18898:46;:::i;:::-;18976:4;18971:3;18967:14;18953:28;;18808:179;;;;:::o;18993:113::-;19063:4;19095;19090:3;19086:14;19078:22;;18993:113;;;:::o;19142:732::-;19261:3;19290:54;19338:5;19290:54;:::i;:::-;19360:86;19439:6;19434:3;19360:86;:::i;:::-;19353:93;;19470:56;19520:5;19470:56;:::i;:::-;19549:7;19580:1;19565:284;19590:6;19587:1;19584:13;19565:284;;;19666:6;19660:13;19693:63;19752:3;19737:13;19693:63;:::i;:::-;19686:70;;19779:60;19832:6;19779:60;:::i;:::-;19769:70;;19625:224;19612:1;19609;19605:9;19600:14;;19565:284;;;19569:14;19865:3;19858:10;;19266:608;;;19142:732;;;;:::o;19880:831::-;20143:4;20181:3;20170:9;20166:19;20158:27;;20195:71;20263:1;20252:9;20248:17;20239:6;20195:71;:::i;:::-;20276:80;20352:2;20341:9;20337:18;20328:6;20276:80;:::i;:::-;20403:9;20397:4;20393:20;20388:2;20377:9;20373:18;20366:48;20431:108;20534:4;20525:6;20431:108;:::i;:::-;20423:116;;20549:72;20617:2;20606:9;20602:18;20593:6;20549:72;:::i;:::-;20631:73;20699:3;20688:9;20684:19;20675:6;20631:73;:::i;:::-;19880:831;;;;;;;;:::o;20717:179::-;20857:31;20853:1;20845:6;20841:14;20834:55;20717:179;:::o;20902:366::-;21044:3;21065:67;21129:2;21124:3;21065:67;:::i;:::-;21058:74;;21141:93;21230:3;21141:93;:::i;:::-;21259:2;21254:3;21250:12;21243:19;;20902:366;;;:::o;21274:419::-;21440:4;21478:2;21467:9;21463:18;21455:26;;21527:9;21521:4;21517:20;21513:1;21502:9;21498:17;21491:47;21555:131;21681:4;21555:131;:::i;:::-;21547:139;;21274:419;;;:::o;21699:147::-;21800:11;21837:3;21822:18;;21699:147;;;;:::o;21852:114::-;;:::o;21972:398::-;22131:3;22152:83;22233:1;22228:3;22152:83;:::i;:::-;22145:90;;22244:93;22333:3;22244:93;:::i;:::-;22362:1;22357:3;22353:11;22346:18;;21972:398;;;:::o;22376:379::-;22560:3;22582:147;22725:3;22582:147;:::i;:::-;22575:154;;22746:3;22739:10;;22376:379;;;:::o;22761:245::-;22901:34;22897:1;22889:6;22885:14;22878:58;22970:28;22965:2;22957:6;22953:15;22946:53;22761:245;:::o;23012:366::-;23154:3;23175:67;23239:2;23234:3;23175:67;:::i;:::-;23168:74;;23251:93;23340:3;23251:93;:::i;:::-;23369:2;23364:3;23360:12;23353:19;;23012:366;;;:::o;23384:419::-;23550:4;23588:2;23577:9;23573:18;23565:26;;23637:9;23631:4;23627:20;23623:1;23612:9;23608:17;23601:47;23665:131;23791:4;23665:131;:::i;:::-;23657:139;;23384:419;;;:::o;23809:224::-;23949:34;23945:1;23937:6;23933:14;23926:58;24018:7;24013:2;24005:6;24001:15;23994:32;23809:224;:::o;24039:366::-;24181:3;24202:67;24266:2;24261:3;24202:67;:::i;:::-;24195:74;;24278:93;24367:3;24278:93;:::i;:::-;24396:2;24391:3;24387:12;24380:19;;24039:366;;;:::o;24411:419::-;24577:4;24615:2;24604:9;24600:18;24592:26;;24664:9;24658:4;24654:20;24650:1;24639:9;24635:17;24628:47;24692:131;24818:4;24692:131;:::i;:::-;24684:139;;24411:419;;;:::o;24836:222::-;24976:34;24972:1;24964:6;24960:14;24953:58;25045:5;25040:2;25032:6;25028:15;25021:30;24836:222;:::o;25064:366::-;25206:3;25227:67;25291:2;25286:3;25227:67;:::i;:::-;25220:74;;25303:93;25392:3;25303:93;:::i;:::-;25421:2;25416:3;25412:12;25405:19;;25064:366;;;:::o;25436:419::-;25602:4;25640:2;25629:9;25625:18;25617:26;;25689:9;25683:4;25679:20;25675:1;25664:9;25660:17;25653:47;25717:131;25843:4;25717:131;:::i;:::-;25709:139;;25436:419;;;:::o;25861:228::-;26001:34;25997:1;25989:6;25985:14;25978:58;26070:11;26065:2;26057:6;26053:15;26046:36;25861:228;:::o;26095:366::-;26237:3;26258:67;26322:2;26317:3;26258:67;:::i;:::-;26251:74;;26334:93;26423:3;26334:93;:::i;:::-;26452:2;26447:3;26443:12;26436:19;;26095:366;;;:::o;26467:419::-;26633:4;26671:2;26660:9;26656:18;26648:26;;26720:9;26714:4;26710:20;26706:1;26695:9;26691:17;26684:47;26748:131;26874:4;26748:131;:::i;:::-;26740:139;;26467:419;;;:::o;26892:225::-;27032:34;27028:1;27020:6;27016:14;27009:58;27101:8;27096:2;27088:6;27084:15;27077:33;26892:225;:::o;27123:366::-;27265:3;27286:67;27350:2;27345:3;27286:67;:::i;:::-;27279:74;;27362:93;27451:3;27362:93;:::i;:::-;27480:2;27475:3;27471:12;27464:19;;27123:366;;;:::o;27495:419::-;27661:4;27699:2;27688:9;27684:18;27676:26;;27748:9;27742:4;27738:20;27734:1;27723:9;27719:17;27712:47;27776:131;27902:4;27776:131;:::i;:::-;27768:139;;27495:419;;;:::o;27920:180::-;27968:77;27965:1;27958:88;28065:4;28062:1;28055:15;28089:4;28086:1;28079:15;28106:185;28146:1;28163:20;28181:1;28163:20;:::i;:::-;28158:25;;28197:20;28215:1;28197:20;:::i;:::-;28192:25;;28236:1;28226:35;;28241:18;;:::i;:::-;28226:35;28283:1;28280;28276:9;28271:14;;28106:185;;;;:::o;28297:807::-;28546:4;28584:3;28573:9;28569:19;28561:27;;28598:71;28666:1;28655:9;28651:17;28642:6;28598:71;:::i;:::-;28679:72;28747:2;28736:9;28732:18;28723:6;28679:72;:::i;:::-;28761:80;28837:2;28826:9;28822:18;28813:6;28761:80;:::i;:::-;28851;28927:2;28916:9;28912:18;28903:6;28851:80;:::i;:::-;28941:73;29009:3;28998:9;28994:19;28985:6;28941:73;:::i;:::-;29024;29092:3;29081:9;29077:19;29068:6;29024:73;:::i;:::-;28297:807;;;;;;;;;:::o;29110:143::-;29167:5;29198:6;29192:13;29183:22;;29214:33;29241:5;29214:33;:::i;:::-;29110:143;;;;:::o;29259:663::-;29347:6;29355;29363;29412:2;29400:9;29391:7;29387:23;29383:32;29380:119;;;29418:79;;:::i;:::-;29380:119;29538:1;29563:64;29619:7;29610:6;29599:9;29595:22;29563:64;:::i;:::-;29553:74;;29509:128;29676:2;29702:64;29758:7;29749:6;29738:9;29734:22;29702:64;:::i;:::-;29692:74;;29647:129;29815:2;29841:64;29897:7;29888:6;29877:9;29873:22;29841:64;:::i;:::-;29831:74;;29786:129;29259:663;;;;;:::o

Swarm Source

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