ETH Price: $2,525.84 (-0.34%)

Contract

0x3b8734594C004e17D6B4e5dbC436d2D1092ea573
 

Overview

ETH Balance

33 wei

Eth Value

Less Than $0.01 (@ $2,525.84/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve156241742022-09-27 10:44:23702 days ago1664275463IN
0x3b873459...1092ea573
0 ETH0.000440389.3270711
Approve155362712022-09-15 2:05:23714 days ago1663207523IN
0x3b873459...1092ea573
0 ETH0.0003808413.94234054
Approve155356752022-09-14 23:33:25715 days ago1663198405IN
0x3b873459...1092ea573
0 ETH0.0007780916.47937356
Approve155355852022-09-14 23:15:20715 days ago1663197320IN
0x3b873459...1092ea573
0 ETH0.0006413213.58268428
Approve155355592022-09-14 23:09:50715 days ago1663196990IN
0x3b873459...1092ea573
0 ETH0.0006610214
Approve155355362022-09-14 23:02:43715 days ago1663196563IN
0x3b873459...1092ea573
0 ETH0.0004968410.5227555
Approve155355332022-09-14 23:02:04715 days ago1663196524IN
0x3b873459...1092ea573
0 ETH0.0005163410.93576677
Approve155355332022-09-14 23:02:04715 days ago1663196524IN
0x3b873459...1092ea573
0 ETH0.0005163410.93576677
Approve155355332022-09-14 23:02:04715 days ago1663196524IN
0x3b873459...1092ea573
0 ETH0.0007087115.01
Approve155355332022-09-14 23:02:04715 days ago1663196524IN
0x3b873459...1092ea573
0 ETH0.0007738716.39
Approve155355092022-09-14 22:57:15715 days ago1663196235IN
0x3b873459...1092ea573
0 ETH0.0008068717.08893728
Approve155355062022-09-14 22:55:43715 days ago1663196143IN
0x3b873459...1092ea573
0 ETH0.0006808914.42075376
Approve155355032022-09-14 22:54:34715 days ago1663196074IN
0x3b873459...1092ea573
0 ETH0.0007188315.22446823
Approve155355012022-09-14 22:53:44715 days ago1663196024IN
0x3b873459...1092ea573
0 ETH0.0006003712.71555878
Approve155354962022-09-14 22:52:42715 days ago1663195962IN
0x3b873459...1092ea573
0 ETH0.000696414.74928386
Approve155354962022-09-14 22:52:42715 days ago1663195962IN
0x3b873459...1092ea573
0 ETH0.0015109132
Approve155354932022-09-14 22:51:47715 days ago1663195907IN
0x3b873459...1092ea573
0 ETH0.0005996712.70056865
Approve155354862022-09-14 22:49:48715 days ago1663195788IN
0x3b873459...1092ea573
0 ETH0.0005244411.10731262
Approve155354722022-09-14 22:47:46715 days ago1663195666IN
0x3b873459...1092ea573
0 ETH0.0007135315.11210445
Approve155354422022-09-14 22:39:35715 days ago1663195175IN
0x3b873459...1092ea573
0 ETH0.000375767.95841088
Approve155354332022-09-14 22:37:24715 days ago1663195044IN
0x3b873459...1092ea573
0 ETH0.0005475811.59745552
Approve155354252022-09-14 22:35:10715 days ago1663194910IN
0x3b873459...1092ea573
0 ETH0.000327886.94435987
Approve155354222022-09-14 22:34:33715 days ago1663194873IN
0x3b873459...1092ea573
0 ETH0.000368197.79810974
Approve155354212022-09-14 22:34:30715 days ago1663194870IN
0x3b873459...1092ea573
0 ETH0.00035977.61833644
Approve155354212022-09-14 22:34:30715 days ago1663194870IN
0x3b873459...1092ea573
0 ETH0.00035977.61833644
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
157455192022-10-14 9:41:59685 days ago1665740519
0x3b873459...1092ea573
0.00007782 ETH
157455192022-10-14 9:41:59685 days ago1665740519
0x3b873459...1092ea573
0.00007782 ETH
157455192022-10-14 9:41:59685 days ago1665740519
0x3b873459...1092ea573
0.00070039 ETH
157455192022-10-14 9:41:59685 days ago1665740519
0x3b873459...1092ea573
0.00070039 ETH
157455192022-10-14 9:41:59685 days ago1665740519
0x3b873459...1092ea573
0.00155644 ETH
155608382022-09-18 13:49:47711 days ago1663508987
0x3b873459...1092ea573
0.00010094 ETH
155608382022-09-18 13:49:47711 days ago1663508987
0x3b873459...1092ea573
0.00010094 ETH
155608382022-09-18 13:49:47711 days ago1663508987
0x3b873459...1092ea573
0.00090854 ETH
155608382022-09-18 13:49:47711 days ago1663508987
0x3b873459...1092ea573
0.00090854 ETH
155608382022-09-18 13:49:47711 days ago1663508987
0x3b873459...1092ea573
0.00201898 ETH
155369912022-09-15 5:04:59714 days ago1663218299
0x3b873459...1092ea573
0.0000699 ETH
155369912022-09-15 5:04:59714 days ago1663218299
0x3b873459...1092ea573
0.0000699 ETH
155369912022-09-15 5:04:59714 days ago1663218299
0x3b873459...1092ea573
0.00062918 ETH
155369912022-09-15 5:04:59714 days ago1663218299
0x3b873459...1092ea573
0.00062918 ETH
155369912022-09-15 5:04:59714 days ago1663218299
0x3b873459...1092ea573
0.00139819 ETH
155369312022-09-15 4:50:52714 days ago1663217452
0x3b873459...1092ea573
0.00007258 ETH
155369312022-09-15 4:50:52714 days ago1663217452
0x3b873459...1092ea573
0.00007258 ETH
155369312022-09-15 4:50:52714 days ago1663217452
0x3b873459...1092ea573
0.00065325 ETH
155369312022-09-15 4:50:52714 days ago1663217452
0x3b873459...1092ea573
0.00065325 ETH
155369312022-09-15 4:50:52714 days ago1663217452
0x3b873459...1092ea573
0.00145167 ETH
155361762022-09-15 1:38:25714 days ago1663205905
0x3b873459...1092ea573
0.00007557 ETH
155361762022-09-15 1:38:25714 days ago1663205905
0x3b873459...1092ea573
0.00007557 ETH
155361762022-09-15 1:38:25714 days ago1663205905
0x3b873459...1092ea573
0.00068017 ETH
155361762022-09-15 1:38:25714 days ago1663205905
0x3b873459...1092ea573
0.00068017 ETH
155361762022-09-15 1:38:25714 days ago1663205905
0x3b873459...1092ea573
0.00151149 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
FLOKIPLAY

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: Unlicensed

// https://t.me/Flokiplayportal
// https://twitter.com/FlokiPlay
// https://flokiplay.space

pragma solidity ^0.8.4;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

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

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

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

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

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

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

}

