ETH Price: $3,905.09 (+6.88%)

Contract

0x91Ad72BF8F785ec0A7bEC63CeF5453d2BF622655
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve196062032024-04-07 20:30:35248 days ago1712521835IN
0x91Ad72BF...2BF622655
0 ETH0.0008145617.39032715
Approve196061512024-04-07 20:20:11248 days ago1712521211IN
0x91Ad72BF...2BF622655
0 ETH0.0006597414.08509419
Approve196061372024-04-07 20:17:23248 days ago1712521043IN
0x91Ad72BF...2BF622655
0 ETH0.0006519713.91910648
Approve196060692024-04-07 20:03:47248 days ago1712520227IN
0x91Ad72BF...2BF622655
0 ETH0.0007656416.33760222
Approve196060582024-04-07 20:01:35248 days ago1712520095IN
0x91Ad72BF...2BF622655
0 ETH0.0008482818.09635419
Approve196060562024-04-07 20:01:11248 days ago1712520071IN
0x91Ad72BF...2BF622655
0 ETH0.0008324617.75879598
Approve196060472024-04-07 19:59:11248 days ago1712519951IN
0x91Ad72BF...2BF622655
0 ETH0.0007359315.71166817
Approve196060412024-04-07 19:57:47248 days ago1712519867IN
0x91Ad72BF...2BF622655
0 ETH0.0007242715.45081037
Approve196060402024-04-07 19:57:35248 days ago1712519855IN
0x91Ad72BF...2BF622655
0 ETH0.0007289315.55423984
Approve196060352024-04-07 19:56:35248 days ago1712519795IN
0x91Ad72BF...2BF622655
0 ETH0.0007394315.78642315
Approve196060282024-04-07 19:55:11248 days ago1712519711IN
0x91Ad72BF...2BF622655
0 ETH0.0007019314.97429351
Approve196060252024-04-07 19:54:35248 days ago1712519675IN
0x91Ad72BF...2BF622655
0 ETH0.0007101115.15263853
Approve196059892024-04-07 19:47:23248 days ago1712519243IN
0x91Ad72BF...2BF622655
0 ETH0.0006319913.48216947
Approve196059732024-04-07 19:43:59248 days ago1712519039IN
0x91Ad72BF...2BF622655
0 ETH0.0007240915.45103604
Approve196059312024-04-07 19:35:23248 days ago1712518523IN
0x91Ad72BF...2BF622655
0 ETH0.0007330915.63900137
Approve190208252024-01-16 17:04:11330 days ago1705424651IN
0x91Ad72BF...2BF622655
0 ETH0.0010225241.15767057
Transfer189464042024-01-06 6:29:11341 days ago1704522551IN
0x91Ad72BF...2BF622655
0 ETH0.0014505213.10566899
Approve188309332023-12-21 1:20:23357 days ago1703121623IN
0x91Ad72BF...2BF622655
0 ETH0.0019199640.96880697
Approve188307682023-12-21 0:47:23357 days ago1703119643IN
0x91Ad72BF...2BF622655
0 ETH0.0024567252.06251925
Transfer188275642023-12-20 13:58:11357 days ago1703080691IN
0x91Ad72BF...2BF622655
0 ETH0.0061674269.04170884
Approve188267322023-12-20 11:09:47357 days ago1703070587IN
0x91Ad72BF...2BF622655
0 ETH0.0024630852.19720895
Approve188237562023-12-20 1:08:23358 days ago1703034503IN
0x91Ad72BF...2BF622655
0 ETH0.0016641335.26615732
Approve188223792023-12-19 20:30:23358 days ago1703017823IN
0x91Ad72BF...2BF622655
0 ETH0.0033930971.90578735
Approve188215262023-12-19 17:37:59358 days ago1703007479IN
0x91Ad72BF...2BF622655
0 ETH0.0029622162.7747926
Approve188215222023-12-19 17:37:11358 days ago1703007431IN
0x91Ad72BF...2BF622655
0 ETH0.0027907459.14100996
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
REFShare

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*

    $REFS is the FIRST EVER On-Chain Referral Community Token

    Website: https://refsharing.com
    Telegram:https://t.me/RefShareToken
    Twitter: https://twitter.com/refsharing


           $$\    
         $$$$$$\      $$$$$$$\   $$$$$$$$\  $$$$$$$$\   $$$$$$\  
        $$  __$$\     $$  __$$\  $$  _____| $$  _____| $$  __$$\ 
        $$ /  \__|    $$ |  $$ | $$ |       $$ |       $$ /  \__|
        \$$$$$$\      $$$$$$$  | $$$$$\     $$$$$\     \$$$$$$\  
         \___ $$\     $$  __$$<  $$  __|    $$  __|     \____$$\ 
        $$\  \$$ |    $$ |  $$ | $$ |       $$ |       $$\   $$ |
        \$$$$$$  |    $$ |  $$ | $$$$$$$$\  $$ |       \$$$$$$  |
        \_$$  _/     \__|  \__| \________| \__|        \______/ 
          \ _/                                         

    A unique ON-CHAIN REFERRAL SYSTEM that let's you earn Ref Shares ($REFS) by recruiting new users to join the Ref Sharing community


    Max Wallet limit 2%, removed after launch.
    Max Transaction limit 2%
*/

pragma solidity ^0.8.18;

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


contract Ownable is Context 
{
    address private _owner;
    address private _previousOwner;

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

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

    function owner() public view returns (address) 
    {
        return _owner;
    }   
    
    modifier onlyOwner() 
    {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function renounceOwnership() public virtual onlyOwner 
    {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    function transferOwnership(address newOwner) public virtual onlyOwner 
    {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = 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);
}


library SafeMath {


    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        uint256 c = a + b;
        if (c < a) return (false, 0);
        return (true, c);
    }


    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b > a) return (false, 0);
        return (true, a - b);
    }


    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (a == 0) return (true, 0);
        uint256 c = a * b;
        if (c / a != b) return (false, 0);
        return (true, c);
    }


    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a / b);
    }


    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        if (b == 0) return (false, 0);
        return (true, a % b);
    }


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


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


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


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


    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        require(b > 0, "SafeMath: modulo by zero");
        return a % b;
    }


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


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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        return a % b;
    }
}


