ETH Price: $3,409.64 (+4.73%)

Contract

0xAB74428E0e2590cBd68733F0F386fc663a4B19D0
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve206285572024-08-28 17:24:23143 days ago1724865863IN
0xAB74428E...63a4B19D0
0 ETH0.000311626.60400244
Approve206284902024-08-28 17:10:47143 days ago1724865047IN
0xAB74428E...63a4B19D0
0 ETH0.000340187.21101854
Approve206282912024-08-28 16:30:23144 days ago1724862623IN
0xAB74428E...63a4B19D0
0 ETH0.000341717.25086684
Approve206282092024-08-28 16:13:47144 days ago1724861627IN
0xAB74428E...63a4B19D0
0 ETH0.000139822.96394833
Approve206281742024-08-28 16:06:47144 days ago1724861207IN
0xAB74428E...63a4B19D0
0 ETH0.000257615.45938278
Set Fee206281672024-08-28 16:05:23144 days ago1724861123IN
0xAB74428E...63a4B19D0
0 ETH0.000074342.52891049
Approve206281632024-08-28 16:04:35144 days ago1724861075IN
0xAB74428E...63a4B19D0
0 ETH0.00023655.01196048
Approve206281622024-08-28 16:04:23144 days ago1724861063IN
0xAB74428E...63a4B19D0
0 ETH0.000239725.08024506
Approve206281562024-08-28 16:03:11144 days ago1724860991IN
0xAB74428E...63a4B19D0
0 ETH0.000248185.25949327
Approve206281562024-08-28 16:03:11144 days ago1724860991IN
0xAB74428E...63a4B19D0
0 ETH0.000342567.25949327
Set Fee206281542024-08-28 16:02:47144 days ago1724860967IN
0xAB74428E...63a4B19D0
0 ETH0.000093612.73647031
Approve206281532024-08-28 16:02:35144 days ago1724860955IN
0xAB74428E...63a4B19D0
0 ETH0.000222324.71146463
Approve206281512024-08-28 16:02:11144 days ago1724860931IN
0xAB74428E...63a4B19D0
0 ETH0.00024825.25987813
Approve206281502024-08-28 16:01:59144 days ago1724860919IN
0xAB74428E...63a4B19D0
0 ETH0.0008149917.27133883
Approve206281502024-08-28 16:01:59144 days ago1724860919IN
0xAB74428E...63a4B19D0
0 ETH0.000343117.27133883
Approve206281492024-08-28 16:01:47144 days ago1724860907IN
0xAB74428E...63a4B19D0
0 ETH0.000245345.19930409
Approve206281492024-08-28 16:01:47144 days ago1724860907IN
0xAB74428E...63a4B19D0
0 ETH0.000245345.19930409
Approve206281492024-08-28 16:01:47144 days ago1724860907IN
0xAB74428E...63a4B19D0
0 ETH0.000339727.19930409
Approve206281482024-08-28 16:01:35144 days ago1724860895IN
0xAB74428E...63a4B19D0
0 ETH0.000149943.19800209
Approve206281482024-08-28 16:01:35144 days ago1724860895IN
0xAB74428E...63a4B19D0
0 ETH0.000245285.19800209
Approve206281482024-08-28 16:01:35144 days ago1724860895IN
0xAB74428E...63a4B19D0
0 ETH0.000245285.19800209
Approve206281482024-08-28 16:01:35144 days ago1724860895IN
0xAB74428E...63a4B19D0
0 ETH0.0005284111.19800209
Approve206281482024-08-28 16:01:35144 days ago1724860895IN
0xAB74428E...63a4B19D0
0 ETH0.0008115317.19800209
Approve206281482024-08-28 16:01:35144 days ago1724860895IN
0xAB74428E...63a4B19D0
0 ETH0.0008115317.19800209
Remove Limits206281482024-08-28 16:01:35144 days ago1724860895IN
0xAB74428E...63a4B19D0
0 ETH0.000154464.19800209
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
206285692024-08-28 17:26:47143 days ago1724866007
0xAB74428E...63a4B19D0
0.01651988 ETH
206285692024-08-28 17:26:47143 days ago1724866007
0xAB74428E...63a4B19D0
0.01651988 ETH
206285582024-08-28 17:24:35143 days ago1724865875
0xAB74428E...63a4B19D0
0.0263811 ETH
206285582024-08-28 17:24:35143 days ago1724865875
0xAB74428E...63a4B19D0
0.0263811 ETH
206285152024-08-28 17:15:47143 days ago1724865347
0xAB74428E...63a4B19D0
0.00165906 ETH
206285152024-08-28 17:15:47143 days ago1724865347
0xAB74428E...63a4B19D0
0.00165906 ETH
206285132024-08-28 17:15:23143 days ago1724865323
0xAB74428E...63a4B19D0
0.01874606 ETH
206285132024-08-28 17:15:23143 days ago1724865323
0xAB74428E...63a4B19D0
0.01874606 ETH
206285132024-08-28 17:15:23143 days ago1724865323
0xAB74428E...63a4B19D0
0.02023328 ETH
206285132024-08-28 17:15:23143 days ago1724865323
0xAB74428E...63a4B19D0
0.02023328 ETH
206285132024-08-28 17:15:23143 days ago1724865323
0xAB74428E...63a4B19D0
0.02190488 ETH
206285132024-08-28 17:15:23143 days ago1724865323
0xAB74428E...63a4B19D0
0.02190488 ETH
206283502024-08-28 16:42:23144 days ago1724863343
0xAB74428E...63a4B19D0
0.03088118 ETH
206283502024-08-28 16:42:23144 days ago1724863343
0xAB74428E...63a4B19D0
0.03088118 ETH
206283042024-08-28 16:32:59144 days ago1724862779
0xAB74428E...63a4B19D0
0.02584029 ETH
206283042024-08-28 16:32:59144 days ago1724862779
0xAB74428E...63a4B19D0
0.02584029 ETH
206282942024-08-28 16:30:59144 days ago1724862659
0xAB74428E...63a4B19D0
0.00858958 ETH
206282942024-08-28 16:30:59144 days ago1724862659
0xAB74428E...63a4B19D0
0.00858958 ETH
206282822024-08-28 16:28:35144 days ago1724862515
0xAB74428E...63a4B19D0
0.02908306 ETH
206282822024-08-28 16:28:35144 days ago1724862515
0xAB74428E...63a4B19D0
0.02908306 ETH
206282652024-08-28 16:25:11144 days ago1724862311
0xAB74428E...63a4B19D0
0.04842972 ETH
206282652024-08-28 16:25:11144 days ago1724862311
0xAB74428E...63a4B19D0
0.04842972 ETH
206282392024-08-28 16:19:59144 days ago1724861999
0xAB74428E...63a4B19D0
0.00353985 ETH
206282392024-08-28 16:19:59144 days ago1724861999
0xAB74428E...63a4B19D0
0.00353985 ETH
206282352024-08-28 16:19:11144 days ago1724861951
0xAB74428E...63a4B19D0
0.00357673 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PINKWOJAK

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-08-28
*/