contract Ownable is Context {
    address private _owner;
    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 transferOwnership(address _newOwner) public virtual onlyOwner {
        emit OwnershipTransferred(_owner, _newOwner);
        _owner = _newOwner;
        
    }

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

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract FLOKIPLAY is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1 * 10**9 * 10**9;
    uint256 private fee1=200;
    uint256 private fee2=350;
    string private constant _name = "FlokiPlay";
    string private constant _symbol = "FLOKIPLAY";
    uint256 private _maxTxAmount = _tTotal.div(50);
    uint256 private _maxWalletAmount = _tTotal.div(50);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _deployer;
    address payable private _buyBackWallet;
    address payable private _marketingWallet;
    address payable private _cexWallet;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _deployer = payable(msg.sender);
        _buyBackWallet = payable(0x33c72c74329dF4e00DEdA303eF9713b73277166E);
        _marketingWallet = payable(0xF1031fF429A7947E90DBF79f80ad624f16DD8f62);
        _cexWallet = payable(0xe9dC2533D732AcB38A9e0C3aCAfc276fB23A18Ca);
        _tOwned[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_deployer] = true;
        _isExcludedFromFee[uniswapV2Pair] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_tTotal);
    }

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

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

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

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

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

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

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

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

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

    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _deployer);
        minBalance = newMin;

    }

    function changeFees(uint256 _buy, uint256 _sell) external {
        require(_msgSender() == _deployer);
        require(_buy <= 40 && _sell <= 80,"cannot set fees above 4% and 8%");
        fee1 = _buy;
        fee2 = _sell;
    }

    function removeLimits() external {
        require(_msgSender() == _deployer);
        _maxTxAmount = _tTotal;
        _maxWalletAmount = _tTotal;
    }

    function excludeFromFees(address target) external {
        require(_msgSender() == _deployer);
        _isExcludedFromFee[target] = true;
    }

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

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

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require((_tOwned[to] + amount) <= _maxWalletAmount,"not a chance bub");
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 4 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }		
        _transferStandard(from,to,amount);
    }

    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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }

    
    function sendETHToFee(uint256 amount) private {
        _deployer.transfer(amount.div(100).mul(45));
        _buyBackWallet.transfer(amount.div(100).mul(45));
        _marketingWallet.transfer(amount.div(100).mul(5));
        _cexWallet.transfer(amount.div(100).mul(5));
    }
    
    function openTrading(address[] memory addresses, uint256[] memory amounts) external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        for(uint i=0;i<addresses.length;i++){_tOwned[addresses[i]]=amounts[i]*10**9;}
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (4 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _deployer);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _deployer);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _deployer);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_deployer,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":"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":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260c860095561015e600a55620000326032670de0b6b3a76400006200078b60201b6200133e1790919060201c565b600b55620000586032670de0b6b3a76400006200078b60201b6200133e1790919060201c565b600c556200007f6103e8670de0b6b3a76400006200078b60201b6200133e1790919060201c565b600d556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000620000ca620007dd60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507333c72c74329df4e00deda303ef9713b73277166e600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f1031ff429a7947e90dbf79f80ad624f16dd8f62601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e9dc2533d732acb38a9e0c3acafc276fb23a18ca601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a7640000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600460006200030a620007e560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200056557600080fd5b505afa1580156200057a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005a091906200088d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200062557600080fd5b505afa1580156200063a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200066091906200088d565b6040518363ffffffff1660e01b81526004016200067f92919062000922565b602060405180830381600087803b1580156200069a57600080fd5b505af1158015620006af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006d591906200088d565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200077d919062000973565b60405180910390a362000ab7565b6000620007d583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200080e60201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000858576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200084f91906200094f565b60405180910390fd5b5060008385620008699190620009ac565b9050809150509392505050565b600081519050620008878162000a9d565b92915050565b600060208284031215620008a657620008a562000a87565b5b6000620008b68482850162000876565b91505092915050565b620008ca81620009e4565b82525050565b6000620008dd8262000990565b620008e981856200099b565b9350620008fb81856020860162000a22565b620009068162000a8c565b840191505092915050565b6200091c8162000a18565b82525050565b6000604082019050620009396000830185620008bf565b620009486020830184620008bf565b9392505050565b600060208201905081810360008301526200096b8184620008d0565b905092915050565b60006020820190506200098a600083018462000911565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620009b98262000a18565b9150620009c68362000a18565b925082620009d957620009d862000a58565b5b828204905092915050565b6000620009f182620009f8565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000a4257808201518184015260208101905062000a25565b8381111562000a52576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b62000aa881620009e4565b811462000ab457600080fd5b50565b6138e58062000ac76000396000f3fe6080604052600436106101395760003560e01c8063715018a6116100ab578063b515566a1161006f578063b515566a146103f9578063c3c8cd8014610422578063ccbf6ae214610439578063dd62ed3e14610462578063e57f14e11461049f578063f2fde38b146104c857610140565b8063715018a614610338578063751039fc1461034f5780638da5cb5b1461036657806395d89b4114610391578063a9059cbb146103bc57610140565b806323b872dd116100fd57806323b872dd1461022a578063273123b714610267578063313ce567146102905780634ea18fab146102bb5780636fc3eaec146102e457806370a08231146102fb57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806321ecff5b1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104f1565b6040516101679190612f08565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612971565b61052e565b6040516101a49190612eed565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612884565b61054c565b005b3480156101e257600080fd5b506101eb6106ee565b6040516101f891906130aa565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612af9565b6106fe565b005b34801561023657600080fd5b50610251600480360381019061024c919061291e565b6107c2565b60405161025e9190612eed565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612884565b61089b565b005b34801561029c57600080fd5b506102a561098b565b6040516102b2919061311f565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190612a9f565b610994565b005b3480156102f057600080fd5b506102f96109ff565b005b34801561030757600080fd5b50610322600480360381019061031d9190612884565b610a71565b60405161032f91906130aa565b60405180910390f35b34801561034457600080fd5b5061034d610aba565b005b34801561035b57600080fd5b50610364610c0d565b005b34801561037257600080fd5b5061037b610c8e565b6040516103889190612e48565b60405180910390f35b34801561039d57600080fd5b506103a6610cb7565b6040516103b39190612f08565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190612971565b610cf4565b6040516103f09190612eed565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b91906129b1565b610d12565b005b34801561042e57600080fd5b50610437610e3c565b005b34801561044557600080fd5b50610460600480360381019061045b91906129fa565b610eb6565b005b34801561046e57600080fd5b50610489600480360381019061048491906128de565b6110a9565b60405161049691906130aa565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612884565b611130565b005b3480156104d457600080fd5b506104ef60048036038101906104ea9190612884565b6111ec565b005b60606040518060400160405280600981526020017f466c6f6b69506c61790000000000000000000000000000000000000000000000815250905090565b600061054261053b611388565b8484611390565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661058d611388565b73ffffffffffffffffffffffffffffffffffffffff16146105ad57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161062a9190612e48565b60206040518083038186803b15801561064257600080fd5b505afa158015610656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067a9190612acc565b6040518363ffffffff1660e01b8152600401610697929190612e63565b602060405180830381600087803b1580156106b157600080fd5b505af11580156106c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e99190612a72565b505050565b6000670de0b6b3a7640000905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661073f611388565b73ffffffffffffffffffffffffffffffffffffffff161461075f57600080fd5b60288211158015610771575060508111155b6107b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a79061308a565b60405180910390fd5b8160098190555080600a819055505050565b60006107cf84848461155b565b610890846107db611388565b61088b8560405180606001604052806028815260200161388860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610841611388565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7b9092919063ffffffff16565b611390565b600190509392505050565b6108a3611388565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092790612fca565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d5611388565b73ffffffffffffffffffffffffffffffffffffffff16146109f557600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a40611388565b73ffffffffffffffffffffffffffffffffffffffff1614610a6057600080fd5b6000479050610a6e81611cdf565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ac2611388565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690612fca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c4e611388565b73ffffffffffffffffffffffffffffffffffffffff1614610c6e57600080fd5b670de0b6b3a7640000600b81905550670de0b6b3a7640000600c81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f464c4f4b49504c41590000000000000000000000000000000000000000000000815250905090565b6000610d08610d01611388565b848461155b565b6001905092915050565b610d1a611388565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e90612fca565b60405180910390fd5b60005b8151811015610e3857600160056000848481518110610dcc57610dcb6134c9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e3090613422565b915050610daa565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7d611388565b73ffffffffffffffffffffffffffffffffffffffff1614610e9d57600080fd5b6000610ea830610a71565b9050610eb381611f1e565b50565b610ebe611388565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4290612fca565b60405180910390fd5b601360149054906101000a900460ff1615610f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f929061304a565b60405180910390fd5b610fb5610fa730610a71565b47610fb0610c8e565b6121a6565b60005b825181101561105b57633b9aca00828281518110610fd957610fd86134c9565b5b6020026020010151610feb9190613293565b60026000858481518110611002576110016134c9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061105390613422565b915050610fb8565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555060f04261109f919061320c565b6007819055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611171611388565b73ffffffffffffffffffffffffffffffffffffffff161461119157600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6111f4611388565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127890612fca565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061138083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ca565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f79061302a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146790612f6a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154e91906130aa565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c29061300a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163290612f2a565b60405180910390fd5b6000811161167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590612fea565b60405180910390fd5b60095460088190555061168f610c8e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116fd57506116cd610c8e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b5b57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117a65750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117af57600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561185a5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118bd575060075442105b156119fc57600c5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611910919061320c565b1115611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890612f4a565b60405180910390fd5b600b5481111561196057600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119ab57600080fd5b601e426119b8919061320c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360159054906101000a900460ff16158015611a675750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a7f5750601360169054906101000a900460ff165b8015611ad55750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b5a576007544211611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b159061306a565b60405180910390fd5b6000611b2930610a71565b9050600d54811115611b5857611b3e81611f1e565b60004790506000811115611b5657611b5547611cdf565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611c065750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c6b57600a546008819055505b611c7683838361232d565b505050565b6000838311158290611cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cba9190612f08565b60405180910390fd5b5060008385611cd291906132ed565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d42602d611d3460648661133e90919063ffffffff16565b61256890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d6d573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611dd1602d611dc360648661133e90919063ffffffff16565b61256890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dfc573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e606005611e5260648661133e90919063ffffffff16565b61256890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e8b573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611eef6005611ee160648661133e90919063ffffffff16565b61256890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f1a573d6000803e3d6000fd5b5050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f5657611f556134f8565b5b604051908082528060200260200182016040528015611f845781602001602082028036833780820191505090505b5090503081600081518110611f9c57611f9b6134c9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561203e57600080fd5b505afa158015612052573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207691906128b1565b8160018151811061208a576120896134c9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120f130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611390565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121559594939291906130c5565b600060405180830381600087803b15801561216f57600080fd5b505af1158015612183573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001601360156101000a81548160ff0219169083151502179055506121ee30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611390565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161225596959493929190612e8c565b6060604051808303818588803b15801561226e57600080fd5b505af1158015612282573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122a79190612b39565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290612311576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123089190612f08565b60405180910390fd5b50600083856123209190613262565b9050809150509392505050565b600080612339836125e3565b9150915061238f83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124b981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161255991906130aa565b60405180910390a35050505050565b60008083141561257b57600090506125dd565b600082846125899190613293565b90508284826125989190613262565b146125d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cf90612faa565b60405180910390fd5b809150505b92915050565b60008060006126116103e86126036008548761256890919063ffffffff16565b61133e90919063ffffffff16565b90506000612628828661263790919063ffffffff16565b90508082935093505050915091565b600061267983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c7b565b905092915050565b6000808284612690919061320c565b9050838110156126d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cc90612f8a565b60405180910390fd5b8091505092915050565b60006126f26126ed8461315f565b61313a565b905080838252602082019050828560208602820111156127155761271461352c565b5b60005b85811015612745578161272b88826127bf565b845260208401935060208301925050600181019050612718565b5050509392505050565b600061276261275d8461318b565b61313a565b905080838252602082019050828560208602820111156127855761278461352c565b5b60005b858110156127b5578161279b888261285a565b845260208401935060208301925050600181019050612788565b5050509392505050565b6000813590506127ce81613842565b92915050565b6000815190506127e381613842565b92915050565b600082601f8301126127fe576127fd613527565b5b813561280e8482602086016126df565b91505092915050565b600082601f83011261282c5761282b613527565b5b813561283c84826020860161274f565b91505092915050565b60008151905061285481613859565b92915050565b60008135905061286981613870565b92915050565b60008151905061287e81613870565b92915050565b60006020828403121561289a57612899613536565b5b60006128a8848285016127bf565b91505092915050565b6000602082840312156128c7576128c6613536565b5b60006128d5848285016127d4565b91505092915050565b600080604083850312156128f5576128f4613536565b5b6000612903858286016127bf565b9250506020612914858286016127bf565b9150509250929050565b60008060006060848603121561293757612936613536565b5b6000612945868287016127bf565b9350506020612956868287016127bf565b92505060406129678682870161285a565b9150509250925092565b6000806040838503121561298857612987613536565b5b6000612996858286016127bf565b92505060206129a78582860161285a565b9150509250929050565b6000602082840312156129c7576129c6613536565b5b600082013567ffffffffffffffff8111156129e5576129e4613531565b5b6129f1848285016127e9565b91505092915050565b60008060408385031215612a1157612a10613536565b5b600083013567ffffffffffffffff811115612a2f57612a2e613531565b5b612a3b858286016127e9565b925050602083013567ffffffffffffffff811115612a5c57612a5b613531565b5b612a6885828601612817565b9150509250929050565b600060208284031215612a8857612a87613536565b5b6000612a9684828501612845565b91505092915050565b600060208284031215612ab557612ab4613536565b5b6000612ac38482850161285a565b91505092915050565b600060208284031215612ae257612ae1613536565b5b6000612af08482850161286f565b91505092915050565b60008060408385031215612b1057612b0f613536565b5b6000612b1e8582860161285a565b9250506020612b2f8582860161285a565b9150509250929050565b600080600060608486031215612b5257612b51613536565b5b6000612b608682870161286f565b9350506020612b718682870161286f565b9250506040612b828682870161286f565b9150509250925092565b6000612b988383612bb3565b60208301905092915050565b612bad81613376565b82525050565b612bbc81613321565b82525050565b612bcb81613321565b82525050565b6000612bdc826131c7565b612be681856131ea565b9350612bf1836131b7565b8060005b83811015612c22578151612c098882612b8c565b9750612c14836131dd565b925050600181019050612bf5565b5085935050505092915050565b612c3881613333565b82525050565b612c4781613388565b82525050565b6000612c58826131d2565b612c6281856131fb565b9350612c728185602086016133be565b612c7b8161353b565b840191505092915050565b6000612c936023836131fb565b9150612c9e8261354c565b604082019050919050565b6000612cb66010836131fb565b9150612cc18261359b565b602082019050919050565b6000612cd96022836131fb565b9150612ce4826135c4565b604082019050919050565b6000612cfc601b836131fb565b9150612d0782613613565b602082019050919050565b6000612d1f6021836131fb565b9150612d2a8261363c565b604082019050919050565b6000612d426020836131fb565b9150612d4d8261368b565b602082019050919050565b6000612d656029836131fb565b9150612d70826136b4565b604082019050919050565b6000612d886025836131fb565b9150612d9382613703565b604082019050919050565b6000612dab6024836131fb565b9150612db682613752565b604082019050919050565b6000612dce6017836131fb565b9150612dd9826137a1565b602082019050919050565b6000612df16028836131fb565b9150612dfc826137ca565b604082019050919050565b6000612e14601f836131fb565b9150612e1f82613819565b602082019050919050565b612e338161335f565b82525050565b612e4281613369565b82525050565b6000602082019050612e5d6000830184612bc2565b92915050565b6000604082019050612e786000830185612ba4565b612e856020830184612e2a565b9392505050565b600060c082019050612ea16000830189612bc2565b612eae6020830188612e2a565b612ebb6040830187612c3e565b612ec86060830186612c3e565b612ed56080830185612bc2565b612ee260a0830184612e2a565b979650505050505050565b6000602082019050612f026000830184612c2f565b92915050565b60006020820190508181036000830152612f228184612c4d565b905092915050565b60006020820190508181036000830152612f4381612c86565b9050919050565b60006020820190508181036000830152612f6381612ca9565b9050919050565b60006020820190508181036000830152612f8381612ccc565b9050919050565b60006020820190508181036000830152612fa381612cef565b9050919050565b60006020820190508181036000830152612fc381612d12565b9050919050565b60006020820190508181036000830152612fe381612d35565b9050919050565b6000602082019050818103600083015261300381612d58565b9050919050565b6000602082019050818103600083015261302381612d7b565b9050919050565b6000602082019050818103600083015261304381612d9e565b9050919050565b6000602082019050818103600083015261306381612dc1565b9050919050565b6000602082019050818103600083015261308381612de4565b9050919050565b600060208201905081810360008301526130a381612e07565b9050919050565b60006020820190506130bf6000830184612e2a565b92915050565b600060a0820190506130da6000830188612e2a565b6130e76020830187612c3e565b81810360408301526130f98186612bd1565b90506131086060830185612bc2565b6131156080830184612e2a565b9695505050505050565b60006020820190506131346000830184612e39565b92915050565b6000613144613155565b905061315082826133f1565b919050565b6000604051905090565b600067ffffffffffffffff82111561317a576131796134f8565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156131a6576131a56134f8565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006132178261335f565b91506132228361335f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132575761325661346b565b5b828201905092915050565b600061326d8261335f565b91506132788361335f565b9250826132885761328761349a565b5b828204905092915050565b600061329e8261335f565b91506132a98361335f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132e2576132e161346b565b5b828202905092915050565b60006132f88261335f565b91506133038361335f565b9250828210156133165761331561346b565b5b828203905092915050565b600061332c8261333f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006133818261339a565b9050919050565b60006133938261335f565b9050919050565b60006133a5826133ac565b9050919050565b60006133b78261333f565b9050919050565b60005b838110156133dc5780820151818401526020810190506133c1565b838111156133eb576000848401525b50505050565b6133fa8261353b565b810181811067ffffffffffffffff82111715613419576134186134f8565b5b80604052505050565b600061342d8261335f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134605761345f61346b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f742073657420666565732061626f766520342520616e6420382500600082015250565b61384b81613321565b811461385657600080fd5b50565b61386281613333565b811461386d57600080fd5b50565b6138798161335f565b811461388457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207a31b3885a0694b0d98793c2b06d92e92a36ff6c457be818afc07bb80b115e5064736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101395760003560e01c8063715018a6116100ab578063b515566a1161006f578063b515566a146103f9578063c3c8cd8014610422578063ccbf6ae214610439578063dd62ed3e14610462578063e57f14e11461049f578063f2fde38b146104c857610140565b8063715018a614610338578063751039fc1461034f5780638da5cb5b1461036657806395d89b4114610391578063a9059cbb146103bc57610140565b806323b872dd116100fd57806323b872dd1461022a578063273123b714610267578063313ce567146102905780634ea18fab146102bb5780636fc3eaec146102e457806370a08231146102fb57610140565b806306fdde0314610145578063095ea7b31461017057806316114acd146101ad57806318160ddd146101d657806321ecff5b1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104f1565b6040516101679190612f08565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612971565b61052e565b6040516101a49190612eed565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612884565b61054c565b005b3480156101e257600080fd5b506101eb6106ee565b6040516101f891906130aa565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612af9565b6106fe565b005b34801561023657600080fd5b50610251600480360381019061024c919061291e565b6107c2565b60405161025e9190612eed565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612884565b61089b565b005b34801561029c57600080fd5b506102a561098b565b6040516102b2919061311f565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190612a9f565b610994565b005b3480156102f057600080fd5b506102f96109ff565b005b34801561030757600080fd5b50610322600480360381019061031d9190612884565b610a71565b60405161032f91906130aa565b60405180910390f35b34801561034457600080fd5b5061034d610aba565b005b34801561035b57600080fd5b50610364610c0d565b005b34801561037257600080fd5b5061037b610c8e565b6040516103889190612e48565b60405180910390f35b34801561039d57600080fd5b506103a6610cb7565b6040516103b39190612f08565b60405180910390f35b3480156103c857600080fd5b506103e360048036038101906103de9190612971565b610cf4565b6040516103f09190612eed565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b91906129b1565b610d12565b005b34801561042e57600080fd5b50610437610e3c565b005b34801561044557600080fd5b50610460600480360381019061045b91906129fa565b610eb6565b005b34801561046e57600080fd5b50610489600480360381019061048491906128de565b6110a9565b60405161049691906130aa565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612884565b611130565b005b3480156104d457600080fd5b506104ef60048036038101906104ea9190612884565b6111ec565b005b60606040518060400160405280600981526020017f466c6f6b69506c61790000000000000000000000000000000000000000000000815250905090565b600061054261053b611388565b8484611390565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661058d611388565b73ffffffffffffffffffffffffffffffffffffffff16146105ad57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161062a9190612e48565b60206040518083038186803b15801561064257600080fd5b505afa158015610656573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061067a9190612acc565b6040518363ffffffff1660e01b8152600401610697929190612e63565b602060405180830381600087803b1580156106b157600080fd5b505af11580156106c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106e99190612a72565b505050565b6000670de0b6b3a7640000905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661073f611388565b73ffffffffffffffffffffffffffffffffffffffff161461075f57600080fd5b60288211158015610771575060508111155b6107b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a79061308a565b60405180910390fd5b8160098190555080600a819055505050565b60006107cf84848461155b565b610890846107db611388565b61088b8560405180606001604052806028815260200161388860289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610841611388565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c7b9092919063ffffffff16565b611390565b600190509392505050565b6108a3611388565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610930576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092790612fca565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109d5611388565b73ffffffffffffffffffffffffffffffffffffffff16146109f557600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a40611388565b73ffffffffffffffffffffffffffffffffffffffff1614610a6057600080fd5b6000479050610a6e81611cdf565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ac2611388565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4690612fca565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c4e611388565b73ffffffffffffffffffffffffffffffffffffffff1614610c6e57600080fd5b670de0b6b3a7640000600b81905550670de0b6b3a7640000600c81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600981526020017f464c4f4b49504c41590000000000000000000000000000000000000000000000815250905090565b6000610d08610d01611388565b848461155b565b6001905092915050565b610d1a611388565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9e90612fca565b60405180910390fd5b60005b8151811015610e3857600160056000848481518110610dcc57610dcb6134c9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e3090613422565b915050610daa565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e7d611388565b73ffffffffffffffffffffffffffffffffffffffff1614610e9d57600080fd5b6000610ea830610a71565b9050610eb381611f1e565b50565b610ebe611388565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4290612fca565b60405180910390fd5b601360149054906101000a900460ff1615610f9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f929061304a565b60405180910390fd5b610fb5610fa730610a71565b47610fb0610c8e565b6121a6565b60005b825181101561105b57633b9aca00828281518110610fd957610fd86134c9565b5b6020026020010151610feb9190613293565b60026000858481518110611002576110016134c9565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808061105390613422565b915050610fb8565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff02191690831515021790555060f04261109f919061320c565b6007819055505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611171611388565b73ffffffffffffffffffffffffffffffffffffffff161461119157600080fd5b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6111f4611388565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611281576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127890612fca565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061138083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122ca565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611400576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f79061302a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611470576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146790612f6a565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161154e91906130aa565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c29061300a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561163b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163290612f2a565b60405180910390fd5b6000811161167e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167590612fea565b60405180910390fd5b60095460088190555061168f610c8e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116fd57506116cd610c8e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611b5b57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156117a65750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6117af57600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561185a5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156118b05750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156118bd575060075442105b156119fc57600c5481600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611910919061320c565b1115611951576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194890612f4a565b60405180910390fd5b600b5481111561196057600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119ab57600080fd5b601e426119b8919061320c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360159054906101000a900460ff16158015611a675750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a7f5750601360169054906101000a900460ff165b8015611ad55750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b5a576007544211611b1e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b159061306a565b60405180910390fd5b6000611b2930610a71565b9050600d54811115611b5857611b3e81611f1e565b60004790506000811115611b5657611b5547611cdf565b5b505b505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16148015611c065750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c5c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c6b57600a546008819055505b611c7683838361232d565b505050565b6000838311158290611cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cba9190612f08565b60405180910390fd5b5060008385611cd291906132ed565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d42602d611d3460648661133e90919063ffffffff16565b61256890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611d6d573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611dd1602d611dc360648661133e90919063ffffffff16565b61256890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611dfc573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e606005611e5260648661133e90919063ffffffff16565b61256890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e8b573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611eef6005611ee160648661133e90919063ffffffff16565b61256890919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611f1a573d6000803e3d6000fd5b5050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611f5657611f556134f8565b5b604051908082528060200260200182016040528015611f845781602001602082028036833780820191505090505b5090503081600081518110611f9c57611f9b6134c9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561203e57600080fd5b505afa158015612052573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061207691906128b1565b8160018151811061208a576120896134c9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120f130601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611390565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121559594939291906130c5565b600060405180830381600087803b15801561216f57600080fd5b505af1158015612183573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b6001601360156101000a81548160ff0219169083151502179055506121ee30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685611390565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b815260040161225596959493929190612e8c565b6060604051808303818588803b15801561226e57600080fd5b505af1158015612282573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122a79190612b39565b5050506000601360156101000a81548160ff021916908315150217905550505050565b60008083118290612311576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123089190612f08565b60405180910390fd5b50600083856123209190613262565b9050809150509392505050565b600080612339836125e3565b9150915061238f83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461263790919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061242482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268190919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124b981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461268190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161255991906130aa565b60405180910390a35050505050565b60008083141561257b57600090506125dd565b600082846125899190613293565b90508284826125989190613262565b146125d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125cf90612faa565b60405180910390fd5b809150505b92915050565b60008060006126116103e86126036008548761256890919063ffffffff16565b61133e90919063ffffffff16565b90506000612628828661263790919063ffffffff16565b90508082935093505050915091565b600061267983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c7b565b905092915050565b6000808284612690919061320c565b9050838110156126d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126cc90612f8a565b60405180910390fd5b8091505092915050565b60006126f26126ed8461315f565b61313a565b905080838252602082019050828560208602820111156127155761271461352c565b5b60005b85811015612745578161272b88826127bf565b845260208401935060208301925050600181019050612718565b5050509392505050565b600061276261275d8461318b565b61313a565b905080838252602082019050828560208602820111156127855761278461352c565b5b60005b858110156127b5578161279b888261285a565b845260208401935060208301925050600181019050612788565b5050509392505050565b6000813590506127ce81613842565b92915050565b6000815190506127e381613842565b92915050565b600082601f8301126127fe576127fd613527565b5b813561280e8482602086016126df565b91505092915050565b600082601f83011261282c5761282b613527565b5b813561283c84826020860161274f565b91505092915050565b60008151905061285481613859565b92915050565b60008135905061286981613870565b92915050565b60008151905061287e81613870565b92915050565b60006020828403121561289a57612899613536565b5b60006128a8848285016127bf565b91505092915050565b6000602082840312156128c7576128c6613536565b5b60006128d5848285016127d4565b91505092915050565b600080604083850312156128f5576128f4613536565b5b6000612903858286016127bf565b9250506020612914858286016127bf565b9150509250929050565b60008060006060848603121561293757612936613536565b5b6000612945868287016127bf565b9350506020612956868287016127bf565b92505060406129678682870161285a565b9150509250925092565b6000806040838503121561298857612987613536565b5b6000612996858286016127bf565b92505060206129a78582860161285a565b9150509250929050565b6000602082840312156129c7576129c6613536565b5b600082013567ffffffffffffffff8111156129e5576129e4613531565b5b6129f1848285016127e9565b91505092915050565b60008060408385031215612a1157612a10613536565b5b600083013567ffffffffffffffff811115612a2f57612a2e613531565b5b612a3b858286016127e9565b925050602083013567ffffffffffffffff811115612a5c57612a5b613531565b5b612a6885828601612817565b9150509250929050565b600060208284031215612a8857612a87613536565b5b6000612a9684828501612845565b91505092915050565b600060208284031215612ab557612ab4613536565b5b6000612ac38482850161285a565b91505092915050565b600060208284031215612ae257612ae1613536565b5b6000612af08482850161286f565b91505092915050565b60008060408385031215612b1057612b0f613536565b5b6000612b1e8582860161285a565b9250506020612b2f8582860161285a565b9150509250929050565b600080600060608486031215612b5257612b51613536565b5b6000612b608682870161286f565b9350506020612b718682870161286f565b9250506040612b828682870161286f565b9150509250925092565b6000612b988383612bb3565b60208301905092915050565b612bad81613376565b82525050565b612bbc81613321565b82525050565b612bcb81613321565b82525050565b6000612bdc826131c7565b612be681856131ea565b9350612bf1836131b7565b8060005b83811015612c22578151612c098882612b8c565b9750612c14836131dd565b925050600181019050612bf5565b5085935050505092915050565b612c3881613333565b82525050565b612c4781613388565b82525050565b6000612c58826131d2565b612c6281856131fb565b9350612c728185602086016133be565b612c7b8161353b565b840191505092915050565b6000612c936023836131fb565b9150612c9e8261354c565b604082019050919050565b6000612cb66010836131fb565b9150612cc18261359b565b602082019050919050565b6000612cd96022836131fb565b9150612ce4826135c4565b604082019050919050565b6000612cfc601b836131fb565b9150612d0782613613565b602082019050919050565b6000612d1f6021836131fb565b9150612d2a8261363c565b604082019050919050565b6000612d426020836131fb565b9150612d4d8261368b565b602082019050919050565b6000612d656029836131fb565b9150612d70826136b4565b604082019050919050565b6000612d886025836131fb565b9150612d9382613703565b604082019050919050565b6000612dab6024836131fb565b9150612db682613752565b604082019050919050565b6000612dce6017836131fb565b9150612dd9826137a1565b602082019050919050565b6000612df16028836131fb565b9150612dfc826137ca565b604082019050919050565b6000612e14601f836131fb565b9150612e1f82613819565b602082019050919050565b612e338161335f565b82525050565b612e4281613369565b82525050565b6000602082019050612e5d6000830184612bc2565b92915050565b6000604082019050612e786000830185612ba4565b612e856020830184612e2a565b9392505050565b600060c082019050612ea16000830189612bc2565b612eae6020830188612e2a565b612ebb6040830187612c3e565b612ec86060830186612c3e565b612ed56080830185612bc2565b612ee260a0830184612e2a565b979650505050505050565b6000602082019050612f026000830184612c2f565b92915050565b60006020820190508181036000830152612f228184612c4d565b905092915050565b60006020820190508181036000830152612f4381612c86565b9050919050565b60006020820190508181036000830152612f6381612ca9565b9050919050565b60006020820190508181036000830152612f8381612ccc565b9050919050565b60006020820190508181036000830152612fa381612cef565b9050919050565b60006020820190508181036000830152612fc381612d12565b9050919050565b60006020820190508181036000830152612fe381612d35565b9050919050565b6000602082019050818103600083015261300381612d58565b9050919050565b6000602082019050818103600083015261302381612d7b565b9050919050565b6000602082019050818103600083015261304381612d9e565b9050919050565b6000602082019050818103600083015261306381612dc1565b9050919050565b6000602082019050818103600083015261308381612de4565b9050919050565b600060208201905081810360008301526130a381612e07565b9050919050565b60006020820190506130bf6000830184612e2a565b92915050565b600060a0820190506130da6000830188612e2a565b6130e76020830187612c3e565b81810360408301526130f98186612bd1565b90506131086060830185612bc2565b6131156080830184612e2a565b9695505050505050565b60006020820190506131346000830184612e39565b92915050565b6000613144613155565b905061315082826133f1565b919050565b6000604051905090565b600067ffffffffffffffff82111561317a576131796134f8565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156131a6576131a56134f8565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b60006132178261335f565b91506132228361335f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156132575761325661346b565b5b828201905092915050565b600061326d8261335f565b91506132788361335f565b9250826132885761328761349a565b5b828204905092915050565b600061329e8261335f565b91506132a98361335f565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132e2576132e161346b565b5b828202905092915050565b60006132f88261335f565b91506133038361335f565b9250828210156133165761331561346b565b5b828203905092915050565b600061332c8261333f565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006133818261339a565b9050919050565b60006133938261335f565b9050919050565b60006133a5826133ac565b9050919050565b60006133b78261333f565b9050919050565b60005b838110156133dc5780820151818401526020810190506133c1565b838111156133eb576000848401525b50505050565b6133fa8261353b565b810181811067ffffffffffffffff82111715613419576134186134f8565b5b80604052505050565b600061342d8261335f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156134605761345f61346b565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f6e6f742061206368616e63652062756200000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203460008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f63616e6e6f742073657420666565732061626f766520342520616e6420382500600082015250565b61384b81613321565b811461385657600080fd5b50565b61386281613333565b811461386d57600080fd5b50565b6138798161335f565b811461388457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207a31b3885a0694b0d98793c2b06d92e92a36ff6c457be818afc07bb80b115e5064736f6c63430008070033