interface IUniswapV2Factory {
    event PairCreated(address indexed token0, address indexed token1, address pair, uint);
    function getPair(address tokenA, address tokenB) external view returns (address pair);
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Pair {
    function factory() external view returns (address);
}



interface IUniswapV2Router01 
{
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}


interface IUniswapV2Router02 is IUniswapV2Router01 
{

}


contract REFShare is Context, IERC20, Ownable 
{
      using SafeMath for uint256;
      mapping (address => uint256) private _balances;
      mapping (address => mapping (address => uint256)) private _allowances;

      mapping (address => address) public _refferer;
      mapping (address =>  bool) public _feeExpempted;
      mapping (address =>  bool) public _limitExpempted;

      uint256 private _totalSupply;
      string private _name;
      string private _symbol;
      uint8 private _decimals;

      address payable public treasuryWallet; 
      address public uniswapV2Pair;
      
      IUniswapV2Router02 public immutable uniswapV2Router;

      uint256 public _maxTxAmount;
      uint256 public _walletMaxLimit;

      uint256 public reffererFee;
      uint256 public treasuryFee;

    constructor() 
    { 

      _name = "REF Share";
      _symbol = "REFS";
      _decimals = 18;


      _mint(msg.sender, 100000000 * 10**18);

      _maxTxAmount = 2000001 * 10**18; // 2%
      _walletMaxLimit = 2000001 * 10**18; // 2%

      treasuryWallet = payable(0x91a4a51463c654D9b1f36F95d8D15CD7A3fA344B);
      
      reffererFee = 3;
      treasuryFee = 1;   

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

    _feeExpempted[address(this)] = true;
    _feeExpempted[owner()] = true;
    _feeExpempted[treasuryWallet] = true;

    _limitExpempted[address(this)] = true;
    _limitExpempted[owner()] = true;
    _limitExpempted[treasuryWallet] = true;
    _limitExpempted[uniswapV2Pair] = true;
    _limitExpempted[address(_uniswapV2Router)] = true;        

  }



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

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

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

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


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


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


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


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


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


    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) 
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }


    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) 
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function removeWalletMaxLimit() external onlyOwner
    {
        _walletMaxLimit = totalSupply();
    }

    function exemptedFromMaxWalletLimit(address _address, bool _enable) external onlyOwner
    {
        _limitExpempted[_address] = _enable;
    }

    function _transferTokens(address from, address to, uint256 amount) internal virtual 
    {
         if(from != owner() && to != owner()) 
         {
            require(amount <= _maxTxAmount, "Exceeds Max Tx Amount");
         }


         if(!_limitExpempted[to]) 
         {
            require(balanceOf(to).add(amount) <= _walletMaxLimit, "Exceeds Max Wallet Allowed Amount");
         }         


        if(!_feeExpempted[from] && !_feeExpempted[to])
        {
            uint256 reffererFeeTokens = amount.mul(reffererFee).div(100);
            uint256 treasuryFeeTokens = amount.mul(treasuryFee).div(100);

            if(_refferer[to] != address(0) && from==uniswapV2Pair)
            {
                _transfer(from, _refferer[to], reffererFeeTokens);
                _transfer(from, treasuryWallet, treasuryFeeTokens);
            }
            else if(_refferer[from] != address(0) && to==uniswapV2Pair)
            {
                _transfer(from, _refferer[from], reffererFeeTokens);
                _transfer(from, treasuryWallet, treasuryFeeTokens);
            }
            else if(_refferer[from] != address(0) && to != uniswapV2Pair && from != uniswapV2Pair)
            {
                _transfer(from, _refferer[from], reffererFeeTokens);
                _transfer(from, treasuryWallet, treasuryFeeTokens);
            }            
            else  
            {
                _transfer(from, treasuryWallet, reffererFeeTokens+treasuryFeeTokens);
            }
            amount = amount.sub(reffererFeeTokens).sub(treasuryFeeTokens);
        }

        if(_refferer[to]==address(0) && from != uniswapV2Pair && to != uniswapV2Pair)
        {
            _refferer[to] = from;
        }

        _transfer(from, to, amount);

    }


    function _transfer(address sender, address recipient, uint256 amount) internal 
    {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }



    function _mint(address account, uint256 amount) internal virtual 
    {
        require(account != address(0), "ERC20: mint to the zero address");
        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }



    function _approve(address owner, address spender, uint256 amount) internal virtual 
    {
        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);
    }

}

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":"_feeExpempted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_limitExpempted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_refferer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMaxLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enable","type":"bool"}],"name":"exemptedFromMaxWalletLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"reffererFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeWalletMaxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

