ETH Price: $2,486.20 (-0.96%)

Token

88 Dollar Millionaire ($88)
 

Overview

Max Total Supply

100,000,000,000 $88

Holders

29

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
464,159,709.11622052283203125 $88

Value
$0.00
0xcac87d87c5ed071a5f0df3d131a484a54c220d80
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
MILLIONAIRE

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2022-11-29
*/

/**

88 Dollar Millionaire - $88
$88 token will add exactly 88$ worth of ethereum against all of the supply. We will start off with 88$ worth of liquidity.

But to boost it as we grow we will add 7% liqudity tax for buying and selling which will in return grow our initial liquidity.

 

$88 tokens only utility is to reach 88K marketcap starting out with just 88$ worth of liquidity.

*/

// AUTO LP 
// 7/7 TAX --> LP
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
    return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
    return msg.data;
}
}
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 Address {
function isContract(address account) internal view returns (bool) {
    // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
    // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
    // for accounts without code, i.e. `keccak256('')`
    bytes32 codehash;
    bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
    // solhint-disable-next-line no-inline-assembly
    assembly { codehash := extcodehash(account) }
    return (codehash != accountHash && codehash != 0x0);
}
function sendValue(address payable recipient, uint256 amount) internal {
    require(address(this).balance >= amount, "Address: insufficient balance");
    // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
    (bool success, ) = recipient.call{ value: amount }("");
    require(success, "Address: unable to send value, recipient may have reverted");
}
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
  return functionCall(target, data, "Address: low-level call failed");
}
function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
    return _functionCallWithValue(target, data, 0, errorMessage);
}
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
    return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
}
function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
    require(address(this).balance >= value, "Address: insufficient balance for call");
    return _functionCallWithValue(target, data, value, errorMessage);
}
function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
    require(isContract(target), "Address: call to non-contract");
    (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
    if (success) {
        return returndata;
    } else {
    
        if (returndata.length > 0) {
            assembly {
                let returndata_size := mload(returndata)
                revert(add(32, returndata), returndata_size)
            }
        } else {
            revert(errorMessage);
        }
    }
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
 * @dev Initializes the contract setting the deployer as the initial owner.
 */
constructor() {
    _setOwner(_msgSender());
}
/**
 * @dev Returns the address of the current owner.
 */
function owner() public view virtual returns (address) {
    return _owner;
}
/**
 * @dev Throws if called by any account other than the owner.
 */
modifier onlyOwner() {
    require(owner() == _msgSender(), "Ownable: caller is not the owner");
    _;
}
/**
 * @dev Leaves the contract without owner. It will not be possible to call
 * `onlyOwner` functions anymore. Can only be called by the current owner.
 *
 * NOTE: Renouncing ownership will leave the contract without an owner,
 * thereby removing any functionality that is only available to the owner.
 */
function renounceOwnership() public virtual onlyOwner {
    _setOwner(address(0));
}
/**
 * @dev Transfers ownership of the contract to a new account (`newOwner`).
 * Can only be called by the current owner.
 */
function transferOwnership(address newOwner) public virtual onlyOwner {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    _setOwner(newOwner);
}
function _setOwner(address newOwner) private {
    address oldOwner = _owner;
    _owner = newOwner;
    emit OwnershipTransferred(oldOwner, newOwner);
}
}
contract MILLIONAIRE is Context,IERC20, Ownable{
using Address for address;
string private _name = "88 Dollar Millionaire";
string private _symbol = "$88";
uint8 private _decimals = 18;
uint256 totalFeeFortx = 0;
  uint256 maxWalletTreshold = 1;
uint256 maxTxTreshold = 2;
uint256 private swapTreshold =1;
uint256 private currentThreshold = 10; //Once the token value goes up this number can be decreased (To reduce price impact on asset)
uint256 private _totalSupply = (10000000 * 10**4) * 10**_decimals; //
uint256 public requiredTokensToSwap = _totalSupply * swapTreshold /1000;
mapping (address => uint256) private _balances;
mapping (address => bool) private _excludedFromFees;
mapping (address => mapping (address => uint256)) private _allowances;
mapping (address => bool) public automatedMarketMakerPairs;
address _owner;
address payable public marketingAddress = payable(0x68c6AbEcC5842aB6c4514856eE0FDcd7646d07ec);
uint256 maxWalletAmount = _totalSupply*maxWalletTreshold/200; // starting 2%
uint256 maxTxAmount = _totalSupply*maxTxTreshold/100;
mapping (address => bool) botWallets;
bool botTradeEnabled = false;
bool checkWalletSize = true;
mapping (address => bool) private _liquidityHolders;
mapping (address => bool) private presaleAddresses;
//7% Buy Tax + 7% Sell Tax 
uint256 private buyliqFee = 6; //6
uint256 private buyprevLiqFee = 0;
uint256 private buymktFee = 1;//1
uint256 private buyPrevmktFee = 0;
bool private tradeEnabled = false;
 uint256 private sellliqFee = 6;
uint256 private sellprevLiqFee = 0;
uint256 private sellmktFee = 1;
uint256 private sellPrevmktFee = 0;
 bool public inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
uint256 private mktTokens = 0;
uint256 private liqTokens = 0;
 event SwapAndLiquify(uint256 tokensSwapped,
    uint256 ethReceived,
    uint256 tokensIntoLiquidity
);
event tokensSwappedDuringTokenomics(uint256 amount);
event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value);
 // 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
IUniswapV2Router02 _router;
address public uniswapV2Pair;
//Balances tracker
modifier lockTheSwap{
    inSwapAndLiquify = true;
    _;
    inSwapAndLiquify = false;
}
 constructor(){
    _balances[_msgSender()] = _totalSupply;
    //0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D mainnet and all networks
    IUniswapV2Router02 _uniRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
     uniswapV2Pair = IUniswapV2Factory(_uniRouter.factory())
        .createPair(address(this), _uniRouter.WETH());
     _excludedFromFees[owner()] = true;     
    _excludedFromFees[address(this)] = true;// exclude owner and contract instance from fees
    _router = _uniRouter;
    _liquidityHolders[address(_router)] = true;
    _liquidityHolders[owner()] = true;
    _liquidityHolders[address(this)] = true;
    _setAutomatedMarketMakerPair(address(uniswapV2Pair), true);
    emit Transfer(address(0),_msgSender(),_totalSupply);
}
receive() external payable{}
//general token data and tracking of balances to be swapped.
function getOwner()external view returns(address){
        return owner();
}
function currentmktTokens() external view returns (uint256){
        return mktTokens;
 }
 function currentLiqTokens() external view returns (uint256){
        return liqTokens;
 }
 function totalSupply() external view override returns (uint256){
        return _totalSupply;
 }
function balanceOf(address account) public view override returns (uint256){
    return _balances[account];
}
function transfer(address recipient, uint256 amount) external override returns (bool){
        _transfer(_msgSender(),recipient,amount);
        return true;
}
function allowance(address owner, address spender) external view override returns (uint256){
        return _allowances[owner][spender];
}
function approve(address spender, uint256 amount) external override returns (bool){
        _approve(_msgSender(),spender,amount);
        return true;
}
function decimals()external view returns(uint256){
    return _decimals;
}
function name() external view returns (string memory) {
    return _name;
}
function symbol() external view returns (string memory){
    return _symbol;
}
    function updateMaxTxTreshold(uint256 newVal) public onlyOwner{
    maxTxTreshold = newVal;
    maxTxAmount = _totalSupply*maxTxTreshold/100;// 1%
}
 function updateMaxWalletTreshold(uint256 newVal) public onlyOwner{
    maxWalletTreshold = newVal;
    maxWalletAmount = _totalSupply*maxWalletTreshold/100;
}
 function transferFrom(
    address sender,
    address recipient,
    uint256 amount
) public override returns (bool){
    require(amount <= _allowances[sender][_msgSender()], "ERC20: transfer amount exceeds allowance");
    _transfer(sender, recipient, amount);
    _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount);
    return true;
}
//Tokenomics related functions
function addBotWallet (address payable detectedBot, bool isBot) public onlyOwner{
    botWallets[detectedBot] = isBot;
}
function currentbuyliqFee() public view returns (uint256){
        return buyliqFee;
}
function currentbuymktfee() public view returns (uint256){
        return buymktFee;
}
  function currentsellLiqFee() public view returns (uint256){
        return sellliqFee;
}
function currentsellmktfee() public view returns (uint256){
        return sellmktFee;
}
function currentThresholdInt()public view returns (uint256){
    return currentThreshold;
}
function isExcluded(address toCheck)public view returns (bool){
        return _excludedFromFees[toCheck];
}
function _transfer(address from, address to, uint256 amount) internal{
     require(from != address(0), "ERC20: transfer from the zero address");
    require(to != address(0), "ERC20: transfer to the zero address");
    require(amount > 0,"ERC20: transfered amount must be greater than zero");
    uint256 senderBalance = _balances[from];
    require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
    if(tradeEnabled == false){
        require(_liquidityHolders[to] || _liquidityHolders[from],"Cant trade, trade is disabled");
    }
    if(_liquidityHolders[to]==false && _liquidityHolders[from]==false){
    require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
     if(from == uniswapV2Pair){
            require(balanceOf(to)+amount <= maxWalletAmount);
        }
    }
    uint256 inContractBalance = balanceOf(address(this));
    if(inContractBalance >=requiredTokensToSwap &&
        !inSwapAndLiquify &&
        from != uniswapV2Pair &&
        swapAndLiquifyEnabled){
            if(inContractBalance >= requiredTokensToSwap ){
                inContractBalance = requiredTokensToSwap;
                swapForTokenomics(inContractBalance);
            }
        }
        bool takeFees = true;
    
    
        if(_excludedFromFees[from] || _excludedFromFees[to]) {
            totalFeeFortx = 0;
            takeFees = false;
       
        }
        uint256 mktAmount = 0;
        uint256 liqAmount = 0;  // Amount to be added to liquidity.
        if(takeFees){
        
        
            //bot fees
            if(botWallets[from] == true||botWallets[to]==true){
                revert("No bots can trade");
            }
            //Selling fees
            if (automatedMarketMakerPairs[to] && to != address(_router) ){
                    totalFeeFortx = 0;
                    mktAmount = amount * sellmktFee/100;
                    liqAmount = amount * sellliqFee/100;
                    totalFeeFortx = mktAmount + liqAmount;
            }
            //Buy Fees
            else if(automatedMarketMakerPairs[from] && from != address(_router)) {
        
                totalFeeFortx = 0;
                mktAmount = amount * buymktFee/100;
                liqAmount = amount * buyliqFee/100;
                totalFeeFortx = mktAmount + liqAmount ;
            }
        
        }
        _balances[from] = senderBalance - amount;
        _balances[to] += amount - mktAmount - liqAmount;
      if(liqAmount != 0) {
        _balances[address(this)] += totalFeeFortx;
        //tLiqTotal += liqAmount;
        liqTokens += liqAmount;
        mktTokens += mktAmount;
        emit Transfer(from, address(this), totalFeeFortx);
    
        }
        emit Transfer(from, to,amount-totalFeeFortx);
    
 }