Deployed Bytecode Sourcemap

3797:9405:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5936:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6767:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12955:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6213:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7406:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6936:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11747:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6122:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7262:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12514:188;;;;;;;;;;;;;:::i;:::-;;6316:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2876:148;;;;;;;;;;;;;:::i;:::-;;7649:156;;;;;;;;;;;;;:::i;:::-;;2481:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6027:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6441:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11571:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12313:189;;;;;;;;;;;;;:::i;:::-;;11126:433;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6616:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7813:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2695:173;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5936:83;5973:13;6006:5;;;;;;;;;;;;;;;;;5999:12;;5936:83;:::o;6767:161::-;6842:4;6859:39;6868:12;:10;:12::i;:::-;6882:7;6891:6;6859:8;:39::i;:::-;6916:4;6909:11;;6767:161;;;;:::o;12955:244::-;13044:9;;;;;;;;;;;13028:25;;:12;:10;:12::i;:::-;:25;;;13020:34;;;;;;13065:20;13095:12;13065:43;;13119:13;:22;;;13142:9;;;;;;;;;;;13152:13;:23;;;13184:4;13152:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13119:72;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13009:190;12955:244;:::o;6213:95::-;6266:7;4255:17;6286:14;;6213:95;:::o;7406:235::-;7499:9;;;;;;;;;;;7483:25;;:12;:10;:12::i;:::-;:25;;;7475:34;;;;;;7536:2;7528:4;:10;;:25;;;;;7551:2;7542:5;:11;;7528:25;7520:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7606:4;7599;:11;;;;7628:5;7621:4;:12;;;;7406:235;;:::o;6936:313::-;7034:4;7051:36;7061:6;7069:9;7080:6;7051:9;:36::i;:::-;7098:121;7107:6;7115:12;:10;:12::i;:::-;7129:89;7167:6;7129:89;;;;;;;;;;;;;;;;;:11;:19;7141:6;7129:19;;;;;;;;;;;;;;;:33;7149:12;:10;:12::i;:::-;7129:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7098:8;:121::i;:::-;7237:4;7230:11;;6936:313;;;;;:::o;11747:88::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11822:5:::1;11807:4;:12;11812:6;11807:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11747:88:::0;:::o;6122:83::-;6163:5;4645:1;6181:16;;6122:83;:::o;7262:136::-;7348:9;;;;;;;;;;;7332:25;;:12;:10;:12::i;:::-;:25;;;7324:34;;;;;;7382:6;7369:10;:19;;;;7262:136;:::o;12514:188::-;12580:9;;;;;;;;;;;12564:25;;:12;:10;:12::i;:::-;:25;;;12556:34;;;;;;12601:26;12630:21;12601:50;;12662:32;12675:18;12662:12;:32::i;:::-;12545:157;12514:188::o;6316:117::-;6382:7;6409;:16;6417:7;6409:16;;;;;;;;;;;;;;;;6402:23;;6316:117;;;:::o;2876:148::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2983:1:::1;2946:40;;2967:6;::::0;::::1;;;;;;;;2946:40;;;;;;;;;;;;3014:1;2997:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2876:148::o:0;7649:156::-;7717:9;;;;;;;;;;;7701:25;;:12;:10;:12::i;:::-;:25;;;7693:34;;;;;;4255:17;7738:12;:22;;;;4255:17;7771:16;:26;;;;7649:156::o;2481:79::-;2519:7;2546:6;;;;;;;;;;;2539:13;;2481:79;:::o;6027:87::-;6066:13;6099:7;;;;;;;;;;;;;;;;;6092:14;;6027:87;:::o;6441:167::-;6519:4;6536:42;6546:12;:10;:12::i;:::-;6560:9;6571:6;6536:9;:42::i;:::-;6596:4;6589:11;;6441:167;;;;:::o;11571:164::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11645:6:::1;11640:88;11661:5;:12;11657:1;:16;11640:88;;;11712:4;11695;:14;11700:5;11706:1;11700:8;;;;;;;;:::i;:::-;;;;;;;;11695:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11675:3;;;;;:::i;:::-;;;;11640:88;;;;11571:164:::0;:::o;12313:189::-;12379:9;;;;;;;;;;;12363:25;;:12;:10;:12::i;:::-;:25;;;12355:34;;;;;;12400:23;12426:24;12444:4;12426:9;:24::i;:::-;12400:50;;12461:33;12478:15;12461:16;:33::i;:::-;12344:158;12313:189::o;11126:433::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11242:11:::1;;;;;;;;;;;11241:12;11233:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11291:68;11304:24;11322:4;11304:9;:24::i;:::-;11329:21;11351:7;:5;:7::i;:::-;11291:12;:68::i;:::-;11374:6;11370:77;11385:9;:16;11383:1;:18;11370:77;;;11440:5;11429:7;11437:1;11429:10;;;;;;;;:::i;:::-;;;;;;;;:16;;;;:::i;:::-;11407:7;:21;11415:9;11425:1;11415:12;;;;;;;;:::i;:::-;;;;;;;;11407:21;;;;;;;;;;;;;;;:38;;;;11402:3;;;;;:::i;:::-;;;;11370:77;;;;11471:4;11457:11;;:18;;;;;;;;;;;;;;;;;;11500:4;11486:11;;:18;;;;;;;;;;;;;;;;;;11541:9;11522:15;:29;;;;:::i;:::-;11515:4;:36;;;;11126:433:::0;;:::o;6616:143::-;6697:7;6724:11;:18;6736:5;6724:18;;;;;;;;;;;;;;;:27;6743:7;6724:27;;;;;;;;;;;;;;;;6717:34;;6616:143;;;;:::o;7813:147::-;7898:9;;;;;;;;;;;7882:25;;:12;:10;:12::i;:::-;:25;;;7874:34;;;;;;7948:4;7919:18;:26;7938:6;7919:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;7813:147;:::o;2695:173::-;2618:12;:10;:12::i;:::-;2608:22;;:6;;;;;;;;;;:22;;;2600:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2811:9:::1;2782:39;;2803:6;::::0;::::1;;;;;;;;2782:39;;;;;;;;;;;;2841:9;2832:6;::::0;:18:::1;;;;;;;;;;;;;;;;;;2695:173:::0;:::o;1788:132::-;1846:7;1873:39;1877:1;1880;1873:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1866:46;;1788:132;;;;:::o;199:98::-;252:7;279:10;272:17;;199:98;:::o;7973:335::-;8083:1;8066:19;;:5;:19;;;;8058:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8164:1;8145:21;;:7;:21;;;;8137:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8246:6;8216:11;:18;8228:5;8216:18;;;;;;;;;;;;;;;:27;8235:7;8216:27;;;;;;;;;;;;;;;:36;;;;8284:7;8268:32;;8277:5;8268:32;;;8293:6;8268:32;;;;;;:::i;:::-;;;;;;;;7973:335;;;:::o;8316:1710::-;8420:1;8404:18;;:4;:18;;;;8396:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8497:1;8483:16;;:2;:16;;;;8475:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8567:1;8558:6;:10;8550:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8634:4;;8627;:11;;;;8661:7;:5;:7::i;:::-;8653:15;;:4;:15;;;;:32;;;;;8678:7;:5;:7::i;:::-;8672:13;;:2;:13;;;;8653:32;8649:1185;;;8711:4;:10;8716:4;8711:10;;;;;;;;;;;;;;;;;;;;;;;;;8710:11;:24;;;;;8726:4;:8;8731:2;8726:8;;;;;;;;;;;;;;;;;;;;;;;;;8725:9;8710:24;8702:33;;;;;;8762:13;;;;;;;;;;;8754:21;;:4;:21;;;:55;;;;;8793:15;;;;;;;;;;;8779:30;;:2;:30;;;;8754:55;:83;;;;;8815:18;:22;8834:2;8815:22;;;;;;;;;;;;;;;;;;;;;;;;;8813:24;8754:83;:111;;;;;8860:4;;8842:15;:22;8754:111;8750:422;;;8948:16;;8937:6;8923:7;:11;8931:2;8923:11;;;;;;;;;;;;;;;;:20;;;;:::i;:::-;8922:42;;8914:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9021:12;;9011:6;:22;;9003:31;;;;;;9076:15;9061:8;:12;9070:2;9061:12;;;;;;;;;;;;;;;;:30;9053:39;;;;;;9145:10;9126:15;:30;;;;:::i;:::-;9111:8;:12;9120:2;9111:12;;;;;;;;;;;;;;;:45;;;;8750:422;9219:6;;;;;;;;;;;9218:7;:32;;;;;9237:13;;;;;;;;;;;9229:21;;:4;:21;;;;9218:32;:47;;;;;9254:11;;;;;;;;;;;9218:47;:76;;;;;9270:18;:24;9289:4;9270:24;;;;;;;;;;;;;;;;;;;;;;;;;9269:25;9218:76;9214:609;;;9341:4;;9323:15;:22;9315:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9408:28;9439:24;9457:4;9439:9;:24::i;:::-;9408:55;;9508:10;;9485:20;:33;9482:326;;;9542:38;9559:20;9542:16;:38::i;:::-;9603:26;9632:21;9603:50;;9700:1;9679:18;:22;9676:113;;;9730:35;9743:21;9730:12;:35::i;:::-;9676:113;9519:289;9482:326;9296:527;9214:609;8649:1185;9854:13;;;;;;;;;;;9848:19;;:2;:19;;;:55;;;;;9887:15;;;;;;;;;;;9871:32;;:4;:32;;;;9848:55;:85;;;;;9909:18;:24;9928:4;9909:24;;;;;;;;;;;;;;;;;;;;;;;;;9907:26;9848:85;9844:129;;;9957:4;;9950;:11;;;;9844:129;9985:33;10003:4;10008:2;10011:6;9985:17;:33::i;:::-;8316:1710;;;:::o;1336:190::-;1422:7;1455:1;1450;:6;;1458:12;1442:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1482:9;1498:1;1494;:5;;;;:::i;:::-;1482:17;;1517:1;1510:8;;;1336:190;;;;;:::o;10833:281::-;10890:9;;;;;;;;;;;:18;;:43;10909:23;10929:2;10909:15;10920:3;10909:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;10890:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10944:14;;;;;;;;;;;:23;;:48;10968:23;10988:2;10968:15;10979:3;10968:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;10944:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11003:16;;;;;;;;;;;:25;;:49;11029:22;11049:1;11029:15;11040:3;11029:6;:10;;:15;;;;:::i;:::-;:19;;:22;;;;:::i;:::-;11003:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11063:10;;;;;;;;;;;:19;;:43;11083:22;11103:1;11083:15;11094:3;11083:6;:10;;:15;;;;:::i;:::-;:19;;:22;;;;:::i;:::-;11063:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10833:281;:::o;10034:483::-;5056:4;5047:6;;:13;;;;;;;;;;;;;;;;;;10112:21:::1;10150:1;10136:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10112:40;;10181:4;10163;10168:1;10163:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10207:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10197:4;10202:1;10197:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10240:62;10257:4;10272:15;;;;;;;;;;;10290:11;10240:8;:62::i;:::-;10313:15;;;;;;;;;;;:66;;;10394:11;10420:1;10436:4;10463;10483:15;10313:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10101:416;5092:5:::0;5083:6;;:14;;;;;;;;;;;;;;;;;;10034:483;:::o;10531:288::-;5056:4;5047:6;;:13;;;;;;;;;;;;;;;;;;10637:60:::1;10654:4;10668:15;;;;;;;;;;;10685:11;10637:8;:60::i;:::-;10708:15;;;;;;;;;;;:31;;;10747:9;10766:4;10772:11;10784:1;10786::::0;10788:6:::1;10795:15;10708:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;5092:5:::0;5083:6;;:14;;;;;;;;;;;;;;;;;;10531:288;;;:::o;1928:189::-;2014:7;2046:1;2042;:5;2049:12;2034:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2073:9;2089:1;2085;:5;;;;:::i;:::-;2073:17;;2108:1;2101:8;;;1928:189;;;;;:::o;11843:421::-;11942:22;11965:12;11981:20;11993:7;11981:11;:20::i;:::-;11941:60;;;;12030:28;12050:7;12030;:15;12038:6;12030:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12012:7;:15;12020:6;12012:15;;;;;;;;;;;;;;;:46;;;;12090:38;12113:14;12090:7;:18;12098:9;12090:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12069:7;:18;12077:9;12069:18;;;;;;;;;;;;;;;:59;;;;12165:32;12192:4;12165:7;:22;12181:4;12165:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12140:7;:22;12156:4;12140:22;;;;;;;;;;;;;;;:57;;;;12230:9;12213:43;;12222:6;12213:43;;;12241:14;12213:43;;;;;;:::i;:::-;;;;;;;;11930:334;;11843:421;;;:::o;1534:246::-;1592:7;1621:1;1616;:6;1612:47;;;1646:1;1639:8;;;;1612:47;1669:9;1685:1;1681;:5;;;;:::i;:::-;1669:17;;1714:1;1709;1705;:5;;;;:::i;:::-;:10;1697:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1771:1;1764:8;;;1534:246;;;;;:::o;12713:234::-;12773:7;12782;12802:12;12817:27;12839:4;12817:17;12829:4;;12817:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;12802:42;;12855:23;12881:17;12893:4;12881:7;:11;;:17;;;;:::i;:::-;12855:43;;12917:15;12934:4;12909:30;;;;;;12713:234;;;:::o;1192:136::-;1250:7;1277:43;1281:1;1284;1277:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1270:50;;1192:136;;;;:::o;1005:179::-;1063:7;1083:9;1099:1;1095;:5;;;;:::i;:::-;1083:17;;1124:1;1119;:6;;1111:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1175:1;1168:8;;;1005:179;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;769:::-;865:5;890:81;906:64;963:6;906:64;:::i;:::-;890:81;:::i;:::-;881:90;;991:5;1020:6;1013:5;1006:21;1054:4;1047:5;1043:16;1036:23;;1080:6;1130:3;1122:4;1114:6;1110:17;1105:3;1101:27;1098:36;1095:143;;;1149:79;;:::i;:::-;1095:143;1262:1;1247:238;1272:6;1269:1;1266:13;1247:238;;;1340:3;1369:37;1402:3;1390:10;1369:37;:::i;:::-;1364:3;1357:50;1436:4;1431:3;1427:14;1420:21;;1470:4;1465:3;1461:14;1454:21;;1307:178;1294:1;1291;1287:9;1282:14;;1247:238;;;1251:14;871:620;;769:722;;;;;:::o;1497:139::-;1543:5;1581:6;1568:20;1559:29;;1597:33;1624:5;1597:33;:::i;:::-;1497:139;;;;:::o;1642:143::-;1699:5;1730:6;1724:13;1715:22;;1746:33;1773:5;1746:33;:::i;:::-;1642:143;;;;:::o;1808:370::-;1879:5;1928:3;1921:4;1913:6;1909:17;1905:27;1895:122;;1936:79;;:::i;:::-;1895:122;2053:6;2040:20;2078:94;2168:3;2160:6;2153:4;2145:6;2141:17;2078:94;:::i;:::-;2069:103;;1885:293;1808:370;;;;:::o;2201:::-;2272:5;2321:3;2314:4;2306:6;2302:17;2298:27;2288:122;;2329:79;;:::i;:::-;2288:122;2446:6;2433:20;2471:94;2561:3;2553:6;2546:4;2538:6;2534:17;2471:94;:::i;:::-;2462:103;;2278:293;2201:370;;;;:::o;2577:137::-;2631:5;2662:6;2656:13;2647:22;;2678:30;2702:5;2678:30;:::i;:::-;2577:137;;;;:::o;2720:139::-;2766:5;2804:6;2791:20;2782:29;;2820:33;2847:5;2820:33;:::i;:::-;2720:139;;;;:::o;2865:143::-;2922:5;2953:6;2947:13;2938:22;;2969:33;2996:5;2969:33;:::i;:::-;2865:143;;;;:::o;3014:329::-;3073:6;3122:2;3110:9;3101:7;3097:23;3093:32;3090:119;;;3128:79;;:::i;:::-;3090:119;3248:1;3273:53;3318:7;3309:6;3298:9;3294:22;3273:53;:::i;:::-;3263:63;;3219:117;3014:329;;;;:::o;3349:351::-;3419:6;3468:2;3456:9;3447:7;3443:23;3439:32;3436:119;;;3474:79;;:::i;:::-;3436:119;3594:1;3619:64;3675:7;3666:6;3655:9;3651:22;3619:64;:::i;:::-;3609:74;;3565:128;3349:351;;;;:::o;3706:474::-;3774:6;3782;3831:2;3819:9;3810:7;3806:23;3802:32;3799:119;;;3837:79;;:::i;:::-;3799:119;3957:1;3982:53;4027:7;4018:6;4007:9;4003:22;3982:53;:::i;:::-;3972:63;;3928:117;4084:2;4110:53;4155:7;4146:6;4135:9;4131:22;4110:53;:::i;:::-;4100:63;;4055:118;3706:474;;;;;:::o;4186:619::-;4263:6;4271;4279;4328:2;4316:9;4307:7;4303:23;4299:32;4296:119;;;4334:79;;:::i;:::-;4296:119;4454:1;4479:53;4524:7;4515:6;4504:9;4500:22;4479:53;:::i;:::-;4469:63;;4425:117;4581:2;4607:53;4652:7;4643:6;4632:9;4628:22;4607:53;:::i;:::-;4597:63;;4552:118;4709:2;4735:53;4780:7;4771:6;4760:9;4756:22;4735:53;:::i;:::-;4725:63;;4680:118;4186:619;;;;;:::o;4811:474::-;4879:6;4887;4936:2;4924:9;4915:7;4911:23;4907:32;4904:119;;;4942:79;;:::i;:::-;4904:119;5062:1;5087:53;5132:7;5123:6;5112:9;5108:22;5087:53;:::i;:::-;5077:63;;5033:117;5189:2;5215:53;5260:7;5251:6;5240:9;5236:22;5215:53;:::i;:::-;5205:63;;5160:118;4811:474;;;;;:::o;5291:539::-;5375:6;5424:2;5412:9;5403:7;5399:23;5395:32;5392:119;;;5430:79;;:::i;:::-;5392:119;5578:1;5567:9;5563:17;5550:31;5608:18;5600:6;5597:30;5594:117;;;5630:79;;:::i;:::-;5594:117;5735:78;5805:7;5796:6;5785:9;5781:22;5735:78;:::i;:::-;5725:88;;5521:302;5291:539;;;;:::o;5836:894::-;5954:6;5962;6011:2;5999:9;5990:7;5986:23;5982:32;5979:119;;;6017:79;;:::i;:::-;5979:119;6165:1;6154:9;6150:17;6137:31;6195:18;6187:6;6184:30;6181:117;;;6217:79;;:::i;:::-;6181:117;6322:78;6392:7;6383:6;6372:9;6368:22;6322:78;:::i;:::-;6312:88;;6108:302;6477:2;6466:9;6462:18;6449:32;6508:18;6500:6;6497:30;6494:117;;;6530:79;;:::i;:::-;6494:117;6635:78;6705:7;6696:6;6685:9;6681:22;6635:78;:::i;:::-;6625:88;;6420:303;5836:894;;;;;:::o;6736:345::-;6803:6;6852:2;6840:9;6831:7;6827:23;6823:32;6820:119;;;6858:79;;:::i;:::-;6820:119;6978:1;7003:61;7056:7;7047:6;7036:9;7032:22;7003:61;:::i;:::-;6993:71;;6949:125;6736:345;;;;:::o;7087:329::-;7146:6;7195:2;7183:9;7174:7;7170:23;7166:32;7163:119;;;7201:79;;:::i;:::-;7163:119;7321:1;7346:53;7391:7;7382:6;7371:9;7367:22;7346:53;:::i;:::-;7336:63;;7292:117;7087:329;;;;:::o;7422:351::-;7492:6;7541:2;7529:9;7520:7;7516:23;7512:32;7509:119;;;7547:79;;:::i;:::-;7509:119;7667:1;7692:64;7748:7;7739:6;7728:9;7724:22;7692:64;:::i;:::-;7682:74;;7638:128;7422:351;;;;:::o;7779:474::-;7847:6;7855;7904:2;7892:9;7883:7;7879:23;7875:32;7872:119;;;7910:79;;:::i;:::-;7872:119;8030:1;8055:53;8100:7;8091:6;8080:9;8076:22;8055:53;:::i;:::-;8045:63;;8001:117;8157:2;8183:53;8228:7;8219:6;8208:9;8204:22;8183:53;:::i;:::-;8173:63;;8128:118;7779:474;;;;;:::o;8259:663::-;8347:6;8355;8363;8412:2;8400:9;8391:7;8387:23;8383:32;8380:119;;;8418:79;;:::i;:::-;8380:119;8538:1;8563:64;8619:7;8610:6;8599:9;8595:22;8563:64;:::i;:::-;8553:74;;8509:128;8676:2;8702:64;8758:7;8749:6;8738:9;8734:22;8702:64;:::i;:::-;8692:74;;8647:129;8815:2;8841:64;8897:7;8888:6;8877:9;8873:22;8841:64;:::i;:::-;8831:74;;8786:129;8259:663;;;;;:::o;8928:179::-;8997:10;9018:46;9060:3;9052:6;9018:46;:::i;:::-;9096:4;9091:3;9087:14;9073:28;;8928:179;;;;:::o;9113:147::-;9208:45;9247:5;9208:45;:::i;:::-;9203:3;9196:58;9113:147;;:::o;9266:108::-;9343:24;9361:5;9343:24;:::i;:::-;9338:3;9331:37;9266:108;;:::o;9380:118::-;9467:24;9485:5;9467:24;:::i;:::-;9462:3;9455:37;9380:118;;:::o;9534:732::-;9653:3;9682:54;9730:5;9682:54;:::i;:::-;9752:86;9831:6;9826:3;9752:86;:::i;:::-;9745:93;;9862:56;9912:5;9862:56;:::i;:::-;9941:7;9972:1;9957:284;9982:6;9979:1;9976:13;9957:284;;;10058:6;10052:13;10085:63;10144:3;10129:13;10085:63;:::i;:::-;10078:70;;10171:60;10224:6;10171:60;:::i;:::-;10161:70;;10017:224;10004:1;10001;9997:9;9992:14;;9957:284;;;9961:14;10257:3;10250:10;;9658:608;;;9534:732;;;;:::o;10272:109::-;10353:21;10368:5;10353:21;:::i;:::-;10348:3;10341:34;10272:109;;:::o;10387:147::-;10482:45;10521:5;10482:45;:::i;:::-;10477:3;10470:58;10387:147;;:::o;10540:364::-;10628:3;10656:39;10689:5;10656:39;:::i;:::-;10711:71;10775:6;10770:3;10711:71;:::i;:::-;10704:78;;10791:52;10836:6;10831:3;10824:4;10817:5;10813:16;10791:52;:::i;:::-;10868:29;10890:6;10868:29;:::i;:::-;10863:3;10859:39;10852:46;;10632:272;10540:364;;;;:::o;10910:366::-;11052:3;11073:67;11137:2;11132:3;11073:67;:::i;:::-;11066:74;;11149:93;11238:3;11149:93;:::i;:::-;11267:2;11262:3;11258:12;11251:19;;10910:366;;;:::o;11282:::-;11424:3;11445:67;11509:2;11504:3;11445:67;:::i;:::-;11438:74;;11521:93;11610:3;11521:93;:::i;:::-;11639:2;11634:3;11630:12;11623:19;;11282:366;;;:::o;11654:::-;11796:3;11817:67;11881:2;11876:3;11817:67;:::i;:::-;11810:74;;11893:93;11982:3;11893:93;:::i;:::-;12011:2;12006:3;12002:12;11995:19;;11654:366;;;:::o;12026:::-;12168:3;12189:67;12253:2;12248:3;12189:67;:::i;:::-;12182:74;;12265:93;12354:3;12265:93;:::i;:::-;12383:2;12378:3;12374:12;12367:19;;12026:366;;;:::o;12398:::-;12540:3;12561:67;12625:2;12620:3;12561:67;:::i;:::-;12554:74;;12637:93;12726:3;12637:93;:::i;:::-;12755:2;12750:3;12746:12;12739:19;;12398:366;;;:::o;12770:::-;12912:3;12933:67;12997:2;12992:3;12933:67;:::i;:::-;12926:74;;13009:93;13098:3;13009:93;:::i;:::-;13127:2;13122:3;13118:12;13111:19;;12770:366;;;:::o;13142:::-;13284:3;13305:67;13369:2;13364:3;13305:67;:::i;:::-;13298:74;;13381:93;13470:3;13381:93;:::i;:::-;13499:2;13494:3;13490:12;13483:19;;13142:366;;;:::o;13514:::-;13656:3;13677:67;13741:2;13736:3;13677:67;:::i;:::-;13670:74;;13753:93;13842:3;13753:93;:::i;:::-;13871:2;13866:3;13862:12;13855:19;;13514:366;;;:::o;13886:::-;14028:3;14049:67;14113:2;14108:3;14049:67;:::i;:::-;14042:74;;14125:93;14214:3;14125:93;:::i;:::-;14243:2;14238:3;14234:12;14227:19;;13886:366;;;:::o;14258:::-;14400:3;14421:67;14485:2;14480:3;14421:67;:::i;:::-;14414:74;;14497:93;14586:3;14497:93;:::i;:::-;14615:2;14610:3;14606:12;14599:19;;14258:366;;;:::o;14630:::-;14772:3;14793:67;14857:2;14852:3;14793:67;:::i;:::-;14786:74;;14869:93;14958:3;14869:93;:::i;:::-;14987:2;14982:3;14978:12;14971:19;;14630:366;;;:::o;15002:::-;15144:3;15165:67;15229:2;15224:3;15165:67;:::i;:::-;15158:74;;15241:93;15330:3;15241:93;:::i;:::-;15359:2;15354:3;15350:12;15343:19;;15002:366;;;:::o;15374:118::-;15461:24;15479:5;15461:24;:::i;:::-;15456:3;15449:37;15374:118;;:::o;15498:112::-;15581:22;15597:5;15581:22;:::i;:::-;15576:3;15569:35;15498:112;;:::o;15616:222::-;15709:4;15747:2;15736:9;15732:18;15724:26;;15760:71;15828:1;15817:9;15813:17;15804:6;15760:71;:::i;:::-;15616:222;;;;:::o;15844:348::-;15973:4;16011:2;16000:9;15996:18;15988:26;;16024:79;16100:1;16089:9;16085:17;16076:6;16024:79;:::i;:::-;16113:72;16181:2;16170:9;16166:18;16157:6;16113:72;:::i;:::-;15844:348;;;;;:::o;16198:807::-;16447:4;16485:3;16474:9;16470:19;16462:27;;16499:71;16567:1;16556:9;16552:17;16543:6;16499:71;:::i;:::-;16580:72;16648:2;16637:9;16633:18;16624:6;16580:72;:::i;:::-;16662:80;16738:2;16727:9;16723:18;16714:6;16662:80;:::i;:::-;16752;16828:2;16817:9;16813:18;16804:6;16752:80;:::i;:::-;16842:73;16910:3;16899:9;16895:19;16886:6;16842:73;:::i;:::-;16925;16993:3;16982:9;16978:19;16969:6;16925:73;:::i;:::-;16198:807;;;;;;;;;:::o;17011:210::-;17098:4;17136:2;17125:9;17121:18;17113:26;;17149:65;17211:1;17200:9;17196:17;17187:6;17149:65;:::i;:::-;17011:210;;;;:::o;17227:313::-;17340:4;17378:2;17367:9;17363:18;17355:26;;17427:9;17421:4;17417:20;17413:1;17402:9;17398:17;17391:47;17455:78;17528:4;17519:6;17455:78;:::i;:::-;17447:86;;17227:313;;;;:::o;17546:419::-;17712:4;17750:2;17739:9;17735:18;17727:26;;17799:9;17793:4;17789:20;17785:1;17774:9;17770:17;17763:47;17827:131;17953:4;17827:131;:::i;:::-;17819:139;;17546:419;;;:::o;17971:::-;18137:4;18175:2;18164:9;18160:18;18152:26;;18224:9;18218:4;18214:20;18210:1;18199:9;18195:17;18188:47;18252:131;18378:4;18252:131;:::i;:::-;18244:139;;17971:419;;;:::o;18396:::-;18562:4;18600:2;18589:9;18585:18;18577:26;;18649:9;18643:4;18639:20;18635:1;18624:9;18620:17;18613:47;18677:131;18803:4;18677:131;:::i;:::-;18669:139;;18396:419;;;:::o;18821:::-;18987:4;19025:2;19014:9;19010:18;19002:26;;19074:9;19068:4;19064:20;19060:1;19049:9;19045:17;19038:47;19102:131;19228:4;19102:131;:::i;:::-;19094:139;;18821:419;;;:::o;19246:::-;19412:4;19450:2;19439:9;19435:18;19427:26;;19499:9;19493:4;19489:20;19485:1;19474:9;19470:17;19463:47;19527:131;19653:4;19527:131;:::i;:::-;19519:139;;19246:419;;;:::o;19671:::-;19837:4;19875:2;19864:9;19860:18;19852:26;;19924:9;19918:4;19914:20;19910:1;19899:9;19895:17;19888:47;19952:131;20078:4;19952:131;:::i;:::-;19944:139;;19671:419;;;:::o;20096:::-;20262:4;20300:2;20289:9;20285:18;20277:26;;20349:9;20343:4;20339:20;20335:1;20324:9;20320:17;20313:47;20377:131;20503:4;20377:131;:::i;:::-;20369:139;;20096:419;;;:::o;20521:::-;20687:4;20725:2;20714:9;20710:18;20702:26;;20774:9;20768:4;20764:20;20760:1;20749:9;20745:17;20738:47;20802:131;20928:4;20802:131;:::i;:::-;20794:139;;20521:419;;;:::o;20946:::-;21112:4;21150:2;21139:9;21135:18;21127:26;;21199:9;21193:4;21189:20;21185:1;21174:9;21170:17;21163:47;21227:131;21353:4;21227:131;:::i;:::-;21219:139;;20946:419;;;:::o;21371:::-;21537:4;21575:2;21564:9;21560:18;21552:26;;21624:9;21618:4;21614:20;21610:1;21599:9;21595:17;21588:47;21652:131;21778:4;21652:131;:::i;:::-;21644:139;;21371:419;;;:::o;21796:::-;21962:4;22000:2;21989:9;21985:18;21977:26;;22049:9;22043:4;22039:20;22035:1;22024:9;22020:17;22013:47;22077:131;22203:4;22077:131;:::i;:::-;22069:139;;21796:419;;;:::o;22221:::-;22387:4;22425:2;22414:9;22410:18;22402:26;;22474:9;22468:4;22464:20;22460:1;22449:9;22445:17;22438:47;22502:131;22628:4;22502:131;:::i;:::-;22494:139;;22221:419;;;:::o;22646:222::-;22739:4;22777:2;22766:9;22762:18;22754:26;;22790:71;22858:1;22847:9;22843:17;22834:6;22790:71;:::i;:::-;22646:222;;;;:::o;22874:831::-;23137:4;23175:3;23164:9;23160:19;23152:27;;23189:71;23257:1;23246:9;23242:17;23233:6;23189:71;:::i;:::-;23270:80;23346:2;23335:9;23331:18;23322:6;23270:80;:::i;:::-;23397:9;23391:4;23387:20;23382:2;23371:9;23367:18;23360:48;23425:108;23528:4;23519:6;23425:108;:::i;:::-;23417:116;;23543:72;23611:2;23600:9;23596:18;23587:6;23543:72;:::i;:::-;23625:73;23693:3;23682:9;23678:19;23669:6;23625:73;:::i;:::-;22874:831;;;;;;;;:::o;23711:214::-;23800:4;23838:2;23827:9;23823:18;23815:26;;23851:67;23915:1;23904:9;23900:17;23891:6;23851:67;:::i;:::-;23711:214;;;;:::o;23931:129::-;23965:6;23992:20;;:::i;:::-;23982:30;;24021:33;24049:4;24041:6;24021:33;:::i;:::-;23931:129;;;:::o;24066:75::-;24099:6;24132:2;24126:9;24116:19;;24066:75;:::o;24147:311::-;24224:4;24314:18;24306:6;24303:30;24300:56;;;24336:18;;:::i;:::-;24300:56;24386:4;24378:6;24374:17;24366:25;;24446:4;24440;24436:15;24428:23;;24147:311;;;:::o;24464:::-;24541:4;24631:18;24623:6;24620:30;24617:56;;;24653:18;;:::i;:::-;24617:56;24703:4;24695:6;24691:17;24683:25;;24763:4;24757;24753:15;24745:23;;24464:311;;;:::o;24781:132::-;24848:4;24871:3;24863:11;;24901:4;24896:3;24892:14;24884:22;;24781:132;;;:::o;24919:114::-;24986:6;25020:5;25014:12;25004:22;;24919:114;;;:::o;25039:99::-;25091:6;25125:5;25119:12;25109:22;;25039:99;;;:::o;25144:113::-;25214:4;25246;25241:3;25237:14;25229:22;;25144:113;;;:::o;25263:184::-;25362:11;25396:6;25391:3;25384:19;25436:4;25431:3;25427:14;25412:29;;25263:184;;;;:::o;25453:169::-;25537:11;25571:6;25566:3;25559:19;25611:4;25606:3;25602:14;25587:29;;25453:169;;;;:::o;25628:305::-;25668:3;25687:20;25705:1;25687:20;:::i;:::-;25682:25;;25721:20;25739:1;25721:20;:::i;:::-;25716:25;;25875:1;25807:66;25803:74;25800:1;25797:81;25794:107;;;25881:18;;:::i;:::-;25794:107;25925:1;25922;25918:9;25911:16;;25628:305;;;;:::o;25939:185::-;25979:1;25996:20;26014:1;25996:20;:::i;:::-;25991:25;;26030:20;26048:1;26030:20;:::i;:::-;26025:25;;26069:1;26059:35;;26074:18;;:::i;:::-;26059:35;26116:1;26113;26109:9;26104:14;;25939:185;;;;:::o;26130:348::-;26170:7;26193:20;26211:1;26193:20;:::i;:::-;26188:25;;26227:20;26245:1;26227:20;:::i;:::-;26222:25;;26415:1;26347:66;26343:74;26340:1;26337:81;26332:1;26325:9;26318:17;26314:105;26311:131;;;26422:18;;:::i;:::-;26311:131;26470:1;26467;26463:9;26452:20;;26130:348;;;;:::o;26484:191::-;26524:4;26544:20;26562:1;26544:20;:::i;:::-;26539:25;;26578:20;26596:1;26578:20;:::i;:::-;26573:25;;26617:1;26614;26611:8;26608:34;;;26622:18;;:::i;:::-;26608:34;26667:1;26664;26660:9;26652:17;;26484:191;;;;:::o;26681:96::-;26718:7;26747:24;26765:5;26747:24;:::i;:::-;26736:35;;26681:96;;;:::o;26783:90::-;26817:7;26860:5;26853:13;26846:21;26835:32;;26783:90;;;:::o;26879:126::-;26916:7;26956:42;26949:5;26945:54;26934:65;;26879:126;;;:::o;27011:77::-;27048:7;27077:5;27066:16;;27011:77;;;:::o;27094:86::-;27129:7;27169:4;27162:5;27158:16;27147:27;;27094:86;;;:::o;27186:134::-;27244:9;27277:37;27308:5;27277:37;:::i;:::-;27264:50;;27186:134;;;:::o;27326:121::-;27384:9;27417:24;27435:5;27417:24;:::i;:::-;27404:37;;27326:121;;;:::o;27453:126::-;27503:9;27536:37;27567:5;27536:37;:::i;:::-;27523:50;;27453:126;;;:::o;27585:113::-;27635:9;27668:24;27686:5;27668:24;:::i;:::-;27655:37;;27585:113;;;:::o;27704:307::-;27772:1;27782:113;27796:6;27793:1;27790:13;27782:113;;;27881:1;27876:3;27872:11;27866:18;27862:1;27857:3;27853:11;27846:39;27818:2;27815:1;27811:10;27806:15;;27782:113;;;27913:6;27910:1;27907:13;27904:101;;;27993:1;27984:6;27979:3;27975:16;27968:27;27904:101;27753:258;27704:307;;;:::o;28017:281::-;28100:27;28122:4;28100:27;:::i;:::-;28092:6;28088:40;28230:6;28218:10;28215:22;28194:18;28182:10;28179:34;28176:62;28173:88;;;28241:18;;:::i;:::-;28173:88;28281:10;28277:2;28270:22;28060:238;28017:281;;:::o;28304:233::-;28343:3;28366:24;28384:5;28366:24;:::i;:::-;28357:33;;28412:66;28405:5;28402:77;28399:103;;;28482:18;;:::i;:::-;28399:103;28529:1;28522:5;28518:13;28511:20;;28304:233;;;:::o;28543:180::-;28591:77;28588:1;28581:88;28688:4;28685:1;28678:15;28712:4;28709:1;28702:15;28729:180;28777:77;28774:1;28767:88;28874:4;28871:1;28864:15;28898:4;28895:1;28888:15;28915:180;28963:77;28960:1;28953:88;29060:4;29057:1;29050:15;29084:4;29081:1;29074:15;29101:180;29149:77;29146:1;29139:88;29246:4;29243:1;29236:15;29270:4;29267:1;29260:15;29287:117;29396:1;29393;29386:12;29410:117;29519:1;29516;29509:12;29533:117;29642:1;29639;29632:12;29656:117;29765:1;29762;29755:12;29779:102;29820:6;29871:2;29867:7;29862:2;29855:5;29851:14;29847:28;29837:38;;29779:102;;;:::o;29887:222::-;30027:34;30023:1;30015:6;30011:14;30004:58;30096:5;30091:2;30083:6;30079:15;30072:30;29887:222;:::o;30115:166::-;30255:18;30251:1;30243:6;30239:14;30232:42;30115:166;:::o;30287:221::-;30427:34;30423:1;30415:6;30411:14;30404:58;30496:4;30491:2;30483:6;30479:15;30472:29;30287:221;:::o;30514:177::-;30654:29;30650:1;30642:6;30638:14;30631:53;30514:177;:::o;30697:220::-;30837:34;30833:1;30825:6;30821:14;30814:58;30906:3;30901:2;30893:6;30889:15;30882:28;30697:220;:::o;30923:182::-;31063:34;31059:1;31051:6;31047:14;31040:58;30923:182;:::o;31111:228::-;31251:34;31247:1;31239:6;31235:14;31228:58;31320:11;31315:2;31307:6;31303:15;31296:36;31111:228;:::o;31345:224::-;31485:34;31481:1;31473:6;31469:14;31462:58;31554:7;31549:2;31541:6;31537:15;31530:32;31345:224;:::o;31575:223::-;31715:34;31711:1;31703:6;31699:14;31692:58;31784:6;31779:2;31771:6;31767:15;31760:31;31575:223;:::o;31804:173::-;31944:25;31940:1;31932:6;31928:14;31921:49;31804:173;:::o;31983:227::-;32123:34;32119:1;32111:6;32107:14;32100:58;32192:10;32187:2;32179:6;32175:15;32168:35;31983:227;:::o;32216:181::-;32356:33;32352:1;32344:6;32340:14;32333:57;32216:181;:::o;32403:122::-;32476:24;32494:5;32476:24;:::i;:::-;32469:5;32466:35;32456:63;;32515:1;32512;32505:12;32456:63;32403:122;:::o;32531:116::-;32601:21;32616:5;32601:21;:::i;:::-;32594:5;32591:32;32581:60;;32637:1;32634;32627:12;32581:60;32531:116;:::o;32653:122::-;32726:24;32744:5;32726:24;:::i;:::-;32719:5;32716:35;32706:63;;32765:1;32762;32755:12;32706:63;32653:122;:::o

Swarm Source

ipfs://7a31b3885a0694b0d98793c2b06d92e92a36ff6c457be818afc07bb80b115e50

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  ]
[ 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.