60a060405234801562000010575f80fd5b505f620000226200072860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600981526020017f52454620536861726500000000000000000000000000000000000000000000008152506008908162000104919062000ba8565b506040518060400160405280600481526020017f5245465300000000000000000000000000000000000000000000000000000000815250600990816200014b919062000ba8565b506012600a5f6101000a81548160ff021916908360ff16021790555062000184336a52b7d2dcc80cd2e40000006200072f60201b60201c565b6a01a784457e508ee9640000600c819055506a01a784457e508ee9640000600d819055507391a4a51463c654d9b1f36f95d8d15cd7a3fa344b600a60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506003600e819055506001600f819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200026f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000295919062000cf1565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002fb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000321919062000cf1565b6040518363ffffffff1660e01b81526004016200034092919062000d32565b6020604051808303815f875af11580156200035d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000383919062000cf1565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f62000460620008bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f62000590620008bb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505062000edc565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620007a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007979062000dbb565b60405180910390fd5b620007b781600754620008e260201b90919060201c565b6007819055506200080f8160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054620008e260201b90919060201c565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008af919062000dec565b60405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f808284620008f2919062000e34565b9050838110156200093a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009319062000ebc565b60405180910390fd5b8091505092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680620009c057607f821691505b602082108103620009d657620009d56200097b565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000a3a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009fd565b62000a468683620009fd565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000a9062000a8a62000a848462000a5e565b62000a67565b62000a5e565b9050919050565b5f819050919050565b62000aab8362000a70565b62000ac362000aba8262000a97565b84845462000a09565b825550505050565b5f90565b62000ad962000acb565b62000ae681848462000aa0565b505050565b5b8181101562000b0d5762000b015f8262000acf565b60018101905062000aec565b5050565b601f82111562000b5c5762000b2681620009dc565b62000b3184620009ee565b8101602085101562000b41578190505b62000b5962000b5085620009ee565b83018262000aeb565b50505b505050565b5f82821c905092915050565b5f62000b7e5f198460080262000b61565b1980831691505092915050565b5f62000b98838362000b6d565b9150826002028217905092915050565b62000bb38262000944565b67ffffffffffffffff81111562000bcf5762000bce6200094e565b5b62000bdb8254620009a8565b62000be882828562000b11565b5f60209050601f83116001811462000c1e575f841562000c09578287015190505b62000c15858262000b8b565b86555062000c84565b601f19841662000c2e86620009dc565b5f5b8281101562000c575784890151825560018201915060208501945060208101905062000c30565b8683101562000c77578489015162000c73601f89168262000b6d565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000cbb8262000c90565b9050919050565b62000ccd8162000caf565b811462000cd8575f80fd5b50565b5f8151905062000ceb8162000cc2565b92915050565b5f6020828403121562000d095762000d0862000c8c565b5b5f62000d188482850162000cdb565b91505092915050565b62000d2c8162000caf565b82525050565b5f60408201905062000d475f83018562000d21565b62000d56602083018462000d21565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000da3601f8362000d5d565b915062000db08262000d6d565b602082019050919050565b5f6020820190508181035f83015262000dd48162000d95565b9050919050565b62000de68162000a5e565b82525050565b5f60208201905062000e015f83018462000ddb565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000e408262000a5e565b915062000e4d8362000a5e565b925082820190508082111562000e685762000e6762000e07565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f62000ea4601b8362000d5d565b915062000eb18262000e6e565b602082019050919050565b5f6020820190508181035f83015262000ed58162000e96565b9050919050565b608051612b2762000ef55f395f6105d30152612b275ff3fe608060405234801561000f575f80fd5b506004361061018c575f3560e01c80637d1db4a5116100dc578063a9059cbb11610095578063cc32d1761161006f578063cc32d176146104b0578063dd62ed3e146104ce578063dfc4eb10146104fe578063f2fde38b146105085761018c565b8063a9059cbb14610432578063b175b5ce14610462578063c2c3cb44146104925761018c565b80637d1db4a51461035c578063844f24d21461037a5780638da5cb5b146103aa57806395d89b41146103c857806395f2c235146103e6578063a457c2d7146104025761018c565b806339509351116101495780636f5626e1116101235780636f5626e1146102d457806370a08231146102f2578063715018a6146103225780637b7a8ba51461032c5761018c565b806339509351146102685780634626402b1461029857806349bd5a5e146102b65761018c565b806306fdde0314610190578063095ea7b3146101ae5780631694505e146101de57806318160ddd146101fc57806323b872dd1461021a578063313ce5671461024a575b5f80fd5b610198610524565b6040516101a59190611f92565b60405180910390f35b6101c860048036038101906101c39190612043565b6105b4565b6040516101d5919061209b565b60405180910390f35b6101e66105d1565b6040516101f3919061210f565b60405180910390f35b6102046105f5565b6040516102119190612137565b60405180910390f35b610234600480360381019061022f9190612150565b6105fe565b604051610241919061209b565b60405180910390f35b6102526106d2565b60405161025f91906121bb565b60405180910390f35b610282600480360381019061027d9190612043565b6106e7565b60405161028f919061209b565b60405180910390f35b6102a0610795565b6040516102ad91906121f4565b60405180910390f35b6102be6107bb565b6040516102cb919061221c565b60405180910390f35b6102dc6107e0565b6040516102e99190612137565b60405180910390f35b61030c60048036038101906103079190612235565b6107e6565b6040516103199190612137565b60405180910390f35b61032a61082c565b005b61034660048036038101906103419190612235565b61097a565b604051610353919061209b565b60405180910390f35b610364610997565b6040516103719190612137565b60405180910390f35b610394600480360381019061038f9190612235565b61099d565b6040516103a1919061209b565b60405180910390f35b6103b26109ba565b6040516103bf919061221c565b60405180910390f35b6103d06109e1565b6040516103dd9190611f92565b60405180910390f35b61040060048036038101906103fb919061228a565b610a71565b005b61041c60048036038101906104179190612043565b610b5d565b604051610429919061209b565b60405180910390f35b61044c60048036038101906104479190612043565b610c25565b604051610459919061209b565b60405180910390f35b61047c60048036038101906104779190612235565b610c42565b604051610489919061221c565b60405180910390f35b61049a610c72565b6040516104a79190612137565b60405180910390f35b6104b8610c78565b6040516104c59190612137565b60405180910390f35b6104e860048036038101906104e391906122c8565b610c7e565b6040516104f59190612137565b60405180910390f35b610506610d00565b005b610522600480360381019061051d9190612235565b610da4565b005b60606008805461053390612333565b80601f016020809104026020016040519081016040528092919081815260200182805461055f90612333565b80156105aa5780601f10610581576101008083540402835291602001916105aa565b820191905f5260205f20905b81548152906001019060200180831161058d57829003601f168201915b5050505050905090565b5f6105c76105c0610f61565b8484610f68565b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600754905090565b5f61060a84848461112b565b6106c784610616610f61565b6106c285604051806060016040528060288152602001612aa56028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610679610f61565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611aa69092919063ffffffff16565b610f68565b600190509392505050565b5f600a5f9054906101000a900460ff16905090565b5f61078b6106f3610f61565b846107868560035f610703610f61565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b0390919063ffffffff16565b610f68565b6001905092915050565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610834610f61565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b7906123ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6006602052805f5260405f205f915054906101000a900460ff1681565b600c5481565b6005602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546109f090612333565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1c90612333565b8015610a675780601f10610a3e57610100808354040283529160200191610a67565b820191905f5260205f20905b815481529060010190602001808311610a4a57829003601f168201915b5050505050905090565b610a79610f61565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc906123ad565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610c1b610b69610f61565b84610c1685604051806060016040528060258152602001612acd6025913960035f610b92610f61565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611aa69092919063ffffffff16565b610f68565b6001905092915050565b5f610c38610c31610f61565b848461112b565b6001905092915050565b6004602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b600f5481565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d08610f61565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b906123ad565b60405180910390fd5b610d9c6105f5565b600d81905550565b610dac610f61565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f906123ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d9061243b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd906124c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90612557565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161111e9190612137565b60405180910390a3505050565b6111336109ba565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111a157506111716109ba565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111ec57600c548111156111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e2906125bf565b60405180910390fd5b5b60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661129a57600d546112588261124a856107e6565b611b0390919063ffffffff16565b1115611299576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112909061264d565b60405180910390fd5b5b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611338575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118d8575f6113666064611358600e5485611b6090919063ffffffff16565b611bd790919063ffffffff16565b90505f6113916064611383600f5486611b6090919063ffffffff16565b611bd790919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff1660045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156114775750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611515576114e38560045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2e565b61151085600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611c2e565b6118ae565b5f73ffffffffffffffffffffffffffffffffffffffff1660045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156115f95750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611697576116658560045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2e565b61169285600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611c2e565b6118ad565b5f73ffffffffffffffffffffffffffffffffffffffff1660045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561177c5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117d55750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611873576118418560045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2e565b61186e85600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611c2e565b6118ac565b6118ab85600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683856118a69190612698565b611c2e565b5b5b5b6118d3816118c58486611eb090919063ffffffff16565b611eb090919063ffffffff16565b925050505b5f73ffffffffffffffffffffffffffffffffffffffff1660045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156119bc5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a155750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a96578260045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611aa1838383611c2e565b505050565b5f838311158290611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae49190611f92565b60405180910390fd5b508284611afa91906126cb565b90509392505050565b5f808284611b119190612698565b905083811015611b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4d90612748565b60405180910390fd5b8091505092915050565b5f808303611b70575f9050611bd1565b5f8284611b7d9190612766565b9050828482611b8c91906127d4565b14611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390612874565b60405180910390fd5b809150505b92915050565b5f808211611c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c11906128dc565b60405180910390fd5b8183611c2691906127d4565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c939061296a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d01906129f8565b60405180910390fd5b611d7481604051806060016040528060268152602001612a7f6026913960025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611aa69092919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e058160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b0390919063ffffffff16565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ea39190612137565b60405180910390a3505050565b5f82821115611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb90612a60565b60405180910390fd5b8183611f0091906126cb565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611f3f578082015181840152602081019050611f24565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611f6482611f08565b611f6e8185611f12565b9350611f7e818560208601611f22565b611f8781611f4a565b840191505092915050565b5f6020820190508181035f830152611faa8184611f5a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611fdf82611fb6565b9050919050565b611fef81611fd5565b8114611ff9575f80fd5b50565b5f8135905061200a81611fe6565b92915050565b5f819050919050565b61202281612010565b811461202c575f80fd5b50565b5f8135905061203d81612019565b92915050565b5f806040838503121561205957612058611fb2565b5b5f61206685828601611ffc565b92505060206120778582860161202f565b9150509250929050565b5f8115159050919050565b61209581612081565b82525050565b5f6020820190506120ae5f83018461208c565b92915050565b5f819050919050565b5f6120d76120d26120cd84611fb6565b6120b4565b611fb6565b9050919050565b5f6120e8826120bd565b9050919050565b5f6120f9826120de565b9050919050565b612109816120ef565b82525050565b5f6020820190506121225f830184612100565b92915050565b61213181612010565b82525050565b5f60208201905061214a5f830184612128565b92915050565b5f805f6060848603121561216757612166611fb2565b5b5f61217486828701611ffc565b935050602061218586828701611ffc565b92505060406121968682870161202f565b9150509250925092565b5f60ff82169050919050565b6121b5816121a0565b82525050565b5f6020820190506121ce5f8301846121ac565b92915050565b5f6121de82611fb6565b9050919050565b6121ee816121d4565b82525050565b5f6020820190506122075f8301846121e5565b92915050565b61221681611fd5565b82525050565b5f60208201905061222f5f83018461220d565b92915050565b5f6020828403121561224a57612249611fb2565b5b5f61225784828501611ffc565b91505092915050565b61226981612081565b8114612273575f80fd5b50565b5f8135905061228481612260565b92915050565b5f80604083850312156122a05761229f611fb2565b5b5f6122ad85828601611ffc565b92505060206122be85828601612276565b9150509250929050565b5f80604083850312156122de576122dd611fb2565b5b5f6122eb85828601611ffc565b92505060206122fc85828601611ffc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061234a57607f821691505b60208210810361235d5761235c612306565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612397602083611f12565b91506123a282612363565b602082019050919050565b5f6020820190508181035f8301526123c48161238b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612425602683611f12565b9150612430826123cb565b604082019050919050565b5f6020820190508181035f83015261245281612419565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6124b3602483611f12565b91506124be82612459565b604082019050919050565b5f6020820190508181035f8301526124e0816124a7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612541602283611f12565b915061254c826124e7565b604082019050919050565b5f6020820190508181035f83015261256e81612535565b9050919050565b7f45786365656473204d617820547820416d6f756e7400000000000000000000005f82015250565b5f6125a9601583611f12565b91506125b482612575565b602082019050919050565b5f6020820190508181035f8301526125d68161259d565b9050919050565b7f45786365656473204d61782057616c6c657420416c6c6f77656420416d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612637602183611f12565b9150612642826125dd565b604082019050919050565b5f6020820190508181035f8301526126648161262b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126a282612010565b91506126ad83612010565b92508282019050808211156126c5576126c461266b565b5b92915050565b5f6126d582612010565b91506126e083612010565b92508282039050818111156126f8576126f761266b565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612732601b83611f12565b915061273d826126fe565b602082019050919050565b5f6020820190508181035f83015261275f81612726565b9050919050565b5f61277082612010565b915061277b83612010565b925082820261278981612010565b915082820484148315176127a05761279f61266b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6127de82612010565b91506127e983612010565b9250826127f9576127f86127a7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61285e602183611f12565b915061286982612804565b604082019050919050565b5f6020820190508181035f83015261288b81612852565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f6128c6601a83611f12565b91506128d182612892565b602082019050919050565b5f6020820190508181035f8301526128f3816128ba565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612954602583611f12565b915061295f826128fa565b604082019050919050565b5f6020820190508181035f83015261298181612948565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6129e2602383611f12565b91506129ed82612988565b604082019050919050565b5f6020820190508181035f830152612a0f816129d6565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612a4a601e83611f12565b9150612a5582612a16565b602082019050919050565b5f6020820190508181035f830152612a7781612a3e565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206c5e063a648630bc5d118c40d2300a4c1600c46b88b931b3d6005024a698928564736f6c63430008160033

