ETH Price: $2,407.32 (-0.61%)

Contract

0xa9AbbabD401cf46BB0000abEd444a0BdA2721254
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve151555882022-07-16 19:27:12790 days ago1657999632IN
0xa9AbbabD...dA2721254
0 ETH0.0006657814.10262769
Approve151555752022-07-16 19:24:32790 days ago1657999472IN
0xa9AbbabD...dA2721254
0 ETH0.0007166215.17951116
Approve151555742022-07-16 19:24:15790 days ago1657999455IN
0xa9AbbabD...dA2721254
0 ETH0.000680614.4165386
Approve151555612022-07-16 19:21:13790 days ago1657999273IN
0xa9AbbabD...dA2721254
0 ETH0.0006262113.264525
Approve151555542022-07-16 19:20:17790 days ago1657999217IN
0xa9AbbabD...dA2721254
0 ETH0.0008006216.95877016
Open Trading151555452022-07-16 19:18:10791 days ago1657999090IN
0xa9AbbabD...dA2721254
0 ETH0.0004681116.26854077
Add Liquidity151555402022-07-16 19:17:37791 days ago1657999057IN
0xa9AbbabD...dA2721254
0 ETH0.0505219617.88659678
Transfer151555292022-07-16 19:15:39791 days ago1657998939IN
0xa9AbbabD...dA2721254
1.5 ETH0.000415119.71535342
Transfer151555272022-07-16 19:15:04791 days ago1657998904IN
0xa9AbbabD...dA2721254
0 ETH0.0013700619.40965177
0x60806040151555212022-07-16 19:13:14791 days ago1657998794IN
 Create: KoAInu
0 ETH0.0549150815.40596472

Latest 1 internal transaction

