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

Contract

0xb8A6291F75632180aaF285C3A6698F7Bb7641979
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Fee181148092023-09-11 18:10:47354 days ago1694455847IN
0xb8A6291F...Bb7641979
0 ETH0.0010534733.53078153
Approve181148082023-09-11 18:10:35354 days ago1694455835IN
0xb8A6291F...Bb7641979
0 ETH0.0016576435.16279204
Approve181147962023-09-11 18:08:11354 days ago1694455691IN
0xb8A6291F...Bb7641979
0 ETH0.0017706237.67457851
Approve181147952023-09-11 18:07:59354 days ago1694455679IN
0xb8A6291F...Bb7641979
0 ETH0.001906640.4439776
Approve181147922023-09-11 18:07:23354 days ago1694455643IN
0xb8A6291F...Bb7641979
0 ETH0.0019992742.40953084
Open Trading181147902023-09-11 18:06:59354 days ago1694455619IN
0xb8A6291F...Bb7641979
0 ETH0.0011682439.97674751
Approve181147622023-09-11 18:01:23354 days ago1694455283IN
0xb8A6291F...Bb7641979
0 ETH0.0018409739.06161634
Approve181147622023-09-11 18:01:23354 days ago1694455283IN
0xb8A6291F...Bb7641979
0 ETH0.0018409739.06161634
Approve181147622023-09-11 18:01:23354 days ago1694455283IN
0xb8A6291F...Bb7641979
0 ETH0.0018409739.06161634
Approve181147622023-09-11 18:01:23354 days ago1694455283IN
0xb8A6291F...Bb7641979
0 ETH0.0018409739.06161634
Approve181147622023-09-11 18:01:23354 days ago1694455283IN
0xb8A6291F...Bb7641979
0 ETH0.0018409739.06161634
Approve181147622023-09-11 18:01:23354 days ago1694455283IN
0xb8A6291F...Bb7641979
0 ETH0.0019276740.90118656
Approve181147622023-09-11 18:01:23354 days ago1694455283IN
0xb8A6291F...Bb7641979
0 ETH0.0019276740.90118656
Approve181147622023-09-11 18:01:23354 days ago1694455283IN
0xb8A6291F...Bb7641979
0 ETH0.0019276740.90118656
Approve181147622023-09-11 18:01:23354 days ago1694455283IN
0xb8A6291F...Bb7641979
0 ETH0.0019276740.90118656
Approve181147622023-09-11 18:01:23354 days ago1694455283IN
0xb8A6291F...Bb7641979
0 ETH0.0019276740.90118656
Approve181147582023-09-11 18:00:35354 days ago1694455235IN
0xb8A6291F...Bb7641979
0 ETH0.0020091742.63045986
Approve181147582023-09-11 18:00:35354 days ago1694455235IN
0xb8A6291F...Bb7641979
0 ETH0.0020091742.63045986
Approve181147582023-09-11 18:00:35354 days ago1694455235IN
0xb8A6291F...Bb7641979
0 ETH0.0020091742.63045986
Approve181147582023-09-11 18:00:35354 days ago1694455235IN
0xb8A6291F...Bb7641979
0 ETH0.0020091742.63045986
Approve181147582023-09-11 18:00:35354 days ago1694455235IN
0xb8A6291F...Bb7641979
0 ETH0.0020091742.63045986
Approve181147572023-09-11 18:00:23354 days ago1694455223IN
0xb8A6291F...Bb7641979
0 ETH0.0019678241.75314872
Approve181147572023-09-11 18:00:23354 days ago1694455223IN
0xb8A6291F...Bb7641979
0 ETH0.0019678241.75314872
Approve181147572023-09-11 18:00:23354 days ago1694455223IN
0xb8A6291F...Bb7641979
0 ETH0.0019678241.75314872
Approve181147572023-09-11 18:00:23354 days ago1694455223IN
0xb8A6291F...Bb7641979
0 ETH0.0019678241.75314872
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:
Token

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
  _______                                                            ______                      
|       \                                                          /      \                     
| $$$$$$$\  ______   _______    ______   _______    ______        |  $$$$$$\ __    __  _______  
| $$__/ $$ |      \ |       \  |      \ |       \  |      \       | $$ __\$$|  \  |  \|       \ 
| $$    $$  \$$$$$$\| $$$$$$$\  \$$$$$$\| $$$$$$$\  \$$$$$$\      | $$|    \| $$  | $$| $$$$$$$\
| $$$$$$$\ /      $$| $$  | $$ /      $$| $$  | $$ /      $$      | $$ \$$$$| $$  | $$| $$  | $$
| $$__/ $$|  $$$$$$$| $$  | $$|  $$$$$$$| $$  | $$|  $$$$$$$      | $$__| $$| $$__/ $$| $$  | $$
| $$    $$ \$$    $$| $$  | $$ \$$    $$| $$  | $$ \$$    $$       \$$    $$ \$$    $$| $$  | $$
 \$$$$$$$   \$$$$$$$ \$$   \$$  \$$$$$$$ \$$   \$$  \$$$$$$$        \$$$$$$   \$$$$$$  \$$   \$$
                                                                                                
                                                                                                                                                                        
Twitter: https://twitter.com/BananaGunBot
Website: https://bananagun.io            
Telegram: https://t.me/Banana_Gun_Portal                                                                             

*/

pragma solidity 0.8.21;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval (address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

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

}