Deployed Bytecode

0x608060405234801561000f575f80fd5b506004361061018c575f3560e01c80637d1db4a5116100dc578063a9059cbb11610095578063cc32d1761161006f578063cc32d176146104b0578063dd62ed3e146104ce578063dfc4eb10146104fe578063f2fde38b146105085761018c565b8063a9059cbb14610432578063b175b5ce14610462578063c2c3cb44146104925761018c565b80637d1db4a51461035c578063844f24d21461037a5780638da5cb5b146103aa57806395d89b41146103c857806395f2c235146103e6578063a457c2d7146104025761018c565b806339509351116101495780636f5626e1116101235780636f5626e1146102d457806370a08231146102f2578063715018a6146103225780637b7a8ba51461032c5761018c565b806339509351146102685780634626402b1461029857806349bd5a5e146102b65761018c565b806306fdde0314610190578063095ea7b3146101ae5780631694505e146101de57806318160ddd146101fc57806323b872dd1461021a578063313ce5671461024a575b5f80fd5b610198610524565b6040516101a59190611f92565b60405180910390f35b6101c860048036038101906101c39190612043565b6105b4565b6040516101d5919061209b565b60405180910390f35b6101e66105d1565b6040516101f3919061210f565b60405180910390f35b6102046105f5565b6040516102119190612137565b60405180910390f35b610234600480360381019061022f9190612150565b6105fe565b604051610241919061209b565b60405180910390f35b6102526106d2565b60405161025f91906121bb565b60405180910390f35b610282600480360381019061027d9190612043565b6106e7565b60405161028f919061209b565b60405180910390f35b6102a0610795565b6040516102ad91906121f4565b60405180910390f35b6102be6107bb565b6040516102cb919061221c565b60405180910390f35b6102dc6107e0565b6040516102e99190612137565b60405180910390f35b61030c60048036038101906103079190612235565b6107e6565b6040516103199190612137565b60405180910390f35b61032a61082c565b005b61034660048036038101906103419190612235565b61097a565b604051610353919061209b565b60405180910390f35b610364610997565b6040516103719190612137565b60405180910390f35b610394600480360381019061038f9190612235565b61099d565b6040516103a1919061209b565b60405180910390f35b6103b26109ba565b6040516103bf919061221c565b60405180910390f35b6103d06109e1565b6040516103dd9190611f92565b60405180910390f35b61040060048036038101906103fb919061228a565b610a71565b005b61041c60048036038101906104179190612043565b610b5d565b604051610429919061209b565b60405180910390f35b61044c60048036038101906104479190612043565b610c25565b604051610459919061209b565b60405180910390f35b61047c60048036038101906104779190612235565b610c42565b604051610489919061221c565b60405180910390f35b61049a610c72565b6040516104a79190612137565b60405180910390f35b6104b8610c78565b6040516104c59190612137565b60405180910390f35b6104e860048036038101906104e391906122c8565b610c7e565b6040516104f59190612137565b60405180910390f35b610506610d00565b005b610522600480360381019061051d9190612235565b610da4565b005b60606008805461053390612333565b80601f016020809104026020016040519081016040528092919081815260200182805461055f90612333565b80156105aa5780601f10610581576101008083540402835291602001916105aa565b820191905f5260205f20905b81548152906001019060200180831161058d57829003601f168201915b5050505050905090565b5f6105c76105c0610f61565b8484610f68565b6001905092915050565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600754905090565b5f61060a84848461112b565b6106c784610616610f61565b6106c285604051806060016040528060288152602001612aa56028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610679610f61565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611aa69092919063ffffffff16565b610f68565b600190509392505050565b5f600a5f9054906101000a900460ff16905090565b5f61078b6106f3610f61565b846107868560035f610703610f61565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b0390919063ffffffff16565b610f68565b6001905092915050565b600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610834610f61565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b7906123ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6006602052805f5260405f205f915054906101000a900460ff1681565b600c5481565b6005602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600980546109f090612333565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1c90612333565b8015610a675780601f10610a3e57610100808354040283529160200191610a67565b820191905f5260205f20905b815481529060010190602001808311610a4a57829003601f168201915b5050505050905090565b610a79610f61565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afc906123ad565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f610c1b610b69610f61565b84610c1685604051806060016040528060258152602001612acd6025913960035f610b92610f61565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611aa69092919063ffffffff16565b610f68565b6001905092915050565b5f610c38610c31610f61565b848461112b565b6001905092915050565b6004602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b600f5481565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610d08610f61565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8b906123ad565b60405180910390fd5b610d9c6105f5565b600d81905550565b610dac610f61565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f906123ad565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ea6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9d9061243b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd906124c9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103b90612557565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161111e9190612137565b60405180910390a3505050565b6111336109ba565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156111a157506111716109ba565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156111ec57600c548111156111eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e2906125bf565b60405180910390fd5b5b60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1661129a57600d546112588261124a856107e6565b611b0390919063ffffffff16565b1115611299576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112909061264d565b60405180910390fd5b5b60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611338575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118d8575f6113666064611358600e5485611b6090919063ffffffff16565b611bd790919063ffffffff16565b90505f6113916064611383600f5486611b6090919063ffffffff16565b611bd790919063ffffffff16565b90505f73ffffffffffffffffffffffffffffffffffffffff1660045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156114775750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611515576114e38560045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2e565b61151085600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611c2e565b6118ae565b5f73ffffffffffffffffffffffffffffffffffffffff1660045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141580156115f95750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611697576116658560045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2e565b61169285600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611c2e565b6118ad565b5f73ffffffffffffffffffffffffffffffffffffffff1660045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415801561177c5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117d55750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611873576118418560045f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c2e565b61186e85600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611c2e565b6118ac565b6118ab85600a60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683856118a69190612698565b611c2e565b5b5b5b6118d3816118c58486611eb090919063ffffffff16565b611eb090919063ffffffff16565b925050505b5f73ffffffffffffffffffffffffffffffffffffffff1660045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156119bc5750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a155750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611a96578260045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b611aa1838383611c2e565b505050565b5f838311158290611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae49190611f92565b60405180910390fd5b508284611afa91906126cb565b90509392505050565b5f808284611b119190612698565b905083811015611b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4d90612748565b60405180910390fd5b8091505092915050565b5f808303611b70575f9050611bd1565b5f8284611b7d9190612766565b9050828482611b8c91906127d4565b14611bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc390612874565b60405180910390fd5b809150505b92915050565b5f808211611c1a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c11906128dc565b60405180910390fd5b8183611c2691906127d4565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c939061296a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d01906129f8565b60405180910390fd5b611d7481604051806060016040528060268152602001612a7f6026913960025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611aa69092919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611e058160025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611b0390919063ffffffff16565b60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611ea39190612137565b60405180910390a3505050565b5f82821115611ef4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eeb90612a60565b60405180910390fd5b8183611f0091906126cb565b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611f3f578082015181840152602081019050611f24565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611f6482611f08565b611f6e8185611f12565b9350611f7e818560208601611f22565b611f8781611f4a565b840191505092915050565b5f6020820190508181035f830152611faa8184611f5a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611fdf82611fb6565b9050919050565b611fef81611fd5565b8114611ff9575f80fd5b50565b5f8135905061200a81611fe6565b92915050565b5f819050919050565b61202281612010565b811461202c575f80fd5b50565b5f8135905061203d81612019565b92915050565b5f806040838503121561205957612058611fb2565b5b5f61206685828601611ffc565b92505060206120778582860161202f565b9150509250929050565b5f8115159050919050565b61209581612081565b82525050565b5f6020820190506120ae5f83018461208c565b92915050565b5f819050919050565b5f6120d76120d26120cd84611fb6565b6120b4565b611fb6565b9050919050565b5f6120e8826120bd565b9050919050565b5f6120f9826120de565b9050919050565b612109816120ef565b82525050565b5f6020820190506121225f830184612100565b92915050565b61213181612010565b82525050565b5f60208201905061214a5f830184612128565b92915050565b5f805f6060848603121561216757612166611fb2565b5b5f61217486828701611ffc565b935050602061218586828701611ffc565b92505060406121968682870161202f565b9150509250925092565b5f60ff82169050919050565b6121b5816121a0565b82525050565b5f6020820190506121ce5f8301846121ac565b92915050565b5f6121de82611fb6565b9050919050565b6121ee816121d4565b82525050565b5f6020820190506122075f8301846121e5565b92915050565b61221681611fd5565b82525050565b5f60208201905061222f5f83018461220d565b92915050565b5f6020828403121561224a57612249611fb2565b5b5f61225784828501611ffc565b91505092915050565b61226981612081565b8114612273575f80fd5b50565b5f8135905061228481612260565b92915050565b5f80604083850312156122a05761229f611fb2565b5b5f6122ad85828601611ffc565b92505060206122be85828601612276565b9150509250929050565b5f80604083850312156122de576122dd611fb2565b5b5f6122eb85828601611ffc565b92505060206122fc85828601611ffc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061234a57607f821691505b60208210810361235d5761235c612306565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612397602083611f12565b91506123a282612363565b602082019050919050565b5f6020820190508181035f8301526123c48161238b565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612425602683611f12565b9150612430826123cb565b604082019050919050565b5f6020820190508181035f83015261245281612419565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6124b3602483611f12565b91506124be82612459565b604082019050919050565b5f6020820190508181035f8301526124e0816124a7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612541602283611f12565b915061254c826124e7565b604082019050919050565b5f6020820190508181035f83015261256e81612535565b9050919050565b7f45786365656473204d617820547820416d6f756e7400000000000000000000005f82015250565b5f6125a9601583611f12565b91506125b482612575565b602082019050919050565b5f6020820190508181035f8301526125d68161259d565b9050919050565b7f45786365656473204d61782057616c6c657420416c6c6f77656420416d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f612637602183611f12565b9150612642826125dd565b604082019050919050565b5f6020820190508181035f8301526126648161262b565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6126a282612010565b91506126ad83612010565b92508282019050808211156126c5576126c461266b565b5b92915050565b5f6126d582612010565b91506126e083612010565b92508282039050818111156126f8576126f761266b565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612732601b83611f12565b915061273d826126fe565b602082019050919050565b5f6020820190508181035f83015261275f81612726565b9050919050565b5f61277082612010565b915061277b83612010565b925082820261278981612010565b915082820484148315176127a05761279f61266b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6127de82612010565b91506127e983612010565b9250826127f9576127f86127a7565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61285e602183611f12565b915061286982612804565b604082019050919050565b5f6020820190508181035f83015261288b81612852565b9050919050565b7f536166654d6174683a206469766973696f6e206279207a65726f0000000000005f82015250565b5f6128c6601a83611f12565b91506128d182612892565b602082019050919050565b5f6020820190508181035f8301526128f3816128ba565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612954602583611f12565b915061295f826128fa565b604082019050919050565b5f6020820190508181035f83015261298181612948565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6129e2602383611f12565b91506129ed82612988565b604082019050919050565b5f6020820190508181035f830152612a0f816129d6565b9050919050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f612a4a601e83611f12565b9150612a5582612a16565b602082019050919050565b5f6020820190508181035f830152612a7781612a3e565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212206c5e063a648630bc5d118c40d2300a4c1600c46b88b931b3d6005024a698928564736f6c63430008160033