function swapForTokenomics(uint256 balanceToswap) private lockTheSwap{
    swapAndLiquify(liqTokens);
    swapTokensForETHmkt(mktTokens);
    emit tokensSwappedDuringTokenomics(balanceToswap);
    mktTokens = 0;
    liqTokens = 0;
}
function swapTokensForETHmkt(uint256 amount)private {
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = _router.WETH();
    _approve(address(this), address(_router), amount);
     _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
        amount,
        0, // Accept any amount of ETH.
        path,
        marketingAddress,
        block.timestamp
    );
}
function tradeStatus(bool status) public onlyOwner{
    tradeEnabled = status;
}
function swapAndLiquify(uint256 liqTokensPassed) private {
    uint256 half = liqTokensPassed / 2;
    uint256 otherHalf = liqTokensPassed - half;
    uint256 initialBalance = address(this).balance;
    swapTokensForETH(half);
    uint256 newBalance = address(this).balance - (initialBalance);
    addLiquidity(otherHalf, newBalance);
    emit SwapAndLiquify(half,newBalance,otherHalf);
}
function swapTokensForETH(uint256 tokenAmount) private{
    address[] memory path = new address[](2);
    path[0] = address(this);
    path[1] = _router.WETH();
    _approve(address(this), address(_router), tokenAmount);
     _router.swapExactTokensForETHSupportingFeeOnTransferTokens(
        tokenAmount,
        0, // Accept any amount of ETH.
        path,
        address(this),
        block.timestamp
    );
}
 function addLiquidity(uint256 tokenAmount,uint256 ethAmount) private{
    _approve(address(this), address(_router), tokenAmount);
    _router.addLiquidityETH{value:ethAmount}(
        address(this),
        tokenAmount,
        0,
        0,
        deadAddress,// tr
        block.timestamp
    );
}
function _approve(address owner,address spender, uint256 amount) internal{
    require(owner != address(0), "ERC20: approve from the zero address");
    require(spender != address(0), "ERC20: approve to the zero address");
    _allowances[owner][spender] = amount;
    emit Approval(owner, spender, amount);
}
//Fees related functions
function addToExcluded(address toExclude) public onlyOwner{
    _excludedFromFees[toExclude] = true;
}
function removeFromExcluded(address toRemove) public onlyOwner{
    _excludedFromFees[toRemove] = false;
}
function updateThreshold(uint newThreshold) public onlyOwner{
    currentThreshold = newThreshold;
}
//Marketing related
function setMktAddress(address newAddress) external onlyOwner{
    marketingAddress = payable(newAddress);
}
function transferAssetsETH(address payable to, uint256 amount) internal{
        to.transfer(amount);
}
function _setAutomatedMarketMakerPair(address pair, bool value) private {
    automatedMarketMakerPairs[pair] = value;
    emit SetAutomatedMarketMakerPair(pair, value);
}
function buyFee(uint256 newAmount) public onlyOwner{
         buymktFee= newAmount;
}
function sellFee(uint256 newAmount)public onlyOwner{
         sellmktFee= newAmount;
}
function currentMaxWallet() public view returns(uint256){
    return maxWalletAmount;
}
function currentMaxTx() public view returns(uint256){
    return maxTxAmount;
}
function updateSwapTreshold(uint256 newVal) public onlyOwner{
    swapTreshold = newVal;
    requiredTokensToSwap = _totalSupply*swapTreshold/1000;
 }
function currentTrade() public view returns (bool){
    return tradeEnabled;
}
function currentSwap() public view returns(uint256){
    return swapTreshold;
}
function currentTokensToSwap() public view returns(uint256){
    return requiredTokensToSwap;
}
}
interface IUniswapV2Factory {
event PairCreated(address indexed token0, address indexed token1, address pair, uint);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB) external view returns (address pair);
function allPairs(uint) external view returns (address pair);
function allPairsLength() external view returns (uint);
function createPair(address tokenA, address tokenB) external returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint value);
event Transfer(address indexed from, address indexed to, uint value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint);
function balanceOf(address owner) external view returns (uint);
function allowance(address owner, address spender) external view returns (uint);
function approve(address spender, uint value) external returns (bool);
function transfer(address to, uint value) external returns (bool);
function transferFrom(address from, address to, uint value) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint);
function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;
event Mint(address indexed sender, uint amount0, uint amount1);
event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);
event Swap(
    address indexed sender,
    uint amount0In,
    uint amount1In,
    uint amount0Out,
    uint amount1Out,
    address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);
function price0CumulativeLast() external view returns (uint);
function price1CumulativeLast() external view returns (uint);
function kLast() external view returns (uint);
function mint(address to) external returns (uint liquidity);
function burn(address to) external returns (uint amount0, uint amount1);
function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
    address tokenA,
    address tokenB,
    uint amountADesired,
    uint amountBDesired,
    uint amountAMin,
    uint amountBMin,
    address to,
    uint deadline
) external returns (uint amountA, uint amountB, uint liquidity);
function addLiquidityETH(
    address token,
    uint amountTokenDesired,
    uint amountTokenMin,
    uint amountETHMin,
    address to,
    uint deadline
) external payable returns (uint amountToken, uint amountETH, uint liquidity);
function removeLiquidity(
    address tokenA,
    address tokenB,
    uint liquidity,
    uint amountAMin,
    uint amountBMin,
    address to,
    uint deadline
) external returns (uint amountA, uint amountB);
function removeLiquidityETH(
    address token,
    uint liquidity,
    uint amountTokenMin,
    uint amountETHMin,
    address to,
    uint deadline
) external returns (uint amountToken, uint amountETH);
function removeLiquidityWithPermit(
    address tokenA,
    address tokenB,
    uint liquidity,
    uint amountAMin,
    uint amountBMin,
    address to,
    uint deadline,
    bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountA, uint amountB);
function removeLiquidityETHWithPermit(
    address token,
    uint liquidity,
    uint amountTokenMin,
    uint amountETHMin,
    address to,
    uint deadline,
    bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountToken, uint amountETH);
function swapExactTokensForTokens(
    uint amountIn,
    uint amountOutMin,
    address[] calldata path,
    address to,
    uint deadline
) external returns (uint[] memory amounts);
function swapTokensForExactTokens(
    uint amountOut,
    uint amountInMax,
    address[] calldata path,
    address to,
    uint deadline
) external returns (uint[] memory amounts);
function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);
function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)
    external
    returns (uint[] memory amounts);
function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)
    external
    returns (uint[] memory amounts);
function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)
    external
    payable
    returns (uint[] memory amounts);