// SPDX-License-Identifier: Unlicensed
/*

    PINK WOJAK IS OUT HERE REPRESENTING THOSE WHO ARE HEAVILY INVESTED IN CRYPTO. 
    ETERNALLY ANGRY, PINK SHADED AND BLEEDING EYES.

    https://pinkwojak.pink/

    https://t.me/AAAAAAAA_ERC

    https://x.com/pinkwojak_erc

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

contract PINKWOJAK is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address payable public _taxWallet;

    uint256 private _buyTax=30;
    uint256 private _sellTax=30;
    uint256 private _preventSwapBefore=25;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 69420000000 * 10**_decimals;
    string private constant _name = unicode"Pink Wojak";
    string private constant _symbol = unicode"AAAAAAAA";
    uint256 public _maxTxAmount = 1390000000 * 10**_decimals;
    uint256 public _maxWalletSize = 1390000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100 * 10**_decimals;
    uint256 public _maxTaxSwap= 1390000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = 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 _balances[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 _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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if(_buyCount==0){
                taxAmount = amount.mul(_buyTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul(_buyTax).div(100);
                _buyCount++;
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_sellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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 removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function setFee(uint newBuyFee, uint newSellFee) external onlyOwner {
        _buyTax = newBuyFee;
        _sellTax = newSellFee;
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function withdrawETH() external onlyOwner returns (bool) {
        (bool success, ) = owner().call{value: address(this).balance}("");
        return success;
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _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);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
    function manualSend() external {
        require(_msgSender()==_taxWallet);
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawETH","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601e600555601e60065560196007555f6008556009600a61002591906105a0565b6352d9b78061003491906105ea565b6009556009600a61004591906105a0565b6352d9b78061005491906105ea565b600a556009600a61006591906105a0565b606461007191906105ea565b600b556009600a61008291906105a0565b6352d9b78061009191906105ea565b600c555f600e60156101000a81548160ff0219169083151502179055505f600e60166101000a81548160ff0219169083151502179055505f600f555f6010553480156100db575f80fd5b505f6100eb61040160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35061019561040160201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101e291906105a0565b641029c123006101f291906105ea565b60015f61020361040160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61025361040860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061037b61040160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103d791906105a0565b641029c123006103e791906105ea565b6040516103f4919061063a565b60405180910390a3610653565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104b15780860481111561048d5761048c61042f565b5b600185161561049c5780820291505b80810290506104aa8561045c565b9450610471565b94509492505050565b5f826104c95760019050610584565b816104d6575f9050610584565b81600181146104ec57600281146104f657610525565b6001915050610584565b60ff8411156105085761050761042f565b5b8360020a91508482111561051f5761051e61042f565b5b50610584565b5060208310610133831016604e8410600b841016171561055a5782820a9050838111156105555761055461042f565b5b610584565b6105678484846001610468565b9250905081840481111561057e5761057d61042f565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105aa8261058b565b91506105b583610594565b92506105e27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104ba565b905092915050565b5f6105f48261058b565b91506105ff8361058b565b925082820261060d8161058b565b915082820484148315176106245761062361042f565b5b5092915050565b6106348161058b565b82525050565b5f60208201905061064d5f83018461062b565b92915050565b61314e806106605f395ff3fe608060405260043610610138575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103db578063bf474bed14610417578063c9567bf914610441578063dd62ed3e14610457578063e086e5ec14610493578063f4293890146104bd5761013f565b8063751039fc1461031d5780637d1db4a5146103335780638da5cb5b1461035d5780638f9a55c01461038757806395d89b41146103b15761013f565b8063313ce567116100fc578063313ce5671461023957806351bc3c851461026357806352f7c988146102795780636f268a99146102a157806370a08231146102cb578063715018a6146103075761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d3565b60405161016491906121d4565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612285565b610510565b6040516101a091906122dd565b60405180910390f35b3480156101b4575f80fd5b506101bd61052d565b6040516101ca9190612305565b60405180910390f35b3480156101de575f80fd5b506101e7610533565b6040516101f49190612305565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e919061231e565b610557565b60405161023091906122dd565b60405180910390f35b348015610244575f80fd5b5061024d61062b565b60405161025a9190612389565b60405180910390f35b34801561026e575f80fd5b50610277610633565b005b348015610284575f80fd5b5061029f600480360381019061029a91906123a2565b6106ca565b005b3480156102ac575f80fd5b506102b5610770565b6040516102c29190612400565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec9190612419565b610795565b6040516102fe9190612305565b60405180910390f35b348015610312575f80fd5b5061031b6107db565b005b348015610328575f80fd5b50610331610929565b005b34801561033e575f80fd5b50610347610a5b565b6040516103549190612305565b60405180910390f35b348015610368575f80fd5b50610371610a61565b60405161037e9190612453565b60405180910390f35b348015610392575f80fd5b5061039b610a88565b6040516103a89190612305565b60405180910390f35b3480156103bc575f80fd5b506103c5610a8e565b6040516103d291906121d4565b60405180910390f35b3480156103e6575f80fd5b5061040160048036038101906103fc9190612285565b610acb565b60405161040e91906122dd565b60405180910390f35b348015610422575f80fd5b5061042b610ae8565b6040516104389190612305565b60405180910390f35b34801561044c575f80fd5b50610455610aee565b005b348015610462575f80fd5b5061047d6004803603810190610478919061246c565b611011565b60405161048a9190612305565b60405180910390f35b34801561049e575f80fd5b506104a7611093565b6040516104b491906122dd565b60405180910390f35b3480156104c8575f80fd5b506104d161119e565b005b60606040518060400160405280600a81526020017f50696e6b20576f6a616b00000000000000000000000000000000000000000000815250905090565b5f61052361051c611216565b848461121d565b6001905092915050565b600c5481565b5f6009600a6105429190612606565b641029c123006105529190612650565b905090565b5f6105638484846113e0565b6106208461056f611216565b61061b856040518060600160405280602881526020016130f16028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105d2611216565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c509092919063ffffffff16565b61121d565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610673611216565b73ffffffffffffffffffffffffffffffffffffffff1614610692575f80fd5b5f61069c30610795565b90505f8111156106b0576106af81611cb2565b5b5f4790505f8111156106c6576106c581611f1d565b5b5050565b6106d2611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610755906126db565b60405180910390fd5b81600581905550806006819055505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e3611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610866906126db565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610931611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b4906126db565b60405180910390fd5b6009600a6109cb9190612606565b641029c123006109db9190612650565b6009819055506009600a6109ef9190612606565b641029c123006109ff9190612650565b600a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a349190612606565b641029c12300610a449190612650565b604051610a519190612305565b60405180910390a1565b60095481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600881526020017f4141414141414141000000000000000000000000000000000000000000000000815250905090565b5f610ade610ad7611216565b84846113e0565b6001905092915050565b600b5481565b610af6611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b79906126db565b60405180910390fd5b600e60149054906101000a900460ff1615610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc990612743565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c6f30600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c5a9190612606565b641029c12300610c6a9190612650565b61121d565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfd9190612775565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da79190612775565b6040518363ffffffff1660e01b8152600401610dc49291906127a0565b6020604051808303815f875af1158015610de0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e049190612775565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e8b30610795565b5f80610e95610a61565b426040518863ffffffff1660e01b8152600401610eb796959493929190612809565b60606040518083038185885af1158015610ed3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ef8919061287c565b505050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f989291906128cc565b6020604051808303815f875af1158015610fb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd8919061291d565b506001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f61109c611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f906126db565b60405180910390fd5b5f611131610a61565b73ffffffffffffffffffffffffffffffffffffffff164760405161115490612975565b5f6040518083038185875af1925050503d805f811461118e576040519150601f19603f3d011682016040523d82523d5f602084013e611193565b606091505b505090508091505090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111de611216565b73ffffffffffffffffffffffffffffffffffffffff16146111fd575f80fd5b5f4790505f8111156112135761121281611f1d565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611282906129f9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612a87565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d39190612305565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590612b15565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390612ba3565b60405180910390fd5b5f81116114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f590612c31565b60405180910390fd5b5f611507610a61565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115755750611545610a61565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119a0575f600854036115ae576115ab606461159d60055485611f8590919063ffffffff16565b611ffc90919063ffffffff16565b90505b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116575750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116aa575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561178e576009548211156116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116eb90612c99565b60405180910390fd5b600a548261170185610795565b61170b9190612cb7565b111561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390612d34565b60405180910390fd5b611774606461176660055485611f8590919063ffffffff16565b611ffc90919063ffffffff16565b905060085f81548092919061178890612d52565b91905055505b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561181657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561184657611843606461183560065485611f8590919063ffffffff16565b611ffc90919063ffffffff16565b90505b5f61185030610795565b9050600e60159054906101000a900460ff161580156118bb5750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118d35750600e60169054906101000a900460ff165b80156118e05750600b5481115b80156118ef5750600754600854115b1561199e57601054431115611906575f600f819055505b6003600f541061194b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194290612de3565b60405180910390fd5b6119686119638461195e84600c54612045565b612045565b611cb2565b5f4790505f81111561197e5761197d47611f1d565b5b600f5f81548092919061199090612d52565b919050555043601081905550505b505b5f811115611a9f576119f88160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205d90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a969190612305565b60405180910390a35b611aef8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ba90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b92611b4682846120ba90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205d90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c3584866120ba90919063ffffffff16565b604051611c429190612305565b60405180910390a350505050565b5f838311158290611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e91906121d4565b60405180910390fd5b505f8385611ca59190612e01565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ce957611ce8612e34565b5b604051908082528060200260200182016040528015611d175781602001602082028036833780820191505090505b50905030815f81518110611d2e57611d2d612e61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df69190612775565b81600181518110611e0a57611e09612e61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e7030600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461121d565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ed2959493929190612f45565b5f604051808303815f87803b158015611ee9575f80fd5b505af1158015611efb573d5f803e3d5ffd5b50505050505f600e60156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f81573d5f803e3d5ffd5b5050565b5f808303611f95575f9050611ff6565b5f8284611fa29190612650565b9050828482611fb19190612fca565b14611ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe89061306a565b60405180910390fd5b809150505b92915050565b5f61203d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612103565b905092915050565b5f8183116120535782612055565b815b905092915050565b5f80828461206b9190612cb7565b9050838110156120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a7906130d2565b60405180910390fd5b8091505092915050565b5f6120fb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c50565b905092915050565b5f8083118290612149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214091906121d4565b60405180910390fd5b505f83856121579190612fca565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121a682612164565b6121b0818561216e565b93506121c081856020860161217e565b6121c98161218c565b840191505092915050565b5f6020820190508181035f8301526121ec818461219c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612221826121f8565b9050919050565b61223181612217565b811461223b575f80fd5b50565b5f8135905061224c81612228565b92915050565b5f819050919050565b61226481612252565b811461226e575f80fd5b50565b5f8135905061227f8161225b565b92915050565b5f806040838503121561229b5761229a6121f4565b5b5f6122a88582860161223e565b92505060206122b985828601612271565b9150509250929050565b5f8115159050919050565b6122d7816122c3565b82525050565b5f6020820190506122f05f8301846122ce565b92915050565b6122ff81612252565b82525050565b5f6020820190506123185f8301846122f6565b92915050565b5f805f60608486031215612335576123346121f4565b5b5f6123428682870161223e565b93505060206123538682870161223e565b925050604061236486828701612271565b9150509250925092565b5f60ff82169050919050565b6123838161236e565b82525050565b5f60208201905061239c5f83018461237a565b92915050565b5f80604083850312156123b8576123b76121f4565b5b5f6123c585828601612271565b92505060206123d685828601612271565b9150509250929050565b5f6123ea826121f8565b9050919050565b6123fa816123e0565b82525050565b5f6020820190506124135f8301846123f1565b92915050565b5f6020828403121561242e5761242d6121f4565b5b5f61243b8482850161223e565b91505092915050565b61244d81612217565b82525050565b5f6020820190506124665f830184612444565b92915050565b5f8060408385031215612482576124816121f4565b5b5f61248f8582860161223e565b92505060206124a08582860161223e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561252c57808604811115612508576125076124aa565b5b60018516156125175780820291505b8081029050612525856124d7565b94506124ec565b94509492505050565b5f8261254457600190506125ff565b81612551575f90506125ff565b81600181146125675760028114612571576125a0565b60019150506125ff565b60ff841115612583576125826124aa565b5b8360020a91508482111561259a576125996124aa565b5b506125ff565b5060208310610133831016604e8410600b84101617156125d55782820a9050838111156125d0576125cf6124aa565b5b6125ff565b6125e284848460016124e3565b925090508184048111156125f9576125f86124aa565b5b81810290505b9392505050565b5f61261082612252565b915061261b8361236e565b92506126487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612535565b905092915050565b5f61265a82612252565b915061266583612252565b925082820261267381612252565b9150828204841483151761268a576126896124aa565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126c560208361216e565b91506126d082612691565b602082019050919050565b5f6020820190508181035f8301526126f2816126b9565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61272d60178361216e565b9150612738826126f9565b602082019050919050565b5f6020820190508181035f83015261275a81612721565b9050919050565b5f8151905061276f81612228565b92915050565b5f6020828403121561278a576127896121f4565b5b5f61279784828501612761565b91505092915050565b5f6040820190506127b35f830185612444565b6127c06020830184612444565b9392505050565b5f819050919050565b5f819050919050565b5f6127f36127ee6127e9846127c7565b6127d0565b612252565b9050919050565b612803816127d9565b82525050565b5f60c08201905061281c5f830189612444565b61282960208301886122f6565b61283660408301876127fa565b61284360608301866127fa565b6128506080830185612444565b61285d60a08301846122f6565b979650505050505050565b5f815190506128768161225b565b92915050565b5f805f60608486031215612893576128926121f4565b5b5f6128a086828701612868565b93505060206128b186828701612868565b92505060406128c286828701612868565b9150509250925092565b5f6040820190506128df5f830185612444565b6128ec60208301846122f6565b9392505050565b6128fc816122c3565b8114612906575f80fd5b50565b5f81519050612917816128f3565b92915050565b5f60208284031215612932576129316121f4565b5b5f61293f84828501612909565b91505092915050565b5f81905092915050565b50565b5f6129605f83612948565b915061296b82612952565b5f82019050919050565b5f61297f82612955565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129e360248361216e565b91506129ee82612989565b604082019050919050565b5f6020820190508181035f830152612a10816129d7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a7160228361216e565b9150612a7c82612a17565b604082019050919050565b5f6020820190508181035f830152612a9e81612a65565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612aff60258361216e565b9150612b0a82612aa5565b604082019050919050565b5f6020820190508181035f830152612b2c81612af3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b8d60238361216e565b9150612b9882612b33565b604082019050919050565b5f6020820190508181035f830152612bba81612b81565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c1b60298361216e565b9150612c2682612bc1565b604082019050919050565b5f6020820190508181035f830152612c4881612c0f565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c8360198361216e565b9150612c8e82612c4f565b602082019050919050565b5f6020820190508181035f830152612cb081612c77565b9050919050565b5f612cc182612252565b9150612ccc83612252565b9250828201905080821115612ce457612ce36124aa565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d1e601a8361216e565b9150612d2982612cea565b602082019050919050565b5f6020820190508181035f830152612d4b81612d12565b9050919050565b5f612d5c82612252565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d8e57612d8d6124aa565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612dcd60178361216e565b9150612dd882612d99565b602082019050919050565b5f6020820190508181035f830152612dfa81612dc1565b9050919050565b5f612e0b82612252565b9150612e1683612252565b9250828203905081811115612e2e57612e2d6124aa565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ec081612217565b82525050565b5f612ed18383612eb7565b60208301905092915050565b5f602082019050919050565b5f612ef382612e8e565b612efd8185612e98565b9350612f0883612ea8565b805f5b83811015612f38578151612f1f8882612ec6565b9750612f2a83612edd565b925050600181019050612f0b565b5085935050505092915050565b5f60a082019050612f585f8301886122f6565b612f6560208301876127fa565b8181036040830152612f778186612ee9565b9050612f866060830185612444565b612f9360808301846122f6565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fd482612252565b9150612fdf83612252565b925082612fef57612fee612f9d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61305460218361216e565b915061305f82612ffa565b604082019050919050565b5f6020820190508181035f83015261308181613048565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130bc601b8361216e565b91506130c782613088565b602082019050919050565b5f6020820190508181035f8301526130e9816130b0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c86b910f1a4c86cd25d2d315b5068b1ec2cea6d37883deaa9a50dac783563b7e64736f6c63430008190033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103db578063bf474bed14610417578063c9567bf914610441578063dd62ed3e14610457578063e086e5ec14610493578063f4293890146104bd5761013f565b8063751039fc1461031d5780637d1db4a5146103335780638da5cb5b1461035d5780638f9a55c01461038757806395d89b41146103b15761013f565b8063313ce567116100fc578063313ce5671461023957806351bc3c851461026357806352f7c988146102795780636f268a99146102a157806370a08231146102cb578063715018a6146103075761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104d3565b60405161016491906121d4565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e9190612285565b610510565b6040516101a091906122dd565b60405180910390f35b3480156101b4575f80fd5b506101bd61052d565b6040516101ca9190612305565b60405180910390f35b3480156101de575f80fd5b506101e7610533565b6040516101f49190612305565b60405180910390f35b348015610208575f80fd5b50610223600480360381019061021e919061231e565b610557565b60405161023091906122dd565b60405180910390f35b348015610244575f80fd5b5061024d61062b565b60405161025a9190612389565b60405180910390f35b34801561026e575f80fd5b50610277610633565b005b348015610284575f80fd5b5061029f600480360381019061029a91906123a2565b6106ca565b005b3480156102ac575f80fd5b506102b5610770565b6040516102c29190612400565b60405180910390f35b3480156102d6575f80fd5b506102f160048036038101906102ec9190612419565b610795565b6040516102fe9190612305565b60405180910390f35b348015610312575f80fd5b5061031b6107db565b005b348015610328575f80fd5b50610331610929565b005b34801561033e575f80fd5b50610347610a5b565b6040516103549190612305565b60405180910390f35b348015610368575f80fd5b50610371610a61565b60405161037e9190612453565b60405180910390f35b348015610392575f80fd5b5061039b610a88565b6040516103a89190612305565b60405180910390f35b3480156103bc575f80fd5b506103c5610a8e565b6040516103d291906121d4565b60405180910390f35b3480156103e6575f80fd5b5061040160048036038101906103fc9190612285565b610acb565b60405161040e91906122dd565b60405180910390f35b348015610422575f80fd5b5061042b610ae8565b6040516104389190612305565b60405180910390f35b34801561044c575f80fd5b50610455610aee565b005b348015610462575f80fd5b5061047d6004803603810190610478919061246c565b611011565b60405161048a9190612305565b60405180910390f35b34801561049e575f80fd5b506104a7611093565b6040516104b491906122dd565b60405180910390f35b3480156104c8575f80fd5b506104d161119e565b005b60606040518060400160405280600a81526020017f50696e6b20576f6a616b00000000000000000000000000000000000000000000815250905090565b5f61052361051c611216565b848461121d565b6001905092915050565b600c5481565b5f6009600a6105429190612606565b641029c123006105529190612650565b905090565b5f6105638484846113e0565b6106208461056f611216565b61061b856040518060600160405280602881526020016130f16028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105d2611216565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c509092919063ffffffff16565b61121d565b600190509392505050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610673611216565b73ffffffffffffffffffffffffffffffffffffffff1614610692575f80fd5b5f61069c30610795565b90505f8111156106b0576106af81611cb2565b5b5f4790505f8111156106c6576106c581611f1d565b5b5050565b6106d2611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461075e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610755906126db565b60405180910390fd5b81600581905550806006819055505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107e3611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610866906126db565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610931611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b4906126db565b60405180910390fd5b6009600a6109cb9190612606565b641029c123006109db9190612650565b6009819055506009600a6109ef9190612606565b641029c123006109ff9190612650565b600a819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610a349190612606565b641029c12300610a449190612650565b604051610a519190612305565b60405180910390a1565b60095481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600a5481565b60606040518060400160405280600881526020017f4141414141414141000000000000000000000000000000000000000000000000815250905090565b5f610ade610ad7611216565b84846113e0565b6001905092915050565b600b5481565b610af6611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b79906126db565b60405180910390fd5b600e60149054906101000a900460ff1615610bd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc990612743565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c6f30600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610c5a9190612606565b641029c12300610c6a9190612650565b61121d565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cd9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cfd9190612775565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d83573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da79190612775565b6040518363ffffffff1660e01b8152600401610dc49291906127a0565b6020604051808303815f875af1158015610de0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e049190612775565b600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e8b30610795565b5f80610e95610a61565b426040518863ffffffff1660e01b8152600401610eb796959493929190612809565b60606040518083038185885af1158015610ed3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ef8919061287c565b505050600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f989291906128cc565b6020604051808303815f875af1158015610fb4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd8919061291d565b506001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f61109c611216565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611128576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111f906126db565b60405180910390fd5b5f611131610a61565b73ffffffffffffffffffffffffffffffffffffffff164760405161115490612975565b5f6040518083038185875af1925050503d805f811461118e576040519150601f19603f3d011682016040523d82523d5f602084013e611193565b606091505b505090508091505090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111de611216565b73ffffffffffffffffffffffffffffffffffffffff16146111fd575f80fd5b5f4790505f8111156112135761121281611f1d565b5b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361128b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611282906129f9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f090612a87565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113d39190612305565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361144e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144590612b15565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b390612ba3565b60405180910390fd5b5f81116114fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f590612c31565b60405180910390fd5b5f611507610a61565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115755750611545610a61565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156119a0575f600854036115ae576115ab606461159d60055485611f8590919063ffffffff16565b611ffc90919063ffffffff16565b90505b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116575750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116aa575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561178e576009548211156116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116eb90612c99565b60405180910390fd5b600a548261170185610795565b61170b9190612cb7565b111561174c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174390612d34565b60405180910390fd5b611774606461176660055485611f8590919063ffffffff16565b611ffc90919063ffffffff16565b905060085f81548092919061178890612d52565b91905055505b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561181657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561184657611843606461183560065485611f8590919063ffffffff16565b611ffc90919063ffffffff16565b90505b5f61185030610795565b9050600e60159054906101000a900460ff161580156118bb5750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156118d35750600e60169054906101000a900460ff165b80156118e05750600b5481115b80156118ef5750600754600854115b1561199e57601054431115611906575f600f819055505b6003600f541061194b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194290612de3565b60405180910390fd5b6119686119638461195e84600c54612045565b612045565b611cb2565b5f4790505f81111561197e5761197d47611f1d565b5b600f5f81548092919061199090612d52565b919050555043601081905550505b505b5f811115611a9f576119f88160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205d90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a969190612305565b60405180910390a35b611aef8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120ba90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611b92611b4682846120ba90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461205d90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611c3584866120ba90919063ffffffff16565b604051611c429190612305565b60405180910390a350505050565b5f838311158290611c97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c8e91906121d4565b60405180910390fd5b505f8385611ca59190612e01565b9050809150509392505050565b6001600e60156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611ce957611ce8612e34565b5b604051908082528060200260200182016040528015611d175781602001602082028036833780820191505090505b50905030815f81518110611d2e57611d2d612e61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611dd2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611df69190612775565b81600181518110611e0a57611e09612e61565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611e7030600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461121d565b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ed2959493929190612f45565b5f604051808303815f87803b158015611ee9575f80fd5b505af1158015611efb573d5f803e3d5ffd5b50505050505f600e60156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611f81573d5f803e3d5ffd5b5050565b5f808303611f95575f9050611ff6565b5f8284611fa29190612650565b9050828482611fb19190612fca565b14611ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe89061306a565b60405180910390fd5b809150505b92915050565b5f61203d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612103565b905092915050565b5f8183116120535782612055565b815b905092915050565b5f80828461206b9190612cb7565b9050838110156120b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a7906130d2565b60405180910390fd5b8091505092915050565b5f6120fb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611c50565b905092915050565b5f8083118290612149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214091906121d4565b60405180910390fd5b505f83856121579190612fca565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6121a682612164565b6121b0818561216e565b93506121c081856020860161217e565b6121c98161218c565b840191505092915050565b5f6020820190508181035f8301526121ec818461219c565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612221826121f8565b9050919050565b61223181612217565b811461223b575f80fd5b50565b5f8135905061224c81612228565b92915050565b5f819050919050565b61226481612252565b811461226e575f80fd5b50565b5f8135905061227f8161225b565b92915050565b5f806040838503121561229b5761229a6121f4565b5b5f6122a88582860161223e565b92505060206122b985828601612271565b9150509250929050565b5f8115159050919050565b6122d7816122c3565b82525050565b5f6020820190506122f05f8301846122ce565b92915050565b6122ff81612252565b82525050565b5f6020820190506123185f8301846122f6565b92915050565b5f805f60608486031215612335576123346121f4565b5b5f6123428682870161223e565b93505060206123538682870161223e565b925050604061236486828701612271565b9150509250925092565b5f60ff82169050919050565b6123838161236e565b82525050565b5f60208201905061239c5f83018461237a565b92915050565b5f80604083850312156123b8576123b76121f4565b5b5f6123c585828601612271565b92505060206123d685828601612271565b9150509250929050565b5f6123ea826121f8565b9050919050565b6123fa816123e0565b82525050565b5f6020820190506124135f8301846123f1565b92915050565b5f6020828403121561242e5761242d6121f4565b5b5f61243b8482850161223e565b91505092915050565b61244d81612217565b82525050565b5f6020820190506124665f830184612444565b92915050565b5f8060408385031215612482576124816121f4565b5b5f61248f8582860161223e565b92505060206124a08582860161223e565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561252c57808604811115612508576125076124aa565b5b60018516156125175780820291505b8081029050612525856124d7565b94506124ec565b94509492505050565b5f8261254457600190506125ff565b81612551575f90506125ff565b81600181146125675760028114612571576125a0565b60019150506125ff565b60ff841115612583576125826124aa565b5b8360020a91508482111561259a576125996124aa565b5b506125ff565b5060208310610133831016604e8410600b84101617156125d55782820a9050838111156125d0576125cf6124aa565b5b6125ff565b6125e284848460016124e3565b925090508184048111156125f9576125f86124aa565b5b81810290505b9392505050565b5f61261082612252565b915061261b8361236e565b92506126487fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612535565b905092915050565b5f61265a82612252565b915061266583612252565b925082820261267381612252565b9150828204841483151761268a576126896124aa565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126c560208361216e565b91506126d082612691565b602082019050919050565b5f6020820190508181035f8301526126f2816126b9565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61272d60178361216e565b9150612738826126f9565b602082019050919050565b5f6020820190508181035f83015261275a81612721565b9050919050565b5f8151905061276f81612228565b92915050565b5f6020828403121561278a576127896121f4565b5b5f61279784828501612761565b91505092915050565b5f6040820190506127b35f830185612444565b6127c06020830184612444565b9392505050565b5f819050919050565b5f819050919050565b5f6127f36127ee6127e9846127c7565b6127d0565b612252565b9050919050565b612803816127d9565b82525050565b5f60c08201905061281c5f830189612444565b61282960208301886122f6565b61283660408301876127fa565b61284360608301866127fa565b6128506080830185612444565b61285d60a08301846122f6565b979650505050505050565b5f815190506128768161225b565b92915050565b5f805f60608486031215612893576128926121f4565b5b5f6128a086828701612868565b93505060206128b186828701612868565b92505060406128c286828701612868565b9150509250925092565b5f6040820190506128df5f830185612444565b6128ec60208301846122f6565b9392505050565b6128fc816122c3565b8114612906575f80fd5b50565b5f81519050612917816128f3565b92915050565b5f60208284031215612932576129316121f4565b5b5f61293f84828501612909565b91505092915050565b5f81905092915050565b50565b5f6129605f83612948565b915061296b82612952565b5f82019050919050565b5f61297f82612955565b9150819050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129e360248361216e565b91506129ee82612989565b604082019050919050565b5f6020820190508181035f830152612a10816129d7565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a7160228361216e565b9150612a7c82612a17565b604082019050919050565b5f6020820190508181035f830152612a9e81612a65565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612aff60258361216e565b9150612b0a82612aa5565b604082019050919050565b5f6020820190508181035f830152612b2c81612af3565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b8d60238361216e565b9150612b9882612b33565b604082019050919050565b5f6020820190508181035f830152612bba81612b81565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c1b60298361216e565b9150612c2682612bc1565b604082019050919050565b5f6020820190508181035f830152612c4881612c0f565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612c8360198361216e565b9150612c8e82612c4f565b602082019050919050565b5f6020820190508181035f830152612cb081612c77565b9050919050565b5f612cc182612252565b9150612ccc83612252565b9250828201905080821115612ce457612ce36124aa565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d1e601a8361216e565b9150612d2982612cea565b602082019050919050565b5f6020820190508181035f830152612d4b81612d12565b9050919050565b5f612d5c82612252565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612d8e57612d8d6124aa565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612dcd60178361216e565b9150612dd882612d99565b602082019050919050565b5f6020820190508181035f830152612dfa81612dc1565b9050919050565b5f612e0b82612252565b9150612e1683612252565b9250828203905081811115612e2e57612e2d6124aa565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ec081612217565b82525050565b5f612ed18383612eb7565b60208301905092915050565b5f602082019050919050565b5f612ef382612e8e565b612efd8185612e98565b9350612f0883612ea8565b805f5b83811015612f38578151612f1f8882612ec6565b9750612f2a83612edd565b925050600181019050612f0b565b5085935050505092915050565b5f60a082019050612f585f8301886122f6565b612f6560208301876127fa565b8181036040830152612f778186612ee9565b9050612f866060830185612444565b612f9360808301846122f6565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fd482612252565b9150612fdf83612252565b925082612fef57612fee612f9d565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61305460218361216e565b915061305f82612ffa565b604082019050919050565b5f6020820190508181035f83015261308181613048565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130bc601b8361216e565b91506130c782613088565b602082019050919050565b5f6020820190508181035f8301526130e9816130b0565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c86b910f1a4c86cd25d2d315b5068b1ec2cea6d37883deaa9a50dac783563b7e64736f6c63430008190033

Deployed Bytecode Sourcemap

3720:8012:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5447:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6280:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4600:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5724:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6449:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5633:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11166:348;;;;;;;;;;;;;:::i;:::-;;10030:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3995:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5827:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2803:148;;;;;;;;;;;;;:::i;:::-;;9863:159;;;;;;;;;;;;;:::i;:::-;;4412:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2589:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4475:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5538:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5954:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4540:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10450:671;;;;;;;;;;;;;:::i;:::-;;6129:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10276:166;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11520:209;;;;;;;;;;;;;:::i;:::-;;5447:83;5484:13;5517:5;;;;;;;;;;;;;;;;;5510:12;;5447:83;:::o;6280:161::-;6355:4;6372:39;6381:12;:10;:12::i;:::-;6395:7;6404:6;6372:8;:39::i;:::-;6429:4;6422:11;;6280:161;;;;:::o;4600:54::-;;;;:::o;5724:95::-;5777:7;4219:1;4276:2;:13;;;;:::i;:::-;4262:11;:27;;;;:::i;:::-;5797:14;;5724:95;:::o;6449:313::-;6547:4;6564:36;6574:6;6582:9;6593:6;6564:9;:36::i;:::-;6611:121;6620:6;6628:12;:10;:12::i;:::-;6642:89;6680:6;6642:89;;;;;;;;;;;;;;;;;:11;:19;6654:6;6642:19;;;;;;;;;;;;;;;:33;6662:12;:10;:12::i;:::-;6642:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6611:8;:121::i;:::-;6750:4;6743:11;;6449:313;;;;;:::o;5633:83::-;5674:5;4219:1;5692:16;;5633:83;:::o;11166:348::-;11230:10;;;;;;;;;;;11216:24;;:12;:10;:12::i;:::-;:24;;;11208:33;;;;;;11252:20;11273:24;11291:4;11273:9;:24::i;:::-;11252:45;;11324:1;11311:12;:14;11308:73;;;11339:30;11356:12;11339:16;:30::i;:::-;11308:73;11391:18;11410:21;11391:40;;11456:1;11445:10;:12;11442:65;;;11471:24;11484:10;11471:12;:24::i;:::-;11442:65;11197:317;;11166:348::o;10030:138::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10119:9:::1;10109:7;:19;;;;10150:10;10139:8;:21;;;;10030:138:::0;;:::o;3995:33::-;;;;;;;;;;;;;:::o;5827:119::-;5893:7;5920:9;:18;5930:7;5920:18;;;;;;;;;;;;;;;;5913:25;;5827:119;;;:::o;2803:148::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2910:1:::1;2873:40;;2894:6;::::0;::::1;;;;;;;;2873:40;;;;;;;;;;;;2941:1;2924:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2803:148::o:0;9863:159::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4219:1:::1;4276:2;:13;;;;:::i;:::-;4262:11;:27;;;;:::i;:::-;9916:12;:22;;;;4219:1;4276:2;:13;;;;:::i;:::-;4262:11;:27;;;;:::i;:::-;9949:14;:22;;;;9987:27;4219:1;4276:2;:13;;;;:::i;:::-;4262:11;:27;;;;:::i;:::-;9987;;;;;;:::i;:::-;;;;;;;;9863:159::o:0;4412:56::-;;;;:::o;2589:79::-;2627:7;2654:6;;;;;;;;;;;2647:13;;2589:79;:::o;4475:58::-;;;;:::o;5538:87::-;5577:13;5610:7;;;;;;;;;;;;;;;;;5603:14;;5538:87;:::o;5954:167::-;6032:4;6049:42;6059:12;:10;:12::i;:::-;6073:9;6084:6;6049:9;:42::i;:::-;6109:4;6102:11;;5954:167;;;;:::o;4540:53::-;;;;:::o;10450:671::-;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10514:11:::1;;;;;;;;;;;10513:12;10505:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10600:42;10563:15;;:80;;;;;;;;;;;;;;;;;;10654:58;10671:4;10686:15;;;;;;;;;;;4219:1;4276:2;:13;;;;:::i;:::-;4262:11;:27;;;;:::i;:::-;10654:8;:58::i;:::-;10757:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10739:55;;;10803:4;10810:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10739:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10723:13;;:110;;;;;;;;;;;;;;;;;;10844:15;;;;;;;;;;;:31;;;10883:21;10914:4;10920:24;10938:4;10920:9;:24::i;:::-;10945:1;10947::::0;10949:7:::1;:5;:7::i;:::-;10957:15;10844:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10991:13;;;;;;;;;;;10984:29;;;11022:15;;;;;;;;;;;11040:14;10984:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11080:4;11066:11;;:18;;;;;;;;;;;;;;;;;;11109:4;11095:11;;:18;;;;;;;;;;;;;;;;;;10450:671::o:0;6129:143::-;6210:7;6237:11;:18;6249:5;6237:18;;;;;;;;;;;;;;;:27;6256:7;6237:27;;;;;;;;;;;;;;;;6230:34;;6129:143;;;;:::o;10276:166::-;10327:4;2726:12;:10;:12::i;:::-;2716:22;;:6;;;;;;;;;;:22;;;2708:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10345:12:::1;10363:7;:5;:7::i;:::-;:12;;10383:21;10363:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10344:65;;;10427:7;10420:14;;;10276:166:::0;:::o;11520:209::-;11584:10;;;;;;;;;;;11570:24;;:12;:10;:12::i;:::-;:24;;;11562:33;;;;;;11606:18;11625:21;11606:40;;11671:1;11660:10;:12;11657:65;;;11686:24;11699:10;11686:12;:24::i;:::-;11657:65;11551:178;11520:209::o;346:98::-;399:7;426:10;419:17;;346:98;:::o;6770:335::-;6880:1;6863:19;;:5;:19;;;6855:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6961:1;6942:21;;:7;:21;;;6934:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7043:6;7013:11;:18;7025:5;7013:18;;;;;;;;;;;;;;;:27;7032:7;7013:27;;;;;;;;;;;;;;;:36;;;;7081:7;7065:32;;7074:5;7065:32;;;7090:6;7065:32;;;;;;:::i;:::-;;;;;;;;6770:335;;;:::o;7113:2143::-;7217:1;7201:18;;:4;:18;;;7193:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7294:1;7280:16;;:2;:16;;;7272:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7364:1;7355:6;:10;7347:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7422:17;7464:7;:5;:7::i;:::-;7456:15;;:4;:15;;;;:32;;;;;7481:7;:5;:7::i;:::-;7475:13;;:2;:13;;;;7456:32;7452:1448;;;7519:1;7508:9;;:12;7505:91;;7552:28;7576:3;7552:19;7563:7;;7552:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;7540:40;;7505:91;7624:13;;;;;;;;;;;7616:21;;:4;:21;;;:55;;;;;7655:15;;;;;;;;;;;7641:30;;:2;:30;;;;7616:55;:83;;;;;7677:18;:22;7696:2;7677:22;;;;;;;;;;;;;;;;;;;;;;;;;7675:24;7616:83;7612:372;;;7739:12;;7729:6;:22;;7721:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7834:14;;7824:6;7808:13;7818:2;7808:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7800:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7910:28;7934:3;7910:19;7921:7;;7910:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;7898:40;;7957:9;;:11;;;;;;;;;:::i;:::-;;;;;;7612:372;8009:13;;;;;;;;;;;8003:19;;:2;:19;;;:43;;;;;8041:4;8026:20;;:4;:20;;;;8003:43;8000:124;;;8079:29;8104:3;8079:20;8090:8;;8079:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8067:41;;8000:124;8140:28;8171:24;8189:4;8171:9;:24::i;:::-;8140:55;;8215:6;;;;;;;;;;;8214:7;:30;;;;;8231:13;;;;;;;;;;;8225:19;;:2;:19;;;8214:30;:45;;;;;8248:11;;;;;;;;;;;8214:45;:89;;;;;8286:17;;8263:20;:40;8214:89;:123;;;;;8319:18;;8307:9;;:30;8214:123;8210:679;;;8377:13;;8362:12;:28;8358:90;;;8427:1;8415:9;:13;;;;8358:90;8486:1;8474:9;;:13;8466:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;8534:69;8551:51;8555:6;8563:38;8567:20;8589:11;;8563:3;:38::i;:::-;8551:3;:51::i;:::-;8534:16;:69::i;:::-;8622:26;8651:21;8622:50;;8716:1;8695:18;:22;8691:106;;;8742:35;8755:21;8742:12;:35::i;:::-;8691:106;8815:9;;:11;;;;;;;;;:::i;:::-;;;;;;8861:12;8845:13;:28;;;;8339:550;8210:679;7490:1410;7452:1448;8925:1;8915:9;:11;8912:161;;;8965:39;8994:9;8965;:24;8983:4;8965:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8940:9;:24;8958:4;8940:24;;;;;;;;;;;;;;;:64;;;;9045:4;9022:39;;9031:4;9022:39;;;9051:9;9022:39;;;;;;:::i;:::-;;;;;;;;8912:161;9099:27;9119:6;9099:9;:15;9109:4;9099:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9083:9;:15;9093:4;9083:15;;;;;;;;;;;;;;;:43;;;;9151:40;9169:21;9180:9;9169:6;:10;;:21;;;;:::i;:::-;9151:9;:13;9161:2;9151:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9137:9;:13;9147:2;9137:13;;;;;;;;;;;;;;;:54;;;;9222:2;9207:41;;9216:4;9207:41;;;9226:21;9237:9;9226:6;:10;;:21;;;;:::i;:::-;9207:41;;;;;;:::i;:::-;;;;;;;;7182:2074;7113:2143;;;:::o;1483:190::-;1569:7;1602:1;1597;:6;;1605:12;1589:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1629:9;1645:1;1641;:5;;;;:::i;:::-;1629:17;;1664:1;1657:8;;;1483:190;;;;;:::o;9372:483::-;5065:4;5056:6;;:13;;;;;;;;;;;;;;;;;;9450:21:::1;9488:1;9474:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9450:40;;9519:4;9501;9506:1;9501:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9545:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9535:4;9540:1;9535:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9578:62;9595:4;9610:15;;;;;;;;;;;9628:11;9578:8;:62::i;:::-;9651:15;;;;;;;;;;;:66;;;9732:11;9758:1;9774:4;9801;9821:15;9651:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9439:416;5101:5:::0;5092:6;;:14;;;;;;;;;;;;;;;;;;9372:483;:::o;10176:92::-;10233:10;;;;;;;;;;;:19;;:27;10253:6;10233:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10176:92;:::o;1681:246::-;1739:7;1768:1;1763;:6;1759:47;;1793:1;1786:8;;;;1759:47;1816:9;1832:1;1828;:5;;;;:::i;:::-;1816:17;;1861:1;1856;1852;:5;;;;:::i;:::-;:10;1844:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1918:1;1911:8;;;1681:246;;;;;:::o;1935:132::-;1993:7;2020:39;2024:1;2027;2020:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2013:46;;1935:132;;;;:::o;9266:98::-;9323:7;9350:1;9348;:3;9347:9;;9355:1;9347:9;;;9353:1;9347:9;9340:16;;9266:98;;;;:::o;1152:179::-;1210:7;1230:9;1246:1;1242;:5;;;;:::i;:::-;1230:17;;1271:1;1266;:6;;1258:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1322:1;1315:8;;;1152:179;;;;:::o;1339:136::-;1397:7;1424:43;1428:1;1431;1424:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1417:50;;1339:136;;;;:::o;2075:189::-;2161:7;2193:1;2189;:5;2196:12;2181:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2220:9;2236:1;2232;:5;;;;:::i;:::-;2220:17;;2255:1;2248:8;;;2075:189;;;;;:::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:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:86::-;4351:7;4391:4;4384:5;4380:16;4369:27;;4316:86;;;:::o;4408:112::-;4491:22;4507:5;4491:22;:::i;:::-;4486:3;4479:35;4408:112;;:::o;4526:214::-;4615:4;4653:2;4642:9;4638:18;4630:26;;4666:67;4730:1;4719:9;4715:17;4706:6;4666:67;:::i;:::-;4526:214;;;;:::o;4746:474::-;4814:6;4822;4871:2;4859:9;4850:7;4846:23;4842:32;4839:119;;;4877:79;;:::i;:::-;4839:119;4997:1;5022:53;5067:7;5058:6;5047:9;5043:22;5022:53;:::i;:::-;5012:63;;4968:117;5124:2;5150:53;5195:7;5186:6;5175:9;5171:22;5150:53;:::i;:::-;5140:63;;5095:118;4746:474;;;;;:::o;5226:104::-;5271:7;5300:24;5318:5;5300:24;:::i;:::-;5289:35;;5226:104;;;:::o;5336:142::-;5439:32;5465:5;5439:32;:::i;:::-;5434:3;5427:45;5336:142;;:::o;5484:254::-;5593:4;5631:2;5620:9;5616:18;5608:26;;5644:87;5728:1;5717:9;5713:17;5704:6;5644:87;:::i;:::-;5484:254;;;;:::o;5744:329::-;5803:6;5852:2;5840:9;5831:7;5827:23;5823:32;5820:119;;;5858:79;;:::i;:::-;5820:119;5978:1;6003:53;6048:7;6039:6;6028:9;6024:22;6003:53;:::i;:::-;5993:63;;5949:117;5744:329;;;;:::o;6079:118::-;6166:24;6184:5;6166:24;:::i;:::-;6161:3;6154:37;6079:118;;:::o;6203:222::-;6296:4;6334:2;6323:9;6319:18;6311:26;;6347:71;6415:1;6404:9;6400:17;6391:6;6347:71;:::i;:::-;6203:222;;;;:::o;6431:474::-;6499:6;6507;6556:2;6544:9;6535:7;6531:23;6527:32;6524:119;;;6562:79;;:::i;:::-;6524:119;6682:1;6707:53;6752:7;6743:6;6732:9;6728:22;6707:53;:::i;:::-;6697:63;;6653:117;6809:2;6835:53;6880:7;6871:6;6860:9;6856:22;6835:53;:::i;:::-;6825:63;;6780:118;6431:474;;;;;:::o;6911:180::-;6959:77;6956:1;6949:88;7056:4;7053:1;7046:15;7080:4;7077:1;7070:15;7097:102;7139:8;7186:5;7183:1;7179:13;7158:34;;7097:102;;;:::o;7205:848::-;7266:5;7273:4;7297:6;7288:15;;7321:5;7312:14;;7335:712;7356:1;7346:8;7343:15;7335:712;;;7451:4;7446:3;7442:14;7436:4;7433:24;7430:50;;;7460:18;;:::i;:::-;7430:50;7510:1;7500:8;7496:16;7493:451;;;7925:4;7918:5;7914:16;7905:25;;7493:451;7975:4;7969;7965:15;7957:23;;8005:32;8028:8;8005:32;:::i;:::-;7993:44;;7335:712;;;7205:848;;;;;;;:::o;8059:1073::-;8113:5;8304:8;8294:40;;8325:1;8316:10;;8327:5;;8294:40;8353:4;8343:36;;8370:1;8361:10;;8372:5;;8343:36;8439:4;8487:1;8482:27;;;;8523:1;8518:191;;;;8432:277;;8482:27;8500:1;8491:10;;8502:5;;;8518:191;8563:3;8553:8;8550:17;8547:43;;;8570:18;;:::i;:::-;8547:43;8619:8;8616:1;8612:16;8603:25;;8654:3;8647:5;8644:14;8641:40;;;8661:18;;:::i;:::-;8641:40;8694:5;;;8432:277;;8818:2;8808:8;8805:16;8799:3;8793:4;8790:13;8786:36;8768:2;8758:8;8755:16;8750:2;8744:4;8741:12;8737:35;8721:111;8718:246;;;8874:8;8868:4;8864:19;8855:28;;8909:3;8902:5;8899:14;8896:40;;;8916:18;;:::i;:::-;8896:40;8949:5;;8718:246;8989:42;9027:3;9017:8;9011:4;9008:1;8989:42;:::i;:::-;8974:57;;;;9063:4;9058:3;9054:14;9047:5;9044:25;9041:51;;;9072:18;;:::i;:::-;9041:51;9121:4;9114:5;9110:16;9101:25;;8059:1073;;;;;;:::o;9138:281::-;9196:5;9220:23;9238:4;9220:23;:::i;:::-;9212:31;;9264:25;9280:8;9264:25;:::i;:::-;9252:37;;9308:104;9345:66;9335:8;9329:4;9308:104;:::i;:::-;9299:113;;9138:281;;;;:::o;9425:410::-;9465:7;9488:20;9506:1;9488:20;:::i;:::-;9483:25;;9522:20;9540:1;9522:20;:::i;:::-;9517:25;;9577:1;9574;9570:9;9599:30;9617:11;9599:30;:::i;:::-;9588:41;;9778:1;9769:7;9765:15;9762:1;9759:22;9739:1;9732:9;9712:83;9689:139;;9808:18;;:::i;:::-;9689:139;9473:362;9425:410;;;;:::o;9841:182::-;9981:34;9977:1;9969:6;9965:14;9958:58;9841:182;:::o;10029:366::-;10171:3;10192:67;10256:2;10251:3;10192:67;:::i;:::-;10185:74;;10268:93;10357:3;10268:93;:::i;:::-;10386:2;10381:3;10377:12;10370:19;;10029:366;;;:::o;10401:419::-;10567:4;10605:2;10594:9;10590:18;10582:26;;10654:9;10648:4;10644:20;10640:1;10629:9;10625:17;10618:47;10682:131;10808:4;10682:131;:::i;:::-;10674:139;;10401:419;;;:::o;10826:173::-;10966:25;10962:1;10954:6;10950:14;10943:49;10826:173;:::o;11005:366::-;11147:3;11168:67;11232:2;11227:3;11168:67;:::i;:::-;11161:74;;11244:93;11333:3;11244:93;:::i;:::-;11362:2;11357:3;11353:12;11346:19;;11005:366;;;:::o;11377:419::-;11543:4;11581:2;11570:9;11566:18;11558:26;;11630:9;11624:4;11620:20;11616:1;11605:9;11601:17;11594:47;11658:131;11784:4;11658:131;:::i;:::-;11650:139;;11377:419;;;:::o;11802:143::-;11859:5;11890:6;11884:13;11875:22;;11906:33;11933:5;11906:33;:::i;:::-;11802:143;;;;:::o;11951:351::-;12021:6;12070:2;12058:9;12049:7;12045:23;12041:32;12038:119;;;12076:79;;:::i;:::-;12038:119;12196:1;12221:64;12277:7;12268:6;12257:9;12253:22;12221:64;:::i;:::-;12211:74;;12167:128;11951:351;;;;:::o;12308:332::-;12429:4;12467:2;12456:9;12452:18;12444:26;;12480:71;12548:1;12537:9;12533:17;12524:6;12480:71;:::i;:::-;12561:72;12629:2;12618:9;12614:18;12605:6;12561:72;:::i;:::-;12308:332;;;;;:::o;12646:85::-;12691:7;12720:5;12709:16;;12646:85;;;:::o;12737:60::-;12765:3;12786:5;12779:12;;12737:60;;;:::o;12803:158::-;12861:9;12894:61;12912:42;12921:32;12947:5;12921:32;:::i;:::-;12912:42;:::i;:::-;12894:61;:::i;:::-;12881:74;;12803:158;;;:::o;12967:147::-;13062:45;13101:5;13062:45;:::i;:::-;13057:3;13050:58;12967:147;;:::o;13120:807::-;13369:4;13407:3;13396:9;13392:19;13384:27;;13421:71;13489:1;13478:9;13474:17;13465:6;13421:71;:::i;:::-;13502:72;13570:2;13559:9;13555:18;13546:6;13502:72;:::i;:::-;13584:80;13660:2;13649:9;13645:18;13636:6;13584:80;:::i;:::-;13674;13750:2;13739:9;13735:18;13726:6;13674:80;:::i;:::-;13764:73;13832:3;13821:9;13817:19;13808:6;13764:73;:::i;:::-;13847;13915:3;13904:9;13900:19;13891:6;13847:73;:::i;:::-;13120:807;;;;;;;;;:::o;13933:143::-;13990:5;14021:6;14015:13;14006:22;;14037:33;14064:5;14037:33;:::i;:::-;13933:143;;;;:::o;14082:663::-;14170:6;14178;14186;14235:2;14223:9;14214:7;14210:23;14206:32;14203:119;;;14241:79;;:::i;:::-;14203:119;14361:1;14386:64;14442:7;14433:6;14422:9;14418:22;14386:64;:::i;:::-;14376:74;;14332:128;14499:2;14525:64;14581:7;14572:6;14561:9;14557:22;14525:64;:::i;:::-;14515:74;;14470:129;14638:2;14664:64;14720:7;14711:6;14700:9;14696:22;14664:64;:::i;:::-;14654:74;;14609:129;14082:663;;;;;:::o;14751:332::-;14872:4;14910:2;14899:9;14895:18;14887:26;;14923:71;14991:1;14980:9;14976:17;14967:6;14923:71;:::i;:::-;15004:72;15072:2;15061:9;15057:18;15048:6;15004:72;:::i;:::-;14751:332;;;;;:::o;15089:116::-;15159:21;15174:5;15159:21;:::i;:::-;15152:5;15149:32;15139:60;;15195:1;15192;15185:12;15139:60;15089:116;:::o;15211:137::-;15265:5;15296:6;15290:13;15281:22;;15312:30;15336:5;15312:30;:::i;:::-;15211:137;;;;:::o;15354:345::-;15421:6;15470:2;15458:9;15449:7;15445:23;15441:32;15438:119;;;15476:79;;:::i;:::-;15438:119;15596:1;15621:61;15674:7;15665:6;15654:9;15650:22;15621:61;:::i;:::-;15611:71;;15567:125;15354:345;;;;:::o;15705:147::-;15806:11;15843:3;15828:18;;15705:147;;;;:::o;15858:114::-;;:::o;15978:398::-;16137:3;16158:83;16239:1;16234:3;16158:83;:::i;:::-;16151:90;;16250:93;16339:3;16250:93;:::i;:::-;16368:1;16363:3;16359:11;16352:18;;15978:398;;;:::o;16382:379::-;16566:3;16588:147;16731:3;16588:147;:::i;:::-;16581:154;;16752:3;16745:10;;16382:379;;;:::o;16767:223::-;16907:34;16903:1;16895:6;16891:14;16884:58;16976:6;16971:2;16963:6;16959:15;16952:31;16767:223;:::o;16996:366::-;17138:3;17159:67;17223:2;17218:3;17159:67;:::i;:::-;17152:74;;17235:93;17324:3;17235:93;:::i;:::-;17353:2;17348:3;17344:12;17337:19;;16996:366;;;:::o;17368:419::-;17534:4;17572:2;17561:9;17557:18;17549:26;;17621:9;17615:4;17611:20;17607:1;17596:9;17592:17;17585:47;17649:131;17775:4;17649:131;:::i;:::-;17641:139;;17368:419;;;:::o;17793:221::-;17933:34;17929:1;17921:6;17917:14;17910:58;18002:4;17997:2;17989:6;17985:15;17978:29;17793:221;:::o;18020:366::-;18162:3;18183:67;18247:2;18242:3;18183:67;:::i;:::-;18176:74;;18259:93;18348:3;18259:93;:::i;:::-;18377:2;18372:3;18368:12;18361:19;;18020:366;;;:::o;18392:419::-;18558:4;18596:2;18585:9;18581:18;18573:26;;18645:9;18639:4;18635:20;18631:1;18620:9;18616:17;18609:47;18673:131;18799:4;18673:131;:::i;:::-;18665:139;;18392:419;;;:::o;18817:224::-;18957:34;18953:1;18945:6;18941:14;18934:58;19026:7;19021:2;19013:6;19009:15;19002:32;18817:224;:::o;19047:366::-;19189:3;19210:67;19274:2;19269:3;19210:67;:::i;:::-;19203:74;;19286:93;19375:3;19286:93;:::i;:::-;19404:2;19399:3;19395:12;19388:19;;19047:366;;;:::o;19419:419::-;19585:4;19623:2;19612:9;19608:18;19600:26;;19672:9;19666:4;19662:20;19658:1;19647:9;19643:17;19636:47;19700:131;19826:4;19700:131;:::i;:::-;19692:139;;19419:419;;;:::o;19844:222::-;19984:34;19980:1;19972:6;19968:14;19961:58;20053:5;20048:2;20040:6;20036:15;20029:30;19844:222;:::o;20072:366::-;20214:3;20235:67;20299:2;20294:3;20235:67;:::i;:::-;20228:74;;20311:93;20400:3;20311:93;:::i;:::-;20429:2;20424:3;20420:12;20413:19;;20072:366;;;:::o;20444:419::-;20610:4;20648:2;20637:9;20633:18;20625:26;;20697:9;20691:4;20687:20;20683:1;20672:9;20668:17;20661:47;20725:131;20851:4;20725:131;:::i;:::-;20717:139;;20444:419;;;:::o;20869:228::-;21009:34;21005:1;20997:6;20993:14;20986:58;21078:11;21073:2;21065:6;21061:15;21054:36;20869:228;:::o;21103:366::-;21245:3;21266:67;21330:2;21325:3;21266:67;:::i;:::-;21259:74;;21342:93;21431:3;21342:93;:::i;:::-;21460:2;21455:3;21451:12;21444:19;;21103:366;;;:::o;21475:419::-;21641:4;21679:2;21668:9;21664:18;21656:26;;21728:9;21722:4;21718:20;21714:1;21703:9;21699:17;21692:47;21756:131;21882:4;21756:131;:::i;:::-;21748:139;;21475:419;;;:::o;21900:175::-;22040:27;22036:1;22028:6;22024:14;22017:51;21900:175;:::o;22081:366::-;22223:3;22244:67;22308:2;22303:3;22244:67;:::i;:::-;22237:74;;22320:93;22409:3;22320:93;:::i;:::-;22438:2;22433:3;22429:12;22422:19;;22081:366;;;:::o;22453:419::-;22619:4;22657:2;22646:9;22642:18;22634:26;;22706:9;22700:4;22696:20;22692:1;22681:9;22677:17;22670:47;22734:131;22860:4;22734:131;:::i;:::-;22726:139;;22453:419;;;:::o;22878:191::-;22918:3;22937:20;22955:1;22937:20;:::i;:::-;22932:25;;22971:20;22989:1;22971:20;:::i;:::-;22966:25;;23014:1;23011;23007:9;23000:16;;23035:3;23032:1;23029:10;23026:36;;;23042:18;;:::i;:::-;23026:36;22878:191;;;;:::o;23075:176::-;23215:28;23211:1;23203:6;23199:14;23192:52;23075:176;:::o;23257:366::-;23399:3;23420:67;23484:2;23479:3;23420:67;:::i;:::-;23413:74;;23496:93;23585:3;23496:93;:::i;:::-;23614:2;23609:3;23605:12;23598:19;;23257:366;;;:::o;23629:419::-;23795:4;23833:2;23822:9;23818:18;23810:26;;23882:9;23876:4;23872:20;23868:1;23857:9;23853:17;23846:47;23910:131;24036:4;23910:131;:::i;:::-;23902:139;;23629:419;;;:::o;24054:233::-;24093:3;24116:24;24134:5;24116:24;:::i;:::-;24107:33;;24162:66;24155:5;24152:77;24149:103;;24232:18;;:::i;:::-;24149:103;24279:1;24272:5;24268:13;24261:20;;24054:233;;;:::o;24293:173::-;24433:25;24429:1;24421:6;24417:14;24410:49;24293:173;:::o;24472:366::-;24614:3;24635:67;24699:2;24694:3;24635:67;:::i;:::-;24628:74;;24711:93;24800:3;24711:93;:::i;:::-;24829:2;24824:3;24820:12;24813:19;;24472:366;;;:::o;24844:419::-;25010:4;25048:2;25037:9;25033:18;25025:26;;25097:9;25091:4;25087:20;25083:1;25072:9;25068:17;25061:47;25125:131;25251:4;25125:131;:::i;:::-;25117:139;;24844:419;;;:::o;25269:194::-;25309:4;25329:20;25347:1;25329:20;:::i;:::-;25324:25;;25363:20;25381:1;25363:20;:::i;:::-;25358:25;;25407:1;25404;25400:9;25392:17;;25431:1;25425:4;25422:11;25419:37;;;25436:18;;:::i;:::-;25419:37;25269:194;;;;:::o;25469:180::-;25517:77;25514:1;25507:88;25614:4;25611:1;25604:15;25638:4;25635:1;25628:15;25655:180;25703:77;25700:1;25693:88;25800:4;25797:1;25790:15;25824:4;25821:1;25814:15;25841:114;25908:6;25942:5;25936:12;25926:22;;25841:114;;;:::o;25961:184::-;26060:11;26094:6;26089:3;26082:19;26134:4;26129:3;26125:14;26110:29;;25961:184;;;;:::o;26151:132::-;26218:4;26241:3;26233:11;;26271:4;26266:3;26262:14;26254:22;;26151:132;;;:::o;26289:108::-;26366:24;26384:5;26366:24;:::i;:::-;26361:3;26354:37;26289:108;;:::o;26403:179::-;26472:10;26493:46;26535:3;26527:6;26493:46;:::i;:::-;26571:4;26566:3;26562:14;26548:28;;26403:179;;;;:::o;26588:113::-;26658:4;26690;26685:3;26681:14;26673:22;;26588:113;;;:::o;26737:732::-;26856:3;26885:54;26933:5;26885:54;:::i;:::-;26955:86;27034:6;27029:3;26955:86;:::i;:::-;26948:93;;27065:56;27115:5;27065:56;:::i;:::-;27144:7;27175:1;27160:284;27185:6;27182:1;27179:13;27160:284;;;27261:6;27255:13;27288:63;27347:3;27332:13;27288:63;:::i;:::-;27281:70;;27374:60;27427:6;27374:60;:::i;:::-;27364:70;;27220:224;27207:1;27204;27200:9;27195:14;;27160:284;;;27164:14;27460:3;27453:10;;26861:608;;;26737:732;;;;:::o;27475:831::-;27738:4;27776:3;27765:9;27761:19;27753:27;;27790:71;27858:1;27847:9;27843:17;27834:6;27790:71;:::i;:::-;27871:80;27947:2;27936:9;27932:18;27923:6;27871:80;:::i;:::-;27998:9;27992:4;27988:20;27983:2;27972:9;27968:18;27961:48;28026:108;28129:4;28120:6;28026:108;:::i;:::-;28018:116;;28144:72;28212:2;28201:9;28197:18;28188:6;28144:72;:::i;:::-;28226:73;28294:3;28283:9;28279:19;28270:6;28226:73;:::i;:::-;27475:831;;;;;;;;:::o;28312:180::-;28360:77;28357:1;28350:88;28457:4;28454:1;28447:15;28481:4;28478:1;28471:15;28498:185;28538:1;28555:20;28573:1;28555:20;:::i;:::-;28550:25;;28589:20;28607:1;28589:20;:::i;:::-;28584:25;;28628:1;28618:35;;28633:18;;:::i;:::-;28618:35;28675:1;28672;28668:9;28663:14;;28498:185;;;;:::o;28689:220::-;28829:34;28825:1;28817:6;28813:14;28806:58;28898:3;28893:2;28885:6;28881:15;28874:28;28689:220;:::o;28915:366::-;29057:3;29078:67;29142:2;29137:3;29078:67;:::i;:::-;29071:74;;29154:93;29243:3;29154:93;:::i;:::-;29272:2;29267:3;29263:12;29256:19;;28915:366;;;:::o;29287:419::-;29453:4;29491:2;29480:9;29476:18;29468:26;;29540:9;29534:4;29530:20;29526:1;29515:9;29511:17;29504:47;29568:131;29694:4;29568:131;:::i;:::-;29560:139;;29287:419;;;:::o;29712:177::-;29852:29;29848:1;29840:6;29836:14;29829:53;29712:177;:::o;29895:366::-;30037:3;30058:67;30122:2;30117:3;30058:67;:::i;:::-;30051:74;;30134:93;30223:3;30134:93;:::i;:::-;30252:2;30247:3;30243:12;30236:19;;29895:366;;;:::o;30267:419::-;30433:4;30471:2;30460:9;30456:18;30448:26;;30520:9;30514:4;30510:20;30506:1;30495:9;30491:17;30484:47;30548:131;30674:4;30548:131;:::i;:::-;30540:139;;30267:419;;;:::o

Swarm Source

ipfs://c86b910f1a4c86cd25d2d315b5068b1ec2cea6d37883deaa9a50dac783563b7e

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.