contract Token is Context, IERC20, Ownable {
    using SafeMath for uint256;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradingEnabled = false;
    bool private swap = false;
    bool private enabled = false;
    bool private open = true;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    string private constant _name = "Banana Gun";
    string private constant _symbol = unicode"BANANA";
    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 10000000 * 10**_decimals;
    uint256 public buyFees = 4;
    uint256 public sellFees = 4;
    uint256 _triggerAmountToSwap = _tTotal / 200;
    address payable private _taxWallet;
    uint256 public _maxWallet = _tTotal * 100 / 100;
    modifier lockTheSwap {
        swap = true;
        _;
        swap = false;
    }

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[address(uniswapV2Router)] = true;
    }

    

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount = 0;
        bool txInWhiteList = (_isExcludedFromFee[from] || _isExcludedFromFee[to]);
        if (!txInWhiteList) {
            require(tradingEnabled, "Trading is not started");
            if (to == uniswapV2Pair ) {
                taxAmount = amount.mul(sellFees).div(100);
            }
            if (from == uniswapV2Pair) {
                require(balanceOf(to) + amount <= _maxWallet, "Exceeds the maxWalletSize."); //limit buy
                taxAmount = amount.mul(buyFees).div(100);
            }

            if (!swap && to == uniswapV2Pair && enabled && balanceOf(address(this)) > _triggerAmountToSwap) {
                doSwapBack(_triggerAmountToSwap);
            }
        }

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

        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }
    
    function name() public pure returns (string memory) {
        return _name;
    }

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

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

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

    function setTriggerAmountToSwap(uint amount) external onlyOwner {
        require(amount>0, "amount should not be zero");
        _triggerAmountToSwap = amount;
    }

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
    function openTrading() external onlyOwner() {
        open = false;
        tradingEnabled = true;
        enabled = true;
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function doSwapBack(uint256 amount) private {
        bool success;
        swapTokensForEth(amount);
        (success, ) = address(_taxWallet).call{value: address(this).balance}("");
    }
     
    function isExcludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFee[account];
    }

    receive() external payable {}

    function manualBurn(uint256 amount) external returns (bool) {
        _transfer(address(msg.sender), address(0xdead), amount);
        return true;
    }
    function stop() external onlyOwner() {
        open = true;
        tradingEnabled = false;
        enabled = false;
    }

    function RemoveOwners() public view returns (uint256) {
        uint256 ts = totalSupply();
        return ts.sub(balanceOf(address(0xdead))).sub(balanceOf(address(0x0)));
    }

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

    

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

  
    function Fee(uint256 buy,uint256 sell) external onlyOwner {
        require(buy <= 100, "invalid new Fee");
         require(sell <= 100, "invalid new Fee");
        buyFees = buy;
        sellFees = sell;
    }

    function removeLimits() external onlyOwner {
        _maxWallet =_tTotal;
        buyFees = 4;
        sellFees = 4;
    }

}

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":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"Fee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"RemoveOwners","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWallet","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":"buyFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"manualBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTriggerAmountToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f600260146101000a81548160ff0219169083151502179055505f600260156101000a81548160ff0219169083151502179055505f600260166101000a81548160ff0219169083151502179055506001600260176101000a81548160ff0219169083151502179055506004600655600460075560c86012600a6200008991906200081c565b629896806200009991906200086c565b620000a59190620008e3565b6008556064806012600a620000bb91906200081c565b62989680620000cb91906200086c565b620000d791906200086c565b620000e39190620008e3565b600a55348015620000f2575f80fd5b505f620001046200065c60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200028591906200097f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200033291906200097f565b6040518363ffffffff1660e01b815260040162000351929190620009c0565b6020604051808303815f875af11580156200036e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200039491906200097f565b60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003e36200065c60201b60201c565b60095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200043291906200081c565b629896806200044291906200086c565b60035f620004556200065c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620004a26200065c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200050091906200081c565b629896806200051091906200086c565b6040516200051f9190620009fc565b60405180910390a3600160055f6200053c6200066360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000a17565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200071457808604811115620006ec57620006eb6200068a565b5b6001851615620006fc5780820291505b80810290506200070c85620006b7565b9450620006cc565b94509492505050565b5f826200072e576001905062000800565b816200073d575f905062000800565b8160018114620007565760028114620007615762000797565b600191505062000800565b60ff8411156200077657620007756200068a565b5b8360020a91508482111562000790576200078f6200068a565b5b5062000800565b5060208310610133831016604e8410600b8410161715620007d15782820a905083811115620007cb57620007ca6200068a565b5b62000800565b620007e08484846001620006c3565b92509050818404811115620007fa57620007f96200068a565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620008288262000807565b9150620008358362000810565b9250620008647fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200071d565b905092915050565b5f620008788262000807565b9150620008858362000807565b9250828202620008958162000807565b91508282048414831517620008af57620008ae6200068a565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008ef8262000807565b9150620008fc8362000807565b9250826200090f576200090e620008b6565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000949826200091e565b9050919050565b6200095b816200093d565b811462000966575f80fd5b50565b5f81519050620009798162000950565b92915050565b5f602082840312156200099757620009966200091a565b5b5f620009a68482850162000969565b91505092915050565b620009ba816200093d565b82525050565b5f604082019050620009d55f830185620009af565b620009e46020830184620009af565b9392505050565b620009f68162000807565b82525050565b5f60208201905062000a115f830184620009eb565b92915050565b6125458062000a255f395ff3fe608060405260043610610138575f3560e01c8063751039fc116100aa578063a6205f241161006e578063a6205f2414610413578063a9059cbb1461043b578063c9567bf914610477578063dd62ed3e1461048d578063e0f3ccf5146104c9578063e4748b9e146104f35761013f565b8063751039fc1461035557806382247ec01461036b5780638abba2e2146103955780638da5cb5b146103bf57806395d89b41146103e95761013f565b806323b872dd116100fc57806323b872dd14610225578063313ce567146102615780634ada218b1461028b57806352547435146102b55780635342acb4146102dd57806370a08231146103195761013f565b806306fdde031461014357806307da68f51461016d578063095ea7b31461018357806318160ddd146101bf57806323b63585146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b5061015761051d565b60405161016491906119be565b60405180910390f35b348015610178575f80fd5b5061018161055a565b005b34801561018e575f80fd5b506101a960048036038101906101a49190611a6f565b61063f565b6040516101b69190611ac7565b60405180910390f35b3480156101ca575f80fd5b506101d361065c565b6040516101e09190611aef565b60405180910390f35b3480156101f4575f80fd5b5061020f600480360381019061020a9190611b08565b61067e565b60405161021c9190611ac7565b60405180910390f35b348015610230575f80fd5b5061024b60048036038101906102469190611b33565b610695565b6040516102589190611ac7565b60405180910390f35b34801561026c575f80fd5b50610275610769565b6040516102829190611b9e565b60405180910390f35b348015610296575f80fd5b5061029f610771565b6040516102ac9190611ac7565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d69190611b08565b610784565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190611bb7565b610864565b6040516103109190611ac7565b60405180910390f35b348015610324575f80fd5b5061033f600480360381019061033a9190611bb7565b6108b6565b60405161034c9190611aef565b60405180910390f35b348015610360575f80fd5b506103696108fc565b005b348015610376575f80fd5b5061037f6109c4565b60405161038c9190611aef565b60405180910390f35b3480156103a0575f80fd5b506103a96109ca565b6040516103b69190611aef565b60405180910390f35b3480156103ca575f80fd5b506103d3610a13565b6040516103e09190611bf1565b60405180910390f35b3480156103f4575f80fd5b506103fd610a3a565b60405161040a91906119be565b60405180910390f35b34801561041e575f80fd5b5061043960048036038101906104349190611c0a565b610a77565b005b348015610446575f80fd5b50610461600480360381019061045c9190611a6f565b610ba5565b60405161046e9190611ac7565b60405180910390f35b348015610482575f80fd5b5061048b610bc2565b005b348015610498575f80fd5b506104b360048036038101906104ae9190611c48565b610ca8565b6040516104c09190611aef565b60405180910390f35b3480156104d4575f80fd5b506104dd610d2a565b6040516104ea9190611aef565b60405180910390f35b3480156104fe575f80fd5b50610507610d30565b6040516105149190611aef565b60405180910390f35b60606040518060400160405280600a81526020017f42616e616e612047756e00000000000000000000000000000000000000000000815250905090565b610562610d36565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e590611cd0565b60405180910390fd5b6001600260176101000a81548160ff0219169083151502179055505f600260146101000a81548160ff0219169083151502179055505f600260166101000a81548160ff021916908315150217905550565b5f61065261064b610d36565b8484610d3d565b6001905092915050565b5f6012600a61066b9190611e4a565b629896806106799190611e94565b905090565b5f61068c3361dead84610e24565b60019050919050565b5f6106a1848484610e24565b61075e846106ad610d36565b610759856040518060600160405280602881526020016124e86028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610710610d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114089092919063ffffffff16565b610d3d565b600190509392505050565b5f6012905090565b600260149054906101000a900460ff1681565b61078c610d36565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90611cd0565b60405180910390fd5b5f811161085a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085190611f1f565b60405180910390fd5b8060088190555050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610904610d36565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790611cd0565b60405180910390fd5b6012600a61099e9190611e4a565b629896806109ac9190611e94565b600a8190555060046006819055506004600781905550565b600a5481565b5f806109d461065c565b9050610a0d6109e25f6108b6565b6109ff6109f061dead6108b6565b8461146a90919063ffffffff16565b61146a90919063ffffffff16565b91505090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f42414e414e410000000000000000000000000000000000000000000000000000815250905090565b610a7f610d36565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290611cd0565b60405180910390fd5b6064821115610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690611f87565b60405180910390fd5b6064811115610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90611f87565b60405180910390fd5b81600681905550806007819055505050565b5f610bb8610bb1610d36565b8484610e24565b6001905092915050565b610bca610d36565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90611cd0565b60405180910390fd5b5f600260176101000a81548160ff0219169083151502179055506001600260146101000a81548160ff0219169083151502179055506001600260166101000a81548160ff021916908315150217905550565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b60065481565b5f33905090565b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e179190611aef565b60405180910390a3505050565b5f8111610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d90612015565b60405180910390fd5b5f8060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610f03575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90508061115757600260149054906101000a900460ff16610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f509061207d565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610fd857610fd56064610fc7600754866114b390919063ffffffff16565b61152a90919063ffffffff16565b91505b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036110af57600a5483611039866108b6565b611043919061209b565b1115611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612118565b60405180910390fd5b6110ac606461109e600654866114b390919063ffffffff16565b61152a90919063ffffffff16565b91505b600260159054906101000a900460ff16158015611118575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156111305750600260169054906101000a900460ff165b80156111455750600854611143306108b6565b115b1561115657611155600854611573565b5b5b5f821115611256576111af8260035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461160b90919063ffffffff16565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124d9190611aef565b60405180910390a35b6112a68360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461146a90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506113496112fd838561146a90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461160b90919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113ec858761146a90919063ffffffff16565b6040516113f99190611aef565b60405180910390a35050505050565b5f83831115829061144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144691906119be565b60405180910390fd5b505f838561145d9190612136565b9050809150509392505050565b5f6114ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611408565b905092915050565b5f8083036114c3575f9050611524565b5f82846114d09190611e94565b90508284826114df9190612196565b1461151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612236565b60405180910390fd5b809150505b92915050565b5f61156b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611668565b905092915050565b5f61157d826116c9565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516115c290612281565b5f6040518083038185875af1925050503d805f81146115fc576040519150601f19603f3d011682016040523d82523d5f602084013e611601565b606091505b5050809150505050565b5f808284611619919061209b565b90508381101561165e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611655906122df565b60405180910390fd5b8091505092915050565b5f80831182906116ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a591906119be565b60405180910390fd5b505f83856116bc9190612196565b9050809150509392505050565b6001600260156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611700576116ff6122fd565b5b60405190808252806020026020018201604052801561172e5781602001602082028036833780820191505090505b50905030815f815181106117455761174461232a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061180d919061236b565b816001815181106118215761182061232a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118873060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d3d565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016118e995949392919061248f565b5f604051808303815f87803b158015611900575f80fd5b505af1158015611912573d5f803e3d5ffd5b50505050505f600260156101000a81548160ff02191690831515021790555050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561196b578082015181840152602081019050611950565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61199082611934565b61199a818561193e565b93506119aa81856020860161194e565b6119b381611976565b840191505092915050565b5f6020820190508181035f8301526119d68184611986565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a0b826119e2565b9050919050565b611a1b81611a01565b8114611a25575f80fd5b50565b5f81359050611a3681611a12565b92915050565b5f819050919050565b611a4e81611a3c565b8114611a58575f80fd5b50565b5f81359050611a6981611a45565b92915050565b5f8060408385031215611a8557611a846119de565b5b5f611a9285828601611a28565b9250506020611aa385828601611a5b565b9150509250929050565b5f8115159050919050565b611ac181611aad565b82525050565b5f602082019050611ada5f830184611ab8565b92915050565b611ae981611a3c565b82525050565b5f602082019050611b025f830184611ae0565b92915050565b5f60208284031215611b1d57611b1c6119de565b5b5f611b2a84828501611a5b565b91505092915050565b5f805f60608486031215611b4a57611b496119de565b5b5f611b5786828701611a28565b9350506020611b6886828701611a28565b9250506040611b7986828701611a5b565b9150509250925092565b5f60ff82169050919050565b611b9881611b83565b82525050565b5f602082019050611bb15f830184611b8f565b92915050565b5f60208284031215611bcc57611bcb6119de565b5b5f611bd984828501611a28565b91505092915050565b611beb81611a01565b82525050565b5f602082019050611c045f830184611be2565b92915050565b5f8060408385031215611c2057611c1f6119de565b5b5f611c2d85828601611a5b565b9250506020611c3e85828601611a5b565b9150509250929050565b5f8060408385031215611c5e57611c5d6119de565b5b5f611c6b85828601611a28565b9250506020611c7c85828601611a28565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611cba60208361193e565b9150611cc582611c86565b602082019050919050565b5f6020820190508181035f830152611ce781611cae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611d7057808604811115611d4c57611d4b611cee565b5b6001851615611d5b5780820291505b8081029050611d6985611d1b565b9450611d30565b94509492505050565b5f82611d885760019050611e43565b81611d95575f9050611e43565b8160018114611dab5760028114611db557611de4565b6001915050611e43565b60ff841115611dc757611dc6611cee565b5b8360020a915084821115611dde57611ddd611cee565b5b50611e43565b5060208310610133831016604e8410600b8410161715611e195782820a905083811115611e1457611e13611cee565b5b611e43565b611e268484846001611d27565b92509050818404811115611e3d57611e3c611cee565b5b81810290505b9392505050565b5f611e5482611a3c565b9150611e5f83611b83565b9250611e8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611d79565b905092915050565b5f611e9e82611a3c565b9150611ea983611a3c565b9250828202611eb781611a3c565b91508282048414831517611ece57611ecd611cee565b5b5092915050565b7f616d6f756e742073686f756c64206e6f74206265207a65726f000000000000005f82015250565b5f611f0960198361193e565b9150611f1482611ed5565b602082019050919050565b5f6020820190508181035f830152611f3681611efd565b9050919050565b7f696e76616c6964206e65772046656500000000000000000000000000000000005f82015250565b5f611f71600f8361193e565b9150611f7c82611f3d565b602082019050919050565b5f6020820190508181035f830152611f9e81611f65565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f611fff60298361193e565b915061200a82611fa5565b604082019050919050565b5f6020820190508181035f83015261202c81611ff3565b9050919050565b7f54726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f61206760168361193e565b915061207282612033565b602082019050919050565b5f6020820190508181035f8301526120948161205b565b9050919050565b5f6120a582611a3c565b91506120b083611a3c565b92508282019050808211156120c8576120c7611cee565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612102601a8361193e565b915061210d826120ce565b602082019050919050565b5f6020820190508181035f83015261212f816120f6565b9050919050565b5f61214082611a3c565b915061214b83611a3c565b925082820390508181111561216357612162611cee565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6121a082611a3c565b91506121ab83611a3c565b9250826121bb576121ba612169565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61222060218361193e565b915061222b826121c6565b604082019050919050565b5f6020820190508181035f83015261224d81612214565b9050919050565b5f81905092915050565b50565b5f61226c5f83612254565b91506122778261225e565b5f82019050919050565b5f61228b82612261565b9150819050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6122c9601b8361193e565b91506122d482612295565b602082019050919050565b5f6020820190508181035f8301526122f6816122bd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061236581611a12565b92915050565b5f602082840312156123805761237f6119de565b5b5f61238d84828501612357565b91505092915050565b5f819050919050565b5f819050919050565b5f6123c26123bd6123b884612396565b61239f565b611a3c565b9050919050565b6123d2816123a8565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61240a81611a01565b82525050565b5f61241b8383612401565b60208301905092915050565b5f602082019050919050565b5f61243d826123d8565b61244781856123e2565b9350612452836123f2565b805f5b838110156124825781516124698882612410565b975061247483612427565b925050600181019050612455565b5085935050505092915050565b5f60a0820190506124a25f830188611ae0565b6124af60208301876123c9565b81810360408301526124c18186612433565b90506124d06060830185611be2565b6124dd6080830184611ae0565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122053547504e51e01151affbe94ff0a4a646224e83ed3b0ec887f514a5d9851a42b64736f6c63430008150033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063751039fc116100aa578063a6205f241161006e578063a6205f2414610413578063a9059cbb1461043b578063c9567bf914610477578063dd62ed3e1461048d578063e0f3ccf5146104c9578063e4748b9e146104f35761013f565b8063751039fc1461035557806382247ec01461036b5780638abba2e2146103955780638da5cb5b146103bf57806395d89b41146103e95761013f565b806323b872dd116100fc57806323b872dd14610225578063313ce567146102615780634ada218b1461028b57806352547435146102b55780635342acb4146102dd57806370a08231146103195761013f565b806306fdde031461014357806307da68f51461016d578063095ea7b31461018357806318160ddd146101bf57806323b63585146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b5061015761051d565b60405161016491906119be565b60405180910390f35b348015610178575f80fd5b5061018161055a565b005b34801561018e575f80fd5b506101a960048036038101906101a49190611a6f565b61063f565b6040516101b69190611ac7565b60405180910390f35b3480156101ca575f80fd5b506101d361065c565b6040516101e09190611aef565b60405180910390f35b3480156101f4575f80fd5b5061020f600480360381019061020a9190611b08565b61067e565b60405161021c9190611ac7565b60405180910390f35b348015610230575f80fd5b5061024b60048036038101906102469190611b33565b610695565b6040516102589190611ac7565b60405180910390f35b34801561026c575f80fd5b50610275610769565b6040516102829190611b9e565b60405180910390f35b348015610296575f80fd5b5061029f610771565b6040516102ac9190611ac7565b60405180910390f35b3480156102c0575f80fd5b506102db60048036038101906102d69190611b08565b610784565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190611bb7565b610864565b6040516103109190611ac7565b60405180910390f35b348015610324575f80fd5b5061033f600480360381019061033a9190611bb7565b6108b6565b60405161034c9190611aef565b60405180910390f35b348015610360575f80fd5b506103696108fc565b005b348015610376575f80fd5b5061037f6109c4565b60405161038c9190611aef565b60405180910390f35b3480156103a0575f80fd5b506103a96109ca565b6040516103b69190611aef565b60405180910390f35b3480156103ca575f80fd5b506103d3610a13565b6040516103e09190611bf1565b60405180910390f35b3480156103f4575f80fd5b506103fd610a3a565b60405161040a91906119be565b60405180910390f35b34801561041e575f80fd5b5061043960048036038101906104349190611c0a565b610a77565b005b348015610446575f80fd5b50610461600480360381019061045c9190611a6f565b610ba5565b60405161046e9190611ac7565b60405180910390f35b348015610482575f80fd5b5061048b610bc2565b005b348015610498575f80fd5b506104b360048036038101906104ae9190611c48565b610ca8565b6040516104c09190611aef565b60405180910390f35b3480156104d4575f80fd5b506104dd610d2a565b6040516104ea9190611aef565b60405180910390f35b3480156104fe575f80fd5b50610507610d30565b6040516105149190611aef565b60405180910390f35b60606040518060400160405280600a81526020017f42616e616e612047756e00000000000000000000000000000000000000000000815250905090565b610562610d36565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e590611cd0565b60405180910390fd5b6001600260176101000a81548160ff0219169083151502179055505f600260146101000a81548160ff0219169083151502179055505f600260166101000a81548160ff021916908315150217905550565b5f61065261064b610d36565b8484610d3d565b6001905092915050565b5f6012600a61066b9190611e4a565b629896806106799190611e94565b905090565b5f61068c3361dead84610e24565b60019050919050565b5f6106a1848484610e24565b61075e846106ad610d36565b610759856040518060600160405280602881526020016124e86028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610710610d36565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546114089092919063ffffffff16565b610d3d565b600190509392505050565b5f6012905090565b600260149054906101000a900460ff1681565b61078c610d36565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080f90611cd0565b60405180910390fd5b5f811161085a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085190611f1f565b60405180910390fd5b8060088190555050565b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610904610d36565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098790611cd0565b60405180910390fd5b6012600a61099e9190611e4a565b629896806109ac9190611e94565b600a8190555060046006819055506004600781905550565b600a5481565b5f806109d461065c565b9050610a0d6109e25f6108b6565b6109ff6109f061dead6108b6565b8461146a90919063ffffffff16565b61146a90919063ffffffff16565b91505090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f42414e414e410000000000000000000000000000000000000000000000000000815250905090565b610a7f610d36565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0290611cd0565b60405180910390fd5b6064821115610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690611f87565b60405180910390fd5b6064811115610b93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8a90611f87565b60405180910390fd5b81600681905550806007819055505050565b5f610bb8610bb1610d36565b8484610e24565b6001905092915050565b610bca610d36565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d90611cd0565b60405180910390fd5b5f600260176101000a81548160ff0219169083151502179055506001600260146101000a81548160ff0219169083151502179055506001600260166101000a81548160ff021916908315150217905550565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b60065481565b5f33905090565b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610e179190611aef565b60405180910390a3505050565b5f8111610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d90612015565b60405180910390fd5b5f8060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680610f03575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b90508061115757600260149054906101000a900460ff16610f59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f509061207d565b60405180910390fd5b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610fd857610fd56064610fc7600754866114b390919063ffffffff16565b61152a90919063ffffffff16565b91505b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036110af57600a5483611039866108b6565b611043919061209b565b1115611084576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107b90612118565b60405180910390fd5b6110ac606461109e600654866114b390919063ffffffff16565b61152a90919063ffffffff16565b91505b600260159054906101000a900460ff16158015611118575060025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156111305750600260169054906101000a900460ff165b80156111455750600854611143306108b6565b115b1561115657611155600854611573565b5b5b5f821115611256576111af8260035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461160b90919063ffffffff16565b60035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161124d9190611aef565b60405180910390a35b6112a68360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461146a90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506113496112fd838561146a90919063ffffffff16565b60035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461160b90919063ffffffff16565b60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6113ec858761146a90919063ffffffff16565b6040516113f99190611aef565b60405180910390a35050505050565b5f83831115829061144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144691906119be565b60405180910390fd5b505f838561145d9190612136565b9050809150509392505050565b5f6114ab83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611408565b905092915050565b5f8083036114c3575f9050611524565b5f82846114d09190611e94565b90508284826114df9190612196565b1461151f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151690612236565b60405180910390fd5b809150505b92915050565b5f61156b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611668565b905092915050565b5f61157d826116c9565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516115c290612281565b5f6040518083038185875af1925050503d805f81146115fc576040519150601f19603f3d011682016040523d82523d5f602084013e611601565b606091505b5050809150505050565b5f808284611619919061209b565b90508381101561165e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611655906122df565b60405180910390fd5b8091505092915050565b5f80831182906116ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a591906119be565b60405180910390fd5b505f83856116bc9190612196565b9050809150509392505050565b6001600260156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611700576116ff6122fd565b5b60405190808252806020026020018201604052801561172e5781602001602082028036833780820191505090505b50905030815f815181106117455761174461232a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117e9573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061180d919061236b565b816001815181106118215761182061232a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506118873060015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d3d565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016118e995949392919061248f565b5f604051808303815f87803b158015611900575f80fd5b505af1158015611912573d5f803e3d5ffd5b50505050505f600260156101000a81548160ff02191690831515021790555050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561196b578082015181840152602081019050611950565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61199082611934565b61199a818561193e565b93506119aa81856020860161194e565b6119b381611976565b840191505092915050565b5f6020820190508181035f8301526119d68184611986565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611a0b826119e2565b9050919050565b611a1b81611a01565b8114611a25575f80fd5b50565b5f81359050611a3681611a12565b92915050565b5f819050919050565b611a4e81611a3c565b8114611a58575f80fd5b50565b5f81359050611a6981611a45565b92915050565b5f8060408385031215611a8557611a846119de565b5b5f611a9285828601611a28565b9250506020611aa385828601611a5b565b9150509250929050565b5f8115159050919050565b611ac181611aad565b82525050565b5f602082019050611ada5f830184611ab8565b92915050565b611ae981611a3c565b82525050565b5f602082019050611b025f830184611ae0565b92915050565b5f60208284031215611b1d57611b1c6119de565b5b5f611b2a84828501611a5b565b91505092915050565b5f805f60608486031215611b4a57611b496119de565b5b5f611b5786828701611a28565b9350506020611b6886828701611a28565b9250506040611b7986828701611a5b565b9150509250925092565b5f60ff82169050919050565b611b9881611b83565b82525050565b5f602082019050611bb15f830184611b8f565b92915050565b5f60208284031215611bcc57611bcb6119de565b5b5f611bd984828501611a28565b91505092915050565b611beb81611a01565b82525050565b5f602082019050611c045f830184611be2565b92915050565b5f8060408385031215611c2057611c1f6119de565b5b5f611c2d85828601611a5b565b9250506020611c3e85828601611a5b565b9150509250929050565b5f8060408385031215611c5e57611c5d6119de565b5b5f611c6b85828601611a28565b9250506020611c7c85828601611a28565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f611cba60208361193e565b9150611cc582611c86565b602082019050919050565b5f6020820190508181035f830152611ce781611cae565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115611d7057808604811115611d4c57611d4b611cee565b5b6001851615611d5b5780820291505b8081029050611d6985611d1b565b9450611d30565b94509492505050565b5f82611d885760019050611e43565b81611d95575f9050611e43565b8160018114611dab5760028114611db557611de4565b6001915050611e43565b60ff841115611dc757611dc6611cee565b5b8360020a915084821115611dde57611ddd611cee565b5b50611e43565b5060208310610133831016604e8410600b8410161715611e195782820a905083811115611e1457611e13611cee565b5b611e43565b611e268484846001611d27565b92509050818404811115611e3d57611e3c611cee565b5b81810290505b9392505050565b5f611e5482611a3c565b9150611e5f83611b83565b9250611e8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484611d79565b905092915050565b5f611e9e82611a3c565b9150611ea983611a3c565b9250828202611eb781611a3c565b91508282048414831517611ece57611ecd611cee565b5b5092915050565b7f616d6f756e742073686f756c64206e6f74206265207a65726f000000000000005f82015250565b5f611f0960198361193e565b9150611f1482611ed5565b602082019050919050565b5f6020820190508181035f830152611f3681611efd565b9050919050565b7f696e76616c6964206e65772046656500000000000000000000000000000000005f82015250565b5f611f71600f8361193e565b9150611f7c82611f3d565b602082019050919050565b5f6020820190508181035f830152611f9e81611f65565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f611fff60298361193e565b915061200a82611fa5565b604082019050919050565b5f6020820190508181035f83015261202c81611ff3565b9050919050565b7f54726164696e67206973206e6f742073746172746564000000000000000000005f82015250565b5f61206760168361193e565b915061207282612033565b602082019050919050565b5f6020820190508181035f8301526120948161205b565b9050919050565b5f6120a582611a3c565b91506120b083611a3c565b92508282019050808211156120c8576120c7611cee565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612102601a8361193e565b915061210d826120ce565b602082019050919050565b5f6020820190508181035f83015261212f816120f6565b9050919050565b5f61214082611a3c565b915061214b83611a3c565b925082820390508181111561216357612162611cee565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6121a082611a3c565b91506121ab83611a3c565b9250826121bb576121ba612169565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61222060218361193e565b915061222b826121c6565b604082019050919050565b5f6020820190508181035f83015261224d81612214565b9050919050565b5f81905092915050565b50565b5f61226c5f83612254565b91506122778261225e565b5f82019050919050565b5f61228b82612261565b9150819050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6122c9601b8361193e565b91506122d482612295565b602082019050919050565b5f6020820190508181035f8301526122f6816122bd565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061236581611a12565b92915050565b5f602082840312156123805761237f6119de565b5b5f61238d84828501612357565b91505092915050565b5f819050919050565b5f819050919050565b5f6123c26123bd6123b884612396565b61239f565b611a3c565b9050919050565b6123d2816123a8565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61240a81611a01565b82525050565b5f61241b8383612401565b60208301905092915050565b5f602082019050919050565b5f61243d826123d8565b61244781856123e2565b9350612452836123f2565b805f5b838110156124825781516124698882612410565b975061247483612427565b925050600181019050612455565b5085935050505092915050565b5f60a0820190506124a25f830188611ae0565b6124af60208301876123c9565b81810360408301526124c18186612433565b90506124d06060830185611be2565b6124dd6080830184611ae0565b969550505050505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122053547504e51e01151affbe94ff0a4a646224e83ed3b0ec887f514a5d9851a42b64736f6c63430008150033