function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);
function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);
function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);
function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);
function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
    address token,
    uint liquidity,
    uint amountTokenMin,
    uint amountETHMin,
    address to,
    uint deadline
) external returns (uint amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
    address token,
    uint liquidity,
    uint amountTokenMin,
    uint amountETHMin,
    address to,
    uint deadline,
    bool approveMax, uint8 v, bytes32 r, bytes32 s
) external returns (uint amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
    uint amountIn,
    uint amountOutMin,
    address[] calldata path,
    address to,
    uint deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
    uint amountOutMin,
    address[] calldata path,
    address to,
    uint deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
    uint amountIn,
    uint amountOutMin,
    address[] calldata path,
    address to,
    uint deadline
) external;
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensSwappedDuringTokenomics","type":"event"},{"inputs":[{"internalType":"address payable","name":"detectedBot","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"addBotWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toExclude","type":"address"}],"name":"addToExcluded","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"buyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentLiqTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentThresholdInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTrade","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyliqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuymktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentmktTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellLiqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellmktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":"toRemove","type":"address"}],"name":"removeFromExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requiredTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"sellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMktAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"tradeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxTxTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxWalletTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526040518060400160405280601581526020017f383820446f6c6c6172204d696c6c696f6e616972650000000000000000000000815250600190805190602001906200005192919062000992565b506040518060400160405280600381526020017f2438380000000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000992565b506012600360006101000a81548160ff021916908360ff1602179055506000600455600160055560026006556001600755600a600855600360009054906101000a900460ff16600a620000f3919062000b84565b64174876e80062000105919062000cc1565b6009556103e86007546009546200011d919062000cc1565b62000129919062000af1565b600a557368c6abecc5842ab6c4514856ee0fdcd7646d07ec601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c860055460095462000195919062000cc1565b620001a1919062000af1565b6011556064600654600954620001b8919062000cc1565b620001c4919062000af1565b6012556000601460006101000a81548160ff0219169083151502179055506001601460016101000a81548160ff0219169083151502179055506006601755600060185560016019556000601a556000601b60006101000a81548160ff0219169083151502179055506006601c556000601d556001601e556000601f556001602060016101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525060006021556000602255348015620002aa57600080fd5b50620002cb620002bf620007fc60201b60201c565b6200080460201b60201c565b600954600b6000620002e2620007fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038057600080fd5b505afa15801562000395573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bb919062000a59565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041e57600080fd5b505afa15801562000433573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000459919062000a59565b6040518363ffffffff1660e01b81526004016200047892919062000aa7565b602060405180830381600087803b1580156200049357600080fd5b505af1158015620004a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ce919062000a59565b602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c600062000524620008c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160156000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560006200069e620008c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200077c602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008f160201b60201c565b6200078c620007fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620007ed919062000ad4565b60405180910390a35062000e57565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b828054620009a09062000d6d565b90600052602060002090601f016020900481019282620009c4576000855562000a10565b82601f10620009df57805160ff191683800117855562000a10565b8280016001018555821562000a10579182015b8281111562000a0f578251825591602001919060010190620009f2565b5b50905062000a1f919062000a23565b5090565b5b8082111562000a3e57600081600090555060010162000a24565b5090565b60008151905062000a538162000e3d565b92915050565b60006020828403121562000a6c57600080fd5b600062000a7c8482850162000a42565b91505092915050565b62000a908162000d22565b82525050565b62000aa18162000d56565b82525050565b600060408201905062000abe600083018562000a85565b62000acd602083018462000a85565b9392505050565b600060208201905062000aeb600083018462000a96565b92915050565b600062000afe8262000d56565b915062000b0b8362000d56565b92508262000b1e5762000b1d62000dd2565b5b828204905092915050565b6000808291508390505b600185111562000b7b5780860481111562000b535762000b5262000da3565b5b600185161562000b635780820291505b808102905062000b738562000e30565b945062000b33565b94509492505050565b600062000b918262000d56565b915062000b9e8362000d60565b925062000bcd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bd5565b905092915050565b60008262000be7576001905062000cba565b8162000bf7576000905062000cba565b816001811462000c10576002811462000c1b5762000c51565b600191505062000cba565b60ff84111562000c305762000c2f62000da3565b5b8360020a91508482111562000c4a5762000c4962000da3565b5b5062000cba565b5060208310610133831016604e8410600b841016171562000c8b5782820a90508381111562000c855762000c8462000da3565b5b62000cba565b62000c9a848484600162000b29565b9250905081840481111562000cb45762000cb362000da3565b5b81810290505b9392505050565b600062000cce8262000d56565b915062000cdb8362000d56565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d175762000d1662000da3565b5b828202905092915050565b600062000d2f8262000d36565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000d8657607f821691505b6020821081141562000d9d5762000d9c62000e01565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000e488162000d22565b811462000e5457600080fd5b50565b60805160601c613cc062000e7d60003960008181610c840152612d490152613cc06000f3fe60806040526004361061026b5760003560e01c80638da5cb5b11610144578063b62496f5116100b6578063d7d7442f1161007a578063d7d7442f1461091d578063d81f337c14610946578063dd62ed3e14610971578063ddcf9b98146109ae578063e1370dd3146109d9578063f2fde38b14610a0457610272565b8063b62496f514610826578063bf9b015914610863578063bf9eb5401461088e578063cba0e996146108b7578063d1294d4c146108f457610272565b8063a5ece94111610108578063a5ece9411461071a578063a6c38f5914610745578063a7a074521461076e578063a9059cbb14610797578063affd1c7c146107d4578063b4d95a93146107fd57610272565b80638da5cb5b1461064357806390f502831461066e57806395d89b41146106995780639b136da4146106c4578063a04bdc81146106ef57610272565b80634a0e963c116101dd5780636573c4df116101a15780636573c4df1461054757806366b1eae0146105705780636a340dae1461059957806370a08231146105c4578063715018a614610601578063893d20e81461061857610272565b80634a0e963c146104725780634a74bb021461049b5780634bd7ace5146104c65780635297defd146104f157806364c161631461051c57610272565b806323b872dd1161022f57806323b872dd1461036057806327c8f8351461039d5780632d03420b146103c8578063313ce567146103f1578063487a69051461041c57806349bd5a5e1461044757610272565b806306fdde0314610277578063095ea7b3146102a257806318160ddd146102df578063220f66961461030a57806322788f861461033557610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a2d565b6040516102999190613677565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190612f7a565b610abf565b6040516102d6919061365c565b60405180910390f35b3480156102eb57600080fd5b506102f4610add565b6040516103019190613819565b60405180910390f35b34801561031657600080fd5b5061031f610ae7565b60405161032c919061365c565b60405180910390f35b34801561034157600080fd5b5061034a610afa565b6040516103579190613819565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190612f2b565b610b04565b604051610394919061365c565b60405180910390f35b3480156103a957600080fd5b506103b2610c82565b6040516103bf91906135c5565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea9190612fb6565b610ca6565b005b3480156103fd57600080fd5b50610406610d3f565b6040516104139190613819565b60405180910390f35b34801561042857600080fd5b50610431610d59565b60405161043e9190613819565b60405180910390f35b34801561045357600080fd5b5061045c610d63565b60405161046991906135c5565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190612e61565b610d89565b005b3480156104a757600080fd5b506104b0610e60565b6040516104bd919061365c565b60405180910390f35b3480156104d257600080fd5b506104db610e73565b6040516104e89190613819565b60405180910390f35b3480156104fd57600080fd5b50610506610e7d565b6040516105139190613819565b60405180910390f35b34801561052857600080fd5b50610531610e87565b60405161053e9190613819565b60405180910390f35b34801561055357600080fd5b5061056e60048036038101906105699190612fdf565b610e91565b005b34801561057c57600080fd5b5061059760048036038101906105929190612fdf565b610f39565b005b3480156105a557600080fd5b506105ae610fbf565b6040516105bb9190613819565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190612e61565b610fc9565b6040516105f89190613819565b60405180910390f35b34801561060d57600080fd5b50610616611012565b005b34801561062457600080fd5b5061062d61109a565b60405161063a91906135c5565b60405180910390f35b34801561064f57600080fd5b506106586110a9565b60405161066591906135c5565b60405180910390f35b34801561067a57600080fd5b506106836110d2565b6040516106909190613819565b60405180910390f35b3480156106a557600080fd5b506106ae6110dc565b6040516106bb9190613677565b60405180910390f35b3480156106d057600080fd5b506106d961116e565b6040516106e69190613819565b60405180910390f35b3480156106fb57600080fd5b50610704611178565b6040516107119190613819565b60405180910390f35b34801561072657600080fd5b5061072f61117e565b60405161073c91906135e0565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190612eb3565b6111a4565b005b34801561077a57600080fd5b5061079560048036038101906107909190612fdf565b61127b565b005b3480156107a357600080fd5b506107be60048036038101906107b99190612f7a565b611323565b6040516107cb919061365c565b60405180910390f35b3480156107e057600080fd5b506107fb60048036038101906107f69190612fdf565b611341565b005b34801561080957600080fd5b50610824600480360381019061081f9190612e61565b6113c7565b005b34801561083257600080fd5b5061084d60048036038101906108489190612e61565b61149e565b60405161085a919061365c565b60405180910390f35b34801561086f57600080fd5b506108786114be565b6040516108859190613819565b60405180910390f35b34801561089a57600080fd5b506108b560048036038101906108b09190612e61565b6114c8565b005b3480156108c357600080fd5b506108de60048036038101906108d99190612e61565b611588565b6040516108eb919061365c565b60405180910390f35b34801561090057600080fd5b5061091b60048036038101906109169190612fdf565b6115de565b005b34801561092957600080fd5b50610944600480360381019061093f9190612fdf565b611687565b005b34801561095257600080fd5b5061095b61170d565b604051610968919061365c565b60405180910390f35b34801561097d57600080fd5b5061099860048036038101906109939190612eef565b611724565b6040516109a59190613819565b60405180910390f35b3480156109ba57600080fd5b506109c36117ab565b6040516109d09190613819565b60405180910390f35b3480156109e557600080fd5b506109ee6117b5565b6040516109fb9190613819565b60405180910390f35b348015610a1057600080fd5b50610a2b6004803603810190610a269190612e61565b6117bf565b005b606060018054610a3c90613b5e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6890613b5e565b8015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b5050505050905090565b6000610ad3610acc6118b7565b84846118bf565b6001905092915050565b6000600954905090565b602060009054906101000a900460ff1681565b6000600854905090565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b4f6118b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390613779565b60405180910390fd5b610bd7848484611a8a565b610c7784610be36118b7565b84600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c2d6118b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c729190613a55565b6118bf565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610cae6118b7565b73ffffffffffffffffffffffffffffffffffffffff16610ccc6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1990613799565b60405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b6000600360009054906101000a900460ff1660ff16905090565b6000600a54905090565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d916118b7565b73ffffffffffffffffffffffffffffffffffffffff16610daf6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90613799565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900460ff1681565b6000601754905090565b6000601e54905090565b6000602254905090565b610e996118b7565b73ffffffffffffffffffffffffffffffffffffffff16610eb76110a9565b73ffffffffffffffffffffffffffffffffffffffff1614610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490613799565b60405180910390fd5b806005819055506064600554600954610f2691906139fb565b610f3091906139ca565b60118190555050565b610f416118b7565b73ffffffffffffffffffffffffffffffffffffffff16610f5f6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613799565b60405180910390fd5b80601e8190555050565b6000600754905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61101a6118b7565b73ffffffffffffffffffffffffffffffffffffffff166110386110a9565b73ffffffffffffffffffffffffffffffffffffffff161461108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590613799565b60405180910390fd5b6110986000612547565b565b60006110a46110a9565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601c54905090565b6060600280546110eb90613b5e565b80601f016020809104026020016040519081016040528092919081815260200182805461111790613b5e565b80156111645780601f1061113957610100808354040283529160200191611164565b820191906000526020600020905b81548152906001019060200180831161114757829003601f168201915b5050505050905090565b6000601954905090565b600a5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111ac6118b7565b73ffffffffffffffffffffffffffffffffffffffff166111ca6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614611220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121790613799565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6112836118b7565b73ffffffffffffffffffffffffffffffffffffffff166112a16110a9565b73ffffffffffffffffffffffffffffffffffffffff16146112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee90613799565b60405180910390fd5b80600681905550606460065460095461131091906139fb565b61131a91906139ca565b60128190555050565b60006113376113306118b7565b8484611a8a565b6001905092915050565b6113496118b7565b73ffffffffffffffffffffffffffffffffffffffff166113676110a9565b73ffffffffffffffffffffffffffffffffffffffff16146113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490613799565b60405180910390fd5b8060198190555050565b6113cf6118b7565b73ffffffffffffffffffffffffffffffffffffffff166113ed6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90613799565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000601254905090565b6114d06118b7565b73ffffffffffffffffffffffffffffffffffffffff166114ee6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b90613799565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6115e66118b7565b73ffffffffffffffffffffffffffffffffffffffff166116046110a9565b73ffffffffffffffffffffffffffffffffffffffff161461165a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165190613799565b60405180910390fd5b806007819055506103e860075460095461167491906139fb565b61167e91906139ca565b600a8190555050565b61168f6118b7565b73ffffffffffffffffffffffffffffffffffffffff166116ad6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa90613799565b60405180910390fd5b8060088190555050565b6000601b60009054906101000a900460ff16905090565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000602154905090565b6000601154905090565b6117c76118b7565b73ffffffffffffffffffffffffffffffffffffffff166117e56110a9565b73ffffffffffffffffffffffffffffffffffffffff161461183b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183290613799565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a2906136b9565b60405180910390fd5b6118b481612547565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561192f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611926906137d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561199f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611996906136d9565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a7d9190613819565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af1906137b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190613699565b60405180910390fd5b60008111611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba490613739565b60405180910390fd5b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b906136f9565b60405180910390fd5b60001515601b60009054906101000a900460ff1615151415611d3157601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cf15750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2790613759565b60405180910390fd5b5b60001515601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611de1575060001515601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15611ea557601254821115611e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2290613719565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611ea45760115482611e8e85610fc9565b611e989190613974565b1115611ea357600080fd5b5b5b6000611eb030610fc9565b9050600a548110158015611ed15750602060009054906101000a900460ff16155b8015611f2b5750602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f435750602060019054906101000a900460ff165b15611f6157600a548110611f6057600a549050611f5f8161260b565b5b5b600060019050600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120085750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561201a576000600481905550600090505b60008082156123165760011515601360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514806120d2575060011515601360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15612112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612109906137f9565b60405180910390fd5b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121b95750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156122155760006004819055506064601e54876121d691906139fb565b6121e091906139ca565b91506064601c54876121f291906139fb565b6121fc91906139ca565b9050808261220a9190613974565b600481905550612315565b600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122bc5750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156123145760006004819055506064601954876122d991906139fb565b6122e391906139ca565b91506064601754876122f591906139fb565b6122ff91906139ca565b9050808261230d9190613974565b6004819055505b5b5b85856123229190613a55565b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508082876123729190613a55565b61237c9190613a55565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123ca9190613974565b92505081905550600081146124cb57600454600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461242a9190613974565b9250508190555080602260008282546124439190613974565b92505081905550816021600082825461245c9190613974565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516124c29190613819565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454896125289190613a55565b6040516125359190613819565b60405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001602060006101000a81548160ff0219169083151502179055506126316022546126a1565b61263c60215461272c565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f019048160405161266b9190613819565b60405180910390a1600060218190555060006022819055506000602060006101000a81548160ff02191690831515021790555050565b60006002826126b091906139ca565b9050600081836126c09190613a55565b905060004790506126d083612a12565b600081476126de9190613a55565b90506126ea8382612cd6565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161271d939291906138e8565b60405180910390a15050505050565b6000600267ffffffffffffffff81111561276f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561279d5781602001602082028036833780820191505090505b50905030816000815181106127db577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561287d57600080fd5b505afa158015612891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b59190612e8a565b816001815181106128ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061295630602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118bf565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129dc959493929190613834565b600060405180830381600087803b1580156129f657600080fd5b505af1158015612a0a573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff811115612a55577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a835781602001602082028036833780820191505090505b5090503081600081518110612ac1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612b6357600080fd5b505afa158015612b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9b9190612e8a565b81600181518110612bd5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c3c30602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118bf565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ca095949392919061388e565b600060405180830381600087803b158015612cba57600080fd5b505af1158015612cce573d6000803e3d6000fd5b505050505050565b612d0330602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118bf565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000807f0000000000000000000000000000000000000000000000000000000000000000426040518863ffffffff1660e01b8152600401612d8a969594939291906135fb565b6060604051808303818588803b158015612da357600080fd5b505af1158015612db7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ddc9190613008565b5050505050565b600081359050612df281613c2e565b92915050565b600081519050612e0781613c2e565b92915050565b600081359050612e1c81613c45565b92915050565b600081359050612e3181613c5c565b92915050565b600081359050612e4681613c73565b92915050565b600081519050612e5b81613c73565b92915050565b600060208284031215612e7357600080fd5b6000612e8184828501612de3565b91505092915050565b600060208284031215612e9c57600080fd5b6000612eaa84828501612df8565b91505092915050565b60008060408385031215612ec657600080fd5b6000612ed485828601612e0d565b9250506020612ee585828601612e22565b9150509250929050565b60008060408385031215612f0257600080fd5b6000612f1085828601612de3565b9250506020612f2185828601612de3565b9150509250929050565b600080600060608486031215612f4057600080fd5b6000612f4e86828701612de3565b9350506020612f5f86828701612de3565b9250506040612f7086828701612e37565b9150509250925092565b60008060408385031215612f8d57600080fd5b6000612f9b85828601612de3565b9250506020612fac85828601612e37565b9150509250929050565b600060208284031215612fc857600080fd5b6000612fd684828501612e22565b91505092915050565b600060208284031215612ff157600080fd5b6000612fff84828501612e37565b91505092915050565b60008060006060848603121561301d57600080fd5b600061302b86828701612e4c565b935050602061303c86828701612e4c565b925050604061304d86828701612e4c565b9150509250925092565b6000613063838361308d565b60208301905092915050565b61307881613ae3565b82525050565b61308781613a9b565b82525050565b61309681613a89565b82525050565b6130a581613a89565b82525050565b60006130b68261392f565b6130c08185613952565b93506130cb8361391f565b8060005b838110156130fc5781516130e38882613057565b97506130ee83613945565b9250506001810190506130cf565b5085935050505092915050565b61311281613aad565b82525050565b61312181613af5565b82525050565b60006131328261393a565b61313c8185613963565b935061314c818560208601613b2b565b61315581613c1d565b840191505092915050565b600061316d602383613963565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006131d3602683613963565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613239602283613963565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061329f602683613963565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613305602883613963565b91507f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008301527f78416d6f756e742e0000000000000000000000000000000000000000000000006020830152604082019050919050565b600061336b603283613963565b91507f45524332303a207472616e73666572656420616d6f756e74206d75737420626560008301527f2067726561746572207468616e207a65726f00000000000000000000000000006020830152604082019050919050565b60006133d1601d83613963565b91507f43616e742074726164652c2074726164652069732064697361626c65640000006000830152602082019050919050565b6000613411602883613963565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613477602083613963565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006134b7602583613963565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061351d602483613963565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613583601183613963565b91507f4e6f20626f74732063616e2074726164650000000000000000000000000000006000830152602082019050919050565b6135bf81613ad9565b82525050565b60006020820190506135da600083018461309c565b92915050565b60006020820190506135f5600083018461307e565b92915050565b600060c082019050613610600083018961309c565b61361d60208301886135b6565b61362a6040830187613118565b6136376060830186613118565b613644608083018561309c565b61365160a08301846135b6565b979650505050505050565b60006020820190506136716000830184613109565b92915050565b600060208201905081810360008301526136918184613127565b905092915050565b600060208201905081810360008301526136b281613160565b9050919050565b600060208201905081810360008301526136d2816131c6565b9050919050565b600060208201905081810360008301526136f28161322c565b9050919050565b6000602082019050818103600083015261371281613292565b9050919050565b60006020820190508181036000830152613732816132f8565b9050919050565b600060208201905081810360008301526137528161335e565b9050919050565b60006020820190508181036000830152613772816133c4565b9050919050565b6000602082019050818103600083015261379281613404565b9050919050565b600060208201905081810360008301526137b28161346a565b9050919050565b600060208201905081810360008301526137d2816134aa565b9050919050565b600060208201905081810360008301526137f281613510565b9050919050565b6000602082019050818103600083015261381281613576565b9050919050565b600060208201905061382e60008301846135b6565b92915050565b600060a08201905061384960008301886135b6565b6138566020830187613118565b818103604083015261386881866130ab565b9050613877606083018561306f565b61388460808301846135b6565b9695505050505050565b600060a0820190506138a360008301886135b6565b6138b06020830187613118565b81810360408301526138c281866130ab565b90506138d1606083018561309c565b6138de60808301846135b6565b9695505050505050565b60006060820190506138fd60008301866135b6565b61390a60208301856135b6565b61391760408301846135b6565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061397f82613ad9565b915061398a83613ad9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139bf576139be613b90565b5b828201905092915050565b60006139d582613ad9565b91506139e083613ad9565b9250826139f0576139ef613bbf565b5b828204905092915050565b6000613a0682613ad9565b9150613a1183613ad9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a4a57613a49613b90565b5b828202905092915050565b6000613a6082613ad9565b9150613a6b83613ad9565b925082821015613a7e57613a7d613b90565b5b828203905092915050565b6000613a9482613ab9565b9050919050565b6000613aa682613ab9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613aee82613b07565b9050919050565b6000613b0082613ad9565b9050919050565b6000613b1282613b19565b9050919050565b6000613b2482613ab9565b9050919050565b60005b83811015613b49578082015181840152602081019050613b2e565b83811115613b58576000848401525b50505050565b60006002820490506001821680613b7657607f821691505b60208210811415613b8a57613b89613bee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b613c3781613a89565b8114613c4257600080fd5b50565b613c4e81613a9b565b8114613c5957600080fd5b50565b613c6581613aad565b8114613c7057600080fd5b50565b613c7c81613ad9565b8114613c8757600080fd5b5056fea26469706673582212208d20e73a7927c7da12cc60a7f47e1d2763a1fe5bb0b1050290ccf556ab571dc164736f6c63430008000033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c80638da5cb5b11610144578063b62496f5116100b6578063d7d7442f1161007a578063d7d7442f1461091d578063d81f337c14610946578063dd62ed3e14610971578063ddcf9b98146109ae578063e1370dd3146109d9578063f2fde38b14610a0457610272565b8063b62496f514610826578063bf9b015914610863578063bf9eb5401461088e578063cba0e996146108b7578063d1294d4c146108f457610272565b8063a5ece94111610108578063a5ece9411461071a578063a6c38f5914610745578063a7a074521461076e578063a9059cbb14610797578063affd1c7c146107d4578063b4d95a93146107fd57610272565b80638da5cb5b1461064357806390f502831461066e57806395d89b41146106995780639b136da4146106c4578063a04bdc81146106ef57610272565b80634a0e963c116101dd5780636573c4df116101a15780636573c4df1461054757806366b1eae0146105705780636a340dae1461059957806370a08231146105c4578063715018a614610601578063893d20e81461061857610272565b80634a0e963c146104725780634a74bb021461049b5780634bd7ace5146104c65780635297defd146104f157806364c161631461051c57610272565b806323b872dd1161022f57806323b872dd1461036057806327c8f8351461039d5780632d03420b146103c8578063313ce567146103f1578063487a69051461041c57806349bd5a5e1461044757610272565b806306fdde0314610277578063095ea7b3146102a257806318160ddd146102df578063220f66961461030a57806322788f861461033557610272565b3661027257005b600080fd5b34801561028357600080fd5b5061028c610a2d565b6040516102999190613677565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c49190612f7a565b610abf565b6040516102d6919061365c565b60405180910390f35b3480156102eb57600080fd5b506102f4610add565b6040516103019190613819565b60405180910390f35b34801561031657600080fd5b5061031f610ae7565b60405161032c919061365c565b60405180910390f35b34801561034157600080fd5b5061034a610afa565b6040516103579190613819565b60405180910390f35b34801561036c57600080fd5b5061038760048036038101906103829190612f2b565b610b04565b604051610394919061365c565b60405180910390f35b3480156103a957600080fd5b506103b2610c82565b6040516103bf91906135c5565b60405180910390f35b3480156103d457600080fd5b506103ef60048036038101906103ea9190612fb6565b610ca6565b005b3480156103fd57600080fd5b50610406610d3f565b6040516104139190613819565b60405180910390f35b34801561042857600080fd5b50610431610d59565b60405161043e9190613819565b60405180910390f35b34801561045357600080fd5b5061045c610d63565b60405161046991906135c5565b60405180910390f35b34801561047e57600080fd5b5061049960048036038101906104949190612e61565b610d89565b005b3480156104a757600080fd5b506104b0610e60565b6040516104bd919061365c565b60405180910390f35b3480156104d257600080fd5b506104db610e73565b6040516104e89190613819565b60405180910390f35b3480156104fd57600080fd5b50610506610e7d565b6040516105139190613819565b60405180910390f35b34801561052857600080fd5b50610531610e87565b60405161053e9190613819565b60405180910390f35b34801561055357600080fd5b5061056e60048036038101906105699190612fdf565b610e91565b005b34801561057c57600080fd5b5061059760048036038101906105929190612fdf565b610f39565b005b3480156105a557600080fd5b506105ae610fbf565b6040516105bb9190613819565b60405180910390f35b3480156105d057600080fd5b506105eb60048036038101906105e69190612e61565b610fc9565b6040516105f89190613819565b60405180910390f35b34801561060d57600080fd5b50610616611012565b005b34801561062457600080fd5b5061062d61109a565b60405161063a91906135c5565b60405180910390f35b34801561064f57600080fd5b506106586110a9565b60405161066591906135c5565b60405180910390f35b34801561067a57600080fd5b506106836110d2565b6040516106909190613819565b60405180910390f35b3480156106a557600080fd5b506106ae6110dc565b6040516106bb9190613677565b60405180910390f35b3480156106d057600080fd5b506106d961116e565b6040516106e69190613819565b60405180910390f35b3480156106fb57600080fd5b50610704611178565b6040516107119190613819565b60405180910390f35b34801561072657600080fd5b5061072f61117e565b60405161073c91906135e0565b60405180910390f35b34801561075157600080fd5b5061076c60048036038101906107679190612eb3565b6111a4565b005b34801561077a57600080fd5b5061079560048036038101906107909190612fdf565b61127b565b005b3480156107a357600080fd5b506107be60048036038101906107b99190612f7a565b611323565b6040516107cb919061365c565b60405180910390f35b3480156107e057600080fd5b506107fb60048036038101906107f69190612fdf565b611341565b005b34801561080957600080fd5b50610824600480360381019061081f9190612e61565b6113c7565b005b34801561083257600080fd5b5061084d60048036038101906108489190612e61565b61149e565b60405161085a919061365c565b60405180910390f35b34801561086f57600080fd5b506108786114be565b6040516108859190613819565b60405180910390f35b34801561089a57600080fd5b506108b560048036038101906108b09190612e61565b6114c8565b005b3480156108c357600080fd5b506108de60048036038101906108d99190612e61565b611588565b6040516108eb919061365c565b60405180910390f35b34801561090057600080fd5b5061091b60048036038101906109169190612fdf565b6115de565b005b34801561092957600080fd5b50610944600480360381019061093f9190612fdf565b611687565b005b34801561095257600080fd5b5061095b61170d565b604051610968919061365c565b60405180910390f35b34801561097d57600080fd5b5061099860048036038101906109939190612eef565b611724565b6040516109a59190613819565b60405180910390f35b3480156109ba57600080fd5b506109c36117ab565b6040516109d09190613819565b60405180910390f35b3480156109e557600080fd5b506109ee6117b5565b6040516109fb9190613819565b60405180910390f35b348015610a1057600080fd5b50610a2b6004803603810190610a269190612e61565b6117bf565b005b606060018054610a3c90613b5e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6890613b5e565b8015610ab55780601f10610a8a57610100808354040283529160200191610ab5565b820191906000526020600020905b815481529060010190602001808311610a9857829003601f168201915b5050505050905090565b6000610ad3610acc6118b7565b84846118bf565b6001905092915050565b6000600954905090565b602060009054906101000a900460ff1681565b6000600854905090565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610b4f6118b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390613779565b60405180910390fd5b610bd7848484611a8a565b610c7784610be36118b7565b84600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c2d6118b7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610c729190613a55565b6118bf565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b610cae6118b7565b73ffffffffffffffffffffffffffffffffffffffff16610ccc6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1990613799565b60405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b6000600360009054906101000a900460ff1660ff16905090565b6000600a54905090565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610d916118b7565b73ffffffffffffffffffffffffffffffffffffffff16610daf6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614610e05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfc90613799565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900460ff1681565b6000601754905090565b6000601e54905090565b6000602254905090565b610e996118b7565b73ffffffffffffffffffffffffffffffffffffffff16610eb76110a9565b73ffffffffffffffffffffffffffffffffffffffff1614610f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0490613799565b60405180910390fd5b806005819055506064600554600954610f2691906139fb565b610f3091906139ca565b60118190555050565b610f416118b7565b73ffffffffffffffffffffffffffffffffffffffff16610f5f6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614610fb5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fac90613799565b60405180910390fd5b80601e8190555050565b6000600754905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61101a6118b7565b73ffffffffffffffffffffffffffffffffffffffff166110386110a9565b73ffffffffffffffffffffffffffffffffffffffff161461108e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108590613799565b60405180910390fd5b6110986000612547565b565b60006110a46110a9565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601c54905090565b6060600280546110eb90613b5e565b80601f016020809104026020016040519081016040528092919081815260200182805461111790613b5e565b80156111645780601f1061113957610100808354040283529160200191611164565b820191906000526020600020905b81548152906001019060200180831161114757829003601f168201915b5050505050905090565b6000601954905090565b600a5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6111ac6118b7565b73ffffffffffffffffffffffffffffffffffffffff166111ca6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614611220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121790613799565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6112836118b7565b73ffffffffffffffffffffffffffffffffffffffff166112a16110a9565b73ffffffffffffffffffffffffffffffffffffffff16146112f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ee90613799565b60405180910390fd5b80600681905550606460065460095461131091906139fb565b61131a91906139ca565b60128190555050565b60006113376113306118b7565b8484611a8a565b6001905092915050565b6113496118b7565b73ffffffffffffffffffffffffffffffffffffffff166113676110a9565b73ffffffffffffffffffffffffffffffffffffffff16146113bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b490613799565b60405180910390fd5b8060198190555050565b6113cf6118b7565b73ffffffffffffffffffffffffffffffffffffffff166113ed6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614611443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143a90613799565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000601254905090565b6114d06118b7565b73ffffffffffffffffffffffffffffffffffffffff166114ee6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614611544576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153b90613799565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6115e66118b7565b73ffffffffffffffffffffffffffffffffffffffff166116046110a9565b73ffffffffffffffffffffffffffffffffffffffff161461165a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165190613799565b60405180910390fd5b806007819055506103e860075460095461167491906139fb565b61167e91906139ca565b600a8190555050565b61168f6118b7565b73ffffffffffffffffffffffffffffffffffffffff166116ad6110a9565b73ffffffffffffffffffffffffffffffffffffffff1614611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa90613799565b60405180910390fd5b8060088190555050565b6000601b60009054906101000a900460ff16905090565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000602154905090565b6000601154905090565b6117c76118b7565b73ffffffffffffffffffffffffffffffffffffffff166117e56110a9565b73ffffffffffffffffffffffffffffffffffffffff161461183b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183290613799565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a2906136b9565b60405180910390fd5b6118b481612547565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561192f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611926906137d9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561199f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611996906136d9565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a7d9190613819565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af1906137b9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b6a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6190613699565b60405180910390fd5b60008111611bad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba490613739565b60405180910390fd5b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b906136f9565b60405180910390fd5b60001515601b60009054906101000a900460ff1615151415611d3157601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611cf15750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2790613759565b60405180910390fd5b5b60001515601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611de1575060001515601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15611ea557601254821115611e2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2290613719565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611ea45760115482611e8e85610fc9565b611e989190613974565b1115611ea357600080fd5b5b5b6000611eb030610fc9565b9050600a548110158015611ed15750602060009054906101000a900460ff16155b8015611f2b5750602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f435750602060019054906101000a900460ff165b15611f6157600a548110611f6057600a549050611f5f8161260b565b5b5b600060019050600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120085750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561201a576000600481905550600090505b60008082156123165760011515601360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514806120d2575060011515601360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15612112576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612109906137f9565b60405180910390fd5b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156121b95750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b156122155760006004819055506064601e54876121d691906139fb565b6121e091906139ca565b91506064601c54876121f291906139fb565b6121fc91906139ca565b9050808261220a9190613974565b600481905550612315565b600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156122bc5750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b156123145760006004819055506064601954876122d991906139fb565b6122e391906139ca565b91506064601754876122f591906139fb565b6122ff91906139ca565b9050808261230d9190613974565b6004819055505b5b5b85856123229190613a55565b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508082876123729190613a55565b61237c9190613a55565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546123ca9190613974565b92505081905550600081146124cb57600454600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461242a9190613974565b9250508190555080602260008282546124439190613974565b92505081905550816021600082825461245c9190613974565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516124c29190613819565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454896125289190613a55565b6040516125359190613819565b60405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001602060006101000a81548160ff0219169083151502179055506126316022546126a1565b61263c60215461272c565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f019048160405161266b9190613819565b60405180910390a1600060218190555060006022819055506000602060006101000a81548160ff02191690831515021790555050565b60006002826126b091906139ca565b9050600081836126c09190613a55565b905060004790506126d083612a12565b600081476126de9190613a55565b90506126ea8382612cd6565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161271d939291906138e8565b60405180910390a15050505050565b6000600267ffffffffffffffff81111561276f577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561279d5781602001602082028036833780820191505090505b50905030816000815181106127db577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561287d57600080fd5b505afa158015612891573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128b59190612e8a565b816001815181106128ef577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061295630602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118bf565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016129dc959493929190613834565b600060405180830381600087803b1580156129f657600080fd5b505af1158015612a0a573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff811115612a55577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612a835781602001602082028036833780820191505090505b5090503081600081518110612ac1577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612b6357600080fd5b505afa158015612b77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b9b9190612e8a565b81600181518110612bd5577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612c3c30602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118bf565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ca095949392919061388e565b600060405180830381600087803b158015612cba57600080fd5b505af1158015612cce573d6000803e3d6000fd5b505050505050565b612d0330602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118bf565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000807f000000000000000000000000000000000000000000000000000000000000dead426040518863ffffffff1660e01b8152600401612d8a969594939291906135fb565b6060604051808303818588803b158015612da357600080fd5b505af1158015612db7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612ddc9190613008565b5050505050565b600081359050612df281613c2e565b92915050565b600081519050612e0781613c2e565b92915050565b600081359050612e1c81613c45565b92915050565b600081359050612e3181613c5c565b92915050565b600081359050612e4681613c73565b92915050565b600081519050612e5b81613c73565b92915050565b600060208284031215612e7357600080fd5b6000612e8184828501612de3565b91505092915050565b600060208284031215612e9c57600080fd5b6000612eaa84828501612df8565b91505092915050565b60008060408385031215612ec657600080fd5b6000612ed485828601612e0d565b9250506020612ee585828601612e22565b9150509250929050565b60008060408385031215612f0257600080fd5b6000612f1085828601612de3565b9250506020612f2185828601612de3565b9150509250929050565b600080600060608486031215612f4057600080fd5b6000612f4e86828701612de3565b9350506020612f5f86828701612de3565b9250506040612f7086828701612e37565b9150509250925092565b60008060408385031215612f8d57600080fd5b6000612f9b85828601612de3565b9250506020612fac85828601612e37565b9150509250929050565b600060208284031215612fc857600080fd5b6000612fd684828501612e22565b91505092915050565b600060208284031215612ff157600080fd5b6000612fff84828501612e37565b91505092915050565b60008060006060848603121561301d57600080fd5b600061302b86828701612e4c565b935050602061303c86828701612e4c565b925050604061304d86828701612e4c565b9150509250925092565b6000613063838361308d565b60208301905092915050565b61307881613ae3565b82525050565b61308781613a9b565b82525050565b61309681613a89565b82525050565b6130a581613a89565b82525050565b60006130b68261392f565b6130c08185613952565b93506130cb8361391f565b8060005b838110156130fc5781516130e38882613057565b97506130ee83613945565b9250506001810190506130cf565b5085935050505092915050565b61311281613aad565b82525050565b61312181613af5565b82525050565b60006131328261393a565b61313c8185613963565b935061314c818560208601613b2b565b61315581613c1d565b840191505092915050565b600061316d602383613963565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006131d3602683613963565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613239602283613963565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061329f602683613963565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613305602883613963565b91507f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008301527f78416d6f756e742e0000000000000000000000000000000000000000000000006020830152604082019050919050565b600061336b603283613963565b91507f45524332303a207472616e73666572656420616d6f756e74206d75737420626560008301527f2067726561746572207468616e207a65726f00000000000000000000000000006020830152604082019050919050565b60006133d1601d83613963565b91507f43616e742074726164652c2074726164652069732064697361626c65640000006000830152602082019050919050565b6000613411602883613963565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613477602083613963565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006134b7602583613963565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061351d602483613963565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613583601183613963565b91507f4e6f20626f74732063616e2074726164650000000000000000000000000000006000830152602082019050919050565b6135bf81613ad9565b82525050565b60006020820190506135da600083018461309c565b92915050565b60006020820190506135f5600083018461307e565b92915050565b600060c082019050613610600083018961309c565b61361d60208301886135b6565b61362a6040830187613118565b6136376060830186613118565b613644608083018561309c565b61365160a08301846135b6565b979650505050505050565b60006020820190506136716000830184613109565b92915050565b600060208201905081810360008301526136918184613127565b905092915050565b600060208201905081810360008301526136b281613160565b9050919050565b600060208201905081810360008301526136d2816131c6565b9050919050565b600060208201905081810360008301526136f28161322c565b9050919050565b6000602082019050818103600083015261371281613292565b9050919050565b60006020820190508181036000830152613732816132f8565b9050919050565b600060208201905081810360008301526137528161335e565b9050919050565b60006020820190508181036000830152613772816133c4565b9050919050565b6000602082019050818103600083015261379281613404565b9050919050565b600060208201905081810360008301526137b28161346a565b9050919050565b600060208201905081810360008301526137d2816134aa565b9050919050565b600060208201905081810360008301526137f281613510565b9050919050565b6000602082019050818103600083015261381281613576565b9050919050565b600060208201905061382e60008301846135b6565b92915050565b600060a08201905061384960008301886135b6565b6138566020830187613118565b818103604083015261386881866130ab565b9050613877606083018561306f565b61388460808301846135b6565b9695505050505050565b600060a0820190506138a360008301886135b6565b6138b06020830187613118565b81810360408301526138c281866130ab565b90506138d1606083018561309c565b6138de60808301846135b6565b9695505050505050565b60006060820190506138fd60008301866135b6565b61390a60208301856135b6565b61391760408301846135b6565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061397f82613ad9565b915061398a83613ad9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156139bf576139be613b90565b5b828201905092915050565b60006139d582613ad9565b91506139e083613ad9565b9250826139f0576139ef613bbf565b5b828204905092915050565b6000613a0682613ad9565b9150613a1183613ad9565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613a4a57613a49613b90565b5b828202905092915050565b6000613a6082613ad9565b9150613a6b83613ad9565b925082821015613a7e57613a7d613b90565b5b828203905092915050565b6000613a9482613ab9565b9050919050565b6000613aa682613ab9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000613aee82613b07565b9050919050565b6000613b0082613ad9565b9050919050565b6000613b1282613b19565b9050919050565b6000613b2482613ab9565b9050919050565b60005b83811015613b49578082015181840152602081019050613b2e565b83811115613b58576000848401525b50505050565b60006002820490506001821680613b7657607f821691505b60208210811415613b8a57613b89613bee565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b613c3781613a89565b8114613c4257600080fd5b50565b613c4e81613a9b565b8114613c5957600080fd5b50565b613c6581613aad565b8114613c7057600080fd5b50565b613c7c81613ad9565b8114613c8757600080fd5b5056fea26469706673582212208d20e73a7927c7da12cc60a7f47e1d2763a1fe5bb0b1050290ccf556ab571dc164736f6c63430008000033

