ETH Price: $3,669.80 (+1.92%)

Token

FIFTYONEFIFTY (FIFTY)
 

Overview

Max Total Supply

5,100,000,000 FIFTY

Holders

156 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,698,860.226440131 FIFTY

Value
$0.00
0x0c94c058cf555d601ef84ad8421639fc096c4211
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

FIFTYONEFIFTY is an analog manifestation of digital collectables.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
FIFTYONEFIFTY

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-09-06
*/

/*
Built and deployed using FTP Deployer, a service of Fair Token Project.
Deploy your own token today at https://app.fairtokenproject.com#deploy

FIFTYONEFIFTY Socials:
Telegram: https://t.me/fiftyone50
Twitter: https://twitter.com/51fift
Website: https://5150.win
Whitepaper: https://5150.win/token

** Secured With FTPAntibot **

Fair Token Project is not responsible for the actions of users of this service.
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
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 m_Owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor () {
        address msgSender = _msgSender();
        m_Owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return m_Owner;
    }
    function transferOwnership(address _address) public virtual onlyOwner {
        emit OwnershipTransferred(m_Owner, _address);
        m_Owner = _address;
    }
    modifier onlyOwner() {
        require(_msgSender() == m_Owner, "Ownable: caller is not the owner");
        _;
    }                                                                                           
}
contract Taxable is Ownable {
    using SafeMath for uint256; 
    FTPExternal External;
    address payable private m_ExternalServiceAddress = payable(0x4f53cDEC355E42B3A68bAadD26606b7F82fDb0f7);
    address payable private m_DevAddress;
    uint256 private m_DevAlloc = 1000;
    address internal m_WebThree = 0x1011f61Df0E2Ad67e269f4108098c79e71868E00;
    uint256[] m_TaxAlloc;
    address payable[] m_TaxAddresses;
    mapping (address => uint256) private m_TaxIdx;
    uint256 public m_TotalAlloc;
    bool private m_DidDeploy = false;

    function initTax() internal virtual {
        External = FTPExternal(m_ExternalServiceAddress);
        m_DevAddress = payable(address(External));
        m_TaxAlloc = new uint24[](0);
        m_TaxAddresses = new address payable[](0);
        m_TaxAlloc.push(0);
        m_TaxAddresses.push(payable(address(0)));
        setTaxAlloc(m_DevAddress, m_DevAlloc);
		setTaxAlloc(payable(0x7222a62FDe8558d9A0C11EbcBD8AaB6e65A8ee06), 7000);
        m_DidDeploy = true;
    }
    function payTaxes(uint256 _eth, uint256 _d) internal virtual {
        for (uint i = 1; i < m_TaxAlloc.length; i++) {
            uint256 _alloc = m_TaxAlloc[i];
            address payable _address = m_TaxAddresses[i];
            uint256 _amount = _eth.mul(_alloc).div(_d);
            if (_amount > 1){
                _address.transfer(_amount);
                if(_address == m_DevAddress)
                    External.deposit(_amount);
            }
        }
    }
    function setTaxAlloc(address payable _address, uint256 _alloc) internal virtual onlyOwner() {
        if (m_DidDeploy) {
            if (_address == m_DevAddress) {
                require(_msgSender() == m_WebThree);
            }
        }

        uint _idx = m_TaxIdx[_address];
        if (_idx == 0) {
            require(m_TotalAlloc.add(_alloc) <= 10500);
            m_TaxAlloc.push(_alloc);
            m_TaxAddresses.push(_address);
            m_TaxIdx[_address] = m_TaxAlloc.length - 1;
            m_TotalAlloc = m_TotalAlloc.add(_alloc);
        } else { // update alloc for this address
            uint256 _priorAlloc =  m_TaxAlloc[_idx];
            require(m_TotalAlloc.add(_alloc).sub(_priorAlloc) <= 10500);  
            m_TaxAlloc[_idx] = _alloc;
            m_TotalAlloc = m_TotalAlloc.add(_alloc).sub(_priorAlloc);
        }
    }
    function totalTaxAlloc() internal virtual view returns (uint256) {
        return m_TotalAlloc;
    }
    function getTaxAlloc(address payable _address) public virtual onlyOwner() view returns (uint256) {
        uint _idx = m_TaxIdx[_address];
        return m_TaxAlloc[_idx];
    }
    function updateDevWallet(address payable _address, uint256 _alloc) public virtual onlyOwner() {
        setTaxAlloc(m_DevAddress, 0);
        m_DevAddress = _address;
        m_DevAlloc = _alloc;
        setTaxAlloc(m_DevAddress, m_DevAlloc);
    }
}                                                                                    
interface IUniswapV2Factory {                                                         
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}
interface FTPLiqLock {
    function lockTokens(address _uniPair, uint256 _epoch, address _tokenPayout) external;
}
interface FTPAntiBot {
    function scanAddress(address _address, address _safeAddress, address _origin) external returns (bool);
    function registerBlock(address _recipient, address _sender, address _origin) external;
}
interface FTPExternal {
    function owner() external returns(address);
    function deposit(uint256 _amount) external;
}
contract FIFTYONEFIFTY is Context, IERC20, Taxable {
    using SafeMath for uint256;
    // TOKEN
    uint256 private constant TOTAL_SUPPLY = 5100000000 * 10**9;
    string private m_Name = "FIFTYONEFIFTY";
    string private m_Symbol = "FIFTY";
    uint8 private m_Decimals = 9;
    // EXCHANGES
    address private m_UniswapV2Pair;
    IUniswapV2Router02 private m_UniswapV2Router;
    // TRANSACTIONS
    uint256 private m_WalletLimit = TOTAL_SUPPLY.div(40);
    bool private m_Liquidity = false;
    event SetTxLimit(uint TxLimit);
	// ANTIBOT
    FTPAntiBot private AntiBot;
    address private m_AntibotSvcAddress = 0xCD5312d086f078D1554e8813C27Cf6C9D1C3D9b3;
    // MISC
    address private m_LiqLockSvcAddress = 0x55E2aDaEB2798DDC474311AD98B23d0B62C1EBD8;
    mapping (address => bool) private m_Blacklist;
    mapping (address => bool) private m_ExcludedAddresses;
    mapping (address => uint256) private m_Balances;
    mapping (address => mapping (address => uint256)) private m_Allowances;
    uint256 private m_LastEthBal = 0;
    uint256 private m_Launched = 1753633194;
    bool private m_IsSwap = false;
    uint256 private pMax = 100000; // max alloc percentage

    modifier lockTheSwap {
        m_IsSwap = true;
        _;
        m_IsSwap = false;
    }

    modifier onlyDev() {
        require( _msgSender() == External.owner() || _msgSender() == m_WebThree, "Unauthorized");
        _;
    }
    
    receive() external payable {}

    constructor () {
		AntiBot = FTPAntiBot(m_AntibotSvcAddress);
        initTax();

        m_Balances[address(this)] = TOTAL_SUPPLY;
        m_ExcludedAddresses[owner()] = true;
        m_ExcludedAddresses[address(this)] = true;
        emit Transfer(address(0), address(this), TOTAL_SUPPLY);
    }
    function name() public view returns (string memory) {
        return m_Name;
    }
    function symbol() public view returns (string memory) {
        return m_Symbol;
    }
    function decimals() public view returns (uint8) {
        return m_Decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return TOTAL_SUPPLY;
    }
    function balanceOf(address _account) public view override returns (uint256) {
        return m_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 m_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(), m_Allowances[_sender][_msgSender()].sub(_amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function _readyToTax(address _sender) private view returns (bool) {
        return !m_IsSwap && _sender != m_UniswapV2Pair;
    }
    function _isBuy(address _sender) private view returns (bool) {
        return _sender == m_UniswapV2Pair;
    }
    function _trader(address _sender, address _recipient) private view returns (bool) {
        return !(m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]);
    }
    function _isExchangeTransfer(address _sender, address _recipient) private view returns (bool) {
        return _sender == m_UniswapV2Pair || _recipient == m_UniswapV2Pair;
    }
    function _txRestricted(address _sender, address _recipient) private view returns (bool) {
        return _sender == m_UniswapV2Pair && _recipient != address(m_UniswapV2Router) && !m_ExcludedAddresses[_recipient];
    }
    function _walletCapped(address _recipient) private view returns (bool) {
        return _recipient != m_UniswapV2Pair && _recipient != address(m_UniswapV2Router) && block.timestamp <= m_Launched.add(24 hours);
    }
    function _checkTX() private view returns (uint256){
        if(block.timestamp <= m_Launched.add(180 minutes))
            return TOTAL_SUPPLY.div(50);
        else
            return TOTAL_SUPPLY;
    }
    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");
        m_Allowances[_owner][_spender] = _amount;
        emit Approval(_owner, _spender, _amount);
    }
    function _transfer(address _sender, address _recipient, uint256 _amount) private {
        require(_sender != address(0), "ERC20: transfer from the zero address");
        require(_recipient != address(0), "ERC20: transfer to the zero address");
        require(_amount > 0, "Transfer amount must be greater than zero");
        require(!m_Blacklist[_sender] && !m_Blacklist[_recipient] && !m_Blacklist[tx.origin]);
        
		if(_isExchangeTransfer(_sender, _recipient) && block.timestamp >= m_Launched) {
            require(!AntiBot.scanAddress(_recipient, m_UniswapV2Pair, tx.origin), "Beep Beep Boop, You're a piece of poop");
            require(!AntiBot.scanAddress(_sender, m_UniswapV2Pair, tx.origin),  "Beep Beep Boop, You're a piece of poop");
            AntiBot.registerBlock(_sender, _recipient, tx.origin);
        }

        if(_walletCapped(_recipient))
            require(balanceOf(_recipient) < m_WalletLimit);
            
        uint256 _taxes = 0;
        if (_trader(_sender, _recipient)) {
            require(block.timestamp >= m_Launched);
            if (_txRestricted(_sender, _recipient)) 
                require(_amount <= _checkTX());
            
            _taxes = _getTaxes(_sender, _recipient, _amount);
            _tax(_sender);
        }
        
        _updateBalances(_sender, _recipient, _amount, _taxes);
    }
    function _updateBalances(address _sender, address _recipient, uint256 _amount, uint256 _taxes) private {
        uint256 _netAmount = _amount.sub(_taxes);
        m_Balances[_sender] = m_Balances[_sender].sub(_amount);
        m_Balances[_recipient] = m_Balances[_recipient].add(_netAmount);
        m_Balances[address(this)] = m_Balances[address(this)].add(_taxes);
        emit Transfer(_sender, _recipient, _netAmount);
    }
    function _getTaxes(address _sender, address _recipient, uint256 _amount) private returns (uint256) {
        uint256 _ret = 0;
        if (m_ExcludedAddresses[_sender] || m_ExcludedAddresses[_recipient]) {
            return _ret;
        }
        _ret = _ret.add(_amount.div(pMax).mul(totalTaxAlloc()));
        return _ret;
    }
    function _tax(address _sender) private {
        if (_readyToTax(_sender)) {
            uint256 _tokenBalance = balanceOf(address(this));
            _swapTokensForETH(_tokenBalance);
            _disperseEth();
        }
    }
    function _swapTokensForETH(uint256 _amount) private lockTheSwap {
        address[] memory _path = new address[](2);
        _path[0] = address(this);
        _path[1] = m_UniswapV2Router.WETH();
        _approve(address(this), address(m_UniswapV2Router), _amount);
        m_UniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            _amount,
            0,
            _path,
            address(this),
            block.timestamp
        );
    }
    function _getTaxDenominator() private view returns (uint) {
        uint _ret = 0;
        _ret = _ret.add(totalTaxAlloc());
        return _ret;
    }
    function _disperseEth() private {
        uint256 _eth = address(this).balance;
        if (_eth <= m_LastEthBal)
            return;
            
        uint256 _newEth = _eth.sub(m_LastEthBal);
        uint _d = _getTaxDenominator();
        if (_d < 1)
            return;

        payTaxes(_newEth, _d);

        m_LastEthBal = address(this).balance;
    }
    function addLiquidity() external onlyOwner() {
        require(!m_Liquidity,"Liquidity already added.");
        uint256 _ethBalance = address(this).balance;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        m_UniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(m_UniswapV2Router), TOTAL_SUPPLY);
        m_UniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        m_UniswapV2Router.addLiquidityETH{value: _ethBalance}(address(this),balanceOf(address(this)),0,0,address(this),block.timestamp);
        IERC20(m_UniswapV2Pair).approve(m_LiqLockSvcAddress, type(uint).max);
        FTPLiqLock(m_LiqLockSvcAddress).lockTokens(m_UniswapV2Pair, block.timestamp.add(365 days), msg.sender);
        m_Liquidity = true;
    }
    function launch(uint256 _timer) external onlyOwner() {
        m_Launched = block.timestamp.add(_timer);
    }
    function checkIfBlacklist(address _address) external view returns (bool) {
        return m_Blacklist[_address];
    }
    function blacklist(address _a) external onlyOwner() {
        m_Blacklist[_a] = true;
    }
    function rmBlacklist(address _a) external onlyOwner() {
        m_Blacklist[_a] = false;
    }
    function updateTaxAlloc(address payable _address, uint _alloc) external onlyOwner() {
        setTaxAlloc(_address, _alloc);
        if (_alloc > 0) {
            m_ExcludedAddresses[_address] = true;
        }
    }
    function addTaxWhitelist(address _address) external onlyOwner() {
        m_ExcludedAddresses[_address] = true;
    }
    function rmTaxWhitelist(address _address) external onlyOwner() {
        m_ExcludedAddresses[_address] = false;
    }
    function setWebThree(address _address) external onlyDev() {
        m_WebThree = _address;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"TxLimit","type":"uint256"}],"name":"SetTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"addLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addTaxWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"checkIfBlacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"}],"name":"getTaxAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_timer","type":"uint256"}],"name":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"m_TotalAlloc","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_a","type":"address"}],"name":"rmBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"rmTaxWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"setWebThree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_alloc","type":"uint256"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_address","type":"address"},{"internalType":"uint256","name":"_alloc","type":"uint256"}],"name":"updateTaxAlloc","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052734f53cdec355e42b3a68baadd26606b7f82fdb0f7600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8600455731011f61df0e2ad67e269f4108098c79e71868e00600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600a60006101000a81548160ff0219169083151502179055506040518060400160405280600d81526020017f46494654594f4e45464946545900000000000000000000000000000000000000815250600b90805190602001906200011c92919062000dc6565b506040518060400160405280600581526020017f4649465459000000000000000000000000000000000000000000000000000000815250600c90805190602001906200016a92919062000dc6565b506009600d60006101000a81548160ff021916908360ff160217905550620001aa60286746c6d6faa27e00006200055360201b620019d81790919060201c565b600f556000601060006101000a81548160ff02191690831515021790555073cd5312d086f078d1554e8813c27cf6c9d1c3d9b3601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507355e2adaeb2798ddc474311ad98b23d0b62c1ebd8601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600060175563688651aa6018556000601960006101000a81548160ff021916908315150217905550620186a0601a55348015620002ae57600080fd5b506000620002c1620005a560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003d2620005ad60201b60201c565b6746c6d6faa27e0000601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160146000620004346200084860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6746c6d6faa27e000060405162000545919062001066565b60405180910390a362001333565b60006200059d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200087160201b60201c565b905092915050565b600033905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600067ffffffffffffffff811115620006915762000690620012a1565b5b604051908082528060200260200182016040528015620006c05781602001602082028036833780820191505090505b5060069080519060200190620006d892919062000e57565b50600067ffffffffffffffff811115620006f757620006f6620012a1565b5b604051908082528060200260200182016040528015620007265781602001602082028036833780820191505090505b50600790805190602001906200073e92919062000eb0565b50600660009080600181540180825580915050600190039060005260206000200160009091909190915055600760009080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000803600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454620008d960201b60201c565b6200082b737222a62fde8558d9a0c11ebcbd8aab6e65a8ee06611b58620008d960201b60201c565b6001600a60006101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620008bb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008b2919062000ffe565b60405180910390fd5b5060008385620008cc9190620010fc565b9050809150509392505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000920620005a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000979576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009709062001044565b60405180910390fd5b600a60009054906101000a900460ff161562000a5257600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000a5157600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1662000a2f620005a560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000a5057600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600081141562000bd65761290462000abf8360095462000ca860201b62001a221790919060201c565b111562000acb57600080fd5b60068290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160068054905062000b6b919062001134565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000bca8260095462000ca860201b62001a221790919060201c565b60098190555062000ca3565b60006006828154811062000bef5762000bee62001272565b5b9060005260206000200154905061290462000c348262000c208660095462000ca860201b62001a221790919060201c565b62000d0b60201b62001a801790919060201c565b111562000c4057600080fd5b826006838154811062000c585762000c5762001272565b5b906000526020600020018190555062000c9b8162000c878560095462000ca860201b62001a221790919060201c565b62000d0b60201b62001a801790919060201c565b600981905550505b505050565b600080828462000cb991906200109f565b90508381101562000d01576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000cf89062001022565b60405180910390fd5b8091505092915050565b600062000d5583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525062000d5d60201b60201c565b905092915050565b600083831115829062000da8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000d9f919062000ffe565b60405180910390fd5b506000838562000db9919062001134565b9050809150509392505050565b82805462000dd490620011af565b90600052602060002090601f01602090048101928262000df8576000855562000e44565b82601f1062000e1357805160ff191683800117855562000e44565b8280016001018555821562000e44579182015b8281111562000e4357825182559160200191906001019062000e26565b5b50905062000e53919062000f3f565b5090565b82805482825590600052602060002090810192821562000e9d579160200282015b8281111562000e9c578251829062ffffff1690559160200191906001019062000e78565b5b50905062000eac919062000f3f565b5090565b82805482825590600052602060002090810192821562000f2c579160200282015b8281111562000f2b5782518260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509160200191906001019062000ed1565b5b50905062000f3b919062000f3f565b5090565b5b8082111562000f5a57600081600090555060010162000f40565b5090565b600062000f6b8262001083565b62000f7781856200108e565b935062000f8981856020860162001179565b62000f9481620012d0565b840191505092915050565b600062000fae601b836200108e565b915062000fbb82620012e1565b602082019050919050565b600062000fd56020836200108e565b915062000fe2826200130a565b602082019050919050565b62000ff8816200116f565b82525050565b600060208201905081810360008301526200101a818462000f5e565b905092915050565b600060208201905081810360008301526200103d8162000f9f565b9050919050565b600060208201905081810360008301526200105f8162000fc6565b9050919050565b60006020820190506200107d600083018462000fed565b92915050565b600081519050919050565b600082825260208201905092915050565b6000620010ac826200116f565b9150620010b9836200116f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620010f157620010f0620011e5565b5b828201905092915050565b600062001109826200116f565b915062001116836200116f565b92508262001129576200112862001214565b5b828204905092915050565b600062001141826200116f565b91506200114e836200116f565b925082821015620011645762001163620011e5565b5b828203905092915050565b6000819050919050565b60005b83811015620011995780820151818401526020810190506200117c565b83811115620011a9576000848401525b50505050565b60006002820490506001821680620011c857607f821691505b60208210811415620011df57620011de62001243565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b61434e80620013436000396000f3fe6080604052600436106101445760003560e01c80638da5cb5b116100b6578063d0040d701161006f578063d0040d701461048d578063dd62ed3e146104b6578063e8078d94146104f3578063f2fde38b1461050a578063f37c4bce14610533578063f9f92be41461055c5761014b565b80638da5cb5b1461036b57806395d89b411461039657806398d5a5cb146103c1578063a9059cbb146103ea578063ab9562fe14610427578063c7ab8d9d146104505761014b565b8063313ce56711610108578063313ce5671461024957806353477d291461027457806354486ac31461029d57806370a08231146102c857806385b12c7c146103055780638a13792e1461032e5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b85780631c815b49146101e357806323b872dd1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610585565b6040516101729190613a23565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190613555565b610617565b6040516101af9190613a08565b60405180910390f35b3480156101c457600080fd5b506101cd610635565b6040516101da9190613ba5565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190613482565b610645565b005b34801561021857600080fd5b50610233600480360381019061022e9190613502565b61074a565b6040516102409190613a08565b60405180910390f35b34801561025557600080fd5b5061025e610823565b60405161026b9190613c1a565b60405180910390f35b34801561028057600080fd5b5061029b600480360381019061029691906133fb565b61083a565b005b3480156102a957600080fd5b506102b261092a565b6040516102bf9190613ba5565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906133fb565b610930565b6040516102fc9190613ba5565b60405180910390f35b34801561031157600080fd5b5061032c600480360381019061032791906135c2565b610979565b005b34801561033a57600080fd5b5061035560048036038101906103509190613455565b610a2a565b6040516103629190613ba5565b60405180910390f35b34801561037757600080fd5b50610380610b2d565b60405161038d91906138cc565b60405180910390f35b3480156103a257600080fd5b506103ab610b56565b6040516103b89190613a23565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e391906133fb565b610be8565b005b3480156103f657600080fd5b50610411600480360381019061040c9190613555565b610cd8565b60405161041e9190613a08565b60405180910390f35b34801561043357600080fd5b5061044e60048036038101906104499190613482565b610cf6565b005b34801561045c57600080fd5b50610477600480360381019061047291906133fb565b610e32565b6040516104849190613a08565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af91906133fb565b610e88565b005b3480156104c257600080fd5b506104dd60048036038101906104d891906134c2565b610f78565b6040516104ea9190613ba5565b60405180910390f35b3480156104ff57600080fd5b50610508610fff565b005b34801561051657600080fd5b50610531600480360381019061052c91906133fb565b6115dd565b005b34801561053f57600080fd5b5061055a600480360381019061055591906133fb565b61172f565b005b34801561056857600080fd5b50610583600480360381019061057e91906133fb565b6118e8565b005b6060600b805461059490613e4b565b80601f01602080910402602001604051908101604052809291908181526020018280546105c090613e4b565b801561060d5780601f106105e25761010080835404028352916020019161060d565b820191906000526020600020905b8154815290600101906020018083116105f057829003601f168201915b5050505050905090565b600061062b610624611aca565b8484611ad2565b6001905092915050565b60006746c6d6faa27e0000905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610684611aca565b73ffffffffffffffffffffffffffffffffffffffff16146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190613b05565b60405180910390fd5b6106e48282611c9d565b6000811115610746576001601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b6000610757848484612020565b61081884610763611aca565b610813856040518060600160405280602881526020016142f160289139601660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107c9611aca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ad9092919063ffffffff16565b611ad2565b600190509392505050565b6000600d60009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610879611aca565b73ffffffffffffffffffffffffffffffffffffffff16146108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690613b05565b60405180910390fd5b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b8611aca565b73ffffffffffffffffffffffffffffffffffffffff1614610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590613b05565b60405180910390fd5b610a218142611a2290919063ffffffff16565b60188190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c611aca565b73ffffffffffffffffffffffffffffffffffffffff1614610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab990613b05565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060068181548110610b1a57610b19613f53565b5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054610b6590613e4b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9190613e4b565b8015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c27611aca565b73ffffffffffffffffffffffffffffffffffffffff1614610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490613b05565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610cec610ce5611aca565b8484612020565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d35611aca565b73ffffffffffffffffffffffffffffffffffffffff1614610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8290613b05565b60405180910390fd5b610db8600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611c9d565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600481905550610e2e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454611c9d565b5050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec7611aca565b73ffffffffffffffffffffffffffffffffffffffff1614610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1490613b05565b60405180910390fd5b6001601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103e611aca565b73ffffffffffffffffffffffffffffffffffffffff1614611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90613b05565b60405180910390fd5b601060009054906101000a900460ff16156110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90613a65565b60405180910390fd5b60004790506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061117830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166746c6d6faa27e0000611ad2565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111be57600080fd5b505afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f69190613428565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561125857600080fd5b505afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190613428565b6040518363ffffffff1660e01b81526004016112ad9291906138e7565b602060405180830381600087803b1580156112c757600080fd5b505af11580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff9190613428565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833061138830610930565b60008030426040518863ffffffff1660e01b81526004016113ae969594939291906139a7565b6060604051808303818588803b1580156113c757600080fd5b505af11580156113db573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061140091906135ef565b505050600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114a2929190613947565b602060405180830381600087803b1580156114bc57600080fd5b505af11580156114d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f49190613595565b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d704363a600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661156d6301e1338042611a2290919063ffffffff16565b336040518463ffffffff1660e01b815260040161158c93929190613970565b600060405180830381600087803b1580156115a657600080fd5b505af11580156115ba573d6000803e3d6000fd5b505050506001601060006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661161c611aca565b73ffffffffffffffffffffffffffffffffffffffff1614611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166990613b05565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d19190613428565b73ffffffffffffffffffffffffffffffffffffffff166117ef611aca565b73ffffffffffffffffffffffffffffffffffffffff1614806118655750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661184d611aca565b73ffffffffffffffffffffffffffffffffffffffff16145b6118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b90613a85565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611927611aca565b73ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613b05565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611a1a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612611565b905092915050565b6000808284611a319190613c8a565b905083811015611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90613ac5565b60405180910390fd5b8091505092915050565b6000611ac283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125ad565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3990613b65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba990613aa5565b60405180910390fd5b80601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c909190613ba5565b60405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611cdc611aca565b73ffffffffffffffffffffffffffffffffffffffff1614611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2990613b05565b60405180910390fd5b600a60009054906101000a900460ff1615611e0057600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dff57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dde611aca565b73ffffffffffffffffffffffffffffffffffffffff1614611dfe57600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415611f7157612904611e6583600954611a2290919063ffffffff16565b1115611e7057600080fd5b60068290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600680549050611f0e9190613d6b565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f6682600954611a2290919063ffffffff16565b60098190555061201b565b600060068281548110611f8757611f86613f53565b5b90600052602060002001549050612904611fbe82611fb086600954611a2290919063ffffffff16565b611a8090919063ffffffff16565b1115611fc957600080fd5b8260068381548110611fde57611fdd613f53565b5b90600052602060002001819055506120138161200585600954611a2290919063ffffffff16565b611a8090919063ffffffff16565b600981905550505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208790613b45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f790613a45565b60405180910390fd5b60008111612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a90613b25565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121e75750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561223d5750601360003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61224657600080fd5b6122508383612674565b801561225e57506018544210155b1561251b57601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42383600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b81526004016122e493929190613910565b602060405180830381600087803b1580156122fe57600080fd5b505af1158015612312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123369190613595565b15612376576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236d90613b85565b60405180910390fd5b601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42384600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b81526004016123f793929190613910565b602060405180830381600087803b15801561241157600080fd5b505af1158015612425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124499190613595565b15612489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248090613b85565b60405180910390fd5b601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663155d0ed98484326040518463ffffffff1660e01b81526004016124e893929190613910565b600060405180830381600087803b15801561250257600080fd5b505af1158015612516573d6000803e3d6000fd5b505050505b61252482612727565b1561254057600f5461253583610930565b1061253f57600080fd5b5b600061254c84846127ff565b1561259b5760185442101561256057600080fd5b61256a84846128ab565b15612584576125776129b6565b82111561258357600080fd5b5b61258f848484612a07565b905061259a84612b0b565b5b6125a784848484612b3c565b50505050565b60008383111582906125f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ec9190613a23565b60405180910390fd5b50600083856126049190613d6b565b9050809150509392505050565b60008083118290612658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264f9190613a23565b60405180910390fd5b50600083856126679190613ce0565b9050809150509392505050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061271f5750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156127d55750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127f857506127f462015180601854611a2290919063ffffffff16565b4211155b9050919050565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128a25750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156129585750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129ae5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006129cf612a30601854611a2290919063ffffffff16565b42116129f8576129f160326746c6d6faa27e00006119d890919063ffffffff16565b9050612a04565b6746c6d6faa27e000090505b90565b60008060009050601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aaf5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612abd5780915050612b04565b612afd612aee612acb612d7e565b612ae0601a54876119d890919063ffffffff16565b612d8890919063ffffffff16565b82611a2290919063ffffffff16565b9050809150505b9392505050565b612b1481612e03565b15612b39576000612b2430610930565b9050612b2f81612e77565b612b376130ff565b505b50565b6000612b518284611a8090919063ffffffff16565b9050612ba583601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8090919063ffffffff16565b601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3a81601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2290919063ffffffff16565b601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ccf82601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2290919063ffffffff16565b601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d6f9190613ba5565b60405180910390a35050505050565b6000600954905090565b600080831415612d9b5760009050612dfd565b60008284612da99190613d11565b9050828482612db89190613ce0565b14612df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612def90613ae5565b60405180910390fd5b809150505b92915050565b6000601960009054906101000a900460ff16158015612e705750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6001601960006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612eaf57612eae613f82565b5b604051908082528060200260200182016040528015612edd5781602001602082028036833780820191505090505b5090503081600081518110612ef557612ef4613f53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f9757600080fd5b505afa158015612fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcf9190613428565b81600181518110612fe357612fe2613f53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061304a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ad2565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130ae959493929190613bc0565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50505050506000601960006101000a81548160ff02191690831515021790555050565b60004790506017548111613113575061315e565b600061312a60175483611a8090919063ffffffff16565b90506000613136613160565b905060018110156131495750505061315e565b613153828261318a565b476017819055505050505b565b60008060009050613181613172612d7e565b82611a2290919063ffffffff16565b90508091505090565b6000600190505b600680549050811015613378576000600682815481106131b4576131b3613f53565b5b906000526020600020015490506000600783815481106131d7576131d6613f53565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061322b8561321d8589612d8890919063ffffffff16565b6119d890919063ffffffff16565b90506001811115613362578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561327c573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561336157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b815260040161332e9190613ba5565b600060405180830381600087803b15801561334857600080fd5b505af115801561335c573d6000803e3d6000fd5b505050505b5b505050808061337090613e7d565b915050613191565b505050565b60008135905061338c81614294565b92915050565b6000815190506133a181614294565b92915050565b6000813590506133b6816142ab565b92915050565b6000815190506133cb816142c2565b92915050565b6000813590506133e0816142d9565b92915050565b6000815190506133f5816142d9565b92915050565b60006020828403121561341157613410613fb1565b5b600061341f8482850161337d565b91505092915050565b60006020828403121561343e5761343d613fb1565b5b600061344c84828501613392565b91505092915050565b60006020828403121561346b5761346a613fb1565b5b6000613479848285016133a7565b91505092915050565b6000806040838503121561349957613498613fb1565b5b60006134a7858286016133a7565b92505060206134b8858286016133d1565b9150509250929050565b600080604083850312156134d9576134d8613fb1565b5b60006134e78582860161337d565b92505060206134f88582860161337d565b9150509250929050565b60008060006060848603121561351b5761351a613fb1565b5b60006135298682870161337d565b935050602061353a8682870161337d565b925050604061354b868287016133d1565b9150509250925092565b6000806040838503121561356c5761356b613fb1565b5b600061357a8582860161337d565b925050602061358b858286016133d1565b9150509250929050565b6000602082840312156135ab576135aa613fb1565b5b60006135b9848285016133bc565b91505092915050565b6000602082840312156135d8576135d7613fb1565b5b60006135e6848285016133d1565b91505092915050565b60008060006060848603121561360857613607613fb1565b5b6000613616868287016133e6565b9350506020613627868287016133e6565b9250506040613638868287016133e6565b9150509250925092565b600061364e838361365a565b60208301905092915050565b61366381613d9f565b82525050565b61367281613d9f565b82525050565b600061368382613c45565b61368d8185613c68565b935061369883613c35565b8060005b838110156136c95781516136b08882613642565b97506136bb83613c5b565b92505060018101905061369c565b5085935050505092915050565b6136df81613dc3565b82525050565b6136ee81613e06565b82525050565b60006136ff82613c50565b6137098185613c79565b9350613719818560208601613e18565b61372281613fb6565b840191505092915050565b600061373a602383613c79565b915061374582613fc7565b604082019050919050565b600061375d601883613c79565b915061376882614016565b602082019050919050565b6000613780600c83613c79565b915061378b8261403f565b602082019050919050565b60006137a3602283613c79565b91506137ae82614068565b604082019050919050565b60006137c6601b83613c79565b91506137d1826140b7565b602082019050919050565b60006137e9602183613c79565b91506137f4826140e0565b604082019050919050565b600061380c602083613c79565b91506138178261412f565b602082019050919050565b600061382f602983613c79565b915061383a82614158565b604082019050919050565b6000613852602583613c79565b915061385d826141a7565b604082019050919050565b6000613875602483613c79565b9150613880826141f6565b604082019050919050565b6000613898602683613c79565b91506138a382614245565b604082019050919050565b6138b781613def565b82525050565b6138c681613df9565b82525050565b60006020820190506138e16000830184613669565b92915050565b60006040820190506138fc6000830185613669565b6139096020830184613669565b9392505050565b60006060820190506139256000830186613669565b6139326020830185613669565b61393f6040830184613669565b949350505050565b600060408201905061395c6000830185613669565b61396960208301846138ae565b9392505050565b60006060820190506139856000830186613669565b61399260208301856138ae565b61399f6040830184613669565b949350505050565b600060c0820190506139bc6000830189613669565b6139c960208301886138ae565b6139d660408301876136e5565b6139e360608301866136e5565b6139f06080830185613669565b6139fd60a08301846138ae565b979650505050505050565b6000602082019050613a1d60008301846136d6565b92915050565b60006020820190508181036000830152613a3d81846136f4565b905092915050565b60006020820190508181036000830152613a5e8161372d565b9050919050565b60006020820190508181036000830152613a7e81613750565b9050919050565b60006020820190508181036000830152613a9e81613773565b9050919050565b60006020820190508181036000830152613abe81613796565b9050919050565b60006020820190508181036000830152613ade816137b9565b9050919050565b60006020820190508181036000830152613afe816137dc565b9050919050565b60006020820190508181036000830152613b1e816137ff565b9050919050565b60006020820190508181036000830152613b3e81613822565b9050919050565b60006020820190508181036000830152613b5e81613845565b9050919050565b60006020820190508181036000830152613b7e81613868565b9050919050565b60006020820190508181036000830152613b9e8161388b565b9050919050565b6000602082019050613bba60008301846138ae565b92915050565b600060a082019050613bd560008301886138ae565b613be260208301876136e5565b8181036040830152613bf48186613678565b9050613c036060830185613669565b613c1060808301846138ae565b9695505050505050565b6000602082019050613c2f60008301846138bd565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c9582613def565b9150613ca083613def565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cd557613cd4613ec6565b5b828201905092915050565b6000613ceb82613def565b9150613cf683613def565b925082613d0657613d05613ef5565b5b828204905092915050565b6000613d1c82613def565b9150613d2783613def565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d6057613d5f613ec6565b5b828202905092915050565b6000613d7682613def565b9150613d8183613def565b925082821015613d9457613d93613ec6565b5b828203905092915050565b6000613daa82613dcf565b9050919050565b6000613dbc82613dcf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e1182613def565b9050919050565b60005b83811015613e36578082015181840152602081019050613e1b565b83811115613e45576000848401525b50505050565b60006002820490506001821680613e6357607f821691505b60208210811415613e7757613e76613f24565b5b50919050565b6000613e8882613def565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613ebb57613eba613ec6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f42656570204265657020426f6f702c20596f752772652061207069656365206f60008201527f6620706f6f700000000000000000000000000000000000000000000000000000602082015250565b61429d81613d9f565b81146142a857600080fd5b50565b6142b481613db1565b81146142bf57600080fd5b50565b6142cb81613dc3565b81146142d657600080fd5b50565b6142e281613def565b81146142ed57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d1a93aa630f9739dc23195c09f288fa9d84e9831a1fd43c1998ec85640595dde64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101445760003560e01c80638da5cb5b116100b6578063d0040d701161006f578063d0040d701461048d578063dd62ed3e146104b6578063e8078d94146104f3578063f2fde38b1461050a578063f37c4bce14610533578063f9f92be41461055c5761014b565b80638da5cb5b1461036b57806395d89b411461039657806398d5a5cb146103c1578063a9059cbb146103ea578063ab9562fe14610427578063c7ab8d9d146104505761014b565b8063313ce56711610108578063313ce5671461024957806353477d291461027457806354486ac31461029d57806370a08231146102c857806385b12c7c146103055780638a13792e1461032e5761014b565b806306fdde0314610150578063095ea7b31461017b57806318160ddd146101b85780631c815b49146101e357806323b872dd1461020c5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610585565b6040516101729190613a23565b60405180910390f35b34801561018757600080fd5b506101a2600480360381019061019d9190613555565b610617565b6040516101af9190613a08565b60405180910390f35b3480156101c457600080fd5b506101cd610635565b6040516101da9190613ba5565b60405180910390f35b3480156101ef57600080fd5b5061020a60048036038101906102059190613482565b610645565b005b34801561021857600080fd5b50610233600480360381019061022e9190613502565b61074a565b6040516102409190613a08565b60405180910390f35b34801561025557600080fd5b5061025e610823565b60405161026b9190613c1a565b60405180910390f35b34801561028057600080fd5b5061029b600480360381019061029691906133fb565b61083a565b005b3480156102a957600080fd5b506102b261092a565b6040516102bf9190613ba5565b60405180910390f35b3480156102d457600080fd5b506102ef60048036038101906102ea91906133fb565b610930565b6040516102fc9190613ba5565b60405180910390f35b34801561031157600080fd5b5061032c600480360381019061032791906135c2565b610979565b005b34801561033a57600080fd5b5061035560048036038101906103509190613455565b610a2a565b6040516103629190613ba5565b60405180910390f35b34801561037757600080fd5b50610380610b2d565b60405161038d91906138cc565b60405180910390f35b3480156103a257600080fd5b506103ab610b56565b6040516103b89190613a23565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e391906133fb565b610be8565b005b3480156103f657600080fd5b50610411600480360381019061040c9190613555565b610cd8565b60405161041e9190613a08565b60405180910390f35b34801561043357600080fd5b5061044e60048036038101906104499190613482565b610cf6565b005b34801561045c57600080fd5b50610477600480360381019061047291906133fb565b610e32565b6040516104849190613a08565b60405180910390f35b34801561049957600080fd5b506104b460048036038101906104af91906133fb565b610e88565b005b3480156104c257600080fd5b506104dd60048036038101906104d891906134c2565b610f78565b6040516104ea9190613ba5565b60405180910390f35b3480156104ff57600080fd5b50610508610fff565b005b34801561051657600080fd5b50610531600480360381019061052c91906133fb565b6115dd565b005b34801561053f57600080fd5b5061055a600480360381019061055591906133fb565b61172f565b005b34801561056857600080fd5b50610583600480360381019061057e91906133fb565b6118e8565b005b6060600b805461059490613e4b565b80601f01602080910402602001604051908101604052809291908181526020018280546105c090613e4b565b801561060d5780601f106105e25761010080835404028352916020019161060d565b820191906000526020600020905b8154815290600101906020018083116105f057829003601f168201915b5050505050905090565b600061062b610624611aca565b8484611ad2565b6001905092915050565b60006746c6d6faa27e0000905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610684611aca565b73ffffffffffffffffffffffffffffffffffffffff16146106da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106d190613b05565b60405180910390fd5b6106e48282611c9d565b6000811115610746576001601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5050565b6000610757848484612020565b61081884610763611aca565b610813856040518060600160405280602881526020016142f160289139601660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107c9611aca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125ad9092919063ffffffff16565b611ad2565b600190509392505050565b6000600d60009054906101000a900460ff16905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610879611aca565b73ffffffffffffffffffffffffffffffffffffffff16146108cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c690613b05565b60405180910390fd5b6000601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60095481565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b8611aca565b73ffffffffffffffffffffffffffffffffffffffff1614610a0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0590613b05565b60405180910390fd5b610a218142611a2290919063ffffffff16565b60188190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a6c611aca565b73ffffffffffffffffffffffffffffffffffffffff1614610ac2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab990613b05565b60405180910390fd5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060068181548110610b1a57610b19613f53565b5b9060005260206000200154915050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600c8054610b6590613e4b565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9190613e4b565b8015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c27611aca565b73ffffffffffffffffffffffffffffffffffffffff1614610c7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7490613b05565b60405180910390fd5b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000610cec610ce5611aca565b8484612020565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d35611aca565b73ffffffffffffffffffffffffffffffffffffffff1614610d8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8290613b05565b60405180910390fd5b610db8600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000611c9d565b81600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600481905550610e2e600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600454611c9d565b5050565b6000601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ec7611aca565b73ffffffffffffffffffffffffffffffffffffffff1614610f1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1490613b05565b60405180910390fd5b6001601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661103e611aca565b73ffffffffffffffffffffffffffffffffffffffff1614611094576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108b90613b05565b60405180910390fd5b601060009054906101000a900460ff16156110e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110db90613a65565b60405180910390fd5b60004790506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061117830600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166746c6d6faa27e0000611ad2565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156111be57600080fd5b505afa1580156111d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f69190613428565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561125857600080fd5b505afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190613428565b6040518363ffffffff1660e01b81526004016112ad9291906138e7565b602060405180830381600087803b1580156112c757600080fd5b505af11580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff9190613428565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719833061138830610930565b60008030426040518863ffffffff1660e01b81526004016113ae969594939291906139a7565b6060604051808303818588803b1580156113c757600080fd5b505af11580156113db573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061140091906135ef565b505050600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016114a2929190613947565b602060405180830381600087803b1580156114bc57600080fd5b505af11580156114d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f49190613595565b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d704363a600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661156d6301e1338042611a2290919063ffffffff16565b336040518463ffffffff1660e01b815260040161158c93929190613970565b600060405180830381600087803b1580156115a657600080fd5b505af11580156115ba573d6000803e3d6000fd5b505050506001601060006101000a81548160ff0219169083151502179055505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661161c611aca565b73ffffffffffffffffffffffffffffffffffffffff1614611672576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166990613b05565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381600087803b15801561179957600080fd5b505af11580156117ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d19190613428565b73ffffffffffffffffffffffffffffffffffffffff166117ef611aca565b73ffffffffffffffffffffffffffffffffffffffff1614806118655750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661184d611aca565b73ffffffffffffffffffffffffffffffffffffffff16145b6118a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189b90613a85565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611927611aca565b73ffffffffffffffffffffffffffffffffffffffff161461197d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197490613b05565b60405180910390fd5b6001601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000611a1a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612611565b905092915050565b6000808284611a319190613c8a565b905083811015611a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6d90613ac5565b60405180910390fd5b8091505092915050565b6000611ac283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506125ad565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611b42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3990613b65565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba990613aa5565b60405180910390fd5b80601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c909190613ba5565b60405180910390a3505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611cdc611aca565b73ffffffffffffffffffffffffffffffffffffffff1614611d32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2990613b05565b60405180910390fd5b600a60009054906101000a900460ff1615611e0057600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dff57600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611dde611aca565b73ffffffffffffffffffffffffffffffffffffffff1614611dfe57600080fd5b5b5b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811415611f7157612904611e6583600954611a2290919063ffffffff16565b1115611e7057600080fd5b60068290806001815401808255809150506001900390600052602060002001600090919091909150556007839080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600680549050611f0e9190613d6b565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f6682600954611a2290919063ffffffff16565b60098190555061201b565b600060068281548110611f8757611f86613f53565b5b90600052602060002001549050612904611fbe82611fb086600954611a2290919063ffffffff16565b611a8090919063ffffffff16565b1115611fc957600080fd5b8260068381548110611fde57611fdd613f53565b5b90600052602060002001819055506120138161200585600954611a2290919063ffffffff16565b611a8090919063ffffffff16565b600981905550505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208790613b45565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f790613a45565b60405180910390fd5b60008111612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a90613b25565b60405180910390fd5b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121e75750601360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561223d5750601360003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61224657600080fd5b6122508383612674565b801561225e57506018544210155b1561251b57601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42383600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b81526004016122e493929190613910565b602060405180830381600087803b1580156122fe57600080fd5b505af1158015612312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123369190613595565b15612376576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236d90613b85565b60405180910390fd5b601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166312bdf42384600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16326040518463ffffffff1660e01b81526004016123f793929190613910565b602060405180830381600087803b15801561241157600080fd5b505af1158015612425573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124499190613595565b15612489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248090613b85565b60405180910390fd5b601060019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663155d0ed98484326040518463ffffffff1660e01b81526004016124e893929190613910565b600060405180830381600087803b15801561250257600080fd5b505af1158015612516573d6000803e3d6000fd5b505050505b61252482612727565b1561254057600f5461253583610930565b1061253f57600080fd5b5b600061254c84846127ff565b1561259b5760185442101561256057600080fd5b61256a84846128ab565b15612584576125776129b6565b82111561258357600080fd5b5b61258f848484612a07565b905061259a84612b0b565b5b6125a784848484612b3c565b50505050565b60008383111582906125f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125ec9190613a23565b60405180910390fd5b50600083856126049190613d6b565b9050809150509392505050565b60008083118290612658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264f9190613a23565b60405180910390fd5b50600083856126679190613ce0565b9050809150509392505050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061271f5750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156127d55750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156127f857506127f462015180601854611a2290919063ffffffff16565b4211155b9050919050565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806128a25750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15905092915050565b6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156129585750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156129ae5750601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b60006129cf612a30601854611a2290919063ffffffff16565b42116129f8576129f160326746c6d6faa27e00006119d890919063ffffffff16565b9050612a04565b6746c6d6faa27e000090505b90565b60008060009050601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612aaf5750601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612abd5780915050612b04565b612afd612aee612acb612d7e565b612ae0601a54876119d890919063ffffffff16565b612d8890919063ffffffff16565b82611a2290919063ffffffff16565b9050809150505b9392505050565b612b1481612e03565b15612b39576000612b2430610930565b9050612b2f81612e77565b612b376130ff565b505b50565b6000612b518284611a8090919063ffffffff16565b9050612ba583601560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a8090919063ffffffff16565b601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612c3a81601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2290919063ffffffff16565b601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612ccf82601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a2290919063ffffffff16565b601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d6f9190613ba5565b60405180910390a35050505050565b6000600954905090565b600080831415612d9b5760009050612dfd565b60008284612da99190613d11565b9050828482612db89190613ce0565b14612df8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612def90613ae5565b60405180910390fd5b809150505b92915050565b6000601960009054906101000a900460ff16158015612e705750600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b9050919050565b6001601960006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612eaf57612eae613f82565b5b604051908082528060200260200182016040528015612edd5781602001602082028036833780820191505090505b5090503081600081518110612ef557612ef4613f53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612f9757600080fd5b505afa158015612fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcf9190613428565b81600181518110612fe357612fe2613f53565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061304a30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ad2565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016130ae959493929190613bc0565b600060405180830381600087803b1580156130c857600080fd5b505af11580156130dc573d6000803e3d6000fd5b50505050506000601960006101000a81548160ff02191690831515021790555050565b60004790506017548111613113575061315e565b600061312a60175483611a8090919063ffffffff16565b90506000613136613160565b905060018110156131495750505061315e565b613153828261318a565b476017819055505050505b565b60008060009050613181613172612d7e565b82611a2290919063ffffffff16565b90508091505090565b6000600190505b600680549050811015613378576000600682815481106131b4576131b3613f53565b5b906000526020600020015490506000600783815481106131d7576131d6613f53565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600061322b8561321d8589612d8890919063ffffffff16565b6119d890919063ffffffff16565b90506001811115613362578173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561327c573d6000803e3d6000fd5b50600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561336157600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b6b55f25826040518263ffffffff1660e01b815260040161332e9190613ba5565b600060405180830381600087803b15801561334857600080fd5b505af115801561335c573d6000803e3d6000fd5b505050505b5b505050808061337090613e7d565b915050613191565b505050565b60008135905061338c81614294565b92915050565b6000815190506133a181614294565b92915050565b6000813590506133b6816142ab565b92915050565b6000815190506133cb816142c2565b92915050565b6000813590506133e0816142d9565b92915050565b6000815190506133f5816142d9565b92915050565b60006020828403121561341157613410613fb1565b5b600061341f8482850161337d565b91505092915050565b60006020828403121561343e5761343d613fb1565b5b600061344c84828501613392565b91505092915050565b60006020828403121561346b5761346a613fb1565b5b6000613479848285016133a7565b91505092915050565b6000806040838503121561349957613498613fb1565b5b60006134a7858286016133a7565b92505060206134b8858286016133d1565b9150509250929050565b600080604083850312156134d9576134d8613fb1565b5b60006134e78582860161337d565b92505060206134f88582860161337d565b9150509250929050565b60008060006060848603121561351b5761351a613fb1565b5b60006135298682870161337d565b935050602061353a8682870161337d565b925050604061354b868287016133d1565b9150509250925092565b6000806040838503121561356c5761356b613fb1565b5b600061357a8582860161337d565b925050602061358b858286016133d1565b9150509250929050565b6000602082840312156135ab576135aa613fb1565b5b60006135b9848285016133bc565b91505092915050565b6000602082840312156135d8576135d7613fb1565b5b60006135e6848285016133d1565b91505092915050565b60008060006060848603121561360857613607613fb1565b5b6000613616868287016133e6565b9350506020613627868287016133e6565b9250506040613638868287016133e6565b9150509250925092565b600061364e838361365a565b60208301905092915050565b61366381613d9f565b82525050565b61367281613d9f565b82525050565b600061368382613c45565b61368d8185613c68565b935061369883613c35565b8060005b838110156136c95781516136b08882613642565b97506136bb83613c5b565b92505060018101905061369c565b5085935050505092915050565b6136df81613dc3565b82525050565b6136ee81613e06565b82525050565b60006136ff82613c50565b6137098185613c79565b9350613719818560208601613e18565b61372281613fb6565b840191505092915050565b600061373a602383613c79565b915061374582613fc7565b604082019050919050565b600061375d601883613c79565b915061376882614016565b602082019050919050565b6000613780600c83613c79565b915061378b8261403f565b602082019050919050565b60006137a3602283613c79565b91506137ae82614068565b604082019050919050565b60006137c6601b83613c79565b91506137d1826140b7565b602082019050919050565b60006137e9602183613c79565b91506137f4826140e0565b604082019050919050565b600061380c602083613c79565b91506138178261412f565b602082019050919050565b600061382f602983613c79565b915061383a82614158565b604082019050919050565b6000613852602583613c79565b915061385d826141a7565b604082019050919050565b6000613875602483613c79565b9150613880826141f6565b604082019050919050565b6000613898602683613c79565b91506138a382614245565b604082019050919050565b6138b781613def565b82525050565b6138c681613df9565b82525050565b60006020820190506138e16000830184613669565b92915050565b60006040820190506138fc6000830185613669565b6139096020830184613669565b9392505050565b60006060820190506139256000830186613669565b6139326020830185613669565b61393f6040830184613669565b949350505050565b600060408201905061395c6000830185613669565b61396960208301846138ae565b9392505050565b60006060820190506139856000830186613669565b61399260208301856138ae565b61399f6040830184613669565b949350505050565b600060c0820190506139bc6000830189613669565b6139c960208301886138ae565b6139d660408301876136e5565b6139e360608301866136e5565b6139f06080830185613669565b6139fd60a08301846138ae565b979650505050505050565b6000602082019050613a1d60008301846136d6565b92915050565b60006020820190508181036000830152613a3d81846136f4565b905092915050565b60006020820190508181036000830152613a5e8161372d565b9050919050565b60006020820190508181036000830152613a7e81613750565b9050919050565b60006020820190508181036000830152613a9e81613773565b9050919050565b60006020820190508181036000830152613abe81613796565b9050919050565b60006020820190508181036000830152613ade816137b9565b9050919050565b60006020820190508181036000830152613afe816137dc565b9050919050565b60006020820190508181036000830152613b1e816137ff565b9050919050565b60006020820190508181036000830152613b3e81613822565b9050919050565b60006020820190508181036000830152613b5e81613845565b9050919050565b60006020820190508181036000830152613b7e81613868565b9050919050565b60006020820190508181036000830152613b9e8161388b565b9050919050565b6000602082019050613bba60008301846138ae565b92915050565b600060a082019050613bd560008301886138ae565b613be260208301876136e5565b8181036040830152613bf48186613678565b9050613c036060830185613669565b613c1060808301846138ae565b9695505050505050565b6000602082019050613c2f60008301846138bd565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613c9582613def565b9150613ca083613def565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cd557613cd4613ec6565b5b828201905092915050565b6000613ceb82613def565b9150613cf683613def565b925082613d0657613d05613ef5565b5b828204905092915050565b6000613d1c82613def565b9150613d2783613def565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d6057613d5f613ec6565b5b828202905092915050565b6000613d7682613def565b9150613d8183613def565b925082821015613d9457613d93613ec6565b5b828203905092915050565b6000613daa82613dcf565b9050919050565b6000613dbc82613dcf565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613e1182613def565b9050919050565b60005b83811015613e36578082015181840152602081019050613e1b565b83811115613e45576000848401525b50505050565b60006002820490506001821680613e6357607f821691505b60208210811415613e7757613e76613f24565b5b50919050565b6000613e8882613def565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613ebb57613eba613ec6565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4c697175696469747920616c72656164792061646465642e0000000000000000600082015250565b7f556e617574686f72697a65640000000000000000000000000000000000000000600082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f42656570204265657020426f6f702c20596f752772652061207069656365206f60008201527f6620706f6f700000000000000000000000000000000000000000000000000000602082015250565b61429d81613d9f565b81146142a857600080fd5b50565b6142b481613db1565b81146142bf57600080fd5b50565b6142cb81613dc3565b81146142d657600080fd5b50565b6142e281613def565b81146142ed57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d1a93aa630f9739dc23195c09f288fa9d84e9831a1fd43c1998ec85640595dde64736f6c63430008070033

Deployed Bytecode Sourcemap

7552:10146:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9365:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10204:165;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9639:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17120:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10375:323;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9549:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17472:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3701:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9745:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16675:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5738:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2746:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9455:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17018:96;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9873:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5924:253;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16793:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17347:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10050:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15785:884;;;;;;;;;;;;;:::i;:::-;;2832:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17597:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16919:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9365:84;9402:13;9435:6;9428:13;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9365:84;:::o;10204:165::-;10281:4;10298:41;10307:12;:10;:12::i;:::-;10321:8;10331:7;10298:8;:41::i;:::-;10357:4;10350:11;;10204:165;;;;:::o;9639:100::-;9692:7;7697:18;9712:19;;9639:100;:::o;17120:221::-;3056:7;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17215:29:::1;17227:8;17237:6;17215:11;:29::i;:::-;17268:1;17259:6;:10;17255:79;;;17318:4;17286:19;:29;17306:8;17286:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17255:79;17120:221:::0;;:::o;10375:323::-;10476:4;10493:39;10503:7;10512:10;10524:7;10493:9;:39::i;:::-;10543:125;10552:7;10561:12;:10;:12::i;:::-;10575:92;10615:7;10575:92;;;;;;;;;;;;;;;;;:12;:21;10588:7;10575:21;;;;;;;;;;;;;;;:35;10597:12;:10;:12::i;:::-;10575:35;;;;;;;;;;;;;;;;:39;;:92;;;;;:::i;:::-;10543:8;:125::i;:::-;10686:4;10679:11;;10375:323;;;;;:::o;9549:84::-;9590:5;9615:10;;;;;;;;;;;9608:17;;9549:84;:::o;17472:119::-;3056:7;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17578:5:::1;17546:19;:29;17566:8;17546:29;;;;;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;17472:119:::0;:::o;3701:27::-;;;;:::o;9745:122::-;9812:7;9839:10;:20;9850:8;9839:20;;;;;;;;;;;;;;;;9832:27;;9745:122;;;:::o;16675:112::-;3056:7;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16752:27:::1;16772:6;16752:15;:19;;:27;;;;:::i;:::-;16739:10;:40;;;;16675:112:::0;:::o;5738:180::-;5826:7;3056;;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5846:9:::1;5858:8;:18;5867:8;5858:18;;;;;;;;;;;;;;;;5846:30;;5894:10;5905:4;5894:16;;;;;;;;:::i;:::-;;;;;;;;;;5887:23;;;5738:180:::0;;;:::o;2746:80::-;2784:7;2811;;;;;;;;;;;2804:14;;2746:80;:::o;9455:88::-;9494:13;9527:8;9520:15;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9455:88;:::o;17018:96::-;3056:7;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17101:5:::1;17083:11;:15;17095:2;17083:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;17018:96:::0;:::o;9873:171::-;9953:4;9970:44;9980:12;:10;:12::i;:::-;9994:10;10006:7;9970:9;:44::i;:::-;10032:4;10025:11;;9873:171;;;;:::o;5924:253::-;3056:7;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6029:28:::1;6041:12;;;;;;;;;;;6055:1;6029:11;:28::i;:::-;6083:8;6068:12;;:23;;;;;;;;;;;;;;;;;;6115:6;6102:10;:19;;;;6132:37;6144:12;;;;;;;;;;;6158:10;;6132:11;:37::i;:::-;5924:253:::0;;:::o;16793:120::-;16860:4;16884:11;:21;16896:8;16884:21;;;;;;;;;;;;;;;;;;;;;;;;;16877:28;;16793:120;;;:::o;17347:119::-;3056:7;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17454:4:::1;17422:19;:29;17442:8;17422:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;17347:119:::0;:::o;10050:148::-;10133:7;10160:12;:20;10173:6;10160:20;;;;;;;;;;;;;;;:30;10181:8;10160:30;;;;;;;;;;;;;;;;10153:37;;10050:148;;;;:::o;15785:884::-;3056:7;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15850:11:::1;;;;;;;;;;;15849:12;15841:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15900:19;15922:21;15900:43;;15954:35;16011:42;15954:100;;16085:16;16065:17;;:36;;;;;;;;;;;;;;;;;;16112:65;16129:4;16144:17;;;;;;;;;;;7697:18;16112:8;:65::i;:::-;16224:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16206:56;;;16271:4;16278:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16206:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16188:15;;:114;;;;;;;;;;;;;;;;;;16313:17;;;;;;;;;;;:33;;;16354:11;16375:4;16381:24;16399:4;16381:9;:24::i;:::-;16406:1;16408::::0;16418:4:::1;16424:15;16313:127;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16458:15;;;;;;;;;;;16451:31;;;16483:19;;;;;;;;;;;16504:14;16451:68;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16541:19;;;;;;;;;;;16530:42;;;16573:15;;;;;;;;;;;16590:29;16610:8;16590:15;:19;;:29;;;;:::i;:::-;16621:10;16530:102;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;16657:4;16643:11;;:18;;;;;;;;;;;;;;;;;;15830:839;;15785:884::o:0;2832:162::-;3056:7;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2948:8:::1;2918:39;;2939:7;::::0;::::1;;;;;;;;2918:39;;;;;;;;;;;;2978:8;2968:7;::::0;:18:::1;;;;;;;;;;;;;;;;;;2832:162:::0;:::o;17597:98::-;8922:8;;;;;;;;;;;:14;;;:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8906:32;;:12;:10;:12::i;:::-;:32;;;:62;;;;8958:10;;;;;;;;;;;8942:26;;:12;:10;:12::i;:::-;:26;;;8906:62;8897:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;17679:8:::1;17666:10;;:21;;;;;;;;;;;;;;;;;;17597:98:::0;:::o;16919:93::-;3056:7;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17000:4:::1;16982:11;:15;16994:2;16982:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;16919:93:::0;:::o;2098:132::-;2156:7;2183:39;2187:1;2190;2183:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2176:46;;2098:132;;;;:::o;1323:179::-;1381:7;1401:9;1417:1;1413;:5;;;;:::i;:::-;1401:17;;1442:1;1437;:6;;1429:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1493:1;1486:8;;;1323:179;;;;:::o;1508:136::-;1566:7;1593:43;1597:1;1600;1593:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1586:50;;1508:136;;;;:::o;521:98::-;574:7;601:10;594:17;;521:98;:::o;11988:347::-;12102:1;12084:20;;:6;:20;;;;12076:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12184:1;12164:22;;:8;:22;;;;12156:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12269:7;12236:12;:20;12249:6;12236:20;;;;;;;;;;;;;;;:30;12257:8;12236:30;;;;;;;;;;;;;;;:40;;;;12309:8;12292:35;;12301:6;12292:35;;;12319:7;12292:35;;;;;;:::i;:::-;;;;;;;;11988:347;;;:::o;4748:875::-;3056:7;;;;;;;;;;3040:23;;:12;:10;:12::i;:::-;:23;;;3032:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4855:11:::1;;;;;;;;;;;4851:143;;;4899:12;;;;;;;;;;;4887:24;;:8;:24;;;4883:100;;;4956:10;;;;;;;;;;;4940:26;;:12;:10;:12::i;:::-;:26;;;4932:35;;;::::0;::::1;;4883:100;4851:143;5006:9;5018:8;:18;5027:8;5018:18;;;;;;;;;;;;;;;;5006:30;;5059:1;5051:4;:9;5047:569;;;5113:5;5085:24;5102:6;5085:12;;:16;;:24;;;;:::i;:::-;:33;;5077:42;;;::::0;::::1;;5134:10;5150:6;5134:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5172:14;5192:8;5172:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5257:1;5237:10;:17;;;;:21;;;;:::i;:::-;5216:8;:18;5225:8;5216:18;;;;;;;;;;;;;;;:42;;;;5288:24;5305:6;5288:12;;:16;;:24;;;;:::i;:::-;5273:12;:39;;;;5047:569;;;5378:19;5401:10;5412:4;5401:16;;;;;;;;:::i;:::-;;;;;;;;;;5378:39;;5485:5;5440:41;5469:11;5440:24;5457:6;5440:12;;:16;;:24;;;;:::i;:::-;:28;;:41;;;;:::i;:::-;:50;;5432:59;;;::::0;::::1;;5527:6;5508:10;5519:4;5508:16;;;;;;;;:::i;:::-;;;;;;;;;:25;;;;5563:41;5592:11;5563:24;5580:6;5563:12;;:16;;:24;;;;:::i;:::-;:28;;:41;;;;:::i;:::-;5548:12;:56;;;;5330:286;5047:569;4840:783;4748:875:::0;;:::o;12341:1384::-;12460:1;12441:21;;:7;:21;;;;12433:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12545:1;12523:24;;:10;:24;;;;12515:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12616:1;12606:7;:11;12598:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12683:11;:20;12695:7;12683:20;;;;;;;;;;;;;;;;;;;;;;;;;12682:21;:49;;;;;12708:11;:23;12720:10;12708:23;;;;;;;;;;;;;;;;;;;;;;;;;12707:24;12682:49;:76;;;;;12736:11;:22;12748:9;12736:22;;;;;;;;;;;;;;;;;;;;;;;;;12735:23;12682:76;12674:85;;;;;;12777:40;12797:7;12806:10;12777:19;:40::i;:::-;:73;;;;;12840:10;;12821:15;:29;;12777:73;12774:408;;;12876:7;;;;;;;;;;;:19;;;12896:10;12908:15;;;;;;;;;;;12925:9;12876:59;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12875:60;12867:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;13002:7;;;;;;;;;;;:19;;;13022:7;13031:15;;;;;;;;;;;13048:9;13002:56;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13001:57;12993:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;13117:7;;;;;;;;;;;:21;;;13139:7;13148:10;13160:9;13117:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12774:408;13197:25;13211:10;13197:13;:25::i;:::-;13194:89;;;13269:13;;13245:21;13255:10;13245:9;:21::i;:::-;:37;13237:46;;;;;;13194:89;13308:14;13341:28;13349:7;13358:10;13341:7;:28::i;:::-;13337:307;;;13413:10;;13394:15;:29;;13386:38;;;;;;13443:34;13457:7;13466:10;13443:13;:34::i;:::-;13439:88;;;13516:10;:8;:10::i;:::-;13505:7;:21;;13497:30;;;;;;13439:88;13565:39;13575:7;13584:10;13596:7;13565:9;:39::i;:::-;13556:48;;13619:13;13624:7;13619:4;:13::i;:::-;13337:307;13664:53;13680:7;13689:10;13701:7;13710:6;13664:15;:53::i;:::-;12422:1303;12341:1384;;;:::o;1650:190::-;1736:7;1769:1;1764;:6;;1772:12;1756:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1796:9;1812:1;1808;:5;;;;:::i;:::-;1796:17;;1831:1;1824:8;;;1650:190;;;;;:::o;2236:189::-;2322:7;2354:1;2350;:5;2357:12;2342:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2381:9;2397:1;2393;:5;;;;:::i;:::-;2381:17;;2416:1;2409:8;;;2236:189;;;;;:::o;11140:179::-;11228:4;11263:15;;;;;;;;;;;11252:26;;:7;:26;;;:59;;;;11296:15;;;;;;;;;;;11282:29;;:10;:29;;;11252:59;11245:66;;11140:179;;;;:::o;11551:217::-;11616:4;11654:15;;;;;;;;;;;11640:29;;:10;:29;;;;:73;;;;;11695:17;;;;;;;;;;;11673:40;;:10;:40;;;;11640:73;:120;;;;;11736:24;11751:8;11736:10;;:14;;:24;;;;:::i;:::-;11717:15;:43;;11640:120;11633:127;;11551:217;;;:::o;10960:174::-;11036:4;11062:19;:28;11082:7;11062:28;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;11094:19;:31;11114:10;11094:31;;;;;;;;;;;;;;;;;;;;;;;;;11062:63;11060:66;11053:73;;10960:174;;;;:::o;11325:220::-;11407:4;11442:15;;;;;;;;;;;11431:26;;:7;:26;;;:70;;;;;11483:17;;;;;;;;;;;11461:40;;:10;:40;;;;11431:70;:106;;;;;11506:19;:31;11526:10;11506:31;;;;;;;;;;;;;;;;;;;;;;;;;11505:32;11431:106;11424:113;;11325:220;;;;:::o;11774:208::-;11816:7;11857:27;11872:11;11857:10;;:14;;:27;;;;:::i;:::-;11838:15;:46;11835:139;;11906:20;11923:2;7697:18;11906:16;;:20;;;;:::i;:::-;11899:27;;;;11835:139;7697:18;11955:19;;11774:208;;:::o;14171:339::-;14261:7;14281:12;14296:1;14281:16;;14312:19;:28;14332:7;14312:28;;;;;;;;;;;;;;;;;;;;;;;;;:63;;;;14344:19;:31;14364:10;14344:31;;;;;;;;;;;;;;;;;;;;;;;;;14312:63;14308:107;;;14399:4;14392:11;;;;;14308:107;14432:48;14441:38;14463:15;:13;:15::i;:::-;14441:17;14453:4;;14441:7;:11;;:17;;;;:::i;:::-;:21;;:38;;;;:::i;:::-;14432:4;:8;;:48;;;;:::i;:::-;14425:55;;14498:4;14491:11;;;14171:339;;;;;;:::o;14516:234::-;14570:20;14582:7;14570:11;:20::i;:::-;14566:177;;;14607:21;14631:24;14649:4;14631:9;:24::i;:::-;14607:48;;14670:32;14688:13;14670:17;:32::i;:::-;14717:14;:12;:14::i;:::-;14592:151;14566:177;14516:234;:::o;13731:434::-;13845:18;13866:19;13878:6;13866:7;:11;;:19;;;;:::i;:::-;13845:40;;13918:32;13942:7;13918:10;:19;13929:7;13918:19;;;;;;;;;;;;;;;;:23;;:32;;;;:::i;:::-;13896:10;:19;13907:7;13896:19;;;;;;;;;;;;;;;:54;;;;13986:38;14013:10;13986;:22;13997:10;13986:22;;;;;;;;;;;;;;;;:26;;:38;;;;:::i;:::-;13961:10;:22;13972:10;13961:22;;;;;;;;;;;;;;;:63;;;;14063:37;14093:6;14063:10;:25;14082:4;14063:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;14035:10;:25;14054:4;14035:25;;;;;;;;;;;;;;;:65;;;;14134:10;14116:41;;14125:7;14116:41;;;14146:10;14116:41;;;;;;:::i;:::-;;;;;;;;13834:331;13731:434;;;;:::o;5629:103::-;5685:7;5712:12;;5705:19;;5629:103;:::o;1846:246::-;1904:7;1933:1;1928;:6;1924:47;;;1958:1;1951:8;;;;1924:47;1981:9;1997:1;1993;:5;;;;:::i;:::-;1981:17;;2026:1;2021;2017;:5;;;;:::i;:::-;:10;2009:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2083:1;2076:8;;;1846:246;;;;;:::o;10704:131::-;10764:4;10789:8;;;;;;;;;;;10788:9;:39;;;;;10812:15;;;;;;;;;;;10801:26;;:7;:26;;;;10788:39;10781:46;;10704:131;;;:::o;14756:482::-;8808:4;8797:8;;:15;;;;;;;;;;;;;;;;;;14831:22:::1;14870:1;14856:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14831:41;;14902:4;14883:5;14889:1;14883:8;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;::::0;::::1;14929:17;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14918:5;14924:1;14918:8;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;::::0;::::1;14964:60;14981:4;14996:17;;;;;;;;;;;15016:7;14964:8;:60::i;:::-;15035:17;;;;;;;;;;;:68;;;15118:7;15140:1;15156:5;15184:4;15204:15;15035:195;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14820:418;8846:5:::0;8835:8;;:16;;;;;;;;;;;;;;;;;;14756:482;:::o;15405:374::-;15448:12;15463:21;15448:36;;15507:12;;15499:4;:20;15495:46;;15534:7;;;15495:46;15565:15;15583:22;15592:12;;15583:4;:8;;:22;;;;:::i;:::-;15565:40;;15616:7;15626:20;:18;:20::i;:::-;15616:30;;15666:1;15661:2;:6;15657:32;;;15682:7;;;;;15657:32;15701:21;15710:7;15719:2;15701:8;:21::i;:::-;15750;15735:12;:36;;;;15437:342;;;15405:374;:::o;15244:155::-;15296:4;15313:9;15325:1;15313:13;;15344:25;15353:15;:13;:15::i;:::-;15344:4;:8;;:25;;;;:::i;:::-;15337:32;;15387:4;15380:11;;;15244:155;:::o;4260:482::-;4337:6;4346:1;4337:10;;4332:403;4353:10;:17;;;;4349:1;:21;4332:403;;;4392:14;4409:10;4420:1;4409:13;;;;;;;;:::i;:::-;;;;;;;;;;4392:30;;4437:24;4464:14;4479:1;4464:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4437:44;;4496:15;4514:24;4535:2;4514:16;4523:6;4514:4;:8;;:16;;;;:::i;:::-;:20;;:24;;;;:::i;:::-;4496:42;;4567:1;4557:7;:11;4553:171;;;4588:8;:17;;:26;4606:7;4588:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4648:12;;;;;;;;;;;4636:24;;:8;:24;;;4633:75;;;4683:8;;;;;;;;;;;:16;;;4700:7;4683:25;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4633:75;4553:171;4377:358;;;4372:3;;;;;:::i;:::-;;;;4332:403;;;;4260:482;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;301:155;;;;:::o;462:137::-;516:5;547:6;541:13;532:22;;563:30;587:5;563:30;:::i;:::-;462:137;;;;:::o;605:139::-;651:5;689:6;676:20;667:29;;705:33;732:5;705:33;:::i;:::-;605:139;;;;:::o;750:143::-;807:5;838:6;832:13;823:22;;854:33;881:5;854:33;:::i;:::-;750:143;;;;:::o;899:329::-;958:6;1007:2;995:9;986:7;982:23;978:32;975:119;;;1013:79;;:::i;:::-;975:119;1133:1;1158:53;1203:7;1194:6;1183:9;1179:22;1158:53;:::i;:::-;1148:63;;1104:117;899:329;;;;:::o;1234:351::-;1304:6;1353:2;1341:9;1332:7;1328:23;1324:32;1321:119;;;1359:79;;:::i;:::-;1321:119;1479:1;1504:64;1560:7;1551:6;1540:9;1536:22;1504:64;:::i;:::-;1494:74;;1450:128;1234:351;;;;:::o;1591:345::-;1658:6;1707:2;1695:9;1686:7;1682:23;1678:32;1675:119;;;1713:79;;:::i;:::-;1675:119;1833:1;1858:61;1911:7;1902:6;1891:9;1887:22;1858:61;:::i;:::-;1848:71;;1804:125;1591:345;;;;:::o;1942:490::-;2018:6;2026;2075:2;2063:9;2054:7;2050:23;2046:32;2043:119;;;2081:79;;:::i;:::-;2043:119;2201:1;2226:61;2279:7;2270:6;2259:9;2255:22;2226:61;:::i;:::-;2216:71;;2172:125;2336:2;2362:53;2407:7;2398:6;2387:9;2383:22;2362:53;:::i;:::-;2352:63;;2307:118;1942:490;;;;;:::o;2438:474::-;2506:6;2514;2563:2;2551:9;2542:7;2538:23;2534:32;2531:119;;;2569:79;;:::i;:::-;2531:119;2689:1;2714:53;2759:7;2750:6;2739:9;2735:22;2714:53;:::i;:::-;2704:63;;2660:117;2816:2;2842:53;2887:7;2878:6;2867:9;2863:22;2842:53;:::i;:::-;2832:63;;2787:118;2438:474;;;;;:::o;2918:619::-;2995:6;3003;3011;3060:2;3048:9;3039:7;3035:23;3031:32;3028:119;;;3066:79;;:::i;:::-;3028:119;3186:1;3211:53;3256:7;3247:6;3236:9;3232:22;3211:53;:::i;:::-;3201:63;;3157:117;3313:2;3339:53;3384:7;3375:6;3364:9;3360:22;3339:53;:::i;:::-;3329:63;;3284:118;3441:2;3467:53;3512:7;3503:6;3492:9;3488:22;3467:53;:::i;:::-;3457:63;;3412:118;2918:619;;;;;:::o;3543:474::-;3611:6;3619;3668:2;3656:9;3647:7;3643:23;3639:32;3636:119;;;3674:79;;:::i;:::-;3636:119;3794:1;3819:53;3864:7;3855:6;3844:9;3840:22;3819:53;:::i;:::-;3809:63;;3765:117;3921:2;3947:53;3992:7;3983:6;3972:9;3968:22;3947:53;:::i;:::-;3937:63;;3892:118;3543:474;;;;;:::o;4023:345::-;4090:6;4139:2;4127:9;4118:7;4114:23;4110:32;4107:119;;;4145:79;;:::i;:::-;4107:119;4265:1;4290:61;4343:7;4334:6;4323:9;4319:22;4290:61;:::i;:::-;4280:71;;4236:125;4023:345;;;;:::o;4374:329::-;4433:6;4482:2;4470:9;4461:7;4457:23;4453:32;4450:119;;;4488:79;;:::i;:::-;4450:119;4608:1;4633:53;4678:7;4669:6;4658:9;4654:22;4633:53;:::i;:::-;4623:63;;4579:117;4374:329;;;;:::o;4709:663::-;4797:6;4805;4813;4862:2;4850:9;4841:7;4837:23;4833:32;4830:119;;;4868:79;;:::i;:::-;4830:119;4988:1;5013:64;5069:7;5060:6;5049:9;5045:22;5013:64;:::i;:::-;5003:74;;4959:128;5126:2;5152:64;5208:7;5199:6;5188:9;5184:22;5152:64;:::i;:::-;5142:74;;5097:129;5265:2;5291:64;5347:7;5338:6;5327:9;5323:22;5291:64;:::i;:::-;5281:74;;5236:129;4709:663;;;;;:::o;5378:179::-;5447:10;5468:46;5510:3;5502:6;5468:46;:::i;:::-;5546:4;5541:3;5537:14;5523:28;;5378:179;;;;:::o;5563:108::-;5640:24;5658:5;5640:24;:::i;:::-;5635:3;5628:37;5563:108;;:::o;5677:118::-;5764:24;5782:5;5764:24;:::i;:::-;5759:3;5752:37;5677:118;;:::o;5831:732::-;5950:3;5979:54;6027:5;5979:54;:::i;:::-;6049:86;6128:6;6123:3;6049:86;:::i;:::-;6042:93;;6159:56;6209:5;6159:56;:::i;:::-;6238:7;6269:1;6254:284;6279:6;6276:1;6273:13;6254:284;;;6355:6;6349:13;6382:63;6441:3;6426:13;6382:63;:::i;:::-;6375:70;;6468:60;6521:6;6468:60;:::i;:::-;6458:70;;6314:224;6301:1;6298;6294:9;6289:14;;6254:284;;;6258:14;6554:3;6547:10;;5955:608;;;5831:732;;;;:::o;6569:109::-;6650:21;6665:5;6650:21;:::i;:::-;6645:3;6638:34;6569:109;;:::o;6684:147::-;6779:45;6818:5;6779:45;:::i;:::-;6774:3;6767:58;6684:147;;:::o;6837:364::-;6925:3;6953:39;6986:5;6953:39;:::i;:::-;7008:71;7072:6;7067:3;7008:71;:::i;:::-;7001:78;;7088:52;7133:6;7128:3;7121:4;7114:5;7110:16;7088:52;:::i;:::-;7165:29;7187:6;7165:29;:::i;:::-;7160:3;7156:39;7149:46;;6929:272;6837:364;;;;:::o;7207:366::-;7349:3;7370:67;7434:2;7429:3;7370:67;:::i;:::-;7363:74;;7446:93;7535:3;7446:93;:::i;:::-;7564:2;7559:3;7555:12;7548:19;;7207:366;;;:::o;7579:::-;7721:3;7742:67;7806:2;7801:3;7742:67;:::i;:::-;7735:74;;7818:93;7907:3;7818:93;:::i;:::-;7936:2;7931:3;7927:12;7920:19;;7579:366;;;:::o;7951:::-;8093:3;8114:67;8178:2;8173:3;8114:67;:::i;:::-;8107:74;;8190:93;8279:3;8190:93;:::i;:::-;8308:2;8303:3;8299:12;8292:19;;7951:366;;;:::o;8323:::-;8465:3;8486:67;8550:2;8545:3;8486:67;:::i;:::-;8479:74;;8562:93;8651:3;8562:93;:::i;:::-;8680:2;8675:3;8671:12;8664:19;;8323:366;;;:::o;8695:::-;8837:3;8858:67;8922:2;8917:3;8858:67;:::i;:::-;8851:74;;8934:93;9023:3;8934:93;:::i;:::-;9052:2;9047:3;9043:12;9036:19;;8695:366;;;:::o;9067:::-;9209:3;9230:67;9294:2;9289:3;9230:67;:::i;:::-;9223:74;;9306:93;9395:3;9306:93;:::i;:::-;9424:2;9419:3;9415:12;9408:19;;9067:366;;;:::o;9439:::-;9581:3;9602:67;9666:2;9661:3;9602:67;:::i;:::-;9595:74;;9678:93;9767:3;9678:93;:::i;:::-;9796:2;9791:3;9787:12;9780:19;;9439:366;;;:::o;9811:::-;9953:3;9974:67;10038:2;10033:3;9974:67;:::i;:::-;9967:74;;10050:93;10139:3;10050:93;:::i;:::-;10168:2;10163:3;10159:12;10152:19;;9811:366;;;:::o;10183:::-;10325:3;10346:67;10410:2;10405:3;10346:67;:::i;:::-;10339:74;;10422:93;10511:3;10422:93;:::i;:::-;10540:2;10535:3;10531:12;10524:19;;10183:366;;;:::o;10555:::-;10697:3;10718:67;10782:2;10777:3;10718:67;:::i;:::-;10711:74;;10794:93;10883:3;10794:93;:::i;:::-;10912:2;10907:3;10903:12;10896:19;;10555:366;;;:::o;10927:::-;11069:3;11090:67;11154:2;11149:3;11090:67;:::i;:::-;11083:74;;11166:93;11255:3;11166:93;:::i;:::-;11284:2;11279:3;11275:12;11268:19;;10927:366;;;:::o;11299:118::-;11386:24;11404:5;11386:24;:::i;:::-;11381:3;11374:37;11299:118;;:::o;11423:112::-;11506:22;11522:5;11506:22;:::i;:::-;11501:3;11494:35;11423:112;;:::o;11541:222::-;11634:4;11672:2;11661:9;11657:18;11649:26;;11685:71;11753:1;11742:9;11738:17;11729:6;11685:71;:::i;:::-;11541:222;;;;:::o;11769:332::-;11890:4;11928:2;11917:9;11913:18;11905:26;;11941:71;12009:1;11998:9;11994:17;11985:6;11941:71;:::i;:::-;12022:72;12090:2;12079:9;12075:18;12066:6;12022:72;:::i;:::-;11769:332;;;;;:::o;12107:442::-;12256:4;12294:2;12283:9;12279:18;12271:26;;12307:71;12375:1;12364:9;12360:17;12351:6;12307:71;:::i;:::-;12388:72;12456:2;12445:9;12441:18;12432:6;12388:72;:::i;:::-;12470;12538:2;12527:9;12523:18;12514:6;12470:72;:::i;:::-;12107:442;;;;;;:::o;12555:332::-;12676:4;12714:2;12703:9;12699:18;12691:26;;12727:71;12795:1;12784:9;12780:17;12771:6;12727:71;:::i;:::-;12808:72;12876:2;12865:9;12861:18;12852:6;12808:72;:::i;:::-;12555:332;;;;;:::o;12893:442::-;13042:4;13080:2;13069:9;13065:18;13057:26;;13093:71;13161:1;13150:9;13146:17;13137:6;13093:71;:::i;:::-;13174:72;13242:2;13231:9;13227:18;13218:6;13174:72;:::i;:::-;13256;13324:2;13313:9;13309:18;13300:6;13256:72;:::i;:::-;12893:442;;;;;;:::o;13341:807::-;13590:4;13628:3;13617:9;13613:19;13605:27;;13642:71;13710:1;13699:9;13695:17;13686:6;13642:71;:::i;:::-;13723:72;13791:2;13780:9;13776:18;13767:6;13723:72;:::i;:::-;13805:80;13881:2;13870:9;13866:18;13857:6;13805:80;:::i;:::-;13895;13971:2;13960:9;13956:18;13947:6;13895:80;:::i;:::-;13985:73;14053:3;14042:9;14038:19;14029:6;13985:73;:::i;:::-;14068;14136:3;14125:9;14121:19;14112:6;14068:73;:::i;:::-;13341:807;;;;;;;;;:::o;14154:210::-;14241:4;14279:2;14268:9;14264:18;14256:26;;14292:65;14354:1;14343:9;14339:17;14330:6;14292:65;:::i;:::-;14154:210;;;;:::o;14370:313::-;14483:4;14521:2;14510:9;14506:18;14498:26;;14570:9;14564:4;14560:20;14556:1;14545:9;14541:17;14534:47;14598:78;14671:4;14662:6;14598:78;:::i;:::-;14590:86;;14370:313;;;;:::o;14689:419::-;14855:4;14893:2;14882:9;14878:18;14870:26;;14942:9;14936:4;14932:20;14928:1;14917:9;14913:17;14906:47;14970:131;15096:4;14970:131;:::i;:::-;14962:139;;14689:419;;;:::o;15114:::-;15280:4;15318:2;15307:9;15303:18;15295:26;;15367:9;15361:4;15357:20;15353:1;15342:9;15338:17;15331:47;15395:131;15521:4;15395:131;:::i;:::-;15387:139;;15114:419;;;:::o;15539:::-;15705:4;15743:2;15732:9;15728:18;15720:26;;15792:9;15786:4;15782:20;15778:1;15767:9;15763:17;15756:47;15820:131;15946:4;15820:131;:::i;:::-;15812:139;;15539:419;;;:::o;15964:::-;16130:4;16168:2;16157:9;16153:18;16145:26;;16217:9;16211:4;16207:20;16203:1;16192:9;16188:17;16181:47;16245:131;16371:4;16245:131;:::i;:::-;16237:139;;15964:419;;;:::o;16389:::-;16555:4;16593:2;16582:9;16578:18;16570:26;;16642:9;16636:4;16632:20;16628:1;16617:9;16613:17;16606:47;16670:131;16796:4;16670:131;:::i;:::-;16662:139;;16389:419;;;:::o;16814:::-;16980:4;17018:2;17007:9;17003:18;16995:26;;17067:9;17061:4;17057:20;17053:1;17042:9;17038:17;17031:47;17095:131;17221:4;17095:131;:::i;:::-;17087:139;;16814:419;;;:::o;17239:::-;17405:4;17443:2;17432:9;17428:18;17420:26;;17492:9;17486:4;17482:20;17478:1;17467:9;17463:17;17456:47;17520:131;17646:4;17520:131;:::i;:::-;17512:139;;17239:419;;;:::o;17664:::-;17830:4;17868:2;17857:9;17853:18;17845:26;;17917:9;17911:4;17907:20;17903:1;17892:9;17888:17;17881:47;17945:131;18071:4;17945:131;:::i;:::-;17937:139;;17664:419;;;:::o;18089:::-;18255:4;18293:2;18282:9;18278:18;18270:26;;18342:9;18336:4;18332:20;18328:1;18317:9;18313:17;18306:47;18370:131;18496:4;18370:131;:::i;:::-;18362:139;;18089:419;;;:::o;18514:::-;18680:4;18718:2;18707:9;18703:18;18695:26;;18767:9;18761:4;18757:20;18753:1;18742:9;18738:17;18731:47;18795:131;18921:4;18795:131;:::i;:::-;18787:139;;18514:419;;;:::o;18939:::-;19105:4;19143:2;19132:9;19128:18;19120:26;;19192:9;19186:4;19182:20;19178:1;19167:9;19163:17;19156:47;19220:131;19346:4;19220:131;:::i;:::-;19212:139;;18939:419;;;:::o;19364:222::-;19457:4;19495:2;19484:9;19480:18;19472:26;;19508:71;19576:1;19565:9;19561:17;19552:6;19508:71;:::i;:::-;19364:222;;;;:::o;19592:831::-;19855:4;19893:3;19882:9;19878:19;19870:27;;19907:71;19975:1;19964:9;19960:17;19951:6;19907:71;:::i;:::-;19988:80;20064:2;20053:9;20049:18;20040:6;19988:80;:::i;:::-;20115:9;20109:4;20105:20;20100:2;20089:9;20085:18;20078:48;20143:108;20246:4;20237:6;20143:108;:::i;:::-;20135:116;;20261:72;20329:2;20318:9;20314:18;20305:6;20261:72;:::i;:::-;20343:73;20411:3;20400:9;20396:19;20387:6;20343:73;:::i;:::-;19592:831;;;;;;;;:::o;20429:214::-;20518:4;20556:2;20545:9;20541:18;20533:26;;20569:67;20633:1;20622:9;20618:17;20609:6;20569:67;:::i;:::-;20429:214;;;;:::o;20730:132::-;20797:4;20820:3;20812:11;;20850:4;20845:3;20841:14;20833:22;;20730:132;;;:::o;20868:114::-;20935:6;20969:5;20963:12;20953:22;;20868:114;;;:::o;20988:99::-;21040:6;21074:5;21068:12;21058:22;;20988:99;;;:::o;21093:113::-;21163:4;21195;21190:3;21186:14;21178:22;;21093:113;;;:::o;21212:184::-;21311:11;21345:6;21340:3;21333:19;21385:4;21380:3;21376:14;21361:29;;21212:184;;;;:::o;21402:169::-;21486:11;21520:6;21515:3;21508:19;21560:4;21555:3;21551:14;21536:29;;21402:169;;;;:::o;21577:305::-;21617:3;21636:20;21654:1;21636:20;:::i;:::-;21631:25;;21670:20;21688:1;21670:20;:::i;:::-;21665:25;;21824:1;21756:66;21752:74;21749:1;21746:81;21743:107;;;21830:18;;:::i;:::-;21743:107;21874:1;21871;21867:9;21860:16;;21577:305;;;;:::o;21888:185::-;21928:1;21945:20;21963:1;21945:20;:::i;:::-;21940:25;;21979:20;21997:1;21979:20;:::i;:::-;21974:25;;22018:1;22008:35;;22023:18;;:::i;:::-;22008:35;22065:1;22062;22058:9;22053:14;;21888:185;;;;:::o;22079:348::-;22119:7;22142:20;22160:1;22142:20;:::i;:::-;22137:25;;22176:20;22194:1;22176:20;:::i;:::-;22171:25;;22364:1;22296:66;22292:74;22289:1;22286:81;22281:1;22274:9;22267:17;22263:105;22260:131;;;22371:18;;:::i;:::-;22260:131;22419:1;22416;22412:9;22401:20;;22079:348;;;;:::o;22433:191::-;22473:4;22493:20;22511:1;22493:20;:::i;:::-;22488:25;;22527:20;22545:1;22527:20;:::i;:::-;22522:25;;22566:1;22563;22560:8;22557:34;;;22571:18;;:::i;:::-;22557:34;22616:1;22613;22609:9;22601:17;;22433:191;;;;:::o;22630:96::-;22667:7;22696:24;22714:5;22696:24;:::i;:::-;22685:35;;22630:96;;;:::o;22732:104::-;22777:7;22806:24;22824:5;22806:24;:::i;:::-;22795:35;;22732:104;;;:::o;22842:90::-;22876:7;22919:5;22912:13;22905:21;22894:32;;22842:90;;;:::o;22938:126::-;22975:7;23015:42;23008:5;23004:54;22993:65;;22938:126;;;:::o;23070:77::-;23107:7;23136:5;23125:16;;23070:77;;;:::o;23153:86::-;23188:7;23228:4;23221:5;23217:16;23206:27;;23153:86;;;:::o;23245:121::-;23303:9;23336:24;23354:5;23336:24;:::i;:::-;23323:37;;23245:121;;;:::o;23372:307::-;23440:1;23450:113;23464:6;23461:1;23458:13;23450:113;;;23549:1;23544:3;23540:11;23534:18;23530:1;23525:3;23521:11;23514:39;23486:2;23483:1;23479:10;23474:15;;23450:113;;;23581:6;23578:1;23575:13;23572:101;;;23661:1;23652:6;23647:3;23643:16;23636:27;23572:101;23421:258;23372:307;;;:::o;23685:320::-;23729:6;23766:1;23760:4;23756:12;23746:22;;23813:1;23807:4;23803:12;23834:18;23824:81;;23890:4;23882:6;23878:17;23868:27;;23824:81;23952:2;23944:6;23941:14;23921:18;23918:38;23915:84;;;23971:18;;:::i;:::-;23915:84;23736:269;23685:320;;;:::o;24011:233::-;24050:3;24073:24;24091:5;24073:24;:::i;:::-;24064:33;;24119:66;24112:5;24109:77;24106:103;;;24189:18;;:::i;:::-;24106:103;24236:1;24229:5;24225:13;24218:20;;24011:233;;;:::o;24250:180::-;24298:77;24295:1;24288:88;24395:4;24392:1;24385:15;24419:4;24416:1;24409:15;24436:180;24484:77;24481:1;24474:88;24581:4;24578:1;24571:15;24605:4;24602:1;24595:15;24622:180;24670:77;24667:1;24660:88;24767:4;24764:1;24757:15;24791:4;24788:1;24781:15;24808:180;24856:77;24853:1;24846:88;24953:4;24950:1;24943:15;24977:4;24974:1;24967:15;24994:180;25042:77;25039:1;25032:88;25139:4;25136:1;25129:15;25163:4;25160:1;25153:15;25303:117;25412:1;25409;25402:12;25426:102;25467:6;25518:2;25514:7;25509:2;25502:5;25498:14;25494:28;25484:38;;25426:102;;;:::o;25534:222::-;25674:34;25670:1;25662:6;25658:14;25651:58;25743:5;25738:2;25730:6;25726:15;25719:30;25534:222;:::o;25762:174::-;25902:26;25898:1;25890:6;25886:14;25879:50;25762:174;:::o;25942:162::-;26082:14;26078:1;26070:6;26066:14;26059:38;25942:162;:::o;26110:221::-;26250:34;26246:1;26238:6;26234:14;26227:58;26319:4;26314:2;26306:6;26302:15;26295:29;26110:221;:::o;26337:177::-;26477:29;26473:1;26465:6;26461:14;26454:53;26337:177;:::o;26520:220::-;26660:34;26656:1;26648:6;26644:14;26637:58;26729:3;26724:2;26716:6;26712:15;26705:28;26520:220;:::o;26746:182::-;26886:34;26882:1;26874:6;26870:14;26863:58;26746:182;:::o;26934:228::-;27074:34;27070:1;27062:6;27058:14;27051:58;27143:11;27138:2;27130:6;27126:15;27119:36;26934:228;:::o;27168:224::-;27308:34;27304:1;27296:6;27292:14;27285:58;27377:7;27372:2;27364:6;27360:15;27353:32;27168:224;:::o;27398:223::-;27538:34;27534:1;27526:6;27522:14;27515:58;27607:6;27602:2;27594:6;27590:15;27583:31;27398:223;:::o;27627:225::-;27767:34;27763:1;27755:6;27751:14;27744:58;27836:8;27831:2;27823:6;27819:15;27812:33;27627:225;:::o;27858:122::-;27931:24;27949:5;27931:24;:::i;:::-;27924:5;27921:35;27911:63;;27970:1;27967;27960:12;27911:63;27858:122;:::o;27986:138::-;28067:32;28093:5;28067:32;:::i;:::-;28060:5;28057:43;28047:71;;28114:1;28111;28104:12;28047:71;27986:138;:::o;28130:116::-;28200:21;28215:5;28200:21;:::i;:::-;28193:5;28190:32;28180:60;;28236:1;28233;28226:12;28180:60;28130:116;:::o;28252:122::-;28325:24;28343:5;28325:24;:::i;:::-;28318:5;28315:35;28305:63;;28364:1;28361;28354:12;28305:63;28252:122;:::o

Swarm Source

ipfs://d1a93aa630f9739dc23195c09f288fa9d84e9831a1fd43c1998ec85640595dde
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.