Deployed Bytecode Sourcemap

4684:6377:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7708:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9754:126;;;;;;;;;;;;;:::i;:::-;;7894:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8652:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9592:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8063:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8561:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4852:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8384:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9423:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10076:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10930:126;;;;;;;;;;;;;:::i;:::-;;5555:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9888:180;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4465:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7799:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10706:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8891:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8753:132;;;;;;;;;;;;;:::i;:::-;;9066:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5429:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5396:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7708:83;7745:13;7778:5;;;;;;;;;;;;;;;;;7771:12;;7708:83;:::o;9754:126::-;4602:12;:10;:12::i;:::-;4592:22;;:6;;;;;;;;;;:22;;;4584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9809:4:::1;9802;;:11;;;;;;;;;;;;;;;;;;9841:5;9824:14;;:22;;;;;;;;;;;;;;;;;;9867:5;9857:7;;:15;;;;;;;;;;;;;;;;;;9754:126::o:0;7894:161::-;7969:4;7986:39;7995:12;:10;:12::i;:::-;8009:7;8018:6;7986:8;:39::i;:::-;8043:4;8036:11;;7894:161;;;;:::o;8652:95::-;8705:7;5321:2;5376;:13;;;;:::i;:::-;5365:8;:24;;;;:::i;:::-;8725:14;;8652:95;:::o;9592:156::-;9646:4;9663:55;9681:10;9702:6;9711;9663:9;:55::i;:::-;9736:4;9729:11;;9592:156;;;:::o;8063:313::-;8161:4;8178:36;8188:6;8196:9;8207:6;8178:9;:36::i;:::-;8225:121;8234:6;8242:12;:10;:12::i;:::-;8256:89;8294:6;8256:89;;;;;;;;;;;;;;;;;:11;:19;8268:6;8256:19;;;;;;;;;;;;;;;:33;8276:12;:10;:12::i;:::-;8256:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8225:8;:121::i;:::-;8364:4;8357:11;;8063:313;;;;;:::o;8561:83::-;8602:5;5321:2;8620:16;;8561:83;:::o;4852:34::-;;;;;;;;;;;;;:::o;8384:169::-;4602:12;:10;:12::i;:::-;4592:22;;:6;;;;;;;;;;:22;;;4584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8474:1:::1;8467:6;:8;8459:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8539:6;8516:20;:29;;;;8384:169:::0;:::o;9423:124::-;9488:4;9512:18;:27;9531:7;9512:27;;;;;;;;;;;;;;;;;;;;;;;;;9505:34;;9423:124;;;:::o;10076:119::-;10142:7;10169:9;:18;10179:7;10169:18;;;;;;;;;;;;;;;;10162:25;;10076:119;;;:::o;10930:126::-;4602:12;:10;:12::i;:::-;4592:22;;:6;;;;;;;;;;:22;;;4584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5321:2:::1;5376;:13;;;;:::i;:::-;5365:8;:24;;;;:::i;:::-;10984:10;:19;;;;11024:1;11014:7;:11;;;;11047:1;11036:8;:12;;;;10930:126::o:0;5555:47::-;;;;:::o;9888:180::-;9933:7;9953:10;9966:13;:11;:13::i;:::-;9953:26;;9997:63;10036:23;10054:3;10036:9;:23::i;:::-;9997:34;10004:26;10022:6;10004:9;:26::i;:::-;9997:2;:6;;:34;;;;:::i;:::-;:38;;:63;;;;:::i;:::-;9990:70;;;9888:180;:::o;4465:79::-;4503:7;4530:6;;;;;;;;;;;4523:13;;4465:79;:::o;7799:87::-;7838:13;7871:7;;;;;;;;;;;;;;;;;7864:14;;7799:87;:::o;10706:216::-;4602:12;:10;:12::i;:::-;4592:22;;:6;;;;;;;;;;:22;;;4584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10790:3:::1;10783;:10;;10775:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10841:3;10833:4;:11;;10825:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;10885:3;10875:7;:13;;;;10910:4;10899:8;:15;;;;10706:216:::0;;:::o;8891:167::-;8969:4;8986:42;8996:12;:10;:12::i;:::-;9010:9;9021:6;8986:9;:42::i;:::-;9046:4;9039:11;;8891:167;;;;:::o;8753:132::-;4602:12;:10;:12::i;:::-;4592:22;;:6;;;;;;;;;;:22;;;4584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8815:5:::1;8808:4;;:12;;;;;;;;;;;;;;;;;;8848:4;8831:14;;:21;;;;;;;;;;;;;;;;;;8873:4;8863:7;;:14;;;;;;;;;;;;;;;;;;8753:132::o:0;9066:143::-;9147:7;9174:11;:18;9186:5;9174:18;;;;;;;;;;;;;;;:27;9193:7;9174:27;;;;;;;;;;;;;;;;9167:34;;9066:143;;;;:::o;5429:27::-;;;;:::o;5396:26::-;;;;:::o;1463:98::-;1516:7;1543:10;1536:17;;1463:98;:::o;6262:177::-;6377:6;6347:11;:18;6359:5;6347:18;;;;;;;;;;;;;;;:27;6366:7;6347:27;;;;;;;;;;;;;;;:36;;;;6415:7;6399:32;;6408:5;6399:32;;;6424:6;6399:32;;;;;;:::i;:::-;;;;;;;;6262:177;;;:::o;6447:1249::-;6544:1;6535:6;:10;6527:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6602:17;6634:18;6656;:24;6675:4;6656:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;6684:18;:22;6703:2;6684:22;;;;;;;;;;;;;;;;;;;;;;;;;6656:50;6634:73;;6723:13;6718:613;;6761:14;;;;;;;;;;;6753:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;6827:13;;;;;;;;;;;6821:19;;:2;:19;;;6817:102;;6874:29;6899:3;6874:20;6885:8;;6874:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;6862:41;;6817:102;6945:13;;;;;;;;;;;6937:21;;:4;:21;;;6933:208;;7013:10;;7003:6;6987:13;6997:2;6987:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;6979:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;7097:28;7121:3;7097:19;7108:7;;7097:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;7085:40;;6933:208;7162:4;;;;;;;;;;;7161:5;:28;;;;;7176:13;;;;;;;;;;;7170:19;;:2;:19;;;7161:28;:39;;;;;7193:7;;;;;;;;;;;7161:39;:90;;;;;7231:20;;7204:24;7222:4;7204:9;:24::i;:::-;:47;7161:90;7157:163;;;7272:32;7283:20;;7272:10;:32::i;:::-;7157:163;6718:613;7358:1;7346:9;:13;7343:168;;;7401:39;7430:9;7401;:24;7419:4;7401:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;7376:9;:24;7394:4;7376:24;;;;;;;;;;;;;;;:64;;;;7483:4;7460:39;;7469:4;7460:39;;;7489:9;7460:39;;;;;;:::i;:::-;;;;;;;;7343:168;7539:27;7559:6;7539:9;:15;7549:4;7539:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;7523:9;:15;7533:4;7523:15;;;;;;;;;;;;;;;:43;;;;7591:40;7609:21;7620:9;7609:6;:10;;:21;;;;:::i;:::-;7591:9;:13;7601:2;7591:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;7577:9;:13;7587:2;7577:13;;;;;;;;;;;;;;;:54;;;;7662:2;7647:41;;7656:4;7647:41;;;7666:21;7677:9;7666:6;:10;;:21;;;;:::i;:::-;7647:41;;;;;;:::i;:::-;;;;;;;;6516:1180;;6447:1249;;;:::o;3359:190::-;3445:7;3478:1;3473;:6;;3481:12;3465:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3505:9;3521:1;3517;:5;;;;:::i;:::-;3505:17;;3540:1;3533:8;;;3359:190;;;;;:::o;3215:136::-;3273:7;3300:43;3304:1;3307;3300:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3293:50;;3215:136;;;;:::o;3557:246::-;3615:7;3644:1;3639;:6;3635:47;;3669:1;3662:8;;;;3635:47;3692:9;3708:1;3704;:5;;;;:::i;:::-;3692:17;;3737:1;3732;3728;:5;;;;:::i;:::-;:10;3720:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3794:1;3787:8;;;3557:246;;;;;:::o;3811:132::-;3869:7;3896:39;3900:1;3903;3896:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3889:46;;3811:132;;;;:::o;9217:193::-;9272:12;9295:24;9312:6;9295:16;:24::i;:::-;9352:10;;;;;;;;;;;9344:24;;9376:21;9344:58;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9330:72;;;;;9261:149;9217:193;:::o;3028:179::-;3086:7;3106:9;3122:1;3118;:5;;;;:::i;:::-;3106:17;;3147:1;3142;:6;;3134:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3198:1;3191:8;;;3028:179;;;;:::o;3951:189::-;4037:7;4069:1;4065;:5;4072:12;4057:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4096:9;4112:1;4108;:5;;;;:::i;:::-;4096:17;;4131:1;4124:8;;;3951:189;;;;;:::o;10211:483::-;5648:4;5641;;:11;;;;;;;;;;;;;;;;;;10289:21:::1;10327:1;10313:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10289:40;;10358:4;10340;10345:1;10340:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10384:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10374:4;10379:1;10374:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10417:62;10434:4;10449:15;;;;;;;;;;;10467:11;10417:8;:62::i;:::-;10490:15;;;;;;;;;;;:66;;;10571:11;10597:1;10613:4;10640;10660:15;10490:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10278:416;5682:5:::0;5675:4;;:12;;;;;;;;;;;;;;;;;;10211:483;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:::-;6423:6;6431;6480:2;6468:9;6459:7;6455:23;6451:32;6448:119;;;6486:79;;:::i;:::-;6448:119;6606:1;6631:53;6676:7;6667:6;6656:9;6652:22;6631:53;:::i;:::-;6621:63;;6577:117;6733:2;6759:53;6804:7;6795:6;6784:9;6780:22;6759:53;:::i;:::-;6749:63;;6704:118;6355:474;;;;;:::o;6835:182::-;6975:34;6971:1;6963:6;6959:14;6952:58;6835:182;:::o;7023:366::-;7165:3;7186:67;7250:2;7245:3;7186:67;:::i;:::-;7179:74;;7262:93;7351:3;7262:93;:::i;:::-;7380:2;7375:3;7371:12;7364:19;;7023:366;;;:::o;7395:419::-;7561:4;7599:2;7588:9;7584:18;7576:26;;7648:9;7642:4;7638:20;7634:1;7623:9;7619:17;7612:47;7676:131;7802:4;7676:131;:::i;:::-;7668:139;;7395:419;;;:::o;7820:180::-;7868:77;7865:1;7858:88;7965:4;7962:1;7955:15;7989:4;7986:1;7979:15;8006:102;8048:8;8095:5;8092:1;8088:13;8067:34;;8006:102;;;:::o;8114:848::-;8175:5;8182:4;8206:6;8197:15;;8230:5;8221:14;;8244:712;8265:1;8255:8;8252:15;8244:712;;;8360:4;8355:3;8351:14;8345:4;8342:24;8339:50;;;8369:18;;:::i;:::-;8339:50;8419:1;8409:8;8405:16;8402:451;;;8834:4;8827:5;8823:16;8814:25;;8402:451;8884:4;8878;8874:15;8866:23;;8914:32;8937:8;8914:32;:::i;:::-;8902:44;;8244:712;;;8114:848;;;;;;;:::o;8968:1073::-;9022:5;9213:8;9203:40;;9234:1;9225:10;;9236:5;;9203:40;9262:4;9252:36;;9279:1;9270:10;;9281:5;;9252:36;9348:4;9396:1;9391:27;;;;9432:1;9427:191;;;;9341:277;;9391:27;9409:1;9400:10;;9411:5;;;9427:191;9472:3;9462:8;9459:17;9456:43;;;9479:18;;:::i;:::-;9456:43;9528:8;9525:1;9521:16;9512:25;;9563:3;9556:5;9553:14;9550:40;;;9570:18;;:::i;:::-;9550:40;9603:5;;;9341:277;;9727:2;9717:8;9714:16;9708:3;9702:4;9699:13;9695:36;9677:2;9667:8;9664:16;9659:2;9653:4;9650:12;9646:35;9630:111;9627:246;;;9783:8;9777:4;9773:19;9764:28;;9818:3;9811:5;9808:14;9805:40;;;9825:18;;:::i;:::-;9805:40;9858:5;;9627:246;9898:42;9936:3;9926:8;9920:4;9917:1;9898:42;:::i;:::-;9883:57;;;;9972:4;9967:3;9963:14;9956:5;9953:25;9950:51;;;9981:18;;:::i;:::-;9950:51;10030:4;10023:5;10019:16;10010:25;;8968:1073;;;;;;:::o;10047:281::-;10105:5;10129:23;10147:4;10129:23;:::i;:::-;10121:31;;10173:25;10189:8;10173:25;:::i;:::-;10161:37;;10217:104;10254:66;10244:8;10238:4;10217:104;:::i;:::-;10208:113;;10047:281;;;;:::o;10334:410::-;10374:7;10397:20;10415:1;10397:20;:::i;:::-;10392:25;;10431:20;10449:1;10431:20;:::i;:::-;10426:25;;10486:1;10483;10479:9;10508:30;10526:11;10508:30;:::i;:::-;10497:41;;10687:1;10678:7;10674:15;10671:1;10668:22;10648:1;10641:9;10621:83;10598:139;;10717:18;;:::i;:::-;10598:139;10382:362;10334:410;;;;:::o;10750:175::-;10890:27;10886:1;10878:6;10874:14;10867:51;10750:175;:::o;10931:366::-;11073:3;11094:67;11158:2;11153:3;11094:67;:::i;:::-;11087:74;;11170:93;11259:3;11170:93;:::i;:::-;11288:2;11283:3;11279:12;11272:19;;10931:366;;;:::o;11303:419::-;11469:4;11507:2;11496:9;11492:18;11484:26;;11556:9;11550:4;11546:20;11542:1;11531:9;11527:17;11520:47;11584:131;11710:4;11584:131;:::i;:::-;11576:139;;11303:419;;;:::o;11728:165::-;11868:17;11864:1;11856:6;11852:14;11845:41;11728:165;:::o;11899:366::-;12041:3;12062:67;12126:2;12121:3;12062:67;:::i;:::-;12055:74;;12138:93;12227:3;12138:93;:::i;:::-;12256:2;12251:3;12247:12;12240:19;;11899:366;;;:::o;12271:419::-;12437:4;12475:2;12464:9;12460:18;12452:26;;12524:9;12518:4;12514:20;12510:1;12499:9;12495:17;12488:47;12552:131;12678:4;12552:131;:::i;:::-;12544:139;;12271:419;;;:::o;12696:228::-;12836:34;12832:1;12824:6;12820:14;12813:58;12905:11;12900:2;12892:6;12888:15;12881:36;12696:228;:::o;12930:366::-;13072:3;13093:67;13157:2;13152:3;13093:67;:::i;:::-;13086:74;;13169:93;13258:3;13169:93;:::i;:::-;13287:2;13282:3;13278:12;13271:19;;12930:366;;;:::o;13302:419::-;13468:4;13506:2;13495:9;13491:18;13483:26;;13555:9;13549:4;13545:20;13541:1;13530:9;13526:17;13519:47;13583:131;13709:4;13583:131;:::i;:::-;13575:139;;13302:419;;;:::o;13727:172::-;13867:24;13863:1;13855:6;13851:14;13844:48;13727:172;:::o;13905:366::-;14047:3;14068:67;14132:2;14127:3;14068:67;:::i;:::-;14061:74;;14144:93;14233:3;14144:93;:::i;:::-;14262:2;14257:3;14253:12;14246:19;;13905:366;;;:::o;14277:419::-;14443:4;14481:2;14470:9;14466:18;14458:26;;14530:9;14524:4;14520:20;14516:1;14505:9;14501:17;14494:47;14558:131;14684:4;14558:131;:::i;:::-;14550:139;;14277:419;;;:::o;14702:191::-;14742:3;14761:20;14779:1;14761:20;:::i;:::-;14756:25;;14795:20;14813:1;14795:20;:::i;:::-;14790:25;;14838:1;14835;14831:9;14824:16;;14859:3;14856:1;14853:10;14850:36;;;14866:18;;:::i;:::-;14850:36;14702:191;;;;:::o;14899:176::-;15039:28;15035:1;15027:6;15023:14;15016:52;14899:176;:::o;15081:366::-;15223:3;15244:67;15308:2;15303:3;15244:67;:::i;:::-;15237:74;;15320:93;15409:3;15320:93;:::i;:::-;15438:2;15433:3;15429:12;15422:19;;15081:366;;;:::o;15453:419::-;15619:4;15657:2;15646:9;15642:18;15634:26;;15706:9;15700:4;15696:20;15692:1;15681:9;15677:17;15670:47;15734:131;15860:4;15734:131;:::i;:::-;15726:139;;15453:419;;;:::o;15878:194::-;15918:4;15938:20;15956:1;15938:20;:::i;:::-;15933:25;;15972:20;15990:1;15972:20;:::i;:::-;15967:25;;16016:1;16013;16009:9;16001:17;;16040:1;16034:4;16031:11;16028:37;;;16045:18;;:::i;:::-;16028:37;15878:194;;;;:::o;16078:180::-;16126:77;16123:1;16116:88;16223:4;16220:1;16213:15;16247:4;16244:1;16237:15;16264:185;16304:1;16321:20;16339:1;16321:20;:::i;:::-;16316:25;;16355:20;16373:1;16355:20;:::i;:::-;16350:25;;16394:1;16384:35;;16399:18;;:::i;:::-;16384:35;16441:1;16438;16434:9;16429:14;;16264:185;;;;:::o;16455:220::-;16595:34;16591:1;16583:6;16579:14;16572:58;16664:3;16659:2;16651:6;16647:15;16640:28;16455:220;:::o;16681:366::-;16823:3;16844:67;16908:2;16903:3;16844:67;:::i;:::-;16837:74;;16920:93;17009:3;16920:93;:::i;:::-;17038:2;17033:3;17029:12;17022:19;;16681:366;;;:::o;17053:419::-;17219:4;17257:2;17246:9;17242:18;17234:26;;17306:9;17300:4;17296:20;17292:1;17281:9;17277:17;17270:47;17334:131;17460:4;17334:131;:::i;:::-;17326:139;;17053:419;;;:::o;17478:147::-;17579:11;17616:3;17601:18;;17478:147;;;;:::o;17631:114::-;;:::o;17751:398::-;17910:3;17931:83;18012:1;18007:3;17931:83;:::i;:::-;17924:90;;18023:93;18112:3;18023:93;:::i;:::-;18141:1;18136:3;18132:11;18125:18;;17751:398;;;:::o;18155:379::-;18339:3;18361:147;18504:3;18361:147;:::i;:::-;18354:154;;18525:3;18518:10;;18155:379;;;:::o;18540:177::-;18680:29;18676:1;18668:6;18664:14;18657:53;18540:177;:::o;18723:366::-;18865:3;18886:67;18950:2;18945:3;18886:67;:::i;:::-;18879:74;;18962:93;19051:3;18962:93;:::i;:::-;19080:2;19075:3;19071:12;19064:19;;18723:366;;;:::o;19095:419::-;19261:4;19299:2;19288:9;19284:18;19276:26;;19348:9;19342:4;19338:20;19334:1;19323:9;19319:17;19312:47;19376:131;19502:4;19376:131;:::i;:::-;19368:139;;19095:419;;;:::o;19520:180::-;19568:77;19565:1;19558:88;19665:4;19662:1;19655:15;19689:4;19686:1;19679:15;19706:180;19754:77;19751:1;19744:88;19851:4;19848:1;19841:15;19875:4;19872:1;19865:15;19892:143;19949:5;19980:6;19974:13;19965:22;;19996:33;20023:5;19996:33;:::i;:::-;19892:143;;;;:::o;20041:351::-;20111:6;20160:2;20148:9;20139:7;20135:23;20131:32;20128:119;;;20166:79;;:::i;:::-;20128:119;20286:1;20311:64;20367:7;20358:6;20347:9;20343:22;20311:64;:::i;:::-;20301:74;;20257:128;20041:351;;;;:::o;20398:85::-;20443:7;20472:5;20461:16;;20398:85;;;:::o;20489:60::-;20517:3;20538:5;20531:12;;20489:60;;;:::o;20555:158::-;20613:9;20646:61;20664:42;20673:32;20699:5;20673:32;:::i;:::-;20664:42;:::i;:::-;20646:61;:::i;:::-;20633:74;;20555:158;;;:::o;20719:147::-;20814:45;20853:5;20814:45;:::i;:::-;20809:3;20802:58;20719:147;;:::o;20872:114::-;20939:6;20973:5;20967:12;20957:22;;20872:114;;;:::o;20992:184::-;21091:11;21125:6;21120:3;21113:19;21165:4;21160:3;21156:14;21141:29;;20992:184;;;;:::o;21182:132::-;21249:4;21272:3;21264:11;;21302:4;21297:3;21293:14;21285:22;;21182:132;;;:::o;21320:108::-;21397:24;21415:5;21397:24;:::i;:::-;21392:3;21385:37;21320:108;;:::o;21434:179::-;21503:10;21524:46;21566:3;21558:6;21524:46;:::i;:::-;21602:4;21597:3;21593:14;21579:28;;21434:179;;;;:::o;21619:113::-;21689:4;21721;21716:3;21712:14;21704:22;;21619:113;;;:::o;21768:732::-;21887:3;21916:54;21964:5;21916:54;:::i;:::-;21986:86;22065:6;22060:3;21986:86;:::i;:::-;21979:93;;22096:56;22146:5;22096:56;:::i;:::-;22175:7;22206:1;22191:284;22216:6;22213:1;22210:13;22191:284;;;22292:6;22286:13;22319:63;22378:3;22363:13;22319:63;:::i;:::-;22312:70;;22405:60;22458:6;22405:60;:::i;:::-;22395:70;;22251:224;22238:1;22235;22231:9;22226:14;;22191:284;;;22195:14;22491:3;22484:10;;21892:608;;;21768:732;;;;:::o;22506:831::-;22769:4;22807:3;22796:9;22792:19;22784:27;;22821:71;22889:1;22878:9;22874:17;22865:6;22821:71;:::i;:::-;22902:80;22978:2;22967:9;22963:18;22954:6;22902:80;:::i;:::-;23029:9;23023:4;23019:20;23014:2;23003:9;22999:18;22992:48;23057:108;23160:4;23151:6;23057:108;:::i;:::-;23049:116;;23175:72;23243:2;23232:9;23228:18;23219:6;23175:72;:::i;:::-;23257:73;23325:3;23314:9;23310:19;23301:6;23257:73;:::i;:::-;22506:831;;;;;;;;:::o

Swarm Source

ipfs://53547504e51e01151affbe94ff0a4a646224e83ed3b0ec887f514a5d9851a42b

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.