Advanced mode:
Parent Transaction Hash Block From To
151555402022-07-16 19:17:37791 days ago1657999057
0xa9AbbabD...dA2721254
1.5 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KoAInu

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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 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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract KoAInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "KoA Inu";
    string private constant _symbol = "KoA";
    uint8 private constant _decimals = 9;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _taxFee = 7;
    uint256 private _teamFee = 5;
    mapping(address => bool) private bots;
    mapping(address => uint256) private buycooldown;
    mapping(address => uint256) private sellcooldown;
    mapping(address => uint256) private firstsell;
    mapping(address => uint256) private sellnumber;
    address payable private _teamAddress;
    address payable private _marketingFunds;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen = false;
    bool private liquidityAdded = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor(address payable addr1, address payable addr2) {
        _teamAddress = addr1;
        _marketingFunds = addr2;
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_teamAddress] = true;
        _isExcludedFromFee[_marketingFunds] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns (uint256) {
        require(rAmount <= _rTotal,"Amount must be less than total reflections");
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
    
    function removeAllFee() private {
        if (_taxFee == 0 && _teamFee == 0) return;
        _taxFee = 0;
        _teamFee = 0;
    }

    function restoreAllFee() private {
        _taxFee = 7;
        _teamFee = 5;
    }
    
    function setFee(uint256 multiplier) private {
        _taxFee = _taxFee * multiplier;
        if (multiplier > 1) {
            _teamFee = 10;
        }
        
    }

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

        if (from != owner() && to != owner()) {
            if (cooldownEnabled) {
                if (from != address(this) && to != address(this) && from != address(uniswapV2Router) && to != address(uniswapV2Router)) {
                    require(_msgSender() == address(uniswapV2Router) || _msgSender() == uniswapV2Pair,"ERR: Uniswap only");
                }
            }
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to] && cooldownEnabled) {
                require(tradingOpen);
                require(amount <= _maxTxAmount);
                require(buycooldown[to] < block.timestamp);
                buycooldown[to] = block.timestamp + (30 seconds);
                _teamFee = 6;
                _taxFee = 2;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                require(amount <= balanceOf(uniswapV2Pair).mul(3).div(100) && amount <= _maxTxAmount);
                require(sellcooldown[from] < block.timestamp);
                if(firstsell[from] + (1 days) < block.timestamp){
                    sellnumber[from] = 0;
                }
                if (sellnumber[from] == 0) {
                    sellnumber[from]++;
                    firstsell[from] = block.timestamp;
                    sellcooldown[from] = block.timestamp + (1 hours);
                }
                else if (sellnumber[from] == 1) {
                    sellnumber[from]++;
                    sellcooldown[from] = block.timestamp + (2 hours);
                }
                else if (sellnumber[from] == 2) {
                    sellnumber[from]++;
                    sellcooldown[from] = block.timestamp + (6 hours);
                }
                else if (sellnumber[from] == 3) {
                    sellnumber[from]++;
                    sellcooldown[from] = block.timestamp + (12 hours);
                }
                else if (sellnumber[from] == 4) {
                    sellnumber[from]++;
                    sellcooldown[from] = firstsell[from] + (1 days);
                }
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                setFee(sellnumber[from]);
            }
        }
        bool takeFee = true;

        if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            takeFee = false;
        }

        _tokenTransfer(from, to, amount, takeFee);
        restoreAllFee;
    }

    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 sendETHToFee(uint256 amount) private {
        _teamAddress.transfer(amount.div(2));
        _marketingFunds.transfer(amount.div(2));
    }
    
    function openTrading() public onlyOwner {
        require(liquidityAdded);
        tradingOpen = true;
    }

    function addLiquidity() external onlyOwner() {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        liquidityAdded = true;
        _maxTxAmount = 20000000000 * 10**9;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router),type(uint256).max);
    }

    function manualswap() external {
        require(_msgSender() == _teamAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _teamAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 teamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(teamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        require(maxTxPercent > 0, "Amount must be greater than 0");
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(10**2);
        emit MaxTxAmountUpdated(_maxTxAmount);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"addr1","type":"address"},{"internalType":"address payable","name":"addr2","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d91906200052c565b6000196200002c919062000593565b600655600760085560056009556000601260146101000a81548160ff0219169083151502179055506000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff0219169083151502179055506000601260186101000a81548160ff021916908315150217905550683635c9adc5dea00000601355348015620000da57600080fd5b50604051620041d1380380620041d1833981810160405281019062000100919062000638565b600062000112620004c260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35081600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546002600062000249620004c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200029d620004ca60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200044a620004c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004b2919062000690565b60405180910390a35050620006ad565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200053982620004f3565b91506200054683620004f3565b925082620005595762000558620004fd565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005a082620004f3565b9150620005ad83620004f3565b925082821015620005c357620005c262000564565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200060082620005d3565b9050919050565b6200061281620005f3565b81146200061e57600080fd5b50565b600081519050620006328162000607565b92915050565b60008060408385031215620006525762000651620005ce565b5b6000620006628582860162000621565b9250506020620006758582860162000621565b9150509250929050565b6200068a81620004f3565b82525050565b6000602082019050620006a760008301846200067f565b92915050565b613b1480620006bd6000396000f3fe6080604052600436106101025760003560e01c8063715018a611610095578063c3c8cd8011610064578063c3c8cd8014610330578063c9567bf914610347578063d543dbeb1461035e578063dd62ed3e14610387578063e8078d94146103c457610109565b8063715018a6146102865780638da5cb5b1461029d57806395d89b41146102c8578063a9059cbb146102f357610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b6040516101309190612cf1565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612dac565b610418565b60405161016d9190612e07565b60405180910390f35b34801561018257600080fd5b5061018b610436565b6040516101989190612e31565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612e4c565b610447565b6040516101d59190612e07565b60405180910390f35b3480156101ea57600080fd5b506101f3610520565b6040516102009190612ebb565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612f02565b610529565b005b34801561023e57600080fd5b506102476105db565b005b34801561025557600080fd5b50610270600480360381019061026b9190612f2f565b61064d565b60405161027d9190612e31565b60405180910390f35b34801561029257600080fd5b5061029b61069e565b005b3480156102a957600080fd5b506102b26107f1565b6040516102bf9190612f6b565b60405180910390f35b3480156102d457600080fd5b506102dd61081a565b6040516102ea9190612cf1565b60405180910390f35b3480156102ff57600080fd5b5061031a60048036038101906103159190612dac565b610857565b6040516103279190612e07565b60405180910390f35b34801561033c57600080fd5b50610345610875565b005b34801561035357600080fd5b5061035c6108ef565b005b34801561036a57600080fd5b5061038560048036038101906103809190612f86565b6109ba565b005b34801561039357600080fd5b506103ae60048036038101906103a99190612fb3565b610b03565b6040516103bb9190612e31565b60405180910390f35b3480156103d057600080fd5b506103d9610b8a565b005b60606040518060400160405280600781526020017f4b6f4120496e7500000000000000000000000000000000000000000000000000815250905090565b600061042c61042561104c565b8484611054565b6001905092915050565b6000683635c9adc5dea00000905090565b600061045484848461121d565b6105158461046061104c565b61051085604051806060016040528060288152602001613ab760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c661104c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120da9092919063ffffffff16565b611054565b600190509392505050565b60006009905090565b61053161104c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b59061303f565b60405180910390fd5b80601260186101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061c61104c565b73ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600047905061064a8161213e565b50565b6000610697600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612239565b9050919050565b6106a661104c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a9061303f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4b6f410000000000000000000000000000000000000000000000000000000000815250905090565b600061086b61086461104c565b848461121d565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b661104c565b73ffffffffffffffffffffffffffffffffffffffff16146108d657600080fd5b60006108e13061064d565b90506108ec816122a7565b50565b6108f761104c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b9061303f565b60405180910390fd5b601260159054906101000a900460ff1661099d57600080fd5b6001601260146101000a81548160ff021916908315150217905550565b6109c261104c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a469061303f565b60405180910390fd5b60008111610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a89906130ab565b60405180910390fd5b610ac16064610ab383683635c9adc5dea0000061252090919063ffffffff16565b61259a90919063ffffffff16565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601354604051610af89190612e31565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b9261104c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c169061303f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610caf30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611054565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1e91906130e0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da991906130e0565b6040518363ffffffff1660e01b8152600401610dc692919061310d565b6020604051808303816000875af1158015610de5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0991906130e0565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e923061064d565b600080610e9d6107f1565b426040518863ffffffff1660e01b8152600401610ebf9695949392919061317b565b60606040518083038185885af1158015610edd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f0291906131f1565b5050506001601260176101000a81548160ff0219169083151502179055506001601260186101000a81548160ff0219169083151502179055506001601260156101000a81548160ff0219169083151502179055506801158e460913d00000601381905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611005929190613244565b6020604051808303816000875af1158015611024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110489190613282565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba90613321565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611132576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611129906133b3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112109190612e31565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128390613445565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f2906134d7565b60405180910390fd5b6000811161133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590613569565b60405180910390fd5b6113466107f1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113b457506113846107f1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561201757601260189054906101000a900460ff16156115e7573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114905750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114ea5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115e657601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661153061104c565b73ffffffffffffffffffffffffffffffffffffffff1614806115a65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661158e61104c565b73ffffffffffffffffffffffffffffffffffffffff16145b6115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc906135d5565b60405180910390fd5b5b5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561168b5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61169457600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561173f5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117955750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117ad5750601260189054906101000a900460ff165b1561188657601260149054906101000a900460ff166117cb57600080fd5b6013548111156117da57600080fd5b42600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182557600080fd5b601e426118329190613624565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660098190555060026008819055505b60006118913061064d565b9050601260169054906101000a900460ff161580156118fe5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119165750601260179054906101000a900460ff165b156120155761196c606461195e6003611950601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661064d565b61252090919063ffffffff16565b61259a90919063ffffffff16565b821115801561197d57506013548211155b61198657600080fd5b42600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119d157600080fd5b4262015180600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a209190613624565b1015611a6c576000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611ba257600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611b039061367a565b919050555042600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e1042611b5a9190613624565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611faa565b6001600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611c9457600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611c399061367a565b9190505550611c2042611c4c9190613624565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa9565b6002600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611d8657600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611d2b9061367a565b919050555061546042611d3e9190613624565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa8565b6003600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611e7857600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611e1d9061367a565b919050555061a8c042611e309190613624565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa7565b6004600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611fa657600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611f0f9061367a565b919050555062015180600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f629190613624565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b5b611fb3816122a7565b60004790506000811115611fcb57611fca4761213e565b5b612013600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e4565b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120be5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120c857600090505b6120d48484848461260d565b50505050565b6000838311158290612122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121199190612cf1565b60405180910390fd5b506000838561213191906136c2565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61218e60028461259a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121b9573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61220a60028461259a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b5050565b6000600654821115612280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227790613768565b60405180910390fd5b600061228a61264c565b905061229f818461259a90919063ffffffff16565b915050919050565b6001601260166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122df576122de613788565b5b60405190808252806020026020018201604052801561230d5781602001602082028036833780820191505090505b5090503081600081518110612325576123246137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f091906130e0565b81600181518110612404576124036137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246b30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611054565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124cf9594939291906138a4565b600060405180830381600087803b1580156124e957600080fd5b505af11580156124fd573d6000803e3d6000fd5b50505050506000601260166101000a81548160ff02191690831515021790555050565b60008083036125325760009050612594565b6000828461254091906138fe565b905082848261254f9190613987565b1461258f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258690613a2a565b60405180910390fd5b809150505b92915050565b60006125dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612677565b905092915050565b806008546125f291906138fe565b600881905550600181111561260a57600a6009819055505b50565b8061261b5761261a6126da565b5b612626848484612705565b806126345761263361263a565b5b50505050565b60076008819055506005600981905550565b60008060006126596128d0565b91509150612670818361259a90919063ffffffff16565b9250505090565b600080831182906126be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b59190612cf1565b60405180910390fd5b50600083856126cd9190613987565b9050809150509392505050565b60006008541480156126ee57506000600954145b61270357600060088190555060006009819055505b565b60008060008060008061271787612932565b95509550955095509550955061277586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061280a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285681612a42565b6128608483612aff565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128bd9190612e31565b60405180910390a3505050505050505050565b600080600060065490506000683635c9adc5dea000009050612906683635c9adc5dea0000060065461259a90919063ffffffff16565b82101561292557600654683635c9adc5dea0000093509350505061292e565b81819350935050505b9091565b600080600080600080600080600061294f8a600854600954612b39565b925092509250600061295f61264c565b905060008060006129728e878787612bcf565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006129dc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120da565b905092915050565b60008082846129f39190613624565b905083811015612a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2f90613a96565b60405180910390fd5b8091505092915050565b6000612a4c61264c565b90506000612a63828461252090919063ffffffff16565b9050612ab781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b148260065461299a90919063ffffffff16565b600681905550612b2f816007546129e490919063ffffffff16565b6007819055505050565b600080600080612b656064612b57888a61252090919063ffffffff16565b61259a90919063ffffffff16565b90506000612b8f6064612b81888b61252090919063ffffffff16565b61259a90919063ffffffff16565b90506000612bb882612baa858c61299a90919063ffffffff16565b61299a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612be8858961252090919063ffffffff16565b90506000612bff868961252090919063ffffffff16565b90506000612c16878961252090919063ffffffff16565b90506000612c3f82612c31858761299a90919063ffffffff16565b61299a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c92578082015181840152602081019050612c77565b83811115612ca1576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cc382612c58565b612ccd8185612c63565b9350612cdd818560208601612c74565b612ce681612ca7565b840191505092915050565b60006020820190508181036000830152612d0b8184612cb8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d4382612d18565b9050919050565b612d5381612d38565b8114612d5e57600080fd5b50565b600081359050612d7081612d4a565b92915050565b6000819050919050565b612d8981612d76565b8114612d9457600080fd5b50565b600081359050612da681612d80565b92915050565b60008060408385031215612dc357612dc2612d13565b5b6000612dd185828601612d61565b9250506020612de285828601612d97565b9150509250929050565b60008115159050919050565b612e0181612dec565b82525050565b6000602082019050612e1c6000830184612df8565b92915050565b612e2b81612d76565b82525050565b6000602082019050612e466000830184612e22565b92915050565b600080600060608486031215612e6557612e64612d13565b5b6000612e7386828701612d61565b9350506020612e8486828701612d61565b9250506040612e9586828701612d97565b9150509250925092565b600060ff82169050919050565b612eb581612e9f565b82525050565b6000602082019050612ed06000830184612eac565b92915050565b612edf81612dec565b8114612eea57600080fd5b50565b600081359050612efc81612ed6565b92915050565b600060208284031215612f1857612f17612d13565b5b6000612f2684828501612eed565b91505092915050565b600060208284031215612f4557612f44612d13565b5b6000612f5384828501612d61565b91505092915050565b612f6581612d38565b82525050565b6000602082019050612f806000830184612f5c565b92915050565b600060208284031215612f9c57612f9b612d13565b5b6000612faa84828501612d97565b91505092915050565b60008060408385031215612fca57612fc9612d13565b5b6000612fd885828601612d61565b9250506020612fe985828601612d61565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613029602083612c63565b915061303482612ff3565b602082019050919050565b600060208201905081810360008301526130588161301c565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000613095601d83612c63565b91506130a08261305f565b602082019050919050565b600060208201905081810360008301526130c481613088565b9050919050565b6000815190506130da81612d4a565b92915050565b6000602082840312156130f6576130f5612d13565b5b6000613104848285016130cb565b91505092915050565b60006040820190506131226000830185612f5c565b61312f6020830184612f5c565b9392505050565b6000819050919050565b6000819050919050565b600061316561316061315b84613136565b613140565b612d76565b9050919050565b6131758161314a565b82525050565b600060c0820190506131906000830189612f5c565b61319d6020830188612e22565b6131aa604083018761316c565b6131b7606083018661316c565b6131c46080830185612f5c565b6131d160a0830184612e22565b979650505050505050565b6000815190506131eb81612d80565b92915050565b60008060006060848603121561320a57613209612d13565b5b6000613218868287016131dc565b9350506020613229868287016131dc565b925050604061323a868287016131dc565b9150509250925092565b60006040820190506132596000830185612f5c565b6132666020830184612e22565b9392505050565b60008151905061327c81612ed6565b92915050565b60006020828403121561329857613297612d13565b5b60006132a68482850161326d565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061330b602483612c63565b9150613316826132af565b604082019050919050565b6000602082019050818103600083015261333a816132fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061339d602283612c63565b91506133a882613341565b604082019050919050565b600060208201905081810360008301526133cc81613390565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061342f602583612c63565b915061343a826133d3565b604082019050919050565b6000602082019050818103600083015261345e81613422565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134c1602383612c63565b91506134cc82613465565b604082019050919050565b600060208201905081810360008301526134f0816134b4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613553602983612c63565b915061355e826134f7565b604082019050919050565b6000602082019050818103600083015261358281613546565b9050919050565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b60006135bf601183612c63565b91506135ca82613589565b602082019050919050565b600060208201905081810360008301526135ee816135b2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061362f82612d76565b915061363a83612d76565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561366f5761366e6135f5565b5b828201905092915050565b600061368582612d76565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136b7576136b66135f5565b5b600182019050919050565b60006136cd82612d76565b91506136d883612d76565b9250828210156136eb576136ea6135f5565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613752602a83612c63565b915061375d826136f6565b604082019050919050565b6000602082019050818103600083015261378181613745565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61381b81612d38565b82525050565b600061382d8383613812565b60208301905092915050565b6000602082019050919050565b6000613851826137e6565b61385b81856137f1565b935061386683613802565b8060005b8381101561389757815161387e8882613821565b975061388983613839565b92505060018101905061386a565b5085935050505092915050565b600060a0820190506138b96000830188612e22565b6138c6602083018761316c565b81810360408301526138d88186613846565b90506138e76060830185612f5c565b6138f46080830184612e22565b9695505050505050565b600061390982612d76565b915061391483612d76565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561394d5761394c6135f5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061399282612d76565b915061399d83612d76565b9250826139ad576139ac613958565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a14602183612c63565b9150613a1f826139b8565b604082019050919050565b60006020820190508181036000830152613a4381613a07565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a80601b83612c63565b9150613a8b82613a4a565b602082019050919050565b60006020820190508181036000830152613aaf81613a73565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122058982deee48d6e09ffb3e013cad43c117274fa7a46d4290f32ee1a7c7da3ccca64736f6c634300080f0033000000000000000000000000fe0005fee4d667cd398c8a3e33b842b8045a24e5000000000000000000000000fe0005fee4d667cd398c8a3e33b842b8045a24e5

Deployed Bytecode

0x6080604052600436106101025760003560e01c8063715018a611610095578063c3c8cd8011610064578063c3c8cd8014610330578063c9567bf914610347578063d543dbeb1461035e578063dd62ed3e14610387578063e8078d94146103c457610109565b8063715018a6146102865780638da5cb5b1461029d57806395d89b41146102c8578063a9059cbb146102f357610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780636fc3eaec1461023257806370a082311461024957610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b6040516101309190612cf1565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612dac565b610418565b60405161016d9190612e07565b60405180910390f35b34801561018257600080fd5b5061018b610436565b6040516101989190612e31565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612e4c565b610447565b6040516101d59190612e07565b60405180910390f35b3480156101ea57600080fd5b506101f3610520565b6040516102009190612ebb565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b9190612f02565b610529565b005b34801561023e57600080fd5b506102476105db565b005b34801561025557600080fd5b50610270600480360381019061026b9190612f2f565b61064d565b60405161027d9190612e31565b60405180910390f35b34801561029257600080fd5b5061029b61069e565b005b3480156102a957600080fd5b506102b26107f1565b6040516102bf9190612f6b565b60405180910390f35b3480156102d457600080fd5b506102dd61081a565b6040516102ea9190612cf1565b60405180910390f35b3480156102ff57600080fd5b5061031a60048036038101906103159190612dac565b610857565b6040516103279190612e07565b60405180910390f35b34801561033c57600080fd5b50610345610875565b005b34801561035357600080fd5b5061035c6108ef565b005b34801561036a57600080fd5b5061038560048036038101906103809190612f86565b6109ba565b005b34801561039357600080fd5b506103ae60048036038101906103a99190612fb3565b610b03565b6040516103bb9190612e31565b60405180910390f35b3480156103d057600080fd5b506103d9610b8a565b005b60606040518060400160405280600781526020017f4b6f4120496e7500000000000000000000000000000000000000000000000000815250905090565b600061042c61042561104c565b8484611054565b6001905092915050565b6000683635c9adc5dea00000905090565b600061045484848461121d565b6105158461046061104c565b61051085604051806060016040528060288152602001613ab760289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c661104c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120da9092919063ffffffff16565b611054565b600190509392505050565b60006009905090565b61053161104c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b59061303f565b60405180910390fd5b80601260186101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061c61104c565b73ffffffffffffffffffffffffffffffffffffffff161461063c57600080fd5b600047905061064a8161213e565b50565b6000610697600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612239565b9050919050565b6106a661104c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610733576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161072a9061303f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4b6f410000000000000000000000000000000000000000000000000000000000815250905090565b600061086b61086461104c565b848461121d565b6001905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b661104c565b73ffffffffffffffffffffffffffffffffffffffff16146108d657600080fd5b60006108e13061064d565b90506108ec816122a7565b50565b6108f761104c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097b9061303f565b60405180910390fd5b601260159054906101000a900460ff1661099d57600080fd5b6001601260146101000a81548160ff021916908315150217905550565b6109c261104c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a469061303f565b60405180910390fd5b60008111610a92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a89906130ab565b60405180910390fd5b610ac16064610ab383683635c9adc5dea0000061252090919063ffffffff16565b61259a90919063ffffffff16565b6013819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf601354604051610af89190612e31565b60405180910390a150565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610b9261104c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c169061303f565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610caf30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611054565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cfa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1e91906130e0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da991906130e0565b6040518363ffffffff1660e01b8152600401610dc692919061310d565b6020604051808303816000875af1158015610de5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e0991906130e0565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e923061064d565b600080610e9d6107f1565b426040518863ffffffff1660e01b8152600401610ebf9695949392919061317b565b60606040518083038185885af1158015610edd573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f0291906131f1565b5050506001601260176101000a81548160ff0219169083151502179055506001601260186101000a81548160ff0219169083151502179055506001601260156101000a81548160ff0219169083151502179055506801158e460913d00000601381905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611005929190613244565b6020604051808303816000875af1158015611024573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110489190613282565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ba90613321565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611132576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611129906133b3565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112109190612e31565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128390613445565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f2906134d7565b60405180910390fd5b6000811161133e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133590613569565b60405180910390fd5b6113466107f1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156113b457506113846107f1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561201757601260189054906101000a900460ff16156115e7573073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561143657503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114905750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114ea5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156115e657601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661153061104c565b73ffffffffffffffffffffffffffffffffffffffff1614806115a65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661158e61104c565b73ffffffffffffffffffffffffffffffffffffffff16145b6115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc906135d5565b60405180910390fd5b5b5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561168b5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61169457600080fd5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561173f5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156117955750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117ad5750601260189054906101000a900460ff165b1561188657601260149054906101000a900460ff166117cb57600080fd5b6013548111156117da57600080fd5b42600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061182557600080fd5b601e426118329190613624565b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660098190555060026008819055505b60006118913061064d565b9050601260169054906101000a900460ff161580156118fe5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119165750601260179054906101000a900460ff165b156120155761196c606461195e6003611950601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661064d565b61252090919063ffffffff16565b61259a90919063ffffffff16565b821115801561197d57506013548211155b61198657600080fd5b42600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106119d157600080fd5b4262015180600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a209190613624565b1015611a6c576000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6000600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611ba257600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611b039061367a565b919050555042600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610e1042611b5a9190613624565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611faa565b6001600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611c9457600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611c399061367a565b9190505550611c2042611c4c9190613624565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa9565b6002600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611d8657600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611d2b9061367a565b919050555061546042611d3e9190613624565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa8565b6003600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611e7857600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611e1d9061367a565b919050555061a8c042611e309190613624565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fa7565b6004600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403611fa657600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190611f0f9061367a565b919050555062015180600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f629190613624565b600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b5b5b5b611fb3816122a7565b60004790506000811115611fcb57611fca4761213e565b5b612013600e60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125e4565b505b505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120be5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156120c857600090505b6120d48484848461260d565b50505050565b6000838311158290612122576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121199190612cf1565b60405180910390fd5b506000838561213191906136c2565b9050809150509392505050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61218e60028461259a90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156121b9573d6000803e3d6000fd5b50601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61220a60028461259a90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015612235573d6000803e3d6000fd5b5050565b6000600654821115612280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227790613768565b60405180910390fd5b600061228a61264c565b905061229f818461259a90919063ffffffff16565b915050919050565b6001601260166101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156122df576122de613788565b5b60405190808252806020026020018201604052801561230d5781602001602082028036833780820191505090505b5090503081600081518110612325576123246137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f091906130e0565b81600181518110612404576124036137b7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061246b30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611054565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016124cf9594939291906138a4565b600060405180830381600087803b1580156124e957600080fd5b505af11580156124fd573d6000803e3d6000fd5b50505050506000601260166101000a81548160ff02191690831515021790555050565b60008083036125325760009050612594565b6000828461254091906138fe565b905082848261254f9190613987565b1461258f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258690613a2a565b60405180910390fd5b809150505b92915050565b60006125dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612677565b905092915050565b806008546125f291906138fe565b600881905550600181111561260a57600a6009819055505b50565b8061261b5761261a6126da565b5b612626848484612705565b806126345761263361263a565b5b50505050565b60076008819055506005600981905550565b60008060006126596128d0565b91509150612670818361259a90919063ffffffff16565b9250505090565b600080831182906126be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b59190612cf1565b60405180910390fd5b50600083856126cd9190613987565b9050809150509392505050565b60006008541480156126ee57506000600954145b61270357600060088190555060006009819055505b565b60008060008060008061271787612932565b95509550955095509550955061277586600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461299a90919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061280a85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e490919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061285681612a42565b6128608483612aff565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516128bd9190612e31565b60405180910390a3505050505050505050565b600080600060065490506000683635c9adc5dea000009050612906683635c9adc5dea0000060065461259a90919063ffffffff16565b82101561292557600654683635c9adc5dea0000093509350505061292e565b81819350935050505b9091565b600080600080600080600080600061294f8a600854600954612b39565b925092509250600061295f61264c565b905060008060006129728e878787612bcf565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006129dc83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120da565b905092915050565b60008082846129f39190613624565b905083811015612a38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2f90613a96565b60405180910390fd5b8091505092915050565b6000612a4c61264c565b90506000612a63828461252090919063ffffffff16565b9050612ab781600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129e490919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612b148260065461299a90919063ffffffff16565b600681905550612b2f816007546129e490919063ffffffff16565b6007819055505050565b600080600080612b656064612b57888a61252090919063ffffffff16565b61259a90919063ffffffff16565b90506000612b8f6064612b81888b61252090919063ffffffff16565b61259a90919063ffffffff16565b90506000612bb882612baa858c61299a90919063ffffffff16565b61299a90919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612be8858961252090919063ffffffff16565b90506000612bff868961252090919063ffffffff16565b90506000612c16878961252090919063ffffffff16565b90506000612c3f82612c31858761299a90919063ffffffff16565b61299a90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612c92578082015181840152602081019050612c77565b83811115612ca1576000848401525b50505050565b6000601f19601f8301169050919050565b6000612cc382612c58565b612ccd8185612c63565b9350612cdd818560208601612c74565b612ce681612ca7565b840191505092915050565b60006020820190508181036000830152612d0b8184612cb8565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d4382612d18565b9050919050565b612d5381612d38565b8114612d5e57600080fd5b50565b600081359050612d7081612d4a565b92915050565b6000819050919050565b612d8981612d76565b8114612d9457600080fd5b50565b600081359050612da681612d80565b92915050565b60008060408385031215612dc357612dc2612d13565b5b6000612dd185828601612d61565b9250506020612de285828601612d97565b9150509250929050565b60008115159050919050565b612e0181612dec565b82525050565b6000602082019050612e1c6000830184612df8565b92915050565b612e2b81612d76565b82525050565b6000602082019050612e466000830184612e22565b92915050565b600080600060608486031215612e6557612e64612d13565b5b6000612e7386828701612d61565b9350506020612e8486828701612d61565b9250506040612e9586828701612d97565b9150509250925092565b600060ff82169050919050565b612eb581612e9f565b82525050565b6000602082019050612ed06000830184612eac565b92915050565b612edf81612dec565b8114612eea57600080fd5b50565b600081359050612efc81612ed6565b92915050565b600060208284031215612f1857612f17612d13565b5b6000612f2684828501612eed565b91505092915050565b600060208284031215612f4557612f44612d13565b5b6000612f5384828501612d61565b91505092915050565b612f6581612d38565b82525050565b6000602082019050612f806000830184612f5c565b92915050565b600060208284031215612f9c57612f9b612d13565b5b6000612faa84828501612d97565b91505092915050565b60008060408385031215612fca57612fc9612d13565b5b6000612fd885828601612d61565b9250506020612fe985828601612d61565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613029602083612c63565b915061303482612ff3565b602082019050919050565b600060208201905081810360008301526130588161301c565b9050919050565b7f416d6f756e74206d7573742062652067726561746572207468616e2030000000600082015250565b6000613095601d83612c63565b91506130a08261305f565b602082019050919050565b600060208201905081810360008301526130c481613088565b9050919050565b6000815190506130da81612d4a565b92915050565b6000602082840312156130f6576130f5612d13565b5b6000613104848285016130cb565b91505092915050565b60006040820190506131226000830185612f5c565b61312f6020830184612f5c565b9392505050565b6000819050919050565b6000819050919050565b600061316561316061315b84613136565b613140565b612d76565b9050919050565b6131758161314a565b82525050565b600060c0820190506131906000830189612f5c565b61319d6020830188612e22565b6131aa604083018761316c565b6131b7606083018661316c565b6131c46080830185612f5c565b6131d160a0830184612e22565b979650505050505050565b6000815190506131eb81612d80565b92915050565b60008060006060848603121561320a57613209612d13565b5b6000613218868287016131dc565b9350506020613229868287016131dc565b925050604061323a868287016131dc565b9150509250925092565b60006040820190506132596000830185612f5c565b6132666020830184612e22565b9392505050565b60008151905061327c81612ed6565b92915050565b60006020828403121561329857613297612d13565b5b60006132a68482850161326d565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061330b602483612c63565b9150613316826132af565b604082019050919050565b6000602082019050818103600083015261333a816132fe565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061339d602283612c63565b91506133a882613341565b604082019050919050565b600060208201905081810360008301526133cc81613390565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061342f602583612c63565b915061343a826133d3565b604082019050919050565b6000602082019050818103600083015261345e81613422565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134c1602383612c63565b91506134cc82613465565b604082019050919050565b600060208201905081810360008301526134f0816134b4565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613553602983612c63565b915061355e826134f7565b604082019050919050565b6000602082019050818103600083015261358281613546565b9050919050565b7f4552523a20556e6973776170206f6e6c79000000000000000000000000000000600082015250565b60006135bf601183612c63565b91506135ca82613589565b602082019050919050565b600060208201905081810360008301526135ee816135b2565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061362f82612d76565b915061363a83612d76565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561366f5761366e6135f5565b5b828201905092915050565b600061368582612d76565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136b7576136b66135f5565b5b600182019050919050565b60006136cd82612d76565b91506136d883612d76565b9250828210156136eb576136ea6135f5565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613752602a83612c63565b915061375d826136f6565b604082019050919050565b6000602082019050818103600083015261378181613745565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61381b81612d38565b82525050565b600061382d8383613812565b60208301905092915050565b6000602082019050919050565b6000613851826137e6565b61385b81856137f1565b935061386683613802565b8060005b8381101561389757815161387e8882613821565b975061388983613839565b92505060018101905061386a565b5085935050505092915050565b600060a0820190506138b96000830188612e22565b6138c6602083018761316c565b81810360408301526138d88186613846565b90506138e76060830185612f5c565b6138f46080830184612e22565b9695505050505050565b600061390982612d76565b915061391483612d76565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561394d5761394c6135f5565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061399282612d76565b915061399d83612d76565b9250826139ad576139ac613958565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a14602183612c63565b9150613a1f826139b8565b604082019050919050565b60006020820190508181036000830152613a4381613a07565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613a80601b83612c63565b9150613a8b82613a4a565b602082019050919050565b60006020820190508181036000830152613aaf81613a73565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122058982deee48d6e09ffb3e013cad43c117274fa7a46d4290f32ee1a7c7da3ccca64736f6c634300080f0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

000000000000000000000000fe0005fee4d667cd398c8a3e33b842b8045a24e5000000000000000000000000fe0005fee4d667cd398c8a3e33b842b8045a24e5

-----Decoded View---------------
Arg [0] : addr1 (address): 0xFE0005fEe4D667cD398C8a3E33b842B8045a24E5
Arg [1] : addr2 (address): 0xFE0005fEe4D667cD398C8a3E33b842B8045a24E5

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000fe0005fee4d667cd398c8a3e33b842b8045a24e5
Arg [1] : 000000000000000000000000fe0005fee4d667cd398c8a3e33b842b8045a24e5


Deployed Bytecode Sourcemap

3500:12529:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5485:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6337:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5762:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6506:310;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5671:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6824:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12731:191;;;;;;;;;;;;;:::i;:::-;;5865:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2553:148;;;;;;;;;;;;;:::i;:::-;;2339:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5576:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6011:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12531:192;;;;;;;;;;;;;:::i;:::-;;11640:111;;;;;;;;;;;;;:::i;:::-;;15771:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6186:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11759:764;;;;;;;;;;;;;:::i;:::-;;5485:83;5522:13;5555:5;;;;;;;;;;;;;;;;;5548:12;;5485:83;:::o;6337:161::-;6412:4;6429:39;6438:12;:10;:12::i;:::-;6452:7;6461:6;6429:8;:39::i;:::-;6486:4;6479:11;;6337:161;;;;:::o;5762:95::-;5815:7;4037:21;5835:14;;5762:95;:::o;6506:310::-;6604:4;6621:36;6631:6;6639:9;6650:6;6621:9;:36::i;:::-;6668:118;6677:6;6684:12;:10;:12::i;:::-;6697:88;6735:6;6697:88;;;;;;;;;;;;;;;;;:11;:19;6709:6;6697:19;;;;;;;;;;;;;;;:33;6717:12;:10;:12::i;:::-;6697:33;;;;;;;;;;;;;;;;:37;;:88;;;;;:::i;:::-;6668:8;:118::i;:::-;6804:4;6797:11;;6506:310;;;;;:::o;5671:83::-;5712:5;3713:1;5730:16;;5671:83;:::o;6824:103::-;2476:12;:10;:12::i;:::-;2466:22;;:6;;;;;;;;;;:22;;;2458:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6914:5:::1;6896:15;;:23;;;;;;;;;;;;;;;;;;6824:103:::0;:::o;12731:191::-;12797:12;;;;;;;;;;;12781:28;;:12;:10;:12::i;:::-;:28;;;12773:37;;;;;;12821:26;12850:21;12821:50;;12882:32;12895:18;12882:12;:32::i;:::-;12762:160;12731:191::o;5865:138::-;5931:7;5958:37;5978:7;:16;5986:7;5978:16;;;;;;;;;;;;;;;;5958:19;:37::i;:::-;5951:44;;5865:138;;;:::o;2553:148::-;2476:12;:10;:12::i;:::-;2466:22;;:6;;;;;;;;;;:22;;;2458:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2660:1:::1;2623:40;;2644:6;::::0;::::1;;;;;;;;2623:40;;;;;;;;;;;;2691:1;2674:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2553:148::o:0;2339:79::-;2377:7;2404:6;;;;;;;;;;;2397:13;;2339:79;:::o;5576:87::-;5615:13;5648:7;;;;;;;;;;;;;;;;;5641:14;;5576:87;:::o;6011:167::-;6089:4;6106:42;6116:12;:10;:12::i;:::-;6130:9;6141:6;6106:9;:42::i;:::-;6166:4;6159:11;;6011:167;;;;:::o;12531:192::-;12597:12;;;;;;;;;;;12581:28;;:12;:10;:12::i;:::-;:28;;;12573:37;;;;;;12621:23;12647:24;12665:4;12647:9;:24::i;:::-;12621:50;;12682:33;12699:15;12682:16;:33::i;:::-;12562:161;12531:192::o;11640:111::-;2476:12;:10;:12::i;:::-;2466:22;;:6;;;;;;;;;;:22;;;2458:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11699:14:::1;;;;;;;;;;;11691:23;;;::::0;::::1;;11739:4;11725:11;;:18;;;;;;;;;;;;;;;;;;11640:111::o:0;15771:255::-;2476:12;:10;:12::i;:::-;2466:22;;:6;;;;;;;;;;:22;;;2458:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15873:1:::1;15858:12;:16;15850:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;15934:36;15964:5;15934:25;15946:12;4037:21;15934:11;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;15919:12;:51;;;;15986:32;16005:12;;15986:32;;;;;;:::i;:::-;;;;;;;;15771:255:::0;:::o;6186:143::-;6267:7;6294:11;:18;6306:5;6294:18;;;;;;;;;;;;;;;:27;6313:7;6294:27;;;;;;;;;;;;;;;;6287:34;;6186:143;;;;:::o;11759:764::-;2476:12;:10;:12::i;:::-;2466:22;;:6;;;;;;;;;;:22;;;2458:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11815:35:::1;11872:42;11815:100;;11944:16;11926:15;;:34;;;;;;;;;;;;;;;;;;11971:58;11988:4;12003:15;;;;;;;;;;;4037:21;11971:8;:58::i;:::-;12074:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12056:56;;;12121:4;12128:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12056:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12040:13;;:112;;;;;;;;;;;;;;;;;;12163:15;;;;;;;;;;;:31;;;12202:21;12233:4;12239:24;12257:4;12239:9;:24::i;:::-;12264:1;12266::::0;12268:7:::1;:5;:7::i;:::-;12276:15;12163:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12317:4;12303:11;;:18;;;;;;;;;;;;;;;;;;12350:4;12332:15;;:22;;;;;;;;;;;;;;;;;;12382:4;12365:14;;:21;;;;;;;;;;;;;;;;;;12412:19;12397:12;:34;;;;12449:13;;;;;;;;;;;12442:29;;;12480:15;;;;;;;;;;;12497:17;12442:73;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11804:719;11759:764::o:0;60:98::-;113:7;140:10;133:17;;60:98;:::o;7624:335::-;7734:1;7717:19;;:5;:19;;;7709:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7815:1;7796:21;;:7;:21;;;7788:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7897:6;7867:11;:18;7879:5;7867:18;;;;;;;;;;;;;;;:27;7886:7;7867:27;;;;;;;;;;;;;;;:36;;;;7935:7;7919:32;;7928:5;7919:32;;;7944:6;7919:32;;;;;;:::i;:::-;;;;;;;;7624:335;;;:::o;7967:3087::-;8071:1;8055:18;;:4;:18;;;8047:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8148:1;8134:16;;:2;:16;;;8126:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8218:1;8209:6;:10;8201:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8290:7;:5;:7::i;:::-;8282:15;;:4;:15;;;;:32;;;;;8307:7;:5;:7::i;:::-;8301:13;;:2;:13;;;;8282:32;8278:2551;;;8335:15;;;;;;;;;;;8331:320;;;8391:4;8375:21;;:4;:21;;;;:44;;;;;8414:4;8400:19;;:2;:19;;;;8375:44;:80;;;;;8439:15;;;;;;;;;;;8423:32;;:4;:32;;;;8375:80;:114;;;;;8473:15;;;;;;;;;;;8459:30;;:2;:30;;;;8375:114;8371:265;;;8546:15;;;;;;;;;;;8522:40;;:12;:10;:12::i;:::-;:40;;;:73;;;;8582:13;;;;;;;;;;;8566:29;;:12;:10;:12::i;:::-;:29;;;8522:73;8514:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8371:265;8331:320;8674:4;:10;8679:4;8674:10;;;;;;;;;;;;;;;;;;;;;;;;;8673:11;:24;;;;;8689:4;:8;8694:2;8689:8;;;;;;;;;;;;;;;;;;;;;;;;;8688:9;8673:24;8665:33;;;;;;8725:13;;;;;;;;;;;8717:21;;:4;:21;;;:55;;;;;8756:15;;;;;;;;;;;8742:30;;:2;:30;;;;8717:55;:82;;;;;8777:18;:22;8796:2;8777:22;;;;;;;;;;;;;;;;;;;;;;;;;8776:23;8717:82;:101;;;;;8803:15;;;;;;;;;;;8717:101;8713:401;;;8847:11;;;;;;;;;;;8839:20;;;;;;8896:12;;8886:6;:22;;8878:31;;;;;;8954:15;8936:11;:15;8948:2;8936:15;;;;;;;;;;;;;;;;:33;8928:42;;;;;;9026:10;9007:15;:30;;;;:::i;:::-;8989:11;:15;9001:2;8989:15;;;;;;;;;;;;;;;:48;;;;9067:1;9056:8;:12;;;;9097:1;9087:7;:11;;;;8713:401;9128:28;9159:24;9177:4;9159:9;:24::i;:::-;9128:55;;9203:6;;;;;;;;;;;9202:7;:32;;;;;9221:13;;;;;;;;;;;9213:21;;:4;:21;;;;9202:32;:47;;;;;9238:11;;;;;;;;;;;9202:47;9198:1620;;;9288:40;9324:3;9288:31;9317:1;9288:24;9298:13;;;;;;;;;;;9288:9;:24::i;:::-;:28;;:31;;;;:::i;:::-;:35;;:40;;;;:::i;:::-;9278:6;:50;;:76;;;;;9342:12;;9332:6;:22;;9278:76;9270:85;;;;;;9403:15;9382:12;:18;9395:4;9382:18;;;;;;;;;;;;;;;;:36;9374:45;;;;;;9470:15;9460:6;9441:9;:15;9451:4;9441:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;:44;9438:111;;;9528:1;9509:10;:16;9520:4;9509:16;;;;;;;;;;;;;;;:20;;;;9438:111;9591:1;9571:10;:16;9582:4;9571:16;;;;;;;;;;;;;;;;:21;9567:943;;9617:10;:16;9628:4;9617:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;9676:15;9658:9;:15;9668:4;9658:15;;;;;;;;;;;;;;;:33;;;;9754:7;9735:15;:27;;;;:::i;:::-;9714:12;:18;9727:4;9714:18;;;;;;;;;;;;;;;:48;;;;9567:943;;;9829:1;9809:10;:16;9820:4;9809:16;;;;;;;;;;;;;;;;:21;9805:705;;9855:10;:16;9866:4;9855:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;9936:7;9917:15;:27;;;;:::i;:::-;9896:12;:18;9909:4;9896:18;;;;;;;;;;;;;;;:48;;;;9805:705;;;10011:1;9991:10;:16;10002:4;9991:16;;;;;;;;;;;;;;;;:21;9987:523;;10037:10;:16;10048:4;10037:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;10118:7;10099:15;:27;;;;:::i;:::-;10078:12;:18;10091:4;10078:18;;;;;;;;;;;;;;;:48;;;;9987:523;;;10193:1;10173:10;:16;10184:4;10173:16;;;;;;;;;;;;;;;;:21;10169:341;;10219:10;:16;10230:4;10219:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;10300:8;10281:15;:28;;;;:::i;:::-;10260:12;:18;10273:4;10260:18;;;;;;;;;;;;;;;:49;;;;10169:341;;;10376:1;10356:10;:16;10367:4;10356:16;;;;;;;;;;;;;;;;:21;10352:158;;10402:10;:16;10413:4;10402:16;;;;;;;;;;;;;;;;:18;;;;;;;;;:::i;:::-;;;;;;10483:6;10464:9;:15;10474:4;10464:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;10443:12;:18;10456:4;10443:18;;;;;;;;;;;;;;;:47;;;;10352:158;10169:341;9987:523;9805:705;9567:943;10528:38;10545:20;10528:16;:38::i;:::-;10585:26;10614:21;10585:50;;10679:1;10658:18;:22;10654:106;;;10705:35;10718:21;10705:12;:35::i;:::-;10654:106;10778:24;10785:10;:16;10796:4;10785:16;;;;;;;;;;;;;;;;10778:6;:24::i;:::-;9251:1567;9198:1620;8316:2513;8278:2551;10839:12;10854:4;10839:19;;10875:18;:24;10894:4;10875:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10903:18;:22;10922:2;10903:22;;;;;;;;;;;;;;;;;;;;;;;;;10875:50;10871:98;;;10952:5;10942:15;;10871:98;10981:41;10996:4;11002:2;11006:6;11014:7;10981:14;:41::i;:::-;8036:3018;7967:3087;;;:::o;1197:190::-;1283:7;1316:1;1311;:6;;1319:12;1303:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1343:9;1359:1;1355;:5;;;;:::i;:::-;1343:17;;1378:1;1371:8;;;1197:190;;;;;:::o;11477:151::-;11534:12;;;;;;;;;;;:21;;:36;11556:13;11567:1;11556:6;:10;;:13;;;;:::i;:::-;11534:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11581:15;;;;;;;;;;;:24;;:39;11606:13;11617:1;11606:6;:10;;:13;;;;:::i;:::-;11581:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11477:151;:::o;6935:253::-;7003:7;7042;;7031;:18;;7023:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;7106:19;7128:10;:8;:10::i;:::-;7106:32;;7156:24;7168:11;7156:7;:11;;:24;;;;:::i;:::-;7149:31;;;6935:253;;;:::o;11062:407::-;4991:4;4982:6;;:13;;;;;;;;;;;;;;;;;;11140:21:::1;11178:1;11164:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11140:40;;11209:4;11191;11196:1;11191:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11235:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11225:4;11230:1;11225:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11268:62;11285:4;11300:15;;;;;;;;;;;11318:11;11268:8;:62::i;:::-;11341:15;;;;;;;;;;;:66;;;11408:11;11421:1;11424:4;11438;11445:15;11341:120;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11129:340;5027:5:::0;5018:6;;:14;;;;;;;;;;;;;;;;;;11062:407;:::o;1395:246::-;1453:7;1482:1;1477;:6;1473:47;;1507:1;1500:8;;;;1473:47;1530:9;1546:1;1542;:5;;;;:::i;:::-;1530:17;;1575:1;1570;1566;:5;;;;:::i;:::-;:10;1558:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1632:1;1625:8;;;1395:246;;;;;:::o;1649:132::-;1707:7;1734:39;1738:1;1741;1734:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1727:46;;1649:132;;;;:::o;7443:173::-;7518:10;7508:7;;:20;;;;:::i;:::-;7498:7;:30;;;;7556:1;7543:10;:14;7539:60;;;7585:2;7574:8;:13;;;;7539:60;7443:173;:::o;12930:239::-;13043:7;13038:28;;13052:14;:12;:14::i;:::-;13038:28;13077:44;13095:6;13103:9;13114:6;13077:17;:44::i;:::-;13137:7;13132:29;;13146:15;:13;:15::i;:::-;13132:29;12930:239;;;;:::o;7345:86::-;7399:1;7389:7;:11;;;;7422:1;7411:8;:12;;;;7345:86::o;15334:164::-;15376:7;15397:15;15414;15433:19;:17;:19::i;:::-;15396:56;;;;15470:20;15482:7;15470;:11;;:20;;;;:::i;:::-;15463:27;;;;15334:164;:::o;1789:189::-;1875:7;1907:1;1903;:5;1910:12;1895:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1934:9;1950:1;1946;:5;;;;:::i;:::-;1934:17;;1969:1;1962:8;;;1789:189;;;;;:::o;7200:137::-;7258:1;7247:7;;:12;:29;;;;;7275:1;7263:8;;:13;7247:29;7278:7;7243:42;7305:1;7295:7;:11;;;;7328:1;7317:8;:12;;;;7200:137;:::o;13177:487::-;13276:15;13293:23;13318:12;13332:23;13357:12;13371:13;13388:19;13399:7;13388:10;:19::i;:::-;13275:132;;;;;;;;;;;;13436:28;13456:7;13436;:15;13444:6;13436:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13418:7;:15;13426:6;13418:15;;;;;;;;;;;;;;;:46;;;;13496:39;13519:15;13496:7;:18;13504:9;13496:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13475:7;:18;13483:9;13475:18;;;;;;;;;;;;;;;:60;;;;13546:16;13556:5;13546:9;:16::i;:::-;13573:23;13585:4;13591;13573:11;:23::i;:::-;13629:9;13612:44;;13621:6;13612:44;;;13640:15;13612:44;;;;;;:::i;:::-;;;;;;;;13264:400;;;;;;13177:487;;;:::o;15506:257::-;15557:7;15566;15586:15;15604:7;;15586:25;;15622:15;4037:21;15622:25;;15672:20;4037:21;15672:7;;:11;;:20;;;;:::i;:::-;15662:7;:30;15658:61;;;15702:7;;4037:21;15694:25;;;;;;;;15658:61;15738:7;15747;15730:25;;;;;;15506:257;;;:::o;14083:467::-;14142:7;14151;14160;14169;14178;14187;14208:23;14233:12;14247:13;14264:39;14276:7;14285;;14294:8;;14264:11;:39::i;:::-;14207:96;;;;;;14314:19;14336:10;:8;:10::i;:::-;14314:32;;14358:15;14375:23;14400:12;14416:46;14428:7;14437:4;14443:5;14450:11;14416;:46::i;:::-;14357:105;;;;;;14481:7;14490:15;14507:4;14513:15;14530:4;14536:5;14473:69;;;;;;;;;;;;;;;;;;;14083:467;;;;;;;:::o;1053:136::-;1111:7;1138:43;1142:1;1145;1138:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1131:50;;1053:136;;;;:::o;866:179::-;924:7;944:9;960:1;956;:5;;;;:::i;:::-;944:17;;985:1;980;:6;;972:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1036:1;1029:8;;;866:179;;;;:::o;13672:211::-;13725:19;13747:10;:8;:10::i;:::-;13725:32;;13768:13;13784:22;13794:11;13784:5;:9;;:22;;;;:::i;:::-;13768:38;;13842:33;13869:5;13842:7;:22;13858:4;13842:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13817:7;:22;13833:4;13817:22;;;;;;;;;;;;;;;:58;;;;13714:169;;13672:211;:::o;13891:147::-;13969:17;13981:4;13969:7;;:11;;:17;;;;:::i;:::-;13959:7;:27;;;;14010:20;14025:4;14010:10;;:14;;:20;;;;:::i;:::-;13997:10;:33;;;;13891:147;;:::o;14558:351::-;14651:7;14660;14669;14689:12;14704:28;14728:3;14704:19;14716:6;14704:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14689:43;;14743:13;14759:29;14784:3;14759:20;14771:7;14759;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14743:45;;14799:23;14825:28;14847:5;14825:17;14837:4;14825:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14799:54;;14872:15;14889:4;14895:5;14864:37;;;;;;;;;14558:351;;;;;;;:::o;14917:409::-;15027:7;15036;15045;15065:15;15083:24;15095:11;15083:7;:11;;:24;;;;:::i;:::-;15065:42;;15118:12;15133:21;15142:11;15133:4;:8;;:21;;;;:::i;:::-;15118:36;;15165:13;15181:22;15191:11;15181:5;:9;;:22;;;;:::i;:::-;15165:38;;15214:23;15240:28;15262:5;15240:17;15252:4;15240:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15214:54;;15287:7;15296:15;15313:4;15279:39;;;;;;;;;;14917:409;;;;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:116::-;4971:21;4986:5;4971:21;:::i;:::-;4964:5;4961:32;4951:60;;5007:1;5004;4997:12;4951:60;4901:116;:::o;5023:133::-;5066:5;5104:6;5091:20;5082:29;;5120:30;5144:5;5120:30;:::i;:::-;5023:133;;;;:::o;5162:323::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:50;5460:7;5451:6;5440:9;5436:22;5418:50;:::i;:::-;5408:60;;5364:114;5162:323;;;;:::o;5491:329::-;5550:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:119;;;5605:79;;:::i;:::-;5567:119;5725:1;5750:53;5795:7;5786:6;5775:9;5771:22;5750:53;:::i;:::-;5740:63;;5696:117;5491:329;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:182::-;7133:34;7129:1;7121:6;7117:14;7110:58;6993:182;:::o;7181:366::-;7323:3;7344:67;7408:2;7403:3;7344:67;:::i;:::-;7337:74;;7420:93;7509:3;7420:93;:::i;:::-;7538:2;7533:3;7529:12;7522:19;;7181:366;;;:::o;7553:419::-;7719:4;7757:2;7746:9;7742:18;7734:26;;7806:9;7800:4;7796:20;7792:1;7781:9;7777:17;7770:47;7834:131;7960:4;7834:131;:::i;:::-;7826:139;;7553:419;;;:::o;7978:179::-;8118:31;8114:1;8106:6;8102:14;8095:55;7978:179;:::o;8163:366::-;8305:3;8326:67;8390:2;8385:3;8326:67;:::i;:::-;8319:74;;8402:93;8491:3;8402:93;:::i;:::-;8520:2;8515:3;8511:12;8504:19;;8163:366;;;:::o;8535:419::-;8701:4;8739:2;8728:9;8724:18;8716:26;;8788:9;8782:4;8778:20;8774:1;8763:9;8759:17;8752:47;8816:131;8942:4;8816:131;:::i;:::-;8808:139;;8535:419;;;:::o;8960:143::-;9017:5;9048:6;9042:13;9033:22;;9064:33;9091:5;9064:33;:::i;:::-;8960:143;;;;:::o;9109:351::-;9179:6;9228:2;9216:9;9207:7;9203:23;9199:32;9196:119;;;9234:79;;:::i;:::-;9196:119;9354:1;9379:64;9435:7;9426:6;9415:9;9411:22;9379:64;:::i;:::-;9369:74;;9325:128;9109:351;;;;:::o;9466:332::-;9587:4;9625:2;9614:9;9610:18;9602:26;;9638:71;9706:1;9695:9;9691:17;9682:6;9638:71;:::i;:::-;9719:72;9787:2;9776:9;9772:18;9763:6;9719:72;:::i;:::-;9466:332;;;;;:::o;9804:85::-;9849:7;9878:5;9867:16;;9804:85;;;:::o;9895:60::-;9923:3;9944:5;9937:12;;9895:60;;;:::o;9961:158::-;10019:9;10052:61;10070:42;10079:32;10105:5;10079:32;:::i;:::-;10070:42;:::i;:::-;10052:61;:::i;:::-;10039:74;;9961:158;;;:::o;10125:147::-;10220:45;10259:5;10220:45;:::i;:::-;10215:3;10208:58;10125:147;;:::o;10278:807::-;10527:4;10565:3;10554:9;10550:19;10542:27;;10579:71;10647:1;10636:9;10632:17;10623:6;10579:71;:::i;:::-;10660:72;10728:2;10717:9;10713:18;10704:6;10660:72;:::i;:::-;10742:80;10818:2;10807:9;10803:18;10794:6;10742:80;:::i;:::-;10832;10908:2;10897:9;10893:18;10884:6;10832:80;:::i;:::-;10922:73;10990:3;10979:9;10975:19;10966:6;10922:73;:::i;:::-;11005;11073:3;11062:9;11058:19;11049:6;11005:73;:::i;:::-;10278:807;;;;;;;;;:::o;11091:143::-;11148:5;11179:6;11173:13;11164:22;;11195:33;11222:5;11195:33;:::i;:::-;11091:143;;;;:::o;11240:663::-;11328:6;11336;11344;11393:2;11381:9;11372:7;11368:23;11364:32;11361:119;;;11399:79;;:::i;:::-;11361:119;11519:1;11544:64;11600:7;11591:6;11580:9;11576:22;11544:64;:::i;:::-;11534:74;;11490:128;11657:2;11683:64;11739:7;11730:6;11719:9;11715:22;11683:64;:::i;:::-;11673:74;;11628:129;11796:2;11822:64;11878:7;11869:6;11858:9;11854:22;11822:64;:::i;:::-;11812:74;;11767:129;11240:663;;;;;:::o;11909:332::-;12030:4;12068:2;12057:9;12053:18;12045:26;;12081:71;12149:1;12138:9;12134:17;12125:6;12081:71;:::i;:::-;12162:72;12230:2;12219:9;12215:18;12206:6;12162:72;:::i;:::-;11909:332;;;;;:::o;12247:137::-;12301:5;12332:6;12326:13;12317:22;;12348:30;12372:5;12348:30;:::i;:::-;12247:137;;;;:::o;12390:345::-;12457:6;12506:2;12494:9;12485:7;12481:23;12477:32;12474:119;;;12512:79;;:::i;:::-;12474:119;12632:1;12657:61;12710:7;12701:6;12690:9;12686:22;12657:61;:::i;:::-;12647:71;;12603:125;12390:345;;;;:::o;12741:223::-;12881:34;12877:1;12869:6;12865:14;12858:58;12950:6;12945:2;12937:6;12933:15;12926:31;12741:223;:::o;12970:366::-;13112:3;13133:67;13197:2;13192:3;13133:67;:::i;:::-;13126:74;;13209:93;13298:3;13209:93;:::i;:::-;13327:2;13322:3;13318:12;13311:19;;12970:366;;;:::o;13342:419::-;13508:4;13546:2;13535:9;13531:18;13523:26;;13595:9;13589:4;13585:20;13581:1;13570:9;13566:17;13559:47;13623:131;13749:4;13623:131;:::i;:::-;13615:139;;13342:419;;;:::o;13767:221::-;13907:34;13903:1;13895:6;13891:14;13884:58;13976:4;13971:2;13963:6;13959:15;13952:29;13767:221;:::o;13994:366::-;14136:3;14157:67;14221:2;14216:3;14157:67;:::i;:::-;14150:74;;14233:93;14322:3;14233:93;:::i;:::-;14351:2;14346:3;14342:12;14335:19;;13994:366;;;:::o;14366:419::-;14532:4;14570:2;14559:9;14555:18;14547:26;;14619:9;14613:4;14609:20;14605:1;14594:9;14590:17;14583:47;14647:131;14773:4;14647:131;:::i;:::-;14639:139;;14366:419;;;:::o;14791:224::-;14931:34;14927:1;14919:6;14915:14;14908:58;15000:7;14995:2;14987:6;14983:15;14976:32;14791:224;:::o;15021:366::-;15163:3;15184:67;15248:2;15243:3;15184:67;:::i;:::-;15177:74;;15260:93;15349:3;15260:93;:::i;:::-;15378:2;15373:3;15369:12;15362:19;;15021:366;;;:::o;15393:419::-;15559:4;15597:2;15586:9;15582:18;15574:26;;15646:9;15640:4;15636:20;15632:1;15621:9;15617:17;15610:47;15674:131;15800:4;15674:131;:::i;:::-;15666:139;;15393:419;;;:::o;15818:222::-;15958:34;15954:1;15946:6;15942:14;15935:58;16027:5;16022:2;16014:6;16010:15;16003:30;15818:222;:::o;16046:366::-;16188:3;16209:67;16273:2;16268:3;16209:67;:::i;:::-;16202:74;;16285:93;16374:3;16285:93;:::i;:::-;16403:2;16398:3;16394:12;16387:19;;16046:366;;;:::o;16418:419::-;16584:4;16622:2;16611:9;16607:18;16599:26;;16671:9;16665:4;16661:20;16657:1;16646:9;16642:17;16635:47;16699:131;16825:4;16699:131;:::i;:::-;16691:139;;16418:419;;;:::o;16843:228::-;16983:34;16979:1;16971:6;16967:14;16960:58;17052:11;17047:2;17039:6;17035:15;17028:36;16843:228;:::o;17077:366::-;17219:3;17240:67;17304:2;17299:3;17240:67;:::i;:::-;17233:74;;17316:93;17405:3;17316:93;:::i;:::-;17434:2;17429:3;17425:12;17418:19;;17077:366;;;:::o;17449:419::-;17615:4;17653:2;17642:9;17638:18;17630:26;;17702:9;17696:4;17692:20;17688:1;17677:9;17673:17;17666:47;17730:131;17856:4;17730:131;:::i;:::-;17722:139;;17449:419;;;:::o;17874:167::-;18014:19;18010:1;18002:6;17998:14;17991:43;17874:167;:::o;18047:366::-;18189:3;18210:67;18274:2;18269:3;18210:67;:::i;:::-;18203:74;;18286:93;18375:3;18286:93;:::i;:::-;18404:2;18399:3;18395:12;18388:19;;18047:366;;;:::o;18419:419::-;18585:4;18623:2;18612:9;18608:18;18600:26;;18672:9;18666:4;18662:20;18658:1;18647:9;18643:17;18636:47;18700:131;18826:4;18700:131;:::i;:::-;18692:139;;18419:419;;;:::o;18844:180::-;18892:77;18889:1;18882:88;18989:4;18986:1;18979:15;19013:4;19010:1;19003:15;19030:305;19070:3;19089:20;19107:1;19089:20;:::i;:::-;19084:25;;19123:20;19141:1;19123:20;:::i;:::-;19118:25;;19277:1;19209:66;19205:74;19202:1;19199:81;19196:107;;;19283:18;;:::i;:::-;19196:107;19327:1;19324;19320:9;19313:16;;19030:305;;;;:::o;19341:233::-;19380:3;19403:24;19421:5;19403:24;:::i;:::-;19394:33;;19449:66;19442:5;19439:77;19436:103;;19519:18;;:::i;:::-;19436:103;19566:1;19559:5;19555:13;19548:20;;19341:233;;;:::o;19580:191::-;19620:4;19640:20;19658:1;19640:20;:::i;:::-;19635:25;;19674:20;19692:1;19674:20;:::i;:::-;19669:25;;19713:1;19710;19707:8;19704:34;;;19718:18;;:::i;:::-;19704:34;19763:1;19760;19756:9;19748:17;;19580:191;;;;:::o;19777:229::-;19917:34;19913:1;19905:6;19901:14;19894:58;19986:12;19981:2;19973:6;19969:15;19962:37;19777:229;:::o;20012:366::-;20154:3;20175:67;20239:2;20234:3;20175:67;:::i;:::-;20168:74;;20251:93;20340:3;20251:93;:::i;:::-;20369:2;20364:3;20360:12;20353:19;;20012:366;;;:::o;20384:419::-;20550:4;20588:2;20577:9;20573:18;20565:26;;20637:9;20631:4;20627:20;20623:1;20612:9;20608:17;20601:47;20665:131;20791:4;20665:131;:::i;:::-;20657:139;;20384:419;;;:::o;20809:180::-;20857:77;20854:1;20847:88;20954:4;20951:1;20944:15;20978:4;20975:1;20968:15;20995:180;21043:77;21040:1;21033:88;21140:4;21137:1;21130:15;21164:4;21161:1;21154:15;21181:114;21248:6;21282:5;21276:12;21266:22;;21181:114;;;:::o;21301:184::-;21400:11;21434:6;21429:3;21422:19;21474:4;21469:3;21465:14;21450:29;;21301:184;;;;:::o;21491:132::-;21558:4;21581:3;21573:11;;21611:4;21606:3;21602:14;21594:22;;21491:132;;;:::o;21629:108::-;21706:24;21724:5;21706:24;:::i;:::-;21701:3;21694:37;21629:108;;:::o;21743:179::-;21812:10;21833:46;21875:3;21867:6;21833:46;:::i;:::-;21911:4;21906:3;21902:14;21888:28;;21743:179;;;;:::o;21928:113::-;21998:4;22030;22025:3;22021:14;22013:22;;21928:113;;;:::o;22077:732::-;22196:3;22225:54;22273:5;22225:54;:::i;:::-;22295:86;22374:6;22369:3;22295:86;:::i;:::-;22288:93;;22405:56;22455:5;22405:56;:::i;:::-;22484:7;22515:1;22500:284;22525:6;22522:1;22519:13;22500:284;;;22601:6;22595:13;22628:63;22687:3;22672:13;22628:63;:::i;:::-;22621:70;;22714:60;22767:6;22714:60;:::i;:::-;22704:70;;22560:224;22547:1;22544;22540:9;22535:14;;22500:284;;;22504:14;22800:3;22793:10;;22201:608;;;22077:732;;;;:::o;22815:831::-;23078:4;23116:3;23105:9;23101:19;23093:27;;23130:71;23198:1;23187:9;23183:17;23174:6;23130:71;:::i;:::-;23211:80;23287:2;23276:9;23272:18;23263:6;23211:80;:::i;:::-;23338:9;23332:4;23328:20;23323:2;23312:9;23308:18;23301:48;23366:108;23469:4;23460:6;23366:108;:::i;:::-;23358:116;;23484:72;23552:2;23541:9;23537:18;23528:6;23484:72;:::i;:::-;23566:73;23634:3;23623:9;23619:19;23610:6;23566:73;:::i;:::-;22815:831;;;;;;;;:::o;23652:348::-;23692:7;23715:20;23733:1;23715:20;:::i;:::-;23710:25;;23749:20;23767:1;23749:20;:::i;:::-;23744:25;;23937:1;23869:66;23865:74;23862:1;23859:81;23854:1;23847:9;23840:17;23836:105;23833:131;;;23944:18;;:::i;:::-;23833:131;23992:1;23989;23985:9;23974:20;;23652:348;;;;:::o;24006:180::-;24054:77;24051:1;24044:88;24151:4;24148:1;24141:15;24175:4;24172:1;24165:15;24192:185;24232:1;24249:20;24267:1;24249:20;:::i;:::-;24244:25;;24283:20;24301:1;24283:20;:::i;:::-;24278:25;;24322:1;24312:35;;24327:18;;:::i;:::-;24312:35;24369:1;24366;24362:9;24357:14;;24192:185;;;;:::o;24383:220::-;24523:34;24519:1;24511:6;24507:14;24500:58;24592:3;24587:2;24579:6;24575:15;24568:28;24383:220;:::o;24609:366::-;24751:3;24772:67;24836:2;24831:3;24772:67;:::i;:::-;24765:74;;24848:93;24937:3;24848:93;:::i;:::-;24966:2;24961:3;24957:12;24950:19;;24609:366;;;:::o;24981:419::-;25147:4;25185:2;25174:9;25170:18;25162:26;;25234:9;25228:4;25224:20;25220:1;25209:9;25205:17;25198:47;25262:131;25388:4;25262:131;:::i;:::-;25254:139;;24981:419;;;:::o;25406:177::-;25546:29;25542:1;25534:6;25530:14;25523:53;25406:177;:::o;25589:366::-;25731:3;25752:67;25816:2;25811:3;25752:67;:::i;:::-;25745:74;;25828:93;25917:3;25828:93;:::i;:::-;25946:2;25941:3;25937:12;25930:19;;25589:366;;;:::o;25961:419::-;26127:4;26165:2;26154:9;26150:18;26142:26;;26214:9;26208:4;26204:20;26200:1;26189:9;26185:17;26178:47;26242:131;26368:4;26242:131;:::i;:::-;26234:139;;25961:419;;;:::o

Swarm Source

ipfs://58982deee48d6e09ffb3e013cad43c117274fa7a46d4290f32ee1a7c7da3ccca

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.