Deployed Bytecode Sourcemap

5350:12382:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9567:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9331:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8813:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6983:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10943:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10049:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7057:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14656:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9489:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17632:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7523:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16223:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7014:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10577:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10851:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8719:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9885:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17048:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17549:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8913:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4787:86;;;;;;;;;;;;;:::i;:::-;;8545:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4208:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10759:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9646:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10667:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5870:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6197:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10453:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9732:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9025:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16959:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16329:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6119:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17229:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16564:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11038;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17312:153;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16439:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17467:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9189:140;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8625:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17138:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5006:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9567:77;9606:13;9635:5;9628:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9567:77;:::o;9331:156::-;9408:4;9424:37;9433:12;:10;:12::i;:::-;9446:7;9454:6;9424:8;:37::i;:::-;9479:4;9472:11;;9331:156;;;;:::o;8813:98::-;8868:7;8894:12;;8887:19;;8813:98;:::o;6983:28::-;;;;;;;;;;;;;:::o;10943:93::-;10994:7;11016:16;;11009:23;;10943:93;:::o;10049:370::-;10165:4;10195:11;:19;10207:6;10195:19;;;;;;;;;;;;;;;:33;10215:12;:10;:12::i;:::-;10195:33;;;;;;;;;;;;;;;;10185:6;:43;;10177:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;10280:36;10290:6;10298:9;10309:6;10280:9;:36::i;:::-;10323:74;10332:6;10340:12;:10;:12::i;:::-;10390:6;10354:11;:19;10366:6;10354:19;;;;;;;;;;;;;;;:33;10374:12;:10;:12::i;:::-;10354:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;10323:8;:74::i;:::-;10411:4;10404:11;;10049:370;;;;;:::o;7057:81::-;;;:::o;14656:82::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14728:6:::1;14713:12;;:21;;;;;;;;;;;;;;;;;;14656:82:::0;:::o;9489:76::-;9530:7;9552:9;;;;;;;;;;;9545:16;;;;9489:76;:::o;17632:97::-;17683:7;17705:20;;17698:27;;17632:97;:::o;7523:28::-;;;;;;;;;;;;;:::o;16223:104::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16319:4:::1;16288:17;:28;16306:9;16288:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16223:104:::0;:::o;7014:40::-;;;;;;;;;;;;;:::o;10577:88::-;10626:7;10652:9;;10645:16;;10577:88;:::o;10851:90::-;10901:7;10927:10;;10920:17;;10851:90;:::o;8719:91::-;8770:7;8796:9;;8789:16;;8719:91;:::o;9885:161::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9977:6:::1;9957:17;:26;;;;10039:3;10021:17;;10008:12;;:30;;;;:::i;:::-;:34;;;;:::i;:::-;9990:15;:52;;;;9885:161:::0;:::o;17048:88::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17123:9:::1;17111:10;:21;;;;17048:88:::0;:::o;17549:81::-;17592:7;17614:12;;17607:19;;17549:81;:::o;8913:110::-;8979:7;9001:9;:18;9011:7;9001:18;;;;;;;;;;;;;;;;8994:25;;8913:110;;;:::o;4787:86::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4848:21:::1;4866:1;4848:9;:21::i;:::-;4787:86::o:0;8545:78::-;8586:7;8612;:5;:7::i;:::-;8605:14;;8545:78;:::o;4208:79::-;4254:7;4277:6;;;;;;;;;;;4270:13;;4208:79;:::o;10759:90::-;10809:7;10835:10;;10828:17;;10759:90;:::o;9646:80::-;9687:13;9715:7;9708:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9646:80;:::o;10667:88::-;10716:7;10742:9;;10735:16;;10667:88;:::o;5870:71::-;;;;:::o;6197:93::-;;;;;;;;;;;;;:::o;10453:122::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10566:5:::1;10540:10;:23;10551:11;10540:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;10453:122:::0;;:::o;9732:150::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9816:6:::1;9800:13;:22;;;;9870:3;9856:13;;9843:12;;:26;;;;:::i;:::-;:30;;;;:::i;:::-;9829:11;:44;;;;9732:150:::0;:::o;9025:162::-;9105:4;9121:40;9131:12;:10;:12::i;:::-;9144:9;9154:6;9121:9;:40::i;:::-;9179:4;9172:11;;9025:162;;;;:::o;16959:87::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17033:9:::1;17022;:20;;;;16959:87:::0;:::o;16329:108::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16428:5:::1;16398:17;:27;16416:8;16398:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16329:108:::0;:::o;6119:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;17229:81::-;17273:7;17295:11;;17288:18;;17229:81;:::o;16564:110::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16659:10:::1;16632:16;;:38;;;;;;;;;;;;;;;;;;16564:110:::0;:::o;11038:::-;11095:4;11118:17;:26;11136:7;11118:26;;;;;;;;;;;;;;;;;;;;;;;;;11111:33;;11038:110;;;:::o;17312:153::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17394:6:::1;17379:12;:21;;;;17456:4;17443:12;;17430;;:25;;;;:::i;:::-;:30;;;;:::i;:::-;17407:20;:53;;;;17312:153:::0;:::o;16439:102::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16525:12:::1;16506:16;:31;;;;16439:102:::0;:::o;17467:80::-;17512:4;17531:12;;;;;;;;;;;17524:19;;17467:80;:::o;9189:140::-;9272:7;9298:11;:18;9310:5;9298:18;;;;;;;;;;;;;;;:27;9317:7;9298:27;;;;;;;;;;;;;;;;9291:34;;9189:140;;;;:::o;8625:91::-;8676:7;8702:9;;8695:16;;8625:91;:::o;17138:89::-;17186:7;17208:15;;17201:22;;17138:89;:::o;5006:180::-;4409:12;:10;:12::i;:::-;4398:23;;:7;:5;:7::i;:::-;:23;;;4390:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5111:1:::1;5091:22;;:8;:22;;;;5083:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5163:19;5173:8;5163:9;:19::i;:::-;5006:180:::0;:::o;522:90::-;575:7;598:10;591:17;;522:90;:::o;15881:314::-;15986:1;15969:19;;:5;:19;;;;15961:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16063:1;16044:21;;:7;:21;;;;16036:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16141:6;16111:11;:18;16123:5;16111:18;;;;;;;;;;;;;;;:27;16130:7;16111:27;;;;;;;;;;;;;;;:36;;;;16175:7;16159:32;;16168:5;16159:32;;;16184:6;16159:32;;;;;;:::i;:::-;;;;;;;;15881:314;;;:::o;11150:2843::-;11251:1;11235:18;;:4;:18;;;;11227:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11324:1;11310:16;;:2;:16;;;;11302:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11390:1;11381:6;:10;11373:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11452:21;11476:9;:15;11486:4;11476:15;;;;;;;;;;;;;;;;11452:39;;11523:6;11506:13;:23;;11498:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11598:5;11582:21;;:12;;;;;;;;;;;:21;;;11579:133;;;11623:17;:21;11641:2;11623:21;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;11648:17;:23;11666:4;11648:23;;;;;;;;;;;;;;;;;;;;;;;;;11623:48;11615:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11579:133;11744:5;11721:28;;:17;:21;11739:2;11721:21;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;:62;;;;;11778:5;11753:30;;:17;:23;11771:4;11753:23;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;11721:62;11718:262;;;11809:11;;11799:6;:21;;11791:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11884:13;;;;;;;;;;;11876:21;;:4;:21;;;11873:100;;;11945:15;;11935:6;11921:13;11931:2;11921:9;:13::i;:::-;:20;;;;:::i;:::-;:39;;11913:48;;;;;;11873:100;11718:262;11986:25;12014:24;12032:4;12014:9;:24::i;:::-;11986:52;;12068:20;;12048:17;:40;;:70;;;;;12102:16;;;;;;;;;;;12101:17;12048:70;:104;;;;;12139:13;;;;;;;;;;;12131:21;;:4;:21;;;;12048:104;:138;;;;;12165:21;;;;;;;;;;;12048:138;12045:344;;;12226:20;;12205:17;:41;12202:176;;12287:20;;12267:40;;12326:36;12344:17;12326;:36::i;:::-;12202:176;12045:344;12399:13;12415:4;12399:20;;12445:17;:23;12463:4;12445:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;12472:17;:21;12490:2;12472:21;;;;;;;;;;;;;;;;;;;;;;;;;12445:48;12442:137;;;12526:1;12510:13;:17;;;;12553:5;12542:16;;12442:137;12589:17;12621;12693:8;12690:871;;;12784:4;12764:24;;:10;:16;12775:4;12764:16;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;:46;;;;12806:4;12790:20;;:10;:14;12801:2;12790:14;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;12764:46;12761:112;;;12830:27;;;;;;;;;;:::i;:::-;;;;;;;;12761:112;12919:25;:29;12945:2;12919:29;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;;12966:7;;;;;;;;;;;12952:22;;:2;:22;;;;12919:55;12915:625;;;13015:1;12999:13;:17;;;;13071:3;13060:10;;13051:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;13039:35;;13129:3;13118:10;;13109:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;13097:35;;13183:9;13171;:21;;;;:::i;:::-;13155:13;:37;;;;12915:625;;;13254:25;:31;13280:4;13254:31;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;13305:7;;;;;;;;;;;13289:24;;:4;:24;;;;13254:59;13251:289;;;13360:1;13344:13;:17;;;;13411:3;13401:9;;13392:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;13380:34;;13464:3;13454:9;;13445:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;13433:34;;13514:9;13502;:21;;;;:::i;:::-;13486:13;:37;;;;13251:289;12915:625;12690:871;13605:6;13589:13;:22;;;;:::i;:::-;13571:9;:15;13581:4;13571:15;;;;;;;;;;;;;;;:40;;;;13660:9;13648;13639:6;:18;;;;:::i;:::-;:30;;;;:::i;:::-;13622:9;:13;13632:2;13622:13;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;13694:1;13681:9;:14;13678:250;;13736:13;;13708:9;:24;13726:4;13708:24;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;13808:9;13795;;:22;;;;;;;:::i;:::-;;;;;;;;13841:9;13828;;:22;;;;;;;:::i;:::-;;;;;;;;13889:4;13866:44;;13875:4;13866:44;;;13896:13;;13866:44;;;;;;:::i;:::-;;;;;;;;13678:250;13958:2;13943:39;;13952:4;13943:39;;;13968:13;;13961:6;:20;;;;:::i;:::-;13943:39;;;;;;:::i;:::-;;;;;;;;11150:2843;;;;;;;;:::o;5188:157::-;5240:16;5259:6;;;;;;;;;;;5240:25;;5281:8;5272:6;;:17;;;;;;;;;;;;;;;;;;5332:8;5301:40;;5322:8;5301:40;;;;;;;;;;;;5188:157;;:::o;13995:238::-;7620:4;7601:16;;:23;;;;;;;;;;;;;;;;;;14071:25:::1;14086:9;;14071:14;:25::i;:::-;14103:30;14123:9;;14103:19;:30::i;:::-;14145:44;14175:13;14145:44;;;;;;:::i;:::-;;;;;;;;14208:1;14196:9;:13;;;;14228:1;14216:9;:13;;;;7658:5:::0;7639:16;;:24;;;;;;;;;;;;;;;;;;13995:238;:::o;14740:396::-;14804:12;14837:1;14819:15;:19;;;;:::i;:::-;14804:34;;14845:17;14883:4;14865:15;:22;;;;:::i;:::-;14845:42;;14894:22;14919:21;14894:46;;14947:22;14964:4;14947:16;:22::i;:::-;14976:18;15022:14;14997:21;:40;;;;:::i;:::-;14976:61;;15044:35;15057:9;15068:10;15044:12;:35::i;:::-;15091:41;15106:4;15111:10;15122:9;15091:41;;;;;;;;:::i;:::-;;;;;;;;14740:396;;;;;:::o;14235:419::-;14294:21;14332:1;14318:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14294:40;;14359:4;14341;14346:1;14341:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;14381:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14371:4;14376:1;14371:7;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;14402:49;14419:4;14434:7;;;;;;;;;;;14444:6;14402:8;:49::i;:::-;14459:7;;;;;;;;;;;:58;;;14528:6;14545:1;14586:4;14601:16;;;;;;;;;;;14628:15;14459:191;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14235:419;;:::o;15138:428::-;15199:21;15237:1;15223:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15199:40;;15264:4;15246;15251:1;15246:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15286:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15276:4;15281:1;15276:7;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;15307:54;15324:4;15339:7;;;;;;;;;;;15349:11;15307:8;:54::i;:::-;15369:7;;;;;;;;;;;:58;;;15438:11;15460:1;15501:4;15524;15540:15;15369:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15138:428;;:::o;15569:310::-;15644:54;15661:4;15676:7;;;;;;;;;;;15686:11;15644:8;:54::i;:::-;15705:7;;;;;;;;;;;:23;;;15735:9;15764:4;15780:11;15802:1;15814;15826:11;15853:15;15705:170;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15569:310;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:133::-;;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;511:84;;;;:::o;601:139::-;;685:6;672:20;663:29;;701:33;728:5;701:33;:::i;:::-;653:87;;;;:::o;746:143::-;;834:6;828:13;819:22;;850:33;877:5;850:33;:::i;:::-;809:80;;;;:::o;895:262::-;;1003:2;991:9;982:7;978:23;974:32;971:2;;;1019:1;1016;1009:12;971:2;1062:1;1087:53;1132:7;1123:6;1112:9;1108:22;1087:53;:::i;:::-;1077:63;;1033:117;961:196;;;;:::o;1163:284::-;;1282:2;1270:9;1261:7;1257:23;1253:32;1250:2;;;1298:1;1295;1288:12;1250:2;1341:1;1366:64;1422:7;1413:6;1402:9;1398:22;1366:64;:::i;:::-;1356:74;;1312:128;1240:207;;;;:::o;1453:417::-;;;1583:2;1571:9;1562:7;1558:23;1554:32;1551:2;;;1599:1;1596;1589:12;1551:2;1642:1;1667:61;1720:7;1711:6;1700:9;1696:22;1667:61;:::i;:::-;1657:71;;1613:125;1777:2;1803:50;1845:7;1836:6;1825:9;1821:22;1803:50;:::i;:::-;1793:60;;1748:115;1541:329;;;;;:::o;1876:407::-;;;2001:2;1989:9;1980:7;1976:23;1972:32;1969:2;;;2017:1;2014;2007:12;1969:2;2060:1;2085:53;2130:7;2121:6;2110:9;2106:22;2085:53;:::i;:::-;2075:63;;2031:117;2187:2;2213:53;2258:7;2249:6;2238:9;2234:22;2213:53;:::i;:::-;2203:63;;2158:118;1959:324;;;;;:::o;2289:552::-;;;;2431:2;2419:9;2410:7;2406:23;2402:32;2399:2;;;2447:1;2444;2437:12;2399:2;2490:1;2515:53;2560:7;2551:6;2540:9;2536:22;2515:53;:::i;:::-;2505:63;;2461:117;2617:2;2643:53;2688:7;2679:6;2668:9;2664:22;2643:53;:::i;:::-;2633:63;;2588:118;2745:2;2771:53;2816:7;2807:6;2796:9;2792:22;2771:53;:::i;:::-;2761:63;;2716:118;2389:452;;;;;:::o;2847:407::-;;;2972:2;2960:9;2951:7;2947:23;2943:32;2940:2;;;2988:1;2985;2978:12;2940:2;3031:1;3056:53;3101:7;3092:6;3081:9;3077:22;3056:53;:::i;:::-;3046:63;;3002:117;3158:2;3184:53;3229:7;3220:6;3209:9;3205:22;3184:53;:::i;:::-;3174:63;;3129:118;2930:324;;;;;:::o;3260:256::-;;3365:2;3353:9;3344:7;3340:23;3336:32;3333:2;;;3381:1;3378;3371:12;3333:2;3424:1;3449:50;3491:7;3482:6;3471:9;3467:22;3449:50;:::i;:::-;3439:60;;3395:114;3323:193;;;;:::o;3522:262::-;;3630:2;3618:9;3609:7;3605:23;3601:32;3598:2;;;3646:1;3643;3636:12;3598:2;3689:1;3714:53;3759:7;3750:6;3739:9;3735:22;3714:53;:::i;:::-;3704:63;;3660:117;3588:196;;;;:::o;3790:596::-;;;;3943:2;3931:9;3922:7;3918:23;3914:32;3911:2;;;3959:1;3956;3949:12;3911:2;4002:1;4027:64;4083:7;4074:6;4063:9;4059:22;4027:64;:::i;:::-;4017:74;;3973:128;4140:2;4166:64;4222:7;4213:6;4202:9;4198:22;4166:64;:::i;:::-;4156:74;;4111:129;4279:2;4305:64;4361:7;4352:6;4341:9;4337:22;4305:64;:::i;:::-;4295:74;;4250:129;3901:485;;;;;:::o;4392:179::-;;4482:46;4524:3;4516:6;4482:46;:::i;:::-;4560:4;4555:3;4551:14;4537:28;;4472:99;;;;:::o;4577:147::-;4672:45;4711:5;4672:45;:::i;:::-;4667:3;4660:58;4650:74;;:::o;4730:142::-;4833:32;4859:5;4833:32;:::i;:::-;4828:3;4821:45;4811:61;;:::o;4878:108::-;4955:24;4973:5;4955:24;:::i;:::-;4950:3;4943:37;4933:53;;:::o;4992:118::-;5079:24;5097:5;5079:24;:::i;:::-;5074:3;5067:37;5057:53;;:::o;5146:732::-;;5294:54;5342:5;5294:54;:::i;:::-;5364:86;5443:6;5438:3;5364:86;:::i;:::-;5357:93;;5474:56;5524:5;5474:56;:::i;:::-;5553:7;5584:1;5569:284;5594:6;5591:1;5588:13;5569:284;;;5670:6;5664:13;5697:63;5756:3;5741:13;5697:63;:::i;:::-;5690:70;;5783:60;5836:6;5783:60;:::i;:::-;5773:70;;5629:224;5616:1;5613;5609:9;5604:14;;5569:284;;;5573:14;5869:3;5862:10;;5270:608;;;;;;;:::o;5884:109::-;5965:21;5980:5;5965:21;:::i;:::-;5960:3;5953:34;5943:50;;:::o;5999:147::-;6094:45;6133:5;6094:45;:::i;:::-;6089:3;6082:58;6072:74;;:::o;6152:364::-;;6268:39;6301:5;6268:39;:::i;:::-;6323:71;6387:6;6382:3;6323:71;:::i;:::-;6316:78;;6403:52;6448:6;6443:3;6436:4;6429:5;6425:16;6403:52;:::i;:::-;6480:29;6502:6;6480:29;:::i;:::-;6475:3;6471:39;6464:46;;6244:272;;;;;:::o;6522:367::-;;6685:67;6749:2;6744:3;6685:67;:::i;:::-;6678:74;;6782:34;6778:1;6773:3;6769:11;6762:55;6848:5;6843:2;6838:3;6834:12;6827:27;6880:2;6875:3;6871:12;6864:19;;6668:221;;;:::o;6895:370::-;;7058:67;7122:2;7117:3;7058:67;:::i;:::-;7051:74;;7155:34;7151:1;7146:3;7142:11;7135:55;7221:8;7216:2;7211:3;7207:12;7200:30;7256:2;7251:3;7247:12;7240:19;;7041:224;;;:::o;7271:366::-;;7434:67;7498:2;7493:3;7434:67;:::i;:::-;7427:74;;7531:34;7527:1;7522:3;7518:11;7511:55;7597:4;7592:2;7587:3;7583:12;7576:26;7628:2;7623:3;7619:12;7612:19;;7417:220;;;:::o;7643:370::-;;7806:67;7870:2;7865:3;7806:67;:::i;:::-;7799:74;;7903:34;7899:1;7894:3;7890:11;7883:55;7969:8;7964:2;7959:3;7955:12;7948:30;8004:2;7999:3;7995:12;7988:19;;7789:224;;;:::o;8019:372::-;;8182:67;8246:2;8241:3;8182:67;:::i;:::-;8175:74;;8279:34;8275:1;8270:3;8266:11;8259:55;8345:10;8340:2;8335:3;8331:12;8324:32;8382:2;8377:3;8373:12;8366:19;;8165:226;;;:::o;8397:382::-;;8560:67;8624:2;8619:3;8560:67;:::i;:::-;8553:74;;8657:34;8653:1;8648:3;8644:11;8637:55;8723:20;8718:2;8713:3;8709:12;8702:42;8770:2;8765:3;8761:12;8754:19;;8543:236;;;:::o;8785:327::-;;8948:67;9012:2;9007:3;8948:67;:::i;:::-;8941:74;;9045:31;9041:1;9036:3;9032:11;9025:52;9103:2;9098:3;9094:12;9087:19;;8931:181;;;:::o;9118:372::-;;9281:67;9345:2;9340:3;9281:67;:::i;:::-;9274:74;;9378:34;9374:1;9369:3;9365:11;9358:55;9444:10;9439:2;9434:3;9430:12;9423:32;9481:2;9476:3;9472:12;9465:19;;9264:226;;;:::o;9496:330::-;;9659:67;9723:2;9718:3;9659:67;:::i;:::-;9652:74;;9756:34;9752:1;9747:3;9743:11;9736:55;9817:2;9812:3;9808:12;9801:19;;9642:184;;;:::o;9832:369::-;;9995:67;10059:2;10054:3;9995:67;:::i;:::-;9988:74;;10092:34;10088:1;10083:3;10079:11;10072:55;10158:7;10153:2;10148:3;10144:12;10137:29;10192:2;10187:3;10183:12;10176:19;;9978:223;;;:::o;10207:368::-;;10370:67;10434:2;10429:3;10370:67;:::i;:::-;10363:74;;10467:34;10463:1;10458:3;10454:11;10447:55;10533:6;10528:2;10523:3;10519:12;10512:28;10566:2;10561:3;10557:12;10550:19;;10353:222;;;:::o;10581:315::-;;10744:67;10808:2;10803:3;10744:67;:::i;:::-;10737:74;;10841:19;10837:1;10832:3;10828:11;10821:40;10887:2;10882:3;10878:12;10871:19;;10727:169;;;:::o;10902:118::-;10989:24;11007:5;10989:24;:::i;:::-;10984:3;10977:37;10967:53;;:::o;11026:222::-;;11157:2;11146:9;11142:18;11134:26;;11170:71;11238:1;11227:9;11223:17;11214:6;11170:71;:::i;:::-;11124:124;;;;:::o;11254:254::-;;11401:2;11390:9;11386:18;11378:26;;11414:87;11498:1;11487:9;11483:17;11474:6;11414:87;:::i;:::-;11368:140;;;;:::o;11514:807::-;;11801:3;11790:9;11786:19;11778:27;;11815:71;11883:1;11872:9;11868:17;11859:6;11815:71;:::i;:::-;11896:72;11964:2;11953:9;11949:18;11940:6;11896:72;:::i;:::-;11978:80;12054:2;12043:9;12039:18;12030:6;11978:80;:::i;:::-;12068;12144:2;12133:9;12129:18;12120:6;12068:80;:::i;:::-;12158:73;12226:3;12215:9;12211:19;12202:6;12158:73;:::i;:::-;12241;12309:3;12298:9;12294:19;12285:6;12241:73;:::i;:::-;11768:553;;;;;;;;;:::o;12327:210::-;;12452:2;12441:9;12437:18;12429:26;;12465:65;12527:1;12516:9;12512:17;12503:6;12465:65;:::i;:::-;12419:118;;;;:::o;12543:313::-;;12694:2;12683:9;12679:18;12671:26;;12743:9;12737:4;12733:20;12729:1;12718:9;12714:17;12707:47;12771:78;12844:4;12835:6;12771:78;:::i;:::-;12763:86;;12661:195;;;;:::o;12862:419::-;;13066:2;13055:9;13051:18;13043:26;;13115:9;13109:4;13105:20;13101:1;13090:9;13086:17;13079:47;13143:131;13269:4;13143:131;:::i;:::-;13135:139;;13033:248;;;:::o;13287:419::-;;13491:2;13480:9;13476:18;13468:26;;13540:9;13534:4;13530:20;13526:1;13515:9;13511:17;13504:47;13568:131;13694:4;13568:131;:::i;:::-;13560:139;;13458:248;;;:::o;13712:419::-;;13916:2;13905:9;13901:18;13893:26;;13965:9;13959:4;13955:20;13951:1;13940:9;13936:17;13929:47;13993:131;14119:4;13993:131;:::i;:::-;13985:139;;13883:248;;;:::o;14137:419::-;;14341:2;14330:9;14326:18;14318:26;;14390:9;14384:4;14380:20;14376:1;14365:9;14361:17;14354:47;14418:131;14544:4;14418:131;:::i;:::-;14410:139;;14308:248;;;:::o;14562:419::-;;14766:2;14755:9;14751:18;14743:26;;14815:9;14809:4;14805:20;14801:1;14790:9;14786:17;14779:47;14843:131;14969:4;14843:131;:::i;:::-;14835:139;;14733:248;;;:::o;14987:419::-;;15191:2;15180:9;15176:18;15168:26;;15240:9;15234:4;15230:20;15226:1;15215:9;15211:17;15204:47;15268:131;15394:4;15268:131;:::i;:::-;15260:139;;15158:248;;;:::o;15412:419::-;;15616:2;15605:9;15601:18;15593:26;;15665:9;15659:4;15655:20;15651:1;15640:9;15636:17;15629:47;15693:131;15819:4;15693:131;:::i;:::-;15685:139;;15583:248;;;:::o;15837:419::-;;16041:2;16030:9;16026:18;16018:26;;16090:9;16084:4;16080:20;16076:1;16065:9;16061:17;16054:47;16118:131;16244:4;16118:131;:::i;:::-;16110:139;;16008:248;;;:::o;16262:419::-;;16466:2;16455:9;16451:18;16443:26;;16515:9;16509:4;16505:20;16501:1;16490:9;16486:17;16479:47;16543:131;16669:4;16543:131;:::i;:::-;16535:139;;16433:248;;;:::o;16687:419::-;;16891:2;16880:9;16876:18;16868:26;;16940:9;16934:4;16930:20;16926:1;16915:9;16911:17;16904:47;16968:131;17094:4;16968:131;:::i;:::-;16960:139;;16858:248;;;:::o;17112:419::-;;17316:2;17305:9;17301:18;17293:26;;17365:9;17359:4;17355:20;17351:1;17340:9;17336:17;17329:47;17393:131;17519:4;17393:131;:::i;:::-;17385:139;;17283:248;;;:::o;17537:419::-;;17741:2;17730:9;17726:18;17718:26;;17790:9;17784:4;17780:20;17776:1;17765:9;17761:17;17754:47;17818:131;17944:4;17818:131;:::i;:::-;17810:139;;17708:248;;;:::o;17962:222::-;;18093:2;18082:9;18078:18;18070:26;;18106:71;18174:1;18163:9;18159:17;18150:6;18106:71;:::i;:::-;18060:124;;;;:::o;18190:847::-;;18499:3;18488:9;18484:19;18476:27;;18513:71;18581:1;18570:9;18566:17;18557:6;18513:71;:::i;:::-;18594:80;18670:2;18659:9;18655:18;18646:6;18594:80;:::i;:::-;18721:9;18715:4;18711:20;18706:2;18695:9;18691:18;18684:48;18749:108;18852:4;18843:6;18749:108;:::i;:::-;18741:116;;18867:80;18943:2;18932:9;18928:18;18919:6;18867:80;:::i;:::-;18957:73;19025:3;19014:9;19010:19;19001:6;18957:73;:::i;:::-;18466:571;;;;;;;;:::o;19043:831::-;;19344:3;19333:9;19329:19;19321:27;;19358:71;19426:1;19415:9;19411:17;19402:6;19358:71;:::i;:::-;19439:80;19515:2;19504:9;19500:18;19491:6;19439:80;:::i;:::-;19566:9;19560:4;19556:20;19551:2;19540:9;19536:18;19529:48;19594:108;19697:4;19688:6;19594:108;:::i;:::-;19586:116;;19712:72;19780:2;19769:9;19765:18;19756:6;19712:72;:::i;:::-;19794:73;19862:3;19851:9;19847:19;19838:6;19794:73;:::i;:::-;19311:563;;;;;;;;:::o;19880:442::-;;20067:2;20056:9;20052:18;20044:26;;20080:71;20148:1;20137:9;20133:17;20124:6;20080:71;:::i;:::-;20161:72;20229:2;20218:9;20214:18;20205:6;20161:72;:::i;:::-;20243;20311:2;20300:9;20296:18;20287:6;20243:72;:::i;:::-;20034:288;;;;;;:::o;20328:132::-;;20418:3;20410:11;;20448:4;20443:3;20439:14;20431:22;;20400:60;;;:::o;20466:114::-;;20567:5;20561:12;20551:22;;20540:40;;;:::o;20586:99::-;;20672:5;20666:12;20656:22;;20645:40;;;:::o;20691:113::-;;20793:4;20788:3;20784:14;20776:22;;20766:38;;;:::o;20810:184::-;;20943:6;20938:3;20931:19;20983:4;20978:3;20974:14;20959:29;;20921:73;;;;:::o;21000:169::-;;21118:6;21113:3;21106:19;21158:4;21153:3;21149:14;21134:29;;21096:73;;;;:::o;21175:305::-;;21234:20;21252:1;21234:20;:::i;:::-;21229:25;;21268:20;21286:1;21268:20;:::i;:::-;21263:25;;21422:1;21354:66;21350:74;21347:1;21344:81;21341:2;;;21428:18;;:::i;:::-;21341:2;21472:1;21469;21465:9;21458:16;;21219:261;;;;:::o;21486:185::-;;21543:20;21561:1;21543:20;:::i;:::-;21538:25;;21577:20;21595:1;21577:20;:::i;:::-;21572:25;;21616:1;21606:2;;21621:18;;:::i;:::-;21606:2;21663:1;21660;21656:9;21651:14;;21528:143;;;;:::o;21677:348::-;;21740:20;21758:1;21740:20;:::i;:::-;21735:25;;21774:20;21792:1;21774:20;:::i;:::-;21769:25;;21962:1;21894:66;21890:74;21887:1;21884:81;21879:1;21872:9;21865:17;21861:105;21858:2;;;21969:18;;:::i;:::-;21858:2;22017:1;22014;22010:9;21999:20;;21725:300;;;;:::o;22031:191::-;;22091:20;22109:1;22091:20;:::i;:::-;22086:25;;22125:20;22143:1;22125:20;:::i;:::-;22120:25;;22164:1;22161;22158:8;22155:2;;;22169:18;;:::i;:::-;22155:2;22214:1;22211;22207:9;22199:17;;22076:146;;;;:::o;22228:96::-;;22294:24;22312:5;22294:24;:::i;:::-;22283:35;;22273:51;;;:::o;22330:104::-;;22404:24;22422:5;22404:24;:::i;:::-;22393:35;;22383:51;;;:::o;22440:90::-;;22517:5;22510:13;22503:21;22492:32;;22482:48;;;:::o;22536:126::-;;22613:42;22606:5;22602:54;22591:65;;22581:81;;;:::o;22668:77::-;;22734:5;22723:16;;22713:32;;;:::o;22751:134::-;;22842:37;22873:5;22842:37;:::i;:::-;22829:50;;22819:66;;;:::o;22891:121::-;;22982:24;23000:5;22982:24;:::i;:::-;22969:37;;22959:53;;;:::o;23018:126::-;;23101:37;23132:5;23101:37;:::i;:::-;23088:50;;23078:66;;;:::o;23150:113::-;;23233:24;23251:5;23233:24;:::i;:::-;23220:37;;23210:53;;;:::o;23269:307::-;23337:1;23347:113;23361:6;23358:1;23355:13;23347:113;;;23446:1;23441:3;23437:11;23431:18;23427:1;23422:3;23418:11;23411:39;23383:2;23380:1;23376:10;23371:15;;23347:113;;;23478:6;23475:1;23472:13;23469:2;;;23558:1;23549:6;23544:3;23540:16;23533:27;23469:2;23318:258;;;;:::o;23582:320::-;;23663:1;23657:4;23653:12;23643:22;;23710:1;23704:4;23700:12;23731:18;23721:2;;23787:4;23779:6;23775:17;23765:27;;23721:2;23849;23841:6;23838:14;23818:18;23815:38;23812:2;;;23868:18;;:::i;:::-;23812:2;23633:269;;;;:::o;23908:180::-;23956:77;23953:1;23946:88;24053:4;24050:1;24043:15;24077:4;24074:1;24067:15;24094:180;24142:77;24139:1;24132:88;24239:4;24236:1;24229:15;24263:4;24260:1;24253:15;24280:180;24328:77;24325:1;24318:88;24425:4;24422:1;24415:15;24449:4;24446:1;24439:15;24466:102;;24558:2;24554:7;24549:2;24542:5;24538:14;24534:28;24524:38;;24514:54;;;:::o;24574:122::-;24647:24;24665:5;24647:24;:::i;:::-;24640:5;24637:35;24627:2;;24686:1;24683;24676:12;24627:2;24617:79;:::o;24702:138::-;24783:32;24809:5;24783:32;:::i;:::-;24776:5;24773:43;24763:2;;24830:1;24827;24820:12;24763:2;24753:87;:::o;24846:116::-;24916:21;24931:5;24916:21;:::i;:::-;24909:5;24906:32;24896:2;;24952:1;24949;24942:12;24896:2;24886:76;:::o;24968:122::-;25041:24;25059:5;25041:24;:::i;:::-;25034:5;25031:35;25021:2;;25080:1;25077;25070:12;25021:2;25011:79;:::o

Swarm Source

ipfs://8d20e73a7927c7da12cc60a7f47e1d2763a1fe5bb0b1050290ccf556ab571dc1
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.