ETH Price: $2,528.58 (-0.39%)

Token

UPDOG (UPDOG)
 

Overview

Max Total Supply

1,000,000,000 UPDOG

Holders

118

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
wincognito.eth
Balance
3,239,602.627192495 UPDOG

Value
$0.00
0x344B886503b7614148eA18fe73e1803586aea191
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:
TOKEN

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-03
*/

/*
https://t.me/ONLYUPDOG
https://onlyupdog.com/
https://x.com/OnlyUpDOG
*/
// SPDX-License-Identifier: MIT           
pragma solidity 0.8.24;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function transferOwnership(address newOwner) public virtual onlyOwner() {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }
    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

contract TOKEN is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private isExcludedFromFee;
    address private constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    address payable private FeeWallet;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal =  1_000_000_000 * 10**_decimals; 
    string private constant _name = "UPDOG";
    string private constant _symbol = "UPDOG";
    uint256 private SwapTokens = 1_000_000 * 10**_decimals; 
    uint256 private maxSwapTokens = 10_000_000 * 10**_decimals;
    uint256 private maxTxAmount = 10_000_000 * 10**_decimals; 
   
    uint256 private buyTaxes = 0;
    uint256 private sellTaxes = 0;
    uint256 public _BuyCount=0;
    uint256 public _SellCount=0;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    bool public tradeEnable = false;
    bool private _SwapBackEnable = false;
    bool private inSwap = false;
    
    event ERC20TokensRecovered(uint256 indexed _amount);
    event TradingOpenUpdated();
    event ETHBalanceRecovered();
    
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
    if (block.chainid == 56){
     uniswapV2Router = IUniswapV2Router02(0x10ED43C718714eb63d5aA57B78B54704E256024E); // PCS BSC Mainnet Router
     }
    else if(block.chainid == 1 || block.chainid == 5){
          uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Uniswap ETH Mainnet Router
      }
    else if(block.chainid == 42161){
           uniswapV2Router = IUniswapV2Router02(0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506); // Sushi Arbitrum Mainnet Router
      }
    else if(block.chainid == 11155111){
           uniswapV2Router = IUniswapV2Router02(0xC532a74256D3Db42D0Bf7a0400fEFDbad7694008); // sepolia uniswap
      }
    else if(block.chainid == 8453){
           uniswapV2Router = IUniswapV2Router02(0x4752ba5DBc23f44D87826276BF6Fd6b1C372aD24); // baseChain uniswap router
      }
    else  if (block.chainid == 97){
          uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // PCS BSC Testnet Router
     }
    else {
         revert("Wrong Chain Id");
        }
     _approve(address(this), address(uniswapV2Router), _tTotal);
     uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        FeeWallet = payable(_msgSender());
        isExcludedFromFee[_msgSender()] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[FeeWallet] = true;
        isExcludedFromFee[deadWallet] = true;
       
        _balances[_msgSender()] = _tTotal;
        emit Transfer(address(0), _msgSender() , _tTotal);
    }
    function name() public pure returns (string memory) {
        return _name;
    }
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), currentAllowance - amount);
        return true;
    }
    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 feeSwap=0;

          if (from != owner() && to != owner()) {      
              require(tradeEnable, "Trading not enabled"); 
            feeSwap = amount * (buyTaxes) / (100);
        }
        
          if (isExcludedFromFee[from] || isExcludedFromFee[to]) {
            feeSwap = 0;
        } 
         
          if (from == uniswapV2Pair && to != address(uniswapV2Router) && !isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
             require(balanceOf(to) + amount <= maxTxAmount, "Exceeds the maxWalletSize.");
              _BuyCount++;
          } 
        
          if (from != uniswapV2Pair && !isExcludedFromFee[from] && !isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
             _SellCount++;
          }
        
          if (to == uniswapV2Pair && from != address(this) && !isExcludedFromFee[from] && !isExcludedFromFee[to]) {
                   feeSwap = amount * (sellTaxes) / (100);
                
                } 
       
             uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && contractTokenBalance > SwapTokens && _BuyCount > 1) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 4, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, maxSwapTokens)));
               uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
          else if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && contractTokenBalance > SwapTokens && _BuyCount > 1) {
                swapTokensForEth(min(amount, min(contractTokenBalance, maxSwapTokens)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
           }
        _balances[from] = _balances[from] - amount; 
        _balances[to] = _balances[to] + (amount - (feeSwap));
        emit Transfer(from, to, amount - (feeSwap));
         if(feeSwap > 0){
          _balances[address(this)] = _balances[address(this)] + (feeSwap);
          emit Transfer(from, address(this),feeSwap);
        }
    }
   
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        require(tokenAmount > 0, "amount must be greeter than 0");
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
   
    function sendETHToFee(uint256 amount) private {
       require(amount > 0, "amount must be greeter than 0");
        FeeWallet.transfer(amount);
    }
  
   function removeTxLimit() external onlyOwner {
       maxTxAmount = _tTotal;
       }
  
  function setFees(uint256 newBuyFee, uint256 newSellFee) external onlyOwner {
        require(newBuyFee <= 40 && newSellFee <= 40, "ERC20: wrong tax value!");
        buyTaxes = newBuyFee;
        sellTaxes = newSellFee;
    }
   
    function openTrading() external onlyOwner() {
        require(!tradeEnable,"trading is already open");
        _SwapBackEnable = true;
         tradeEnable = true;
       emit TradingOpenUpdated(); 
   
    }
   
    function manualSwap() external {
      require(_msgSender()== FeeWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if(tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if(ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
    
    receive() external payable {}
   
    function recoverERC20FromContract(address _tokenAddy, uint256 _amount) external onlyOwner {
        require(_amount > 0, "Amount should be greater than zero");
        require(_amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount");
        IERC20(_tokenAddy).transfer(FeeWallet, _amount);
      emit ERC20TokensRecovered(_amount); 
    }
   
    function recoverETHfromContract() external {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "Amount should be greater than zero");
        require(contractETHBalance <= address(this).balance, "Insufficient Amount");
        payable(address(FeeWallet)).transfer(contractETHBalance);
      emit ETHBalanceRecovered();
    }
}

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":"uint256","name":"_amount","type":"uint256"}],"name":"ERC20TokensRecovered","type":"event"},{"anonymous":false,"inputs":[],"name":"ETHBalanceRecovered","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":[],"name":"TradingOpenUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_BuyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_SellCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"recoverERC20FromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"recoverETHfromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFee","type":"uint256"},{"internalType":"uint256","name":"newSellFee","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradeEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000caa565b620f424062000024919062000cfa565b6005556009600a62000037919062000caa565b6298968062000047919062000cfa565b6006556009600a6200005a919062000caa565b629896806200006a919062000cfa565b6007555f6008555f6009555f600a555f600b555f600e555f600f555f60105f6101000a81548160ff0219169083151502179055505f601060016101000a81548160ff0219169083151502179055505f601060026101000a81548160ff021916908315150217905550348015620000de575f80fd5b505f620000f06200094660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060384603620001ef577310ed43c718714eb63d5aa57b78b54704e256024e600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000431565b6001461480620001ff5750600546145b156200025f57737a250d5630b4cf539739df2c5dacb4c659f2488d600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000430565b61a4b14603620002c357731b02da8cb0d097eb8d57a175b88c7d8b47997506600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042f565b62aa36a74603620003285773c532a74256d3db42d0bf7a0400fefdbad7694008600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042e565b61210546036200038c57734752ba5dbc23f44d87826276bf6fd6b1c372ad24600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042d565b60614603620003ef5773d99d1c33f9fc3444f8101754abc46c52416550d1600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200042c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004239062000da2565b60405180910390fd5b5b5b5b5b5b6200048530600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a62000468919062000caa565b633b9aca0062000479919062000cfa565b6200094d60201b60201c565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004f0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000516919062000e27565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200059d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620005c3919062000e27565b6040518363ffffffff1660e01b8152600401620005e292919062000e68565b6020604051808303815f875af1158015620005ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000625919062000e27565b600d5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620006746200094660201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f620006c86200094660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506009600a62000849919062000caa565b633b9aca006200085a919062000cfa565b60015f6200086d6200094660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550620008ba6200094660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000918919062000caa565b633b9aca0062000929919062000cfa565b60405162000938919062000ea4565b60405180910390a362000fe7565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620009be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009b59062000f33565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000a2f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a269062000fc7565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405162000b0b919062000ea4565b60405180910390a3505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000ba25780860481111562000b7a5762000b7962000b18565b5b600185161562000b8a5780820291505b808102905062000b9a8562000b45565b945062000b5a565b94509492505050565b5f8262000bbc576001905062000c8e565b8162000bcb575f905062000c8e565b816001811462000be4576002811462000bef5762000c25565b600191505062000c8e565b60ff84111562000c045762000c0362000b18565b5b8360020a91508482111562000c1e5762000c1d62000b18565b5b5062000c8e565b5060208310610133831016604e8410600b841016171562000c5f5782820a90508381111562000c595762000c5862000b18565b5b62000c8e565b62000c6e848484600162000b51565b9250905081840481111562000c885762000c8762000b18565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f62000cb68262000c95565b915062000cc38362000c9e565b925062000cf27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bab565b905092915050565b5f62000d068262000c95565b915062000d138362000c95565b925082820262000d238162000c95565b9150828204841483151762000d3d5762000d3c62000b18565b5b5092915050565b5f82825260208201905092915050565b7f57726f6e6720436861696e2049640000000000000000000000000000000000005f82015250565b5f62000d8a600e8362000d44565b915062000d978262000d54565b602082019050919050565b5f6020820190508181035f83015262000dbb8162000d7c565b9050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000df18262000dc6565b9050919050565b62000e038162000de5565b811462000e0e575f80fd5b50565b5f8151905062000e218162000df8565b92915050565b5f6020828403121562000e3f5762000e3e62000dc2565b5b5f62000e4e8482850162000e11565b91505092915050565b62000e628162000de5565b82525050565b5f60408201905062000e7d5f83018562000e57565b62000e8c602083018462000e57565b9392505050565b62000e9e8162000c95565b82525050565b5f60208201905062000eb95f83018462000e93565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62000f1b60248362000d44565b915062000f288262000ebf565b604082019050919050565b5f6020820190508181035f83015262000f4c8162000f0d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f62000faf60228362000d44565b915062000fbc8262000f53565b604082019050919050565b5f6020820190508181035f83015262000fe08162000fa1565b9050919050565b6134068062000ff55f395ff3fe60806040526004361061012d575f3560e01c8063715018a6116100aa578063c9567bf91161006e578063c9567bf9146103b6578063ce831ed5146103cc578063dd62ed3e146103e2578063f2fde38b1461041e578063f87dc2c614610446578063ff99db051461047057610134565b8063715018a6146102e65780638da5cb5b146102fc57806395d89b4114610326578063a9059cbb14610350578063b73d90811461038c57610134565b8063313ce567116100f1578063313ce5671461022c5780634619d69f1461025657806351bc3c851461026c5780636dff2eeb1461028257806370a08231146102aa57610134565b806306fdde0314610138578063095ea7b3146101625780630b78f9c01461019e57806318160ddd146101c657806323b872dd146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049a565b6040516101599190612333565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123e4565b6104d7565b604051610195919061243c565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612455565b6104f4565b005b3480156101d1575f80fd5b506101da6105eb565b6040516101e791906124a2565b60405180910390f35b3480156101fb575f80fd5b50610216600480360381019061021191906124bb565b61060e565b604051610223919061243c565b60405180910390f35b348015610237575f80fd5b50610240610709565b60405161024d9190612526565b60405180910390f35b348015610261575f80fd5b5061026a610711565b005b348015610277575f80fd5b506102806107ca565b005b34801561028d575f80fd5b506102a860048036038101906102a391906123e4565b610861565b005b3480156102b5575f80fd5b506102d060048036038101906102cb919061253f565b610abf565b6040516102dd91906124a2565b60405180910390f35b3480156102f1575f80fd5b506102fa610b05565b005b348015610307575f80fd5b50610310610c53565b60405161031d9190612579565b60405180910390f35b348015610331575f80fd5b5061033a610c7a565b6040516103479190612333565b60405180910390f35b34801561035b575f80fd5b50610376600480360381019061037191906123e4565b610cb7565b604051610383919061243c565b60405180910390f35b348015610397575f80fd5b506103a0610cd4565b6040516103ad91906124a2565b60405180910390f35b3480156103c1575f80fd5b506103ca610cda565b005b3480156103d7575f80fd5b506103e0610e20565b005b3480156103ed575f80fd5b5061040860048036038101906104039190612592565b610f3d565b60405161041591906124a2565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f919061253f565b610fbf565b005b348015610451575f80fd5b5061045a6110cd565b604051610467919061243c565b60405180910390f35b34801561047b575f80fd5b506104846110df565b60405161049191906124a2565b60405180910390f35b60606040518060400160405280600581526020017f5550444f47000000000000000000000000000000000000000000000000000000815250905090565b5f6104ea6104e36110e5565b84846110ec565b6001905092915050565b6104fc6110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057f9061261a565b60405180910390fd5b6028821115801561059a575060288111155b6105d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d090612682565b60405180910390fd5b81600881905550806009819055505050565b5f6009600a6105fa91906127fc565b633b9aca006106099190612846565b905090565b5f8060025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106566110e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc906128f7565b60405180910390fd5b6106e08585856112af565b6106fd856106ec6110e5565b85846106f89190612915565b6110ec565b60019150509392505050565b5f6009905090565b6107196110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079c9061261a565b60405180910390fd5b6009600a6107b391906127fc565b633b9aca006107c29190612846565b600781905550565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661080a6110e5565b73ffffffffffffffffffffffffffffffffffffffff1614610829575f80fd5b5f61083330610abf565b90505f8111156108475761084681611e79565b5b5f4790505f81111561085d5761085c81612126565b5b5050565b6108696110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ec9061261a565b60405180910390fd5b5f8111610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e906129b8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109709190612579565b602060405180830381865afa15801561098b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109af91906129ea565b8111156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e890612a5f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610a4d929190612ad8565b6020604051808303815f875af1158015610a69573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8d9190612b29565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b0d6110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909061261a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5550444f47000000000000000000000000000000000000000000000000000000815250905090565b5f610cca610cc36110e5565b84846112af565b6001905092915050565b600a5481565b610ce26110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d659061261a565b60405180910390fd5b60105f9054906101000a900460ff1615610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612b9e565b60405180910390fd5b6001601060016101000a81548160ff021916908315150217905550600160105f6101000a81548160ff0219169083151502179055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b5f4790505f8111610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d906129b8565b60405180910390fd5b47811115610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612a5f565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610f0d573d5f803e3d5ffd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610fc76110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a9061261a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890612c2c565b60405180910390fd5b6110ca816121d0565b50565b60105f9054906101000a900460ff1681565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612cba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf90612d48565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112a291906124a2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612dd6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612e64565b60405180910390fd5b5f81116113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490612ef2565b60405180910390fd5b5f6113d6610c53565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114445750611414610c53565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114b45760105f9054906101000a900460ff16611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90612f5a565b60405180910390fd5b6064600854836114a79190612846565b6114b19190612fa5565b90505b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061154f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611558575f90505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116015750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611654575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170e5760075482111561169e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116959061301f565b60405180910390fd5b600754826116ab85610abf565b6116b5919061303d565b11156116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906130ba565b60405180910390fd5b600a5f815480929190611708906130d8565b91905055505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117b2575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611805575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118675760075482111561184f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118469061301f565b60405180910390fd5b600b5f815480929190611861906130d8565b91905055505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118ef57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611942575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611995575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119b7576064600954836119aa9190612846565b6119b49190612fa5565b90505b5f6119c130610abf565b9050601060029054906101000a900460ff16158015611a2d5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a455750601060019054906101000a900460ff165b8015611a52575060055481115b8015611a6057506001600a54115b15611b1357600f54431115611a77575f600e819055505b6004600e5410611abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab390613169565b60405180910390fd5b611ad9611ad484611acf84600654612291565b612291565b611e79565b5f4790505f811115611aef57611aee47612126565b5b600e5f815480929190611b01906130d8565b919050555043600f8190555050611beb565b601060029054906101000a900460ff16158015611b7d5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b955750601060019054906101000a900460ff165b8015611ba2575060055481115b8015611bb057506001600a54115b15611bea57611bd2611bcd84611bc884600654612291565b612291565b611e79565b5f4790505f811115611be857611be747612126565b5b505b5b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c349190612915565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508183611c819190612915565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc9919061303d565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8486611d659190612915565b604051611d7291906124a2565b60405180910390a35f821115611e72578160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dcb919061303d565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e6991906124a2565b60405180910390a35b5050505050565b6001601060026101000a81548160ff0219169083151502179055505f8111611ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecd906131d1565b60405180910390fd5b5f600267ffffffffffffffff811115611ef257611ef16131ef565b5b604051908082528060200260200182016040528015611f205781602001602082028036833780820191505090505b50905030815f81518110611f3757611f3661321c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fdb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fff919061325d565b816001815181106120135761201261321c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207930600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ec565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120db959493929190613378565b5f604051808303815f87803b1580156120f2575f80fd5b505af1158015612104573d5f803e3d5ffd5b50505050505f601060026101000a81548160ff02191690831515021790555050565b5f8111612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215f906131d1565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121cc573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81831161229f57826122a1565b815b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122e05780820151818401526020810190506122c5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612305826122a9565b61230f81856122b3565b935061231f8185602086016122c3565b612328816122eb565b840191505092915050565b5f6020820190508181035f83015261234b81846122fb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61238082612357565b9050919050565b61239081612376565b811461239a575f80fd5b50565b5f813590506123ab81612387565b92915050565b5f819050919050565b6123c3816123b1565b81146123cd575f80fd5b50565b5f813590506123de816123ba565b92915050565b5f80604083850312156123fa576123f9612353565b5b5f6124078582860161239d565b9250506020612418858286016123d0565b9150509250929050565b5f8115159050919050565b61243681612422565b82525050565b5f60208201905061244f5f83018461242d565b92915050565b5f806040838503121561246b5761246a612353565b5b5f612478858286016123d0565b9250506020612489858286016123d0565b9150509250929050565b61249c816123b1565b82525050565b5f6020820190506124b55f830184612493565b92915050565b5f805f606084860312156124d2576124d1612353565b5b5f6124df8682870161239d565b93505060206124f08682870161239d565b9250506040612501868287016123d0565b9150509250925092565b5f60ff82169050919050565b6125208161250b565b82525050565b5f6020820190506125395f830184612517565b92915050565b5f6020828403121561255457612553612353565b5b5f6125618482850161239d565b91505092915050565b61257381612376565b82525050565b5f60208201905061258c5f83018461256a565b92915050565b5f80604083850312156125a8576125a7612353565b5b5f6125b58582860161239d565b92505060206125c68582860161239d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126046020836122b3565b915061260f826125d0565b602082019050919050565b5f6020820190508181035f830152612631816125f8565b9050919050565b7f45524332303a2077726f6e67207461782076616c7565210000000000000000005f82015250565b5f61266c6017836122b3565b915061267782612638565b602082019050919050565b5f6020820190508181035f83015261269981612660565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612722578086048111156126fe576126fd6126a0565b5b600185161561270d5780820291505b808102905061271b856126cd565b94506126e2565b94509492505050565b5f8261273a57600190506127f5565b81612747575f90506127f5565b816001811461275d576002811461276757612796565b60019150506127f5565b60ff841115612779576127786126a0565b5b8360020a9150848211156127905761278f6126a0565b5b506127f5565b5060208310610133831016604e8410600b84101617156127cb5782820a9050838111156127c6576127c56126a0565b5b6127f5565b6127d884848460016126d9565b925090508184048111156127ef576127ee6126a0565b5b81810290505b9392505050565b5f612806826123b1565b91506128118361250b565b925061283e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461272b565b905092915050565b5f612850826123b1565b915061285b836123b1565b9250828202612869816123b1565b915082820484148315176128805761287f6126a0565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6128e16028836122b3565b91506128ec82612887565b604082019050919050565b5f6020820190508181035f83015261290e816128d5565b9050919050565b5f61291f826123b1565b915061292a836123b1565b9250828203905081811115612942576129416126a0565b5b92915050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129a26022836122b3565b91506129ad82612948565b604082019050919050565b5f6020820190508181035f8301526129cf81612996565b9050919050565b5f815190506129e4816123ba565b92915050565b5f602082840312156129ff576129fe612353565b5b5f612a0c848285016129d6565b91505092915050565b7f496e73756666696369656e7420416d6f756e74000000000000000000000000005f82015250565b5f612a496013836122b3565b9150612a5482612a15565b602082019050919050565b5f6020820190508181035f830152612a7681612a3d565b9050919050565b5f819050919050565b5f612aa0612a9b612a9684612357565b612a7d565b612357565b9050919050565b5f612ab182612a86565b9050919050565b5f612ac282612aa7565b9050919050565b612ad281612ab8565b82525050565b5f604082019050612aeb5f830185612ac9565b612af86020830184612493565b9392505050565b612b0881612422565b8114612b12575f80fd5b50565b5f81519050612b2381612aff565b92915050565b5f60208284031215612b3e57612b3d612353565b5b5f612b4b84828501612b15565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b886017836122b3565b9150612b9382612b54565b602082019050919050565b5f6020820190508181035f830152612bb581612b7c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612c166026836122b3565b9150612c2182612bbc565b604082019050919050565b5f6020820190508181035f830152612c4381612c0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ca46024836122b3565b9150612caf82612c4a565b604082019050919050565b5f6020820190508181035f830152612cd181612c98565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d326022836122b3565b9150612d3d82612cd8565b604082019050919050565b5f6020820190508181035f830152612d5f81612d26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612dc06025836122b3565b9150612dcb82612d66565b604082019050919050565b5f6020820190508181035f830152612ded81612db4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e4e6023836122b3565b9150612e5982612df4565b604082019050919050565b5f6020820190508181035f830152612e7b81612e42565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612edc6029836122b3565b9150612ee782612e82565b604082019050919050565b5f6020820190508181035f830152612f0981612ed0565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f612f446013836122b3565b9150612f4f82612f10565b602082019050919050565b5f6020820190508181035f830152612f7181612f38565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612faf826123b1565b9150612fba836123b1565b925082612fca57612fc9612f78565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130096019836122b3565b915061301482612fd5565b602082019050919050565b5f6020820190508181035f83015261303681612ffd565b9050919050565b5f613047826123b1565b9150613052836123b1565b925082820190508082111561306a576130696126a0565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130a4601a836122b3565b91506130af82613070565b602082019050919050565b5f6020820190508181035f8301526130d181613098565b9050919050565b5f6130e2826123b1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613114576131136126a0565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6131536017836122b3565b915061315e8261311f565b602082019050919050565b5f6020820190508181035f83015261318081613147565b9050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e20300000005f82015250565b5f6131bb601d836122b3565b91506131c682613187565b602082019050919050565b5f6020820190508181035f8301526131e8816131af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061325781612387565b92915050565b5f6020828403121561327257613271612353565b5b5f61327f84828501613249565b91505092915050565b5f819050919050565b5f6132ab6132a66132a184613288565b612a7d565b6123b1565b9050919050565b6132bb81613291565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132f381612376565b82525050565b5f61330483836132ea565b60208301905092915050565b5f602082019050919050565b5f613326826132c1565b61333081856132cb565b935061333b836132db565b805f5b8381101561336b57815161335288826132f9565b975061335d83613310565b92505060018101905061333e565b5085935050505092915050565b5f60a08201905061338b5f830188612493565b61339860208301876132b2565b81810360408301526133aa818661331c565b90506133b9606083018561256a565b6133c66080830184612493565b969550505050505056fea264697066735822122077803b7d7642525fedb1c792133a61fc0056b6606f4654a493967153ee2b92a064736f6c63430008180033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063715018a6116100aa578063c9567bf91161006e578063c9567bf9146103b6578063ce831ed5146103cc578063dd62ed3e146103e2578063f2fde38b1461041e578063f87dc2c614610446578063ff99db051461047057610134565b8063715018a6146102e65780638da5cb5b146102fc57806395d89b4114610326578063a9059cbb14610350578063b73d90811461038c57610134565b8063313ce567116100f1578063313ce5671461022c5780634619d69f1461025657806351bc3c851461026c5780636dff2eeb1461028257806370a08231146102aa57610134565b806306fdde0314610138578063095ea7b3146101625780630b78f9c01461019e57806318160ddd146101c657806323b872dd146101f057610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61049a565b6040516101599190612333565b60405180910390f35b34801561016d575f80fd5b50610188600480360381019061018391906123e4565b6104d7565b604051610195919061243c565b60405180910390f35b3480156101a9575f80fd5b506101c460048036038101906101bf9190612455565b6104f4565b005b3480156101d1575f80fd5b506101da6105eb565b6040516101e791906124a2565b60405180910390f35b3480156101fb575f80fd5b50610216600480360381019061021191906124bb565b61060e565b604051610223919061243c565b60405180910390f35b348015610237575f80fd5b50610240610709565b60405161024d9190612526565b60405180910390f35b348015610261575f80fd5b5061026a610711565b005b348015610277575f80fd5b506102806107ca565b005b34801561028d575f80fd5b506102a860048036038101906102a391906123e4565b610861565b005b3480156102b5575f80fd5b506102d060048036038101906102cb919061253f565b610abf565b6040516102dd91906124a2565b60405180910390f35b3480156102f1575f80fd5b506102fa610b05565b005b348015610307575f80fd5b50610310610c53565b60405161031d9190612579565b60405180910390f35b348015610331575f80fd5b5061033a610c7a565b6040516103479190612333565b60405180910390f35b34801561035b575f80fd5b50610376600480360381019061037191906123e4565b610cb7565b604051610383919061243c565b60405180910390f35b348015610397575f80fd5b506103a0610cd4565b6040516103ad91906124a2565b60405180910390f35b3480156103c1575f80fd5b506103ca610cda565b005b3480156103d7575f80fd5b506103e0610e20565b005b3480156103ed575f80fd5b5061040860048036038101906104039190612592565b610f3d565b60405161041591906124a2565b60405180910390f35b348015610429575f80fd5b50610444600480360381019061043f919061253f565b610fbf565b005b348015610451575f80fd5b5061045a6110cd565b604051610467919061243c565b60405180910390f35b34801561047b575f80fd5b506104846110df565b60405161049191906124a2565b60405180910390f35b60606040518060400160405280600581526020017f5550444f47000000000000000000000000000000000000000000000000000000815250905090565b5f6104ea6104e36110e5565b84846110ec565b6001905092915050565b6104fc6110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610588576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161057f9061261a565b60405180910390fd5b6028821115801561059a575060288111155b6105d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105d090612682565b60405180910390fd5b81600881905550806009819055505050565b5f6009600a6105fa91906127fc565b633b9aca006106099190612846565b905090565b5f8060025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106566110e5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156106d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106cc906128f7565b60405180910390fd5b6106e08585856112af565b6106fd856106ec6110e5565b85846106f89190612915565b6110ec565b60019150509392505050565b5f6009905090565b6107196110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161079c9061261a565b60405180910390fd5b6009600a6107b391906127fc565b633b9aca006107c29190612846565b600781905550565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661080a6110e5565b73ffffffffffffffffffffffffffffffffffffffff1614610829575f80fd5b5f61083330610abf565b90505f8111156108475761084681611e79565b5b5f4790505f81111561085d5761085c81612126565b5b5050565b6108696110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ec9061261a565b60405180910390fd5b5f8111610937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092e906129b8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109709190612579565b602060405180830381865afa15801561098b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109af91906129ea565b8111156109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e890612a5f565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610a4d929190612ad8565b6020604051808303815f875af1158015610a69573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a8d9190612b29565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610b0d6110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b909061261a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f5550444f47000000000000000000000000000000000000000000000000000000815250905090565b5f610cca610cc36110e5565b84846112af565b6001905092915050565b600a5481565b610ce26110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d659061261a565b60405180910390fd5b60105f9054906101000a900460ff1615610dbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db490612b9e565b60405180910390fd5b6001601060016101000a81548160ff021916908315150217905550600160105f6101000a81548160ff0219169083151502179055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b5f4790505f8111610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d906129b8565b60405180910390fd5b47811115610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612a5f565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610f0d573d5f803e3d5ffd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610fc76110e5565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104a9061261a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b890612c2c565b60405180910390fd5b6110ca816121d0565b50565b60105f9054906101000a900460ff1681565b600b5481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361115a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115190612cba565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bf90612d48565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112a291906124a2565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361131d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131490612dd6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361138b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138290612e64565b60405180910390fd5b5f81116113cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c490612ef2565b60405180910390fd5b5f6113d6610c53565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114445750611414610c53565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156114b45760105f9054906101000a900460ff16611497576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148e90612f5a565b60405180910390fd5b6064600854836114a79190612846565b6114b19190612fa5565b90505b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061154f575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611558575f90505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116015750600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611654575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561170e5760075482111561169e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116959061301f565b60405180910390fd5b600754826116ab85610abf565b6116b5919061303d565b11156116f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ed906130ba565b60405180910390fd5b600a5f815480929190611708906130d8565b91905055505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156117b2575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611805575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156118675760075482111561184f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118469061301f565b60405180910390fd5b600b5f815480929190611861906130d8565b91905055505b600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118ef57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611942575060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611995575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156119b7576064600954836119aa9190612846565b6119b49190612fa5565b90505b5f6119c130610abf565b9050601060029054906101000a900460ff16158015611a2d5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611a455750601060019054906101000a900460ff165b8015611a52575060055481115b8015611a6057506001600a54115b15611b1357600f54431115611a77575f600e819055505b6004600e5410611abc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab390613169565b60405180910390fd5b611ad9611ad484611acf84600654612291565b612291565b611e79565b5f4790505f811115611aef57611aee47612126565b5b600e5f815480929190611b01906130d8565b919050555043600f8190555050611beb565b601060029054906101000a900460ff16158015611b7d5750600d5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b955750601060019054906101000a900460ff165b8015611ba2575060055481115b8015611bb057506001600a54115b15611bea57611bd2611bcd84611bc884600654612291565b612291565b611e79565b5f4790505f811115611be857611be747612126565b5b505b5b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611c349190612915565b60015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508183611c819190612915565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc9919061303d565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8486611d659190612915565b604051611d7291906124a2565b60405180910390a35f821115611e72578160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611dcb919061303d565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e6991906124a2565b60405180910390a35b5050505050565b6001601060026101000a81548160ff0219169083151502179055505f8111611ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ecd906131d1565b60405180910390fd5b5f600267ffffffffffffffff811115611ef257611ef16131ef565b5b604051908082528060200260200182016040528015611f205781602001602082028036833780820191505090505b50905030815f81518110611f3757611f3661321c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fdb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fff919061325d565b816001815181106120135761201261321c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207930600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110ec565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016120db959493929190613378565b5f604051808303815f87803b1580156120f2575f80fd5b505af1158015612104573d5f803e3d5ffd5b50505050505f601060026101000a81548160ff02191690831515021790555050565b5f8111612168576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161215f906131d1565b60405180910390fd5b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121cc573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f81831161229f57826122a1565b815b905092915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122e05780820151818401526020810190506122c5565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612305826122a9565b61230f81856122b3565b935061231f8185602086016122c3565b612328816122eb565b840191505092915050565b5f6020820190508181035f83015261234b81846122fb565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61238082612357565b9050919050565b61239081612376565b811461239a575f80fd5b50565b5f813590506123ab81612387565b92915050565b5f819050919050565b6123c3816123b1565b81146123cd575f80fd5b50565b5f813590506123de816123ba565b92915050565b5f80604083850312156123fa576123f9612353565b5b5f6124078582860161239d565b9250506020612418858286016123d0565b9150509250929050565b5f8115159050919050565b61243681612422565b82525050565b5f60208201905061244f5f83018461242d565b92915050565b5f806040838503121561246b5761246a612353565b5b5f612478858286016123d0565b9250506020612489858286016123d0565b9150509250929050565b61249c816123b1565b82525050565b5f6020820190506124b55f830184612493565b92915050565b5f805f606084860312156124d2576124d1612353565b5b5f6124df8682870161239d565b93505060206124f08682870161239d565b9250506040612501868287016123d0565b9150509250925092565b5f60ff82169050919050565b6125208161250b565b82525050565b5f6020820190506125395f830184612517565b92915050565b5f6020828403121561255457612553612353565b5b5f6125618482850161239d565b91505092915050565b61257381612376565b82525050565b5f60208201905061258c5f83018461256a565b92915050565b5f80604083850312156125a8576125a7612353565b5b5f6125b58582860161239d565b92505060206125c68582860161239d565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126046020836122b3565b915061260f826125d0565b602082019050919050565b5f6020820190508181035f830152612631816125f8565b9050919050565b7f45524332303a2077726f6e67207461782076616c7565210000000000000000005f82015250565b5f61266c6017836122b3565b915061267782612638565b602082019050919050565b5f6020820190508181035f83015261269981612660565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612722578086048111156126fe576126fd6126a0565b5b600185161561270d5780820291505b808102905061271b856126cd565b94506126e2565b94509492505050565b5f8261273a57600190506127f5565b81612747575f90506127f5565b816001811461275d576002811461276757612796565b60019150506127f5565b60ff841115612779576127786126a0565b5b8360020a9150848211156127905761278f6126a0565b5b506127f5565b5060208310610133831016604e8410600b84101617156127cb5782820a9050838111156127c6576127c56126a0565b5b6127f5565b6127d884848460016126d9565b925090508184048111156127ef576127ee6126a0565b5b81810290505b9392505050565b5f612806826123b1565b91506128118361250b565b925061283e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461272b565b905092915050565b5f612850826123b1565b915061285b836123b1565b9250828202612869816123b1565b915082820484148315176128805761287f6126a0565b5b5092915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6128e16028836122b3565b91506128ec82612887565b604082019050919050565b5f6020820190508181035f83015261290e816128d5565b9050919050565b5f61291f826123b1565b915061292a836123b1565b9250828203905081811115612942576129416126a0565b5b92915050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f6129a26022836122b3565b91506129ad82612948565b604082019050919050565b5f6020820190508181035f8301526129cf81612996565b9050919050565b5f815190506129e4816123ba565b92915050565b5f602082840312156129ff576129fe612353565b5b5f612a0c848285016129d6565b91505092915050565b7f496e73756666696369656e7420416d6f756e74000000000000000000000000005f82015250565b5f612a496013836122b3565b9150612a5482612a15565b602082019050919050565b5f6020820190508181035f830152612a7681612a3d565b9050919050565b5f819050919050565b5f612aa0612a9b612a9684612357565b612a7d565b612357565b9050919050565b5f612ab182612a86565b9050919050565b5f612ac282612aa7565b9050919050565b612ad281612ab8565b82525050565b5f604082019050612aeb5f830185612ac9565b612af86020830184612493565b9392505050565b612b0881612422565b8114612b12575f80fd5b50565b5f81519050612b2381612aff565b92915050565b5f60208284031215612b3e57612b3d612353565b5b5f612b4b84828501612b15565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b886017836122b3565b9150612b9382612b54565b602082019050919050565b5f6020820190508181035f830152612bb581612b7c565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612c166026836122b3565b9150612c2182612bbc565b604082019050919050565b5f6020820190508181035f830152612c4381612c0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612ca46024836122b3565b9150612caf82612c4a565b604082019050919050565b5f6020820190508181035f830152612cd181612c98565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612d326022836122b3565b9150612d3d82612cd8565b604082019050919050565b5f6020820190508181035f830152612d5f81612d26565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612dc06025836122b3565b9150612dcb82612d66565b604082019050919050565b5f6020820190508181035f830152612ded81612db4565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612e4e6023836122b3565b9150612e5982612df4565b604082019050919050565b5f6020820190508181035f830152612e7b81612e42565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612edc6029836122b3565b9150612ee782612e82565b604082019050919050565b5f6020820190508181035f830152612f0981612ed0565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f612f446013836122b3565b9150612f4f82612f10565b602082019050919050565b5f6020820190508181035f830152612f7181612f38565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612faf826123b1565b9150612fba836123b1565b925082612fca57612fc9612f78565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130096019836122b3565b915061301482612fd5565b602082019050919050565b5f6020820190508181035f83015261303681612ffd565b9050919050565b5f613047826123b1565b9150613052836123b1565b925082820190508082111561306a576130696126a0565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6130a4601a836122b3565b91506130af82613070565b602082019050919050565b5f6020820190508181035f8301526130d181613098565b9050919050565b5f6130e2826123b1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613114576131136126a0565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f6131536017836122b3565b915061315e8261311f565b602082019050919050565b5f6020820190508181035f83015261318081613147565b9050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e20300000005f82015250565b5f6131bb601d836122b3565b91506131c682613187565b602082019050919050565b5f6020820190508181035f8301526131e8816131af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061325781612387565b92915050565b5f6020828403121561327257613271612353565b5b5f61327f84828501613249565b91505092915050565b5f819050919050565b5f6132ab6132a66132a184613288565b612a7d565b6123b1565b9050919050565b6132bb81613291565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6132f381612376565b82525050565b5f61330483836132ea565b60208301905092915050565b5f602082019050919050565b5f613326826132c1565b61333081856132cb565b935061333b836132db565b805f5b8381101561336b57815161335288826132f9565b975061335d83613310565b92505060018101905061333e565b5085935050505092915050565b5f60a08201905061338b5f830188612493565b61339860208301876132b2565b81810360408301526133aa818661331c565b90506133b9606083018561256a565b6133c66080830184612493565b969550505050505056fea264697066735822122077803b7d7642525fedb1c792133a61fc0056b6606f4654a493967153ee2b92a064736f6c63430008180033

Deployed Bytecode Sourcemap

2808:10291:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5860:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6792:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11462:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6131:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6959:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6042:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11368:86;;;;;;;;;;;;;:::i;:::-;;11927:360;;;;;;;;;;;;;:::i;:::-;;12339:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6232:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1893:148;;;;;;;;;;;;;:::i;:::-;;1277:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5949:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6470:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3651:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11702:214;;;;;;;;;;;;;:::i;:::-;;12716:380;;;;;;;;;;;;;:::i;:::-;;6643:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1487:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3881:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3684:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5860:83;5897:13;5930:5;;;;;;;;;;;;;;;;;5923:12;;5860:83;:::o;6792:161::-;6867:4;6884:39;6893:12;:10;:12::i;:::-;6907:7;6916:6;6884:8;:39::i;:::-;6941:4;6934:11;;6792:161;;;;:::o;11462:229::-;1412:12;:10;:12::i;:::-;1402:22;;:6;;;;;;;;;;:22;;;1394:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11569:2:::1;11556:9;:15;;:35;;;;;11589:2;11575:10;:16;;11556:35;11548:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11641:9;11630:8;:20;;;;11673:10;11661:9;:22;;;;11462:229:::0;;:::o;6131:95::-;6184:7;3209:1;3269:2;:13;;;;:::i;:::-;3253;:29;;;;:::i;:::-;6204:14;;6131:95;:::o;6959:410::-;7057:4;7074:24;7101:11;:19;7113:6;7101:19;;;;;;;;;;;;;;;:33;7121:12;:10;:12::i;:::-;7101:33;;;;;;;;;;;;;;;;7074:60;;7173:6;7153:16;:26;;7145:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7235:36;7245:6;7253:9;7264:6;7235:9;:36::i;:::-;7282:57;7291:6;7299:12;:10;:12::i;:::-;7332:6;7313:16;:25;;;;:::i;:::-;7282:8;:57::i;:::-;7357:4;7350:11;;;6959:410;;;;;:::o;6042:83::-;6083:5;3209:1;6101:16;;6042:83;:::o;11368:86::-;1412:12;:10;:12::i;:::-;1402:22;;:6;;;;;;;;;;:22;;;1394:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3209:1:::1;3269:2;:13;;;;:::i;:::-;3253;:29;;;;:::i;:::-;11422:11;:21;;;;11368:86::o:0;11927:360::-;11990:9;;;;;;;;;;;11975:24;;:12;:10;:12::i;:::-;:24;;;11967:33;;;;;;12011:20;12034:24;12052:4;12034:9;:24::i;:::-;12011:47;;12087:1;12072:12;:16;12069:78;;;12105:30;12122:12;12105:16;:30::i;:::-;12069:78;12157:18;12178:21;12157:42;;12226:1;12213:10;:14;12210:70;;;12244:24;12257:10;12244:12;:24::i;:::-;12210:70;11958:329;;11927:360::o;12339:366::-;1412:12;:10;:12::i;:::-;1402:22;;:6;;;;;;;;;;:22;;;1394:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12458:1:::1;12448:7;:11;12440:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12535:10;12528:28;;;12565:4;12528:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12517:7;:54;;12509:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;12613:10;12606:27;;;12634:9;;;;;;;;;;;12645:7;12606:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12688:7;12667:29;;;;;;;;;;12339:366:::0;;:::o;6232:119::-;6298:7;6325:9;:18;6335:7;6325:18;;;;;;;;;;;;;;;;6318:25;;6232:119;;;:::o;1893:148::-;1412:12;:10;:12::i;:::-;1402:22;;:6;;;;;;;;;;:22;;;1394:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2000:1:::1;1963:40;;1984:6;::::0;::::1;;;;;;;;1963:40;;;;;;;;;;;;2031:1;2014:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1893:148::o:0;1277:79::-;1315:7;1342:6;;;;;;;;;;;1335:13;;1277:79;:::o;5949:87::-;5988:13;6021:7;;;;;;;;;;;;;;;;;6014:14;;5949:87;:::o;6470:167::-;6548:4;6565:42;6575:12;:10;:12::i;:::-;6589:9;6600:6;6565:9;:42::i;:::-;6625:4;6618:11;;6470:167;;;;:::o;3651:26::-;;;;:::o;11702:214::-;1412:12;:10;:12::i;:::-;1402:22;;:6;;;;;;;;;;:22;;;1394:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11766:11:::1;;;;;;;;;;;11765:12;11757:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11833:4;11815:15;;:22;;;;;;;;;;;;;;;;;;11863:4;11849:11;;:18;;;;;;;;;;;;;;;;;;11882:20;;;;;;;;;;11702:214::o:0;12716:380::-;12770:26;12799:21;12770:50;;12860:1;12839:18;:22;12831:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12941:21;12919:18;:43;;12911:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13013:9;;;;;;;;;;;12997:36;;:56;13034:18;12997:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13067:21;;;;;;;;;;12759:337;12716:380::o;6643:143::-;6724:7;6751:11;:18;6763:5;6751:18;;;;;;;;;;;;;;;:27;6770:7;6751:27;;;;;;;;;;;;;;;;6744:34;;6643:143;;;;:::o;1487:203::-;1412:12;:10;:12::i;:::-;1402:22;;:6;;;;;;;;;;:22;;;1394:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1598:1:::1;1578:22;;:8;:22;;::::0;1570:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1654:28;1673:8;1654:18;:28::i;:::-;1487:203:::0;:::o;3881:31::-;;;;;;;;;;;;;:::o;3684:27::-;;;;:::o;183:98::-;236:7;263:10;256:17;;183:98;:::o;7375:335::-;7485:1;7468:19;;:5;:19;;;7460:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7566:1;7547:21;;:7;:21;;;7539:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7648:6;7618:11;:18;7630:5;7618:18;;;;;;;;;;;;;;;:27;7637:7;7618:27;;;;;;;;;;;;;;;:36;;;;7686:7;7670:32;;7679:5;7670:32;;;7695:6;7670:32;;;;;;:::i;:::-;;;;;;;;7375:335;;;:::o;7716:2917::-;7820:1;7804:18;;:4;:18;;;7796:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7897:1;7883:16;;:2;:16;;;7875:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7967:1;7958:6;:10;7950:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8025:15;8069:7;:5;:7::i;:::-;8061:15;;:4;:15;;;;:32;;;;;8086:7;:5;:7::i;:::-;8080:13;;:2;:13;;;;8061:32;8057:169;;;8126:11;;;;;;;;;;;8118:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8210:3;8197:8;;8187:6;:19;;;;:::i;:::-;:27;;;;:::i;:::-;8177:37;;8057:169;8252:17;:23;8270:4;8252:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;8279:17;:21;8297:2;8279:21;;;;;;;;;;;;;;;;;;;;;;;;;8252:48;8248:92;;;8327:1;8317:11;;8248:92;8376:13;;;;;;;;;;;8368:21;;:4;:21;;;:55;;;;;8407:15;;;;;;;;;;;8393:30;;:2;:30;;;;8368:55;:81;;;;;8428:17;:21;8446:2;8428:21;;;;;;;;;;;;;;;;;;;;;;;;;8427:22;8368:81;8364:296;;;8485:11;;8475:6;:21;;8467:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8576:11;;8566:6;8550:13;8560:2;8550:9;:13::i;:::-;:22;;;;:::i;:::-;:37;;8542:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;8635:9;;:11;;;;;;;;;:::i;:::-;;;;;;8364:296;8695:13;;;;;;;;;;;8687:21;;:4;:21;;;;:49;;;;;8713:17;:23;8731:4;8713:23;;;;;;;;;;;;;;;;;;;;;;;;;8712:24;8687:49;:75;;;;;8741:17;:21;8759:2;8741:21;;;;;;;;;;;;;;;;;;;;;;;;;8740:22;8687:75;8683:198;;;8798:11;;8788:6;:21;;8780:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8855:10;;:12;;;;;;;;;:::i;:::-;;;;;;8683:198;8913:13;;;;;;;;;;;8907:19;;:2;:19;;;:44;;;;;8946:4;8930:21;;:4;:21;;;;8907:44;:72;;;;;8956:17;:23;8974:4;8956:23;;;;;;;;;;;;;;;;;;;;;;;;;8955:24;8907:72;:98;;;;;8984:17;:21;9002:2;8984:21;;;;;;;;;;;;;;;;;;;;;;;;;8983:22;8907:98;8903:202;;;9063:3;9049:9;;9039:6;:20;;;;:::i;:::-;:28;;;;:::i;:::-;9029:38;;8903:202;9130:28;9161:24;9179:4;9161:9;:24::i;:::-;9130:55;;9205:6;;;;;;;;;;;9204:7;:32;;;;;9223:13;;;;;;;;;;;9215:21;;:4;:21;;;;9204:32;:51;;;;;9240:15;;;;;;;;;;;9204:51;:88;;;;;9282:10;;9259:20;:33;9204:88;:105;;;;;9308:1;9296:9;;:13;9204:105;9200:1086;;;9349:13;;9334:12;:28;9330:90;;;9399:1;9387:9;:13;;;;9330:90;9458:1;9446:9;;:13;9438:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9506:71;9523:53;9527:6;9535:40;9539:20;9561:13;;9535:3;:40::i;:::-;9523:3;:53::i;:::-;9506:16;:71::i;:::-;9595:26;9624:21;9595:50;;9688:1;9667:18;:22;9664:105;;;9714:35;9727:21;9714:12;:35::i;:::-;9664:105;9787:9;;:11;;;;;;;;;:::i;:::-;;;;;;9833:12;9817:13;:28;;;;9311:550;9200:1086;;;9883:6;;;;;;;;;;;9882:7;:32;;;;;9901:13;;;;;;;;;;;9893:21;;:4;:21;;;;9882:32;:51;;;;;9918:15;;;;;;;;;;;9882:51;:88;;;;;9960:10;;9937:20;:33;9882:88;:105;;;;;9986:1;9974:9;;:13;9882:105;9878:408;;;10008:71;10025:53;10029:6;10037:40;10041:20;10063:13;;10037:3;:40::i;:::-;10025:3;:53::i;:::-;10008:16;:71::i;:::-;10098:26;10127:21;10098:50;;10191:1;10170:18;:22;10167:105;;;10217:35;10230:21;10217:12;:35::i;:::-;10167:105;9989:297;9878:408;9200:1086;10332:6;10314:9;:15;10324:4;10314:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;10296:9;:15;10306:4;10296:15;;;;;;;;;;;;;;;:42;;;;10393:7;10383:6;:18;;;;:::i;:::-;10366:9;:13;10376:2;10366:13;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;10350:9;:13;10360:2;10350:13;;;;;;;;;;;;;;;:52;;;;10433:2;10418:38;;10427:4;10418:38;;;10447:7;10437:6;:18;;;;:::i;:::-;10418:38;;;;;;:::i;:::-;;;;;;;;10481:1;10471:7;:11;10468:158;;;10551:7;10523:9;:24;10541:4;10523:24;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;10496:9;:24;10514:4;10496:24;;;;;;;;;;;;;;;:63;;;;10600:4;10577:37;;10586:4;10577:37;;;10606:7;10577:37;;;;;;:::i;:::-;;;;;;;;10468:158;7785:2848;;7716:2917;;;:::o;10644:551::-;4174:4;4165:6;;:13;;;;;;;;;;;;;;;;;;10744:1:::1;10730:11;:15;10722:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10790:21;10828:1;10814:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10790:40;;10859:4;10841;10846:1;10841:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10885:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10875:4;10880:1;10875:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10918:62;10935:4;10950:15;;;;;;;;;;;10968:11;10918:8;:62::i;:::-;10991:15;;;;;;;;;;;:66;;;11072:11;11098:1;11114:4;11141;11161:15;10991:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10711:484;4210:5:::0;4201:6;;:14;;;;;;;;;;;;;;;;;;10644:551;:::o;11206:153::-;11279:1;11270:6;:10;11262:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;11325:9;;;;;;;;;;;:18;;:26;11344:6;11325:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11206:153;:::o;1696:191::-;1770:16;1789:6;;;;;;;;;;;1770:25;;1815:8;1806:6;;:17;;;;;;;;;;;;;;;;;;1870:8;1839:40;;1860:8;1839:40;;;;;;;;;;;;1759:128;1696:191;:::o;6357:107::-;6414:7;6446:1;6442;:5;6441:15;;6455:1;6441:15;;;6451:1;6441:15;6434:22;;6357:107;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:474::-;3514:6;3522;3571:2;3559:9;3550:7;3546:23;3542:32;3539:119;;;3577:79;;:::i;:::-;3539:119;3697:1;3722:53;3767:7;3758:6;3747:9;3743:22;3722:53;:::i;:::-;3712:63;;3668:117;3824:2;3850:53;3895:7;3886:6;3875:9;3871:22;3850:53;:::i;:::-;3840:63;;3795:118;3446:474;;;;;:::o;3926:118::-;4013:24;4031:5;4013:24;:::i;:::-;4008:3;4001:37;3926:118;;:::o;4050:222::-;4143:4;4181:2;4170:9;4166:18;4158:26;;4194:71;4262:1;4251:9;4247:17;4238:6;4194:71;:::i;:::-;4050:222;;;;:::o;4278:619::-;4355:6;4363;4371;4420:2;4408:9;4399:7;4395:23;4391:32;4388:119;;;4426:79;;:::i;:::-;4388:119;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4278:619;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:182::-;6640:34;6636:1;6628:6;6624:14;6617:58;6500:182;:::o;6688:366::-;6830:3;6851:67;6915:2;6910:3;6851:67;:::i;:::-;6844:74;;6927:93;7016:3;6927:93;:::i;:::-;7045:2;7040:3;7036:12;7029:19;;6688:366;;;:::o;7060:419::-;7226:4;7264:2;7253:9;7249:18;7241:26;;7313:9;7307:4;7303:20;7299:1;7288:9;7284:17;7277:47;7341:131;7467:4;7341:131;:::i;:::-;7333:139;;7060:419;;;:::o;7485:173::-;7625:25;7621:1;7613:6;7609:14;7602:49;7485:173;:::o;7664:366::-;7806:3;7827:67;7891:2;7886:3;7827:67;:::i;:::-;7820:74;;7903:93;7992:3;7903:93;:::i;:::-;8021:2;8016:3;8012:12;8005:19;;7664:366;;;:::o;8036:419::-;8202:4;8240:2;8229:9;8225:18;8217:26;;8289:9;8283:4;8279:20;8275:1;8264:9;8260:17;8253:47;8317:131;8443:4;8317:131;:::i;:::-;8309:139;;8036:419;;;:::o;8461:180::-;8509:77;8506:1;8499:88;8606:4;8603:1;8596:15;8630:4;8627:1;8620:15;8647:102;8689:8;8736:5;8733:1;8729:13;8708:34;;8647:102;;;:::o;8755:848::-;8816:5;8823:4;8847:6;8838:15;;8871:5;8862:14;;8885:712;8906:1;8896:8;8893:15;8885:712;;;9001:4;8996:3;8992:14;8986:4;8983:24;8980:50;;;9010:18;;:::i;:::-;8980:50;9060:1;9050:8;9046:16;9043:451;;;9475:4;9468:5;9464:16;9455:25;;9043:451;9525:4;9519;9515:15;9507:23;;9555:32;9578:8;9555:32;:::i;:::-;9543:44;;8885:712;;;8755:848;;;;;;;:::o;9609:1073::-;9663:5;9854:8;9844:40;;9875:1;9866:10;;9877:5;;9844:40;9903:4;9893:36;;9920:1;9911:10;;9922:5;;9893:36;9989:4;10037:1;10032:27;;;;10073:1;10068:191;;;;9982:277;;10032:27;10050:1;10041:10;;10052:5;;;10068:191;10113:3;10103:8;10100:17;10097:43;;;10120:18;;:::i;:::-;10097:43;10169:8;10166:1;10162:16;10153:25;;10204:3;10197:5;10194:14;10191:40;;;10211:18;;:::i;:::-;10191:40;10244:5;;;9982:277;;10368:2;10358:8;10355:16;10349:3;10343:4;10340:13;10336:36;10318:2;10308:8;10305:16;10300:2;10294:4;10291:12;10287:35;10271:111;10268:246;;;10424:8;10418:4;10414:19;10405:28;;10459:3;10452:5;10449:14;10446:40;;;10466:18;;:::i;:::-;10446:40;10499:5;;10268:246;10539:42;10577:3;10567:8;10561:4;10558:1;10539:42;:::i;:::-;10524:57;;;;10613:4;10608:3;10604:14;10597:5;10594:25;10591:51;;;10622:18;;:::i;:::-;10591:51;10671:4;10664:5;10660:16;10651:25;;9609:1073;;;;;;:::o;10688:281::-;10746:5;10770:23;10788:4;10770:23;:::i;:::-;10762:31;;10814:25;10830:8;10814:25;:::i;:::-;10802:37;;10858:104;10895:66;10885:8;10879:4;10858:104;:::i;:::-;10849:113;;10688:281;;;;:::o;10975:410::-;11015:7;11038:20;11056:1;11038:20;:::i;:::-;11033:25;;11072:20;11090:1;11072:20;:::i;:::-;11067:25;;11127:1;11124;11120:9;11149:30;11167:11;11149:30;:::i;:::-;11138:41;;11328:1;11319:7;11315:15;11312:1;11309:22;11289:1;11282:9;11262:83;11239:139;;11358:18;;:::i;:::-;11239:139;11023:362;10975:410;;;;:::o;11391:227::-;11531:34;11527:1;11519:6;11515:14;11508:58;11600:10;11595:2;11587:6;11583:15;11576:35;11391:227;:::o;11624:366::-;11766:3;11787:67;11851:2;11846:3;11787:67;:::i;:::-;11780:74;;11863:93;11952:3;11863:93;:::i;:::-;11981:2;11976:3;11972:12;11965:19;;11624:366;;;:::o;11996:419::-;12162:4;12200:2;12189:9;12185:18;12177:26;;12249:9;12243:4;12239:20;12235:1;12224:9;12220:17;12213:47;12277:131;12403:4;12277:131;:::i;:::-;12269:139;;11996:419;;;:::o;12421:194::-;12461:4;12481:20;12499:1;12481:20;:::i;:::-;12476:25;;12515:20;12533:1;12515:20;:::i;:::-;12510:25;;12559:1;12556;12552:9;12544:17;;12583:1;12577:4;12574:11;12571:37;;;12588:18;;:::i;:::-;12571:37;12421:194;;;;:::o;12621:221::-;12761:34;12757:1;12749:6;12745:14;12738:58;12830:4;12825:2;12817:6;12813:15;12806:29;12621:221;:::o;12848:366::-;12990:3;13011:67;13075:2;13070:3;13011:67;:::i;:::-;13004:74;;13087:93;13176:3;13087:93;:::i;:::-;13205:2;13200:3;13196:12;13189:19;;12848:366;;;:::o;13220:419::-;13386:4;13424:2;13413:9;13409:18;13401:26;;13473:9;13467:4;13463:20;13459:1;13448:9;13444:17;13437:47;13501:131;13627:4;13501:131;:::i;:::-;13493:139;;13220:419;;;:::o;13645:143::-;13702:5;13733:6;13727:13;13718:22;;13749:33;13776:5;13749:33;:::i;:::-;13645:143;;;;:::o;13794:351::-;13864:6;13913:2;13901:9;13892:7;13888:23;13884:32;13881:119;;;13919:79;;:::i;:::-;13881:119;14039:1;14064:64;14120:7;14111:6;14100:9;14096:22;14064:64;:::i;:::-;14054:74;;14010:128;13794:351;;;;:::o;14151:169::-;14291:21;14287:1;14279:6;14275:14;14268:45;14151:169;:::o;14326:366::-;14468:3;14489:67;14553:2;14548:3;14489:67;:::i;:::-;14482:74;;14565:93;14654:3;14565:93;:::i;:::-;14683:2;14678:3;14674:12;14667:19;;14326:366;;;:::o;14698:419::-;14864:4;14902:2;14891:9;14887:18;14879:26;;14951:9;14945:4;14941:20;14937:1;14926:9;14922:17;14915:47;14979:131;15105:4;14979:131;:::i;:::-;14971:139;;14698:419;;;:::o;15123:60::-;15151:3;15172:5;15165:12;;15123:60;;;:::o;15189:142::-;15239:9;15272:53;15290:34;15299:24;15317:5;15299:24;:::i;:::-;15290:34;:::i;:::-;15272:53;:::i;:::-;15259:66;;15189:142;;;:::o;15337:126::-;15387:9;15420:37;15451:5;15420:37;:::i;:::-;15407:50;;15337:126;;;:::o;15469:134::-;15527:9;15560:37;15591:5;15560:37;:::i;:::-;15547:50;;15469:134;;;:::o;15609:147::-;15704:45;15743:5;15704:45;:::i;:::-;15699:3;15692:58;15609:147;;:::o;15762:348::-;15891:4;15929:2;15918:9;15914:18;15906:26;;15942:79;16018:1;16007:9;16003:17;15994:6;15942:79;:::i;:::-;16031:72;16099:2;16088:9;16084:18;16075:6;16031:72;:::i;:::-;15762:348;;;;;:::o;16116:116::-;16186:21;16201:5;16186:21;:::i;:::-;16179:5;16176:32;16166:60;;16222:1;16219;16212:12;16166:60;16116:116;:::o;16238:137::-;16292:5;16323:6;16317:13;16308:22;;16339:30;16363:5;16339:30;:::i;:::-;16238:137;;;;:::o;16381:345::-;16448:6;16497:2;16485:9;16476:7;16472:23;16468:32;16465:119;;;16503:79;;:::i;:::-;16465:119;16623:1;16648:61;16701:7;16692:6;16681:9;16677:22;16648:61;:::i;:::-;16638:71;;16594:125;16381:345;;;;:::o;16732:173::-;16872:25;16868:1;16860:6;16856:14;16849:49;16732:173;:::o;16911:366::-;17053:3;17074:67;17138:2;17133:3;17074:67;:::i;:::-;17067:74;;17150:93;17239:3;17150:93;:::i;:::-;17268:2;17263:3;17259:12;17252:19;;16911:366;;;:::o;17283:419::-;17449:4;17487:2;17476:9;17472:18;17464:26;;17536:9;17530:4;17526:20;17522:1;17511:9;17507:17;17500:47;17564:131;17690:4;17564:131;:::i;:::-;17556:139;;17283:419;;;:::o;17708:225::-;17848:34;17844:1;17836:6;17832:14;17825:58;17917:8;17912:2;17904:6;17900:15;17893:33;17708:225;:::o;17939:366::-;18081:3;18102:67;18166:2;18161:3;18102:67;:::i;:::-;18095:74;;18178:93;18267:3;18178:93;:::i;:::-;18296:2;18291:3;18287:12;18280:19;;17939:366;;;:::o;18311:419::-;18477:4;18515:2;18504:9;18500:18;18492:26;;18564:9;18558:4;18554:20;18550:1;18539:9;18535:17;18528:47;18592:131;18718:4;18592:131;:::i;:::-;18584:139;;18311:419;;;:::o;18736:223::-;18876:34;18872:1;18864:6;18860:14;18853:58;18945:6;18940:2;18932:6;18928:15;18921:31;18736:223;:::o;18965:366::-;19107:3;19128:67;19192:2;19187:3;19128:67;:::i;:::-;19121:74;;19204:93;19293:3;19204:93;:::i;:::-;19322:2;19317:3;19313:12;19306:19;;18965:366;;;:::o;19337:419::-;19503:4;19541:2;19530:9;19526:18;19518:26;;19590:9;19584:4;19580:20;19576:1;19565:9;19561:17;19554:47;19618:131;19744:4;19618:131;:::i;:::-;19610:139;;19337:419;;;:::o;19762:221::-;19902:34;19898:1;19890:6;19886:14;19879:58;19971:4;19966:2;19958:6;19954:15;19947:29;19762:221;:::o;19989:366::-;20131:3;20152:67;20216:2;20211:3;20152:67;:::i;:::-;20145:74;;20228:93;20317:3;20228:93;:::i;:::-;20346:2;20341:3;20337:12;20330:19;;19989:366;;;:::o;20361:419::-;20527:4;20565:2;20554:9;20550:18;20542:26;;20614:9;20608:4;20604:20;20600:1;20589:9;20585:17;20578:47;20642:131;20768:4;20642:131;:::i;:::-;20634:139;;20361:419;;;:::o;20786:224::-;20926:34;20922:1;20914:6;20910:14;20903:58;20995:7;20990:2;20982:6;20978:15;20971:32;20786:224;:::o;21016:366::-;21158:3;21179:67;21243:2;21238:3;21179:67;:::i;:::-;21172:74;;21255:93;21344:3;21255:93;:::i;:::-;21373:2;21368:3;21364:12;21357:19;;21016:366;;;:::o;21388:419::-;21554:4;21592:2;21581:9;21577:18;21569:26;;21641:9;21635:4;21631:20;21627:1;21616:9;21612:17;21605:47;21669:131;21795:4;21669:131;:::i;:::-;21661:139;;21388:419;;;:::o;21813:222::-;21953:34;21949:1;21941:6;21937:14;21930:58;22022:5;22017:2;22009:6;22005:15;21998:30;21813:222;:::o;22041:366::-;22183:3;22204:67;22268:2;22263:3;22204:67;:::i;:::-;22197:74;;22280:93;22369:3;22280:93;:::i;:::-;22398:2;22393:3;22389:12;22382:19;;22041:366;;;:::o;22413:419::-;22579:4;22617:2;22606:9;22602:18;22594:26;;22666:9;22660:4;22656:20;22652:1;22641:9;22637:17;22630:47;22694:131;22820:4;22694:131;:::i;:::-;22686:139;;22413:419;;;:::o;22838:228::-;22978:34;22974:1;22966:6;22962:14;22955:58;23047:11;23042:2;23034:6;23030:15;23023:36;22838:228;:::o;23072:366::-;23214:3;23235:67;23299:2;23294:3;23235:67;:::i;:::-;23228:74;;23311:93;23400:3;23311:93;:::i;:::-;23429:2;23424:3;23420:12;23413:19;;23072:366;;;:::o;23444:419::-;23610:4;23648:2;23637:9;23633:18;23625:26;;23697:9;23691:4;23687:20;23683:1;23672:9;23668:17;23661:47;23725:131;23851:4;23725:131;:::i;:::-;23717:139;;23444:419;;;:::o;23869:169::-;24009:21;24005:1;23997:6;23993:14;23986:45;23869:169;:::o;24044:366::-;24186:3;24207:67;24271:2;24266:3;24207:67;:::i;:::-;24200:74;;24283:93;24372:3;24283:93;:::i;:::-;24401:2;24396:3;24392:12;24385:19;;24044:366;;;:::o;24416:419::-;24582:4;24620:2;24609:9;24605:18;24597:26;;24669:9;24663:4;24659:20;24655:1;24644:9;24640:17;24633:47;24697:131;24823:4;24697:131;:::i;:::-;24689:139;;24416:419;;;:::o;24841:180::-;24889:77;24886:1;24879:88;24986:4;24983:1;24976:15;25010:4;25007:1;25000:15;25027:185;25067:1;25084:20;25102:1;25084:20;:::i;:::-;25079:25;;25118:20;25136:1;25118:20;:::i;:::-;25113:25;;25157:1;25147:35;;25162:18;;:::i;:::-;25147:35;25204:1;25201;25197:9;25192:14;;25027:185;;;;:::o;25218:175::-;25358:27;25354:1;25346:6;25342:14;25335:51;25218:175;:::o;25399:366::-;25541:3;25562:67;25626:2;25621:3;25562:67;:::i;:::-;25555:74;;25638:93;25727:3;25638:93;:::i;:::-;25756:2;25751:3;25747:12;25740:19;;25399:366;;;:::o;25771:419::-;25937:4;25975:2;25964:9;25960:18;25952:26;;26024:9;26018:4;26014:20;26010:1;25999:9;25995:17;25988:47;26052:131;26178:4;26052:131;:::i;:::-;26044:139;;25771:419;;;:::o;26196:191::-;26236:3;26255:20;26273:1;26255:20;:::i;:::-;26250:25;;26289:20;26307:1;26289:20;:::i;:::-;26284:25;;26332:1;26329;26325:9;26318:16;;26353:3;26350:1;26347:10;26344:36;;;26360:18;;:::i;:::-;26344:36;26196:191;;;;:::o;26393:176::-;26533:28;26529:1;26521:6;26517:14;26510:52;26393:176;:::o;26575:366::-;26717:3;26738:67;26802:2;26797:3;26738:67;:::i;:::-;26731:74;;26814:93;26903:3;26814:93;:::i;:::-;26932:2;26927:3;26923:12;26916:19;;26575:366;;;:::o;26947:419::-;27113:4;27151:2;27140:9;27136:18;27128:26;;27200:9;27194:4;27190:20;27186:1;27175:9;27171:17;27164:47;27228:131;27354:4;27228:131;:::i;:::-;27220:139;;26947:419;;;:::o;27372:233::-;27411:3;27434:24;27452:5;27434:24;:::i;:::-;27425:33;;27480:66;27473:5;27470:77;27467:103;;27550:18;;:::i;:::-;27467:103;27597:1;27590:5;27586:13;27579:20;;27372:233;;;:::o;27611:173::-;27751:25;27747:1;27739:6;27735:14;27728:49;27611:173;:::o;27790:366::-;27932:3;27953:67;28017:2;28012:3;27953:67;:::i;:::-;27946:74;;28029:93;28118:3;28029:93;:::i;:::-;28147:2;28142:3;28138:12;28131:19;;27790:366;;;:::o;28162:419::-;28328:4;28366:2;28355:9;28351:18;28343:26;;28415:9;28409:4;28405:20;28401:1;28390:9;28386:17;28379:47;28443:131;28569:4;28443:131;:::i;:::-;28435:139;;28162:419;;;:::o;28587:179::-;28727:31;28723:1;28715:6;28711:14;28704:55;28587:179;:::o;28772:366::-;28914:3;28935:67;28999:2;28994:3;28935:67;:::i;:::-;28928:74;;29011:93;29100:3;29011:93;:::i;:::-;29129:2;29124:3;29120:12;29113:19;;28772:366;;;:::o;29144:419::-;29310:4;29348:2;29337:9;29333:18;29325:26;;29397:9;29391:4;29387:20;29383:1;29372:9;29368:17;29361:47;29425:131;29551:4;29425:131;:::i;:::-;29417:139;;29144:419;;;:::o;29569:180::-;29617:77;29614:1;29607:88;29714:4;29711:1;29704:15;29738:4;29735:1;29728:15;29755:180;29803:77;29800:1;29793:88;29900:4;29897:1;29890:15;29924:4;29921:1;29914:15;29941:143;29998:5;30029:6;30023:13;30014:22;;30045:33;30072:5;30045:33;:::i;:::-;29941:143;;;;:::o;30090:351::-;30160:6;30209:2;30197:9;30188:7;30184:23;30180:32;30177:119;;;30215:79;;:::i;:::-;30177:119;30335:1;30360:64;30416:7;30407:6;30396:9;30392:22;30360:64;:::i;:::-;30350:74;;30306:128;30090:351;;;;:::o;30447:85::-;30492:7;30521:5;30510:16;;30447:85;;;:::o;30538:158::-;30596:9;30629:61;30647:42;30656:32;30682:5;30656:32;:::i;:::-;30647:42;:::i;:::-;30629:61;:::i;:::-;30616:74;;30538:158;;;:::o;30702:147::-;30797:45;30836:5;30797:45;:::i;:::-;30792:3;30785:58;30702:147;;:::o;30855:114::-;30922:6;30956:5;30950:12;30940:22;;30855:114;;;:::o;30975:184::-;31074:11;31108:6;31103:3;31096:19;31148:4;31143:3;31139:14;31124:29;;30975:184;;;;:::o;31165:132::-;31232:4;31255:3;31247:11;;31285:4;31280:3;31276:14;31268:22;;31165:132;;;:::o;31303:108::-;31380:24;31398:5;31380:24;:::i;:::-;31375:3;31368:37;31303:108;;:::o;31417:179::-;31486:10;31507:46;31549:3;31541:6;31507:46;:::i;:::-;31585:4;31580:3;31576:14;31562:28;;31417:179;;;;:::o;31602:113::-;31672:4;31704;31699:3;31695:14;31687:22;;31602:113;;;:::o;31751:732::-;31870:3;31899:54;31947:5;31899:54;:::i;:::-;31969:86;32048:6;32043:3;31969:86;:::i;:::-;31962:93;;32079:56;32129:5;32079:56;:::i;:::-;32158:7;32189:1;32174:284;32199:6;32196:1;32193:13;32174:284;;;32275:6;32269:13;32302:63;32361:3;32346:13;32302:63;:::i;:::-;32295:70;;32388:60;32441:6;32388:60;:::i;:::-;32378:70;;32234:224;32221:1;32218;32214:9;32209:14;;32174:284;;;32178:14;32474:3;32467:10;;31875:608;;;31751:732;;;;:::o;32489:831::-;32752:4;32790:3;32779:9;32775:19;32767:27;;32804:71;32872:1;32861:9;32857:17;32848:6;32804:71;:::i;:::-;32885:80;32961:2;32950:9;32946:18;32937:6;32885:80;:::i;:::-;33012:9;33006:4;33002:20;32997:2;32986:9;32982:18;32975:48;33040:108;33143:4;33134:6;33040:108;:::i;:::-;33032:116;;33158:72;33226:2;33215:9;33211:18;33202:6;33158:72;:::i;:::-;33240:73;33308:3;33297:9;33293:19;33284:6;33240:73;:::i;:::-;32489:831;;;;;;;;:::o

Swarm Source

ipfs://77803b7d7642525fedb1c792133a61fc0056b6606f4654a493967153ee2b92a0
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.