Deployed Bytecode Sourcemap

6082:7130:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7950:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8903:175;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6702:51;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8272:114;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9088:333;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8164:97;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9431:224;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6610:37;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6657:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6841:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8396:133;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1983:154;;;:::i;:::-;;6419:49;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6764:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6363:47;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1746:85;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8055:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10062:146;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9665:275;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8539:187;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6309:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6800:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6876:26;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8736:157;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9948:106;;;:::i;:::-;;2145:250;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7950:97;7995:13;8034:5;8027:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7950:97;:::o;8903:175::-;8986:4;9009:39;9018:12;:10;:12::i;:::-;9032:7;9041:6;9009:8;:39::i;:::-;9066:4;9059:11;;8903:175;;;;:::o;6702:51::-;;;:::o;8272:114::-;8333:7;8366:12;;8359:19;;8272:114;:::o;9088:333::-;9194:4;9217:42;9233:6;9241:9;9252:6;9217:15;:42::i;:::-;9270:121;9279:6;9287:12;:10;:12::i;:::-;9301:89;9339:6;9301:89;;;;;;;;;;;;;;;;;:11;:19;9313:6;9301:19;;;;;;;;;;;;;;;:33;9321:12;:10;:12::i;:::-;9301:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9270:8;:121::i;:::-;9409:4;9402:11;;9088:333;;;;;:::o;8164:97::-;8213:5;8244:9;;;;;;;;;;;8237:16;;8164:97;:::o;9431:224::-;9519:4;9542:83;9551:12;:10;:12::i;:::-;9565:7;9574:50;9613:10;9574:11;:25;9586:12;:10;:12::i;:::-;9574:25;;;;;;;;;;;;;;;:34;9600:7;9574:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;9542:8;:83::i;:::-;9643:4;9636:11;;9431:224;;;;:::o;6610:37::-;;;;;;;;;;;;;:::o;6657:28::-;;;;;;;;;;;;;:::o;6841:26::-;;;;:::o;8396:133::-;8470:7;8503:9;:18;8513:7;8503:18;;;;;;;;;;;;;;;;8496:25;;8396:133;;;:::o;1983:154::-;1902:12;:10;:12::i;:::-;1892:22;;:6;;;;;;;;;;:22;;;1884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2096:1:::1;2059:40;;2080:6;::::0;::::1;;;;;;;;2059:40;;;;;;;;;;;;2127:1;2110:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1983:154::o:0;6419:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;6764:27::-;;;;:::o;6363:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;1746:85::-;1784:7;1817:6;;;;;;;;;;;1810:13;;1746:85;:::o;8055:101::-;8102:13;8141:7;8134:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8055:101;:::o;10062:146::-;1902:12;:10;:12::i;:::-;1892:22;;:6;;;;;;;;;;:22;;;1884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10193:7:::1;10165:15;:25;10181:8;10165:25;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;10062:146:::0;;:::o;9665:275::-;9758:4;9781:129;9790:12;:10;:12::i;:::-;9804:7;9813:96;9852:15;9813:96;;;;;;;;;;;;;;;;;:11;:25;9825:12;:10;:12::i;:::-;9813:25;;;;;;;;;;;;;;;:34;9839:7;9813:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;9781:8;:129::i;:::-;9928:4;9921:11;;9665:275;;;;:::o;8539:187::-;8625:4;8648:48;8664:12;:10;:12::i;:::-;8678:9;8689:6;8648:15;:48::i;:::-;8714:4;8707:11;;8539:187;;;;:::o;6309:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;6800:30::-;;;;:::o;6876:26::-;;;;:::o;8736:157::-;8825:7;8858:11;:18;8870:5;8858:18;;;;;;;;;;;;;;;:27;8877:7;8858:27;;;;;;;;;;;;;;;;8851:34;;8736:157;;;;:::o;9948:106::-;1902:12;:10;:12::i;:::-;1892:22;;:6;;;;;;;;;;:22;;;1884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10033:13:::1;:11;:13::i;:::-;10015:15;:31;;;;9948:106::o:0;2145:250::-;1902:12;:10;:12::i;:::-;1892:22;;:6;;;;;;;;;;:22;;;1884:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2260:1:::1;2240:22;;:8;:22;;::::0;2232:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2350:8;2321:38;;2342:6;::::0;::::1;;;;;;;;2321:38;;;;;;;;;;;;2379:8;2370:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2145:250:::0;:::o;1134:115::-;1187:15;1230:10;1215:26;;1134:115;:::o;12857:350::-;12982:1;12965:19;;:5;:19;;;12957:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13063:1;13044:21;;:7;:21;;;13036:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;13145:6;13115:11;:18;13127:5;13115:18;;;;;;;;;;;;;;;:27;13134:7;13115:27;;;;;;;;;;;;;;;:36;;;;13183:7;13167:32;;13176:5;13167:32;;;13192:6;13167:32;;;;;;:::i;:::-;;;;;;;;12857:350;;;:::o;10216:1812::-;10329:7;:5;:7::i;:::-;10321:15;;:4;:15;;;;:32;;;;;10346:7;:5;:7::i;:::-;10340:13;;:2;:13;;;;10321:32;10318:132;;;10399:12;;10389:6;:22;;10381:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10318:132;10469:15;:19;10485:2;10469:19;;;;;;;;;;;;;;;;;;;;;;;;;10465:154;;10553:15;;10524:25;10542:6;10524:13;10534:2;10524:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:44;;10516:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;10465:154;10646:13;:19;10660:4;10646:19;;;;;;;;;;;;;;;;;;;;;;;;;10645:20;:42;;;;;10670:13;:17;10684:2;10670:17;;;;;;;;;;;;;;;;;;;;;;;;;10669:18;10645:42;10642:1191;;;10713:25;10741:32;10769:3;10741:23;10752:11;;10741:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10713:60;;10788:25;10816:32;10844:3;10816:23;10827:11;;10816:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10788:60;;10893:1;10868:27;;:9;:13;10878:2;10868:13;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;;:50;;;;;10905:13;;;;;;;;;;;10899:19;;:4;:19;;;10868:50;10865:881;;;10952:49;10962:4;10968:9;:13;10978:2;10968:13;;;;;;;;;;;;;;;;;;;;;;;;;10983:17;10952:9;:49::i;:::-;11020:50;11030:4;11036:14;;;;;;;;;;;11052:17;11020:9;:50::i;:::-;10865:881;;;11135:1;11108:29;;:9;:15;11118:4;11108:15;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;:50;;;;;11145:13;;;;;;;;;;;11141:17;;:2;:17;;;11108:50;11105:641;;;11192:51;11202:4;11208:9;:15;11218:4;11208:15;;;;;;;;;;;;;;;;;;;;;;;;;11225:17;11192:9;:51::i;:::-;11262:50;11272:4;11278:14;;;;;;;;;;;11294:17;11262:9;:50::i;:::-;11105:641;;;11377:1;11350:29;;:9;:15;11360:4;11350:15;;;;;;;;;;;;;;;;;;;;;;;;;:29;;;;:52;;;;;11389:13;;;;;;;;;;;11383:19;;:2;:19;;;;11350:52;:77;;;;;11414:13;;;;;;;;;;;11406:21;;:4;:21;;;;11350:77;11347:399;;;11461:51;11471:4;11477:9;:15;11487:4;11477:15;;;;;;;;;;;;;;;;;;;;;;;;;11494:17;11461:9;:51::i;:::-;11531:50;11541:4;11547:14;;;;;;;;;;;11563:17;11531:9;:50::i;:::-;11347:399;;;11662:68;11672:4;11678:14;;;;;;;;;;;11712:17;11694;:35;;;;:::i;:::-;11662:9;:68::i;:::-;11347:399;11105:641;10865:881;11769:52;11803:17;11769:29;11780:17;11769:6;:10;;:29;;;;:::i;:::-;:33;;:52;;;;:::i;:::-;11760:61;;10698:1135;;10642:1191;11871:1;11848:25;;:9;:13;11858:2;11848:13;;;;;;;;;;;;;;;;;;;;;;;;;:25;;;:50;;;;;11885:13;;;;;;;;;;;11877:21;;:4;:21;;;;11848:50;:73;;;;;11908:13;;;;;;;;;;;11902:19;;:2;:19;;;;11848:73;11845:134;;;11963:4;11947:9;:13;11957:2;11947:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11845:134;11991:27;12001:4;12007:2;12011:6;11991:9;:27::i;:::-;10216:1812;;;:::o;4938:166::-;5024:7;5057:1;5052;:6;;5060:12;5044:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;5095:1;5091;:5;;;;:::i;:::-;5084:12;;4938:166;;;;;:::o;4027:179::-;4085:7;4105:9;4121:1;4117;:5;;;;:::i;:::-;4105:17;;4146:1;4141;:6;;4133:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;4197:1;4190:8;;;4027:179;;;;:::o;4384:220::-;4442:7;4471:1;4466;:6;4462:20;;4481:1;4474:8;;;;4462:20;4493:9;4509:1;4505;:5;;;;:::i;:::-;4493:17;;4538:1;4533;4529;:5;;;;:::i;:::-;:10;4521:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4595:1;4588:8;;;4384:220;;;;;:::o;4614:153::-;4672:7;4704:1;4700;:5;4692:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;4758:1;4754;:5;;;;:::i;:::-;4747:12;;4614:153;;;;:::o;12038:475::-;12160:1;12142:20;;:6;:20;;;12134:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;12244:1;12223:23;;:9;:23;;;12215:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12317;12339:6;12317:71;;;;;;;;;;;;;;;;;:9;:17;12327:6;12317:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;12297:9;:17;12307:6;12297:17;;;;;;;;;;;;;;;:91;;;;12422:32;12447:6;12422:9;:20;12432:9;12422:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;12399:9;:20;12409:9;12399:20;;;;;;;;;;;;;;;:55;;;;12487:9;12470:35;;12479:6;12470:35;;;12498:6;12470:35;;;;;;:::i;:::-;;;;;;;;12038:475;;;:::o;4216:158::-;4274:7;4307:1;4302;:6;;4294:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;4365:1;4361;:5;;;;:::i;:::-;4354:12;;4216:158;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:104::-;5871:7;5900:24;5918:5;5900:24;:::i;:::-;5889:35;;5826:104;;;:::o;5936:142::-;6039:32;6065:5;6039:32;:::i;:::-;6034:3;6027:45;5936:142;;:::o;6084:254::-;6193:4;6231:2;6220:9;6216:18;6208:26;;6244:87;6328:1;6317:9;6313:17;6304:6;6244:87;:::i;:::-;6084:254;;;;:::o;6344:118::-;6431:24;6449:5;6431:24;:::i;:::-;6426:3;6419:37;6344:118;;:::o;6468:222::-;6561:4;6599:2;6588:9;6584:18;6576:26;;6612:71;6680:1;6669:9;6665:17;6656:6;6612:71;:::i;:::-;6468:222;;;;:::o;6696:329::-;6755:6;6804:2;6792:9;6783:7;6779:23;6775:32;6772:119;;;6810:79;;:::i;:::-;6772:119;6930:1;6955:53;7000:7;6991:6;6980:9;6976:22;6955:53;:::i;:::-;6945:63;;6901:117;6696:329;;;;:::o;7031:116::-;7101:21;7116:5;7101:21;:::i;:::-;7094:5;7091:32;7081:60;;7137:1;7134;7127:12;7081:60;7031:116;:::o;7153:133::-;7196:5;7234:6;7221:20;7212:29;;7250:30;7274:5;7250:30;:::i;:::-;7153:133;;;;:::o;7292:468::-;7357:6;7365;7414:2;7402:9;7393:7;7389:23;7385:32;7382:119;;;7420:79;;:::i;:::-;7382:119;7540:1;7565:53;7610:7;7601:6;7590:9;7586:22;7565:53;:::i;:::-;7555:63;;7511:117;7667:2;7693:50;7735:7;7726:6;7715:9;7711:22;7693:50;:::i;:::-;7683:60;;7638:115;7292:468;;;;;:::o;7766:474::-;7834:6;7842;7891:2;7879:9;7870:7;7866:23;7862:32;7859:119;;;7897:79;;:::i;:::-;7859:119;8017:1;8042:53;8087:7;8078:6;8067:9;8063:22;8042:53;:::i;:::-;8032:63;;7988:117;8144:2;8170:53;8215:7;8206:6;8195:9;8191:22;8170:53;:::i;:::-;8160:63;;8115:118;7766:474;;;;;:::o;8246:180::-;8294:77;8291:1;8284:88;8391:4;8388:1;8381:15;8415:4;8412:1;8405:15;8432:320;8476:6;8513:1;8507:4;8503:12;8493:22;;8560:1;8554:4;8550:12;8581:18;8571:81;;8637:4;8629:6;8625:17;8615:27;;8571:81;8699:2;8691:6;8688:14;8668:18;8665:38;8662:84;;8718:18;;:::i;:::-;8662:84;8483:269;8432:320;;;:::o;8758:182::-;8898:34;8894:1;8886:6;8882:14;8875:58;8758:182;:::o;8946:366::-;9088:3;9109:67;9173:2;9168:3;9109:67;:::i;:::-;9102:74;;9185:93;9274:3;9185:93;:::i;:::-;9303:2;9298:3;9294:12;9287:19;;8946:366;;;:::o;9318:419::-;9484:4;9522:2;9511:9;9507:18;9499:26;;9571:9;9565:4;9561:20;9557:1;9546:9;9542:17;9535:47;9599:131;9725:4;9599:131;:::i;:::-;9591:139;;9318:419;;;:::o;9743:225::-;9883:34;9879:1;9871:6;9867:14;9860:58;9952:8;9947:2;9939:6;9935:15;9928:33;9743:225;:::o;9974:366::-;10116:3;10137:67;10201:2;10196:3;10137:67;:::i;:::-;10130:74;;10213:93;10302:3;10213:93;:::i;:::-;10331:2;10326:3;10322:12;10315:19;;9974:366;;;:::o;10346:419::-;10512:4;10550:2;10539:9;10535:18;10527:26;;10599:9;10593:4;10589:20;10585:1;10574:9;10570:17;10563:47;10627:131;10753:4;10627:131;:::i;:::-;10619:139;;10346:419;;;:::o;10771:223::-;10911:34;10907:1;10899:6;10895:14;10888:58;10980:6;10975:2;10967:6;10963:15;10956:31;10771:223;:::o;11000:366::-;11142:3;11163:67;11227:2;11222:3;11163:67;:::i;:::-;11156:74;;11239:93;11328:3;11239:93;:::i;:::-;11357:2;11352:3;11348:12;11341:19;;11000:366;;;:::o;11372:419::-;11538:4;11576:2;11565:9;11561:18;11553:26;;11625:9;11619:4;11615:20;11611:1;11600:9;11596:17;11589:47;11653:131;11779:4;11653:131;:::i;:::-;11645:139;;11372:419;;;:::o;11797:221::-;11937:34;11933:1;11925:6;11921:14;11914:58;12006:4;12001:2;11993:6;11989:15;11982:29;11797:221;:::o;12024:366::-;12166:3;12187:67;12251:2;12246:3;12187:67;:::i;:::-;12180:74;;12263:93;12352:3;12263:93;:::i;:::-;12381:2;12376:3;12372:12;12365:19;;12024:366;;;:::o;12396:419::-;12562:4;12600:2;12589:9;12585:18;12577:26;;12649:9;12643:4;12639:20;12635:1;12624:9;12620:17;12613:47;12677:131;12803:4;12677:131;:::i;:::-;12669:139;;12396:419;;;:::o;12821:171::-;12961:23;12957:1;12949:6;12945:14;12938:47;12821:171;:::o;12998:366::-;13140:3;13161:67;13225:2;13220:3;13161:67;:::i;:::-;13154:74;;13237:93;13326:3;13237:93;:::i;:::-;13355:2;13350:3;13346:12;13339:19;;12998:366;;;:::o;13370:419::-;13536:4;13574:2;13563:9;13559:18;13551:26;;13623:9;13617:4;13613:20;13609:1;13598:9;13594:17;13587:47;13651:131;13777:4;13651:131;:::i;:::-;13643:139;;13370:419;;;:::o;13795:220::-;13935:34;13931:1;13923:6;13919:14;13912:58;14004:3;13999:2;13991:6;13987:15;13980:28;13795:220;:::o;14021:366::-;14163:3;14184:67;14248:2;14243:3;14184:67;:::i;:::-;14177:74;;14260:93;14349:3;14260:93;:::i;:::-;14378:2;14373:3;14369:12;14362:19;;14021:366;;;:::o;14393:419::-;14559:4;14597:2;14586:9;14582:18;14574:26;;14646:9;14640:4;14636:20;14632:1;14621:9;14617:17;14610:47;14674:131;14800:4;14674:131;:::i;:::-;14666:139;;14393:419;;;:::o;14818:180::-;14866:77;14863:1;14856:88;14963:4;14960:1;14953:15;14987:4;14984:1;14977:15;15004:191;15044:3;15063:20;15081:1;15063:20;:::i;:::-;15058:25;;15097:20;15115:1;15097:20;:::i;:::-;15092:25;;15140:1;15137;15133:9;15126:16;;15161:3;15158:1;15155:10;15152:36;;;15168:18;;:::i;:::-;15152:36;15004:191;;;;:::o;15201:194::-;15241:4;15261:20;15279:1;15261:20;:::i;:::-;15256:25;;15295:20;15313:1;15295:20;:::i;:::-;15290:25;;15339:1;15336;15332:9;15324:17;;15363:1;15357:4;15354:11;15351:37;;;15368:18;;:::i;:::-;15351:37;15201:194;;;;:::o;15401:177::-;15541:29;15537:1;15529:6;15525:14;15518:53;15401:177;:::o;15584:366::-;15726:3;15747:67;15811:2;15806:3;15747:67;:::i;:::-;15740:74;;15823:93;15912:3;15823:93;:::i;:::-;15941:2;15936:3;15932:12;15925:19;;15584:366;;;:::o;15956:419::-;16122:4;16160:2;16149:9;16145:18;16137:26;;16209:9;16203:4;16199:20;16195:1;16184:9;16180:17;16173:47;16237:131;16363:4;16237:131;:::i;:::-;16229:139;;15956:419;;;:::o;16381:410::-;16421:7;16444:20;16462:1;16444:20;:::i;:::-;16439:25;;16478:20;16496:1;16478:20;:::i;:::-;16473:25;;16533:1;16530;16526:9;16555:30;16573:11;16555:30;:::i;:::-;16544:41;;16734:1;16725:7;16721:15;16718:1;16715:22;16695:1;16688:9;16668:83;16645:139;;16764:18;;:::i;:::-;16645:139;16429:362;16381:410;;;;:::o;16797:180::-;16845:77;16842:1;16835:88;16942:4;16939:1;16932:15;16966:4;16963:1;16956:15;16983:185;17023:1;17040:20;17058:1;17040:20;:::i;:::-;17035:25;;17074:20;17092:1;17074:20;:::i;:::-;17069:25;;17113:1;17103:35;;17118:18;;:::i;:::-;17103:35;17160:1;17157;17153:9;17148:14;;16983:185;;;;:::o;17174:220::-;17314:34;17310:1;17302:6;17298:14;17291:58;17383:3;17378:2;17370:6;17366:15;17359:28;17174:220;:::o;17400:366::-;17542:3;17563:67;17627:2;17622:3;17563:67;:::i;:::-;17556:74;;17639:93;17728:3;17639:93;:::i;:::-;17757:2;17752:3;17748:12;17741:19;;17400:366;;;:::o;17772:419::-;17938:4;17976:2;17965:9;17961:18;17953:26;;18025:9;18019:4;18015:20;18011:1;18000:9;17996:17;17989:47;18053:131;18179:4;18053:131;:::i;:::-;18045:139;;17772:419;;;:::o;18197:176::-;18337:28;18333:1;18325:6;18321:14;18314:52;18197:176;:::o;18379:366::-;18521:3;18542:67;18606:2;18601:3;18542:67;:::i;:::-;18535:74;;18618:93;18707:3;18618:93;:::i;:::-;18736:2;18731:3;18727:12;18720:19;;18379:366;;;:::o;18751:419::-;18917:4;18955:2;18944:9;18940:18;18932:26;;19004:9;18998:4;18994:20;18990:1;18979:9;18975:17;18968:47;19032:131;19158:4;19032:131;:::i;:::-;19024:139;;18751:419;;;:::o;19176:224::-;19316:34;19312:1;19304:6;19300:14;19293:58;19385:7;19380:2;19372:6;19368:15;19361:32;19176:224;:::o;19406:366::-;19548:3;19569:67;19633:2;19628:3;19569:67;:::i;:::-;19562:74;;19645:93;19734:3;19645:93;:::i;:::-;19763:2;19758:3;19754:12;19747:19;;19406:366;;;:::o;19778:419::-;19944:4;19982:2;19971:9;19967:18;19959:26;;20031:9;20025:4;20021:20;20017:1;20006:9;20002:17;19995:47;20059:131;20185:4;20059:131;:::i;:::-;20051:139;;19778:419;;;:::o;20203:222::-;20343:34;20339:1;20331:6;20327:14;20320:58;20412:5;20407:2;20399:6;20395:15;20388:30;20203:222;:::o;20431:366::-;20573:3;20594:67;20658:2;20653:3;20594:67;:::i;:::-;20587:74;;20670:93;20759:3;20670:93;:::i;:::-;20788:2;20783:3;20779:12;20772:19;;20431:366;;;:::o;20803:419::-;20969:4;21007:2;20996:9;20992:18;20984:26;;21056:9;21050:4;21046:20;21042:1;21031:9;21027:17;21020:47;21084:131;21210:4;21084:131;:::i;:::-;21076:139;;20803:419;;;:::o;21228:180::-;21368:32;21364:1;21356:6;21352:14;21345:56;21228:180;:::o;21414:366::-;21556:3;21577:67;21641:2;21636:3;21577:67;:::i;:::-;21570:74;;21653:93;21742:3;21653:93;:::i;:::-;21771:2;21766:3;21762:12;21755:19;;21414:366;;;:::o;21786:419::-;21952:4;21990:2;21979:9;21975:18;21967:26;;22039:9;22033:4;22029:20;22025:1;22014:9;22010:17;22003:47;22067:131;22193:4;22067:131;:::i;:::-;22059:139;;21786:419;;;:::o

Swarm Source

ipfs://6c5e063a648630bc5d118c40d2300a4c1600c46b88b931b3d6005024a6989285

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.