ETH Price: $3,717.45 (+3.51%)

Token

ERC-20: Condorito (CONDO)
 

Overview

Max Total Supply

333,000,000,000,000 CONDO

Holders

96

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Filtered by Token Holder
Uniswap V2: CONDO
Balance
237,939,994,305,181.106873341 CONDO

Value
$0.00
0x1cb63bbf2e5a0cc883bcd5a7ac9862b0d0b9585c
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:
Condorito

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-24
*/

// SPDX-License-Identifier: MIT
/*
https://www.condocoin.xyz
https://t.me/condoritoeth
https://twitter.com/CondoritoCoin
*/
pragma solidity 0.8.19;
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 Condorito is Context, IERC20, Ownable {
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;
    address payable private MarketingWallet;
    
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal =  333000000000000 * 10**_decimals; 
    string private constant _name = "Condorito";
    string private constant _symbol = "CONDO";
    uint256 private _minSwapTokens = 99900000000 * 10**_decimals; // 0.03%
    uint256 private _maxSwapTokens = 6660000000000 * 10**_decimals; // 2%
    uint256 public maxTxAmount = 3330000000000 * 10**_decimals; //1%
    uint256 public maxWalletSize = 6660000000000 * 10**_decimals; // 2% 
    uint256 private buyTaxes = 30;
    uint256 private sellTaxes = 30;
    uint256 private _Buys_In=0;
   
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool public tradeEnable = false;
    bool private _SwapBackEnable = false;
    bool private inSwap = false;
    
    // event
    event FeesRecieverUpdated(address indexed _newWallet);
    event ExcludeFromFeeUpdated(address indexed account);
    event includeFromFeeUpdated(address indexed account);
    event SwapBackSettingUpdated(bool indexed state);
    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 == 97){
     uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); // PCS BSC Testnet Router
     }
    else {
         revert("Wrong Chain Id");
        }
    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
         MarketingWallet = payable(0x18a7B3Ec137A916Abf524F67999fc6d137E347F2);
        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[MarketingWallet] = true;
        _isExcludedFromFee[deadWallet] = true;

       _balances[MarketingWallet] = _tTotal;
       emit Transfer(address(0), MarketingWallet, _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 feesum=0;

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradeEnable, "Trading not enabled");       
               feesum = amount * (buyTaxes) / (100);
        }
        
         if (_isExcludedFromFee[from] || _isExcludedFromFee[to]) {
            feesum = 0;
        } 
         
          if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
             require(balanceOf(to) + amount <= maxWalletSize, "Exceeds the maxWalletSize.");
              _Buys_In++;
          } 
        
          if (from != uniswapV2Pair && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
             require(amount <= maxTxAmount, "Exceeds the _maxTxAmount.");
          }
        
          if (to == uniswapV2Pair && from != address(this) && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                   feesum = amount * (sellTaxes) / (100);
                
                } 
       
             uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && _SwapBackEnable && contractTokenBalance > _minSwapTokens && _Buys_In > 1) {
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxSwapTokens)));
               uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendBNBToFee(address(this).balance);
                }
            }
        _balances[from] = _balances[from] - amount; 
        _balances[to] = _balances[to] + (amount - (feesum));
        emit Transfer(from, to, amount - (feesum));
         if(feesum > 0){
          _balances[address(this)] = _balances[address(this)] + (feesum);
          emit Transfer(from, address(this),feesum);
        }
    }
    
    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 sendBNBToFee(uint256 amount) private {
       require(amount > 0, "amount must be greeter than 0");
        MarketingWallet.transfer(amount);
    }
   
   function removeAllLimit() external onlyOwner {
    maxTxAmount = _tTotal;
    maxWalletSize = _tTotal;
    }
  
   function changeFee(uint256 _buyFee, uint256 _sellFee) external onlyOwner {
        require(_buyFee <= 35 && _sellFee <= 35, "revert wrong fee settings");
        buyTaxes = _buyFee;
        sellTaxes = _sellFee;
    }
   
   function updateSwapBackSetting(bool state) external onlyOwner {
    _SwapBackEnable = state;
    emit SwapBackSettingUpdated(state);
    }
    
    function addWhitelist(address account) external onlyOwner {
      require(_isExcludedFromFee[account] != true,"Account is already excluded");
       _isExcludedFromFee[account] = true;
    emit ExcludeFromFeeUpdated(account);
   }
   
    function removeWhitelist(address account) external onlyOwner {
         require(_isExcludedFromFee[account] != false, "Account is already included");
        _isExcludedFromFee[account] = false;
     emit includeFromFeeUpdated(account);
    }
   
    function enabledTrading() external onlyOwner() {
        require(!tradeEnable,"trading is already open");
        _SwapBackEnable = true;
         tradeEnable = true;
       emit TradingOpenUpdated();
    }
    
    receive() external payable {}
   
    function rescueERC20FromContract(address _tokenAddy, uint256 _amount) external onlyOwner {
        require(_tokenAddy != address(this), "Owner can't claim contract's balance of its own tokens");
        require(_amount > 0, "Amount should be greater than zero");
        require(_amount <= IERC20(_tokenAddy).balanceOf(address(this)), "Insufficient Amount");
        IERC20(_tokenAddy).transfer(MarketingWallet, _amount);
      emit ERC20TokensRecovered(_amount); 
    }
   
    function rescueETHfromContract() external {
        uint256 contractETHBalance = address(this).balance;
        require(contractETHBalance > 0, "Amount should be greater than zero");
        require(contractETHBalance <= address(this).balance, "Insufficient Amount");
        payable(address(MarketingWallet)).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":"account","type":"address"}],"name":"ExcludeFromFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_newWallet","type":"address"}],"name":"FeesRecieverUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"state","type":"bool"}],"name":"SwapBackSettingUpdated","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"}],"name":"includeFromFeeUpdated","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enabledTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddy","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"rescueERC20FromContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETHfromContract","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"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateSwapBackSetting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000a46565b64174281070062000026919062000a97565b6005556009600a62000039919062000a46565b65060ea6ef28006200004c919062000a97565b6006556009600a6200005f919062000a46565b6503075377940062000072919062000a97565b6007556009600a62000085919062000a46565b65060ea6ef280062000098919062000a97565b600855601e600955601e600a556000600b556000600d60146101000a81548160ff0219169083151502179055506000600d60156101000a81548160ff0219169083151502179055506000600d60166101000a81548160ff0219169083151502179055503480156200010857600080fd5b5060006200011b620008a460201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350603846036200021d577310ed43c718714eb63d5aa57b78b54704e256024e600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000397565b60014614806200022d5750600546145b156200028e57737a250d5630b4cf539739df2c5dacb4c659f2488d600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000396565b61a4b14603620002f357731b02da8cb0d097eb8d57a175b88c7d8b47997506600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000395565b60614603620003575773d99d1c33f9fc3444f8101754abc46c52416550d1600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000394565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200038b9062000b43565b60405180910390fd5b5b5b5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000405573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200042b919062000bcf565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004b5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004db919062000bcf565b6040518363ffffffff1660e01b8152600401620004fa92919062000c12565b6020604051808303816000875af11580156200051a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000540919062000bcf565b600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507318a7b3ec137a916abf524f67999fc6d137e347f2600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620005eb620008a460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506009600a62000778919062000a46565b66012edc9ab5d0006200078c919062000a97565b60016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000873919062000a46565b66012edc9ab5d00062000887919062000a97565b60405162000896919062000c50565b60405180910390a362000c6d565b600033905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200093a57808604811115620009125762000911620008ac565b5b6001851615620009225780820291505b80810290506200093285620008db565b9450620008f2565b94509492505050565b60008262000955576001905062000a28565b8162000965576000905062000a28565b81600181146200097e57600281146200098957620009bf565b600191505062000a28565b60ff8411156200099e576200099d620008ac565b5b8360020a915084821115620009b857620009b7620008ac565b5b5062000a28565b5060208310610133831016604e8410600b8410161715620009f95782820a905083811115620009f357620009f2620008ac565b5b62000a28565b62000a088484846001620008e8565b9250905081840481111562000a225762000a21620008ac565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a538262000a2f565b915062000a608362000a39565b925062000a8f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000943565b905092915050565b600062000aa48262000a2f565b915062000ab18362000a2f565b925082820262000ac18162000a2f565b9150828204841483151762000adb5762000ada620008ac565b5b5092915050565b600082825260208201905092915050565b7f57726f6e6720436861696e204964000000000000000000000000000000000000600082015250565b600062000b2b600e8362000ae2565b915062000b388262000af3565b602082019050919050565b6000602082019050818103600083015262000b5e8162000b1c565b9050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b978262000b6a565b9050919050565b62000ba98162000b8a565b811462000bb557600080fd5b50565b60008151905062000bc98162000b9e565b92915050565b60006020828403121562000be85762000be762000b65565b5b600062000bf88482850162000bb8565b91505092915050565b62000c0c8162000b8a565b82525050565b600060408201905062000c29600083018562000c01565b62000c38602083018462000c01565b9392505050565b62000c4a8162000a2f565b82525050565b600060208201905062000c67600083018462000c3f565b92915050565b613a5d8062000c7d6000396000f3fe60806040526004361061014f5760003560e01c80638f3fa860116100b6578063d5e1cbff1161006f578063d5e1cbff14610467578063dd62ed3e1461047e578063e3ca2d65146104bb578063f2fde38b146104e4578063f80f5dd51461050d578063f87dc2c61461053657610156565b80638f3fa8601461036b57806395d89b4114610396578063a333b4ab146103c1578063a62ccc2c146103ea578063a9059cbb14610401578063bb9e95af1461043e57610156565b806370a082311161010857806370a082311461026d578063715018a6146102aa57806378c8cda7146102c157806385141a77146102ea5780638c0b5e22146103155780638da5cb5b1461034057610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c35780631b7e8145146101ee57806323b872dd14610205578063313ce5671461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610561565b60405161017d91906127ba565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612875565b61059e565b6040516101ba91906128d0565b60405180910390f35b3480156101cf57600080fd5b506101d86105bc565b6040516101e591906128fa565b60405180910390f35b3480156101fa57600080fd5b506102036105e3565b005b34801561021157600080fd5b5061022c60048036038101906102279190612915565b610706565b60405161023991906128d0565b60405180910390f35b34801561024e57600080fd5b50610257610806565b6040516102649190612984565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f919061299f565b61080f565b6040516102a191906128fa565b60405180910390f35b3480156102b657600080fd5b506102bf610858565b005b3480156102cd57600080fd5b506102e860048036038101906102e3919061299f565b6109ab565b005b3480156102f657600080fd5b506102ff610b71565b60405161030c91906129db565b60405180910390f35b34801561032157600080fd5b5061032a610b77565b60405161033791906128fa565b60405180910390f35b34801561034c57600080fd5b50610355610b7d565b60405161036291906129db565b60405180910390f35b34801561037757600080fd5b50610380610ba6565b60405161038d91906128fa565b60405180910390f35b3480156103a257600080fd5b506103ab610bac565b6040516103b891906127ba565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e39190612a22565b610be9565b005b3480156103f657600080fd5b506103ff610cca565b005b34801561040d57600080fd5b5061042860048036038101906104239190612875565b610e13565b60405161043591906128d0565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612875565b610e31565b005b34801561047357600080fd5b5061047c611105565b005b34801561048a57600080fd5b506104a560048036038101906104a09190612a4f565b6111e8565b6040516104b291906128fa565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612a8f565b61126f565b005b3480156104f057600080fd5b5061050b6004803603810190610506919061299f565b611367565b005b34801561051957600080fd5b50610534600480360381019061052f919061299f565b611477565b005b34801561054257600080fd5b5061054b61163d565b60405161055891906128d0565b60405180910390f35b60606040518060400160405280600981526020017f436f6e646f7269746f0000000000000000000000000000000000000000000000815250905090565b60006105b26105ab611650565b8484611658565b6001905092915050565b60006009600a6105cc9190612c31565b66012edc9ab5d0006105de9190612c7c565b905090565b60004790506000811161062b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062290612d30565b60405180910390fd5b4781111561066e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066590612d9c565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156106d6573d6000803e3d6000fd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610752611650565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c990612e2e565b60405180910390fd5b6107dd858585611821565b6107fa856107e9611650565b85846107f59190612e4e565b611658565b60019150509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610860611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490612ece565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109b3611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3790612ece565b60405180910390fd5b60001515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90612f3a565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e60405160405180910390a250565b61dead81565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606040518060400160405280600581526020017f434f4e444f000000000000000000000000000000000000000000000000000000815250905090565b610bf1611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7590612ece565b60405180910390fd5b80600d60156101000a81548160ff0219169083151502179055508015157f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb60405160405180910390a250565b610cd2611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5690612ece565b60405180910390fd5b600d60149054906101000a900460ff1615610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612fa6565b60405180910390fd5b6001600d60156101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff0219169083151502179055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b6000610e27610e20611650565b8484611821565b6001905092915050565b610e39611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd90612ece565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613038565b60405180910390fd5b60008111610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90612d30565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fb091906129db565b602060405180830381865afa158015610fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff1919061306d565b811115611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102a90612d9c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110909291906130f9565b6020604051808303816000875af11580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190613137565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b61110d611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190612ece565b60405180910390fd5b6009600a6111a89190612c31565b66012edc9ab5d0006111ba9190612c7c565b6007819055506009600a6111ce9190612c31565b66012edc9ab5d0006111e09190612c7c565b600881905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611277611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb90612ece565b60405180910390fd5b60238211158015611316575060238111155b611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c906131b0565b60405180910390fd5b8160098190555080600a819055505050565b61136f611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f390612ece565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290613242565b60405180910390fd5b611474816122e2565b50565b61147f611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150390612ece565b60405180910390fd5b60011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361159f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611596906132ae565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e60405160405180910390a250565b600d60149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be90613340565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d906133d2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161181491906128fa565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188790613464565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f6906134f6565b60405180910390fd5b60008111611942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193990613588565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119e85750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a5957600d60149054906101000a900460ff16611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a33906135f4565b60405180910390fd5b606460095483611a4c9190612c7c565b611a569190613643565b90505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611afa5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b0457600090505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611baf5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c055750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cc057600754821115611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c46906136c0565b60405180910390fd5b60085482611c5c8561080f565b611c6691906136e0565b1115611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90613760565b60405180910390fd5b600b6000815480929190611cba90613780565b91905055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d685750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611dbe5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e0957600754821115611e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dff906136c0565b60405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e9257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ee85750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f3e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f60576064600a5483611f539190612c7c565b611f5d9190613643565b90505b6000611f6b3061080f565b9050600d60169054906101000a900460ff16158015611fd85750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff05750600d60159054906101000a900460ff165b8015611ffd575060055481115b801561200b57506001600b54115b156120475761202d61202884612023846006546123a6565b6123a6565b6123bf565b60004790506000811115612045576120444761267b565b5b505b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120929190612e4e565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836120e19190612e4e565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212b91906136e0565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84866121c99190612e4e565b6040516121d691906128fa565b60405180910390a360008211156122db5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223291906136e0565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122d291906128fa565b60405180910390a35b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008183116123b557826123b7565b815b905092915050565b6001600d60166101000a81548160ff0219169083151502179055506000811161241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241490613814565b60405180910390fd5b6000600267ffffffffffffffff81111561243a57612439613834565b5b6040519080825280602002602001820160405280156124685781602001602082028036833780820191505090505b50905030816000815181106124805761247f613863565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254b91906138a7565b8160018151811061255f5761255e613863565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125c630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611658565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161262a9594939291906139cd565b600060405180830381600087803b15801561264457600080fd5b505af1158015612658573d6000803e3d6000fd5b50505050506000600d60166101000a81548160ff02191690831515021790555050565b600081116126be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b590613814565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612726573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612764578082015181840152602081019050612749565b60008484015250505050565b6000601f19601f8301169050919050565b600061278c8261272a565b6127968185612735565b93506127a6818560208601612746565b6127af81612770565b840191505092915050565b600060208201905081810360008301526127d48184612781565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061280c826127e1565b9050919050565b61281c81612801565b811461282757600080fd5b50565b60008135905061283981612813565b92915050565b6000819050919050565b6128528161283f565b811461285d57600080fd5b50565b60008135905061286f81612849565b92915050565b6000806040838503121561288c5761288b6127dc565b5b600061289a8582860161282a565b92505060206128ab85828601612860565b9150509250929050565b60008115159050919050565b6128ca816128b5565b82525050565b60006020820190506128e560008301846128c1565b92915050565b6128f48161283f565b82525050565b600060208201905061290f60008301846128eb565b92915050565b60008060006060848603121561292e5761292d6127dc565b5b600061293c8682870161282a565b935050602061294d8682870161282a565b925050604061295e86828701612860565b9150509250925092565b600060ff82169050919050565b61297e81612968565b82525050565b60006020820190506129996000830184612975565b92915050565b6000602082840312156129b5576129b46127dc565b5b60006129c38482850161282a565b91505092915050565b6129d581612801565b82525050565b60006020820190506129f060008301846129cc565b92915050565b6129ff816128b5565b8114612a0a57600080fd5b50565b600081359050612a1c816129f6565b92915050565b600060208284031215612a3857612a376127dc565b5b6000612a4684828501612a0d565b91505092915050565b60008060408385031215612a6657612a656127dc565b5b6000612a748582860161282a565b9250506020612a858582860161282a565b9150509250929050565b60008060408385031215612aa657612aa56127dc565b5b6000612ab485828601612860565b9250506020612ac585828601612860565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b5557808604811115612b3157612b30612acf565b5b6001851615612b405780820291505b8081029050612b4e85612afe565b9450612b15565b94509492505050565b600082612b6e5760019050612c2a565b81612b7c5760009050612c2a565b8160018114612b925760028114612b9c57612bcb565b6001915050612c2a565b60ff841115612bae57612bad612acf565b5b8360020a915084821115612bc557612bc4612acf565b5b50612c2a565b5060208310610133831016604e8410600b8410161715612c005782820a905083811115612bfb57612bfa612acf565b5b612c2a565b612c0d8484846001612b0b565b92509050818404811115612c2457612c23612acf565b5b81810290505b9392505050565b6000612c3c8261283f565b9150612c4783612968565b9250612c747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b5e565b905092915050565b6000612c878261283f565b9150612c928361283f565b9250828202612ca08161283f565b91508282048414831517612cb757612cb6612acf565b5b5092915050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1a602283612735565b9150612d2582612cbe565b604082019050919050565b60006020820190508181036000830152612d4981612d0d565b9050919050565b7f496e73756666696369656e7420416d6f756e7400000000000000000000000000600082015250565b6000612d86601383612735565b9150612d9182612d50565b602082019050919050565b60006020820190508181036000830152612db581612d79565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612e18602883612735565b9150612e2382612dbc565b604082019050919050565b60006020820190508181036000830152612e4781612e0b565b9050919050565b6000612e598261283f565b9150612e648361283f565b9250828203905081811115612e7c57612e7b612acf565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612eb8602083612735565b9150612ec382612e82565b602082019050919050565b60006020820190508181036000830152612ee781612eab565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b6000612f24601b83612735565b9150612f2f82612eee565b602082019050919050565b60006020820190508181036000830152612f5381612f17565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f90601783612735565b9150612f9b82612f5a565b602082019050919050565b60006020820190508181036000830152612fbf81612f83565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613022603683612735565b915061302d82612fc6565b604082019050919050565b6000602082019050818103600083015261305181613015565b9050919050565b60008151905061306781612849565b92915050565b600060208284031215613083576130826127dc565b5b600061309184828501613058565b91505092915050565b6000819050919050565b60006130bf6130ba6130b5846127e1565b61309a565b6127e1565b9050919050565b60006130d1826130a4565b9050919050565b60006130e3826130c6565b9050919050565b6130f3816130d8565b82525050565b600060408201905061310e60008301856130ea565b61311b60208301846128eb565b9392505050565b600081519050613131816129f6565b92915050565b60006020828403121561314d5761314c6127dc565b5b600061315b84828501613122565b91505092915050565b7f7265766572742077726f6e67206665652073657474696e677300000000000000600082015250565b600061319a601983612735565b91506131a582613164565b602082019050919050565b600060208201905081810360008301526131c98161318d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061322c602683612735565b9150613237826131d0565b604082019050919050565b6000602082019050818103600083015261325b8161321f565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000613298601b83612735565b91506132a382613262565b602082019050919050565b600060208201905081810360008301526132c78161328b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061332a602483612735565b9150613335826132ce565b604082019050919050565b600060208201905081810360008301526133598161331d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133bc602283612735565b91506133c782613360565b604082019050919050565b600060208201905081810360008301526133eb816133af565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061344e602583612735565b9150613459826133f2565b604082019050919050565b6000602082019050818103600083015261347d81613441565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134e0602383612735565b91506134eb82613484565b604082019050919050565b6000602082019050818103600083015261350f816134d3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613572602983612735565b915061357d82613516565b604082019050919050565b600060208201905081810360008301526135a181613565565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006135de601383612735565b91506135e9826135a8565b602082019050919050565b6000602082019050818103600083015261360d816135d1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061364e8261283f565b91506136598361283f565b92508261366957613668613614565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006136aa601983612735565b91506136b582613674565b602082019050919050565b600060208201905081810360008301526136d98161369d565b9050919050565b60006136eb8261283f565b91506136f68361283f565b925082820190508082111561370e5761370d612acf565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061374a601a83612735565b915061375582613714565b602082019050919050565b600060208201905081810360008301526137798161373d565b9050919050565b600061378b8261283f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137bd576137bc612acf565b5b600182019050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e2030000000600082015250565b60006137fe601d83612735565b9150613809826137c8565b602082019050919050565b6000602082019050818103600083015261382d816137f1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506138a181612813565b92915050565b6000602082840312156138bd576138bc6127dc565b5b60006138cb84828501613892565b91505092915050565b6000819050919050565b60006138f96138f46138ef846138d4565b61309a565b61283f565b9050919050565b613909816138de565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61394481612801565b82525050565b6000613956838361393b565b60208301905092915050565b6000602082019050919050565b600061397a8261390f565b613984818561391a565b935061398f8361392b565b8060005b838110156139c05781516139a7888261394a565b97506139b283613962565b925050600181019050613993565b5085935050505092915050565b600060a0820190506139e260008301886128eb565b6139ef6020830187613900565b8181036040830152613a01818661396f565b9050613a1060608301856129cc565b613a1d60808301846128eb565b969550505050505056fea26469706673582212203dd58489f0d9876792e1970333ff82f9d43e9ef68f89df5a49c69280b671629564736f6c63430008130033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c80638f3fa860116100b6578063d5e1cbff1161006f578063d5e1cbff14610467578063dd62ed3e1461047e578063e3ca2d65146104bb578063f2fde38b146104e4578063f80f5dd51461050d578063f87dc2c61461053657610156565b80638f3fa8601461036b57806395d89b4114610396578063a333b4ab146103c1578063a62ccc2c146103ea578063a9059cbb14610401578063bb9e95af1461043e57610156565b806370a082311161010857806370a082311461026d578063715018a6146102aa57806378c8cda7146102c157806385141a77146102ea5780638c0b5e22146103155780638da5cb5b1461034057610156565b806306fdde031461015b578063095ea7b31461018657806318160ddd146101c35780631b7e8145146101ee57806323b872dd14610205578063313ce5671461024257610156565b3661015657005b600080fd5b34801561016757600080fd5b50610170610561565b60405161017d91906127ba565b60405180910390f35b34801561019257600080fd5b506101ad60048036038101906101a89190612875565b61059e565b6040516101ba91906128d0565b60405180910390f35b3480156101cf57600080fd5b506101d86105bc565b6040516101e591906128fa565b60405180910390f35b3480156101fa57600080fd5b506102036105e3565b005b34801561021157600080fd5b5061022c60048036038101906102279190612915565b610706565b60405161023991906128d0565b60405180910390f35b34801561024e57600080fd5b50610257610806565b6040516102649190612984565b60405180910390f35b34801561027957600080fd5b50610294600480360381019061028f919061299f565b61080f565b6040516102a191906128fa565b60405180910390f35b3480156102b657600080fd5b506102bf610858565b005b3480156102cd57600080fd5b506102e860048036038101906102e3919061299f565b6109ab565b005b3480156102f657600080fd5b506102ff610b71565b60405161030c91906129db565b60405180910390f35b34801561032157600080fd5b5061032a610b77565b60405161033791906128fa565b60405180910390f35b34801561034c57600080fd5b50610355610b7d565b60405161036291906129db565b60405180910390f35b34801561037757600080fd5b50610380610ba6565b60405161038d91906128fa565b60405180910390f35b3480156103a257600080fd5b506103ab610bac565b6040516103b891906127ba565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e39190612a22565b610be9565b005b3480156103f657600080fd5b506103ff610cca565b005b34801561040d57600080fd5b5061042860048036038101906104239190612875565b610e13565b60405161043591906128d0565b60405180910390f35b34801561044a57600080fd5b5061046560048036038101906104609190612875565b610e31565b005b34801561047357600080fd5b5061047c611105565b005b34801561048a57600080fd5b506104a560048036038101906104a09190612a4f565b6111e8565b6040516104b291906128fa565b60405180910390f35b3480156104c757600080fd5b506104e260048036038101906104dd9190612a8f565b61126f565b005b3480156104f057600080fd5b5061050b6004803603810190610506919061299f565b611367565b005b34801561051957600080fd5b50610534600480360381019061052f919061299f565b611477565b005b34801561054257600080fd5b5061054b61163d565b60405161055891906128d0565b60405180910390f35b60606040518060400160405280600981526020017f436f6e646f7269746f0000000000000000000000000000000000000000000000815250905090565b60006105b26105ab611650565b8484611658565b6001905092915050565b60006009600a6105cc9190612c31565b66012edc9ab5d0006105de9190612c7c565b905090565b60004790506000811161062b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062290612d30565b60405180910390fd5b4781111561066e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066590612d9c565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156106d6573d6000803e3d6000fd5b507fc680f238873c988c7dc872ec40caca9d70edfe000c3d44a1b9410684db93767560405160405180910390a150565b600080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610752611650565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156107d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c990612e2e565b60405180910390fd5b6107dd858585611821565b6107fa856107e9611650565b85846107f59190612e4e565b611658565b60019150509392505050565b60006009905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610860611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e490612ece565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109b3611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3790612ece565b60405180910390fd5b60001515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aca90612f3a565b60405180910390fd5b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167fdff643e1b752e1138794c958b6f565e4f003ba18d45383a40b582de82ced091e60405160405180910390a250565b61dead81565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606040518060400160405280600581526020017f434f4e444f000000000000000000000000000000000000000000000000000000815250905090565b610bf1611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7590612ece565b60405180910390fd5b80600d60156101000a81548160ff0219169083151502179055508015157f3a9ce3b0c56e8f872f7647ac57385353c6cc3474ddf4b76a77ffbb8ad1fb0ccb60405160405180910390a250565b610cd2611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5690612ece565b60405180910390fd5b600d60149054906101000a900460ff1615610daf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da690612fa6565b60405180910390fd5b6001600d60156101000a81548160ff0219169083151502179055506001600d60146101000a81548160ff0219169083151502179055507f0d151bf744092c3011c9f50766da412cca73acdbcaa74b879a5858adc258f93560405160405180910390a1565b6000610e27610e20611650565b8484611821565b6001905092915050565b610e39611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebd90612ece565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613038565b60405180910390fd5b60008111610f77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6e90612d30565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fb091906129db565b602060405180830381865afa158015610fcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ff1919061306d565b811115611033576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102a90612d9c565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016110909291906130f9565b6020604051808303816000875af11580156110af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110d39190613137565b50807fc3cafad8c1a78aa542c18679d54d2e14cf1f08b516ac12071dcf9fd2d3701c2260405160405180910390a25050565b61110d611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190612ece565b60405180910390fd5b6009600a6111a89190612c31565b66012edc9ab5d0006111ba9190612c7c565b6007819055506009600a6111ce9190612c31565b66012edc9ab5d0006111e09190612c7c565b600881905550565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611277611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611304576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fb90612ece565b60405180910390fd5b60238211158015611316575060238111155b611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c906131b0565b60405180910390fd5b8160098190555080600a819055505050565b61136f611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f390612ece565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361146b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146290613242565b60405180910390fd5b611474816122e2565b50565b61147f611650565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461150c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150390612ece565b60405180910390fd5b60011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361159f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611596906132ae565b60405180910390fd5b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508073ffffffffffffffffffffffffffffffffffffffff167f7168e8adb718597b3ac83e2dfe415bea8ebaabb57fe933ffac2e0ed93b80718e60405160405180910390a250565b600d60149054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116be90613340565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d906133d2565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161181491906128fa565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611890576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188790613464565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f6906134f6565b60405180910390fd5b60008111611942576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193990613588565b60405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119e85750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611a5957600d60149054906101000a900460ff16611a3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a33906135f4565b60405180910390fd5b606460095483611a4c9190612c7c565b611a569190613643565b90505b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611afa5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611b0457600090505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611baf5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c055750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611cc057600754821115611c4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c46906136c0565b60405180910390fd5b60085482611c5c8561080f565b611c6691906136e0565b1115611ca7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9e90613760565b60405180910390fd5b600b6000815480929190611cba90613780565b91905055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d685750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611dbe5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611e0957600754821115611e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dff906136c0565b60405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e9257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ee85750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f3e5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f60576064600a5483611f539190612c7c565b611f5d9190613643565b90505b6000611f6b3061080f565b9050600d60169054906101000a900460ff16158015611fd85750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ff05750600d60159054906101000a900460ff165b8015611ffd575060055481115b801561200b57506001600b54115b156120475761202d61202884612023846006546123a6565b6123a6565b6123bf565b60004790506000811115612045576120444761267b565b5b505b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120929190612e4e565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836120e19190612e4e565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461212b91906136e0565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84866121c99190612e4e565b6040516121d691906128fa565b60405180910390a360008211156122db5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461223291906136e0565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122d291906128fa565b60405180910390a35b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008183116123b557826123b7565b815b905092915050565b6001600d60166101000a81548160ff0219169083151502179055506000811161241d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241490613814565b60405180910390fd5b6000600267ffffffffffffffff81111561243a57612439613834565b5b6040519080825280602002602001820160405280156124685781602001602082028036833780820191505090505b50905030816000815181106124805761247f613863565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254b91906138a7565b8160018151811061255f5761255e613863565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125c630600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611658565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161262a9594939291906139cd565b600060405180830381600087803b15801561264457600080fd5b505af1158015612658573d6000803e3d6000fd5b50505050506000600d60166101000a81548160ff02191690831515021790555050565b600081116126be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b590613814565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612726573d6000803e3d6000fd5b5050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612764578082015181840152602081019050612749565b60008484015250505050565b6000601f19601f8301169050919050565b600061278c8261272a565b6127968185612735565b93506127a6818560208601612746565b6127af81612770565b840191505092915050565b600060208201905081810360008301526127d48184612781565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061280c826127e1565b9050919050565b61281c81612801565b811461282757600080fd5b50565b60008135905061283981612813565b92915050565b6000819050919050565b6128528161283f565b811461285d57600080fd5b50565b60008135905061286f81612849565b92915050565b6000806040838503121561288c5761288b6127dc565b5b600061289a8582860161282a565b92505060206128ab85828601612860565b9150509250929050565b60008115159050919050565b6128ca816128b5565b82525050565b60006020820190506128e560008301846128c1565b92915050565b6128f48161283f565b82525050565b600060208201905061290f60008301846128eb565b92915050565b60008060006060848603121561292e5761292d6127dc565b5b600061293c8682870161282a565b935050602061294d8682870161282a565b925050604061295e86828701612860565b9150509250925092565b600060ff82169050919050565b61297e81612968565b82525050565b60006020820190506129996000830184612975565b92915050565b6000602082840312156129b5576129b46127dc565b5b60006129c38482850161282a565b91505092915050565b6129d581612801565b82525050565b60006020820190506129f060008301846129cc565b92915050565b6129ff816128b5565b8114612a0a57600080fd5b50565b600081359050612a1c816129f6565b92915050565b600060208284031215612a3857612a376127dc565b5b6000612a4684828501612a0d565b91505092915050565b60008060408385031215612a6657612a656127dc565b5b6000612a748582860161282a565b9250506020612a858582860161282a565b9150509250929050565b60008060408385031215612aa657612aa56127dc565b5b6000612ab485828601612860565b9250506020612ac585828601612860565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612b5557808604811115612b3157612b30612acf565b5b6001851615612b405780820291505b8081029050612b4e85612afe565b9450612b15565b94509492505050565b600082612b6e5760019050612c2a565b81612b7c5760009050612c2a565b8160018114612b925760028114612b9c57612bcb565b6001915050612c2a565b60ff841115612bae57612bad612acf565b5b8360020a915084821115612bc557612bc4612acf565b5b50612c2a565b5060208310610133831016604e8410600b8410161715612c005782820a905083811115612bfb57612bfa612acf565b5b612c2a565b612c0d8484846001612b0b565b92509050818404811115612c2457612c23612acf565b5b81810290505b9392505050565b6000612c3c8261283f565b9150612c4783612968565b9250612c747fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612b5e565b905092915050565b6000612c878261283f565b9150612c928361283f565b9250828202612ca08161283f565b91508282048414831517612cb757612cb6612acf565b5b5092915050565b7f416d6f756e742073686f756c642062652067726561746572207468616e207a6560008201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d1a602283612735565b9150612d2582612cbe565b604082019050919050565b60006020820190508181036000830152612d4981612d0d565b9050919050565b7f496e73756666696369656e7420416d6f756e7400000000000000000000000000600082015250565b6000612d86601383612735565b9150612d9182612d50565b602082019050919050565b60006020820190508181036000830152612db581612d79565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000612e18602883612735565b9150612e2382612dbc565b604082019050919050565b60006020820190508181036000830152612e4781612e0b565b9050919050565b6000612e598261283f565b9150612e648361283f565b9250828203905081811115612e7c57612e7b612acf565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612eb8602083612735565b9150612ec382612e82565b602082019050919050565b60006020820190508181036000830152612ee781612eab565b9050919050565b7f4163636f756e7420697320616c726561647920696e636c756465640000000000600082015250565b6000612f24601b83612735565b9150612f2f82612eee565b602082019050919050565b60006020820190508181036000830152612f5381612f17565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612f90601783612735565b9150612f9b82612f5a565b602082019050919050565b60006020820190508181036000830152612fbf81612f83565b9050919050565b7f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c60008201527f616e6365206f6620697473206f776e20746f6b656e7300000000000000000000602082015250565b6000613022603683612735565b915061302d82612fc6565b604082019050919050565b6000602082019050818103600083015261305181613015565b9050919050565b60008151905061306781612849565b92915050565b600060208284031215613083576130826127dc565b5b600061309184828501613058565b91505092915050565b6000819050919050565b60006130bf6130ba6130b5846127e1565b61309a565b6127e1565b9050919050565b60006130d1826130a4565b9050919050565b60006130e3826130c6565b9050919050565b6130f3816130d8565b82525050565b600060408201905061310e60008301856130ea565b61311b60208301846128eb565b9392505050565b600081519050613131816129f6565b92915050565b60006020828403121561314d5761314c6127dc565b5b600061315b84828501613122565b91505092915050565b7f7265766572742077726f6e67206665652073657474696e677300000000000000600082015250565b600061319a601983612735565b91506131a582613164565b602082019050919050565b600060208201905081810360008301526131c98161318d565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061322c602683612735565b9150613237826131d0565b604082019050919050565b6000602082019050818103600083015261325b8161321f565b9050919050565b7f4163636f756e7420697320616c7265616479206578636c756465640000000000600082015250565b6000613298601b83612735565b91506132a382613262565b602082019050919050565b600060208201905081810360008301526132c78161328b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061332a602483612735565b9150613335826132ce565b604082019050919050565b600060208201905081810360008301526133598161331d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006133bc602283612735565b91506133c782613360565b604082019050919050565b600060208201905081810360008301526133eb816133af565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061344e602583612735565b9150613459826133f2565b604082019050919050565b6000602082019050818103600083015261347d81613441565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006134e0602383612735565b91506134eb82613484565b604082019050919050565b6000602082019050818103600083015261350f816134d3565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613572602983612735565b915061357d82613516565b604082019050919050565b600060208201905081810360008301526135a181613565565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b60006135de601383612735565b91506135e9826135a8565b602082019050919050565b6000602082019050818103600083015261360d816135d1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061364e8261283f565b91506136598361283f565b92508261366957613668613614565b5b828204905092915050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006136aa601983612735565b91506136b582613674565b602082019050919050565b600060208201905081810360008301526136d98161369d565b9050919050565b60006136eb8261283f565b91506136f68361283f565b925082820190508082111561370e5761370d612acf565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061374a601a83612735565b915061375582613714565b602082019050919050565b600060208201905081810360008301526137798161373d565b9050919050565b600061378b8261283f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036137bd576137bc612acf565b5b600182019050919050565b7f616d6f756e74206d7573742062652067726565746572207468616e2030000000600082015250565b60006137fe601d83612735565b9150613809826137c8565b602082019050919050565b6000602082019050818103600083015261382d816137f1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506138a181612813565b92915050565b6000602082840312156138bd576138bc6127dc565b5b60006138cb84828501613892565b91505092915050565b6000819050919050565b60006138f96138f46138ef846138d4565b61309a565b61283f565b9050919050565b613909816138de565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61394481612801565b82525050565b6000613956838361393b565b60208301905092915050565b6000602082019050919050565b600061397a8261390f565b613984818561391a565b935061398f8361392b565b8060005b838110156139c05781516139a7888261394a565b97506139b283613962565b925050600181019050613993565b5085935050505092915050565b600060a0820190506139e260008301886128eb565b6139ef6020830187613900565b8181036040830152613a01818661396f565b9050613a1060608301856129cc565b613a1d60808301846128eb565b969550505050505056fea26469706673582212203dd58489f0d9876792e1970333ff82f9d43e9ef68f89df5a49c69280b671629564736f6c63430008130033

Deployed Bytecode Sourcemap

2813:9908:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5771:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6742:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6056:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12333:385;;;;;;;;;;;;;:::i;:::-;;6914:410;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5962:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6162:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1898:148;;;;;;;;;;;;;:::i;:::-;;11326:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3055:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3560:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1282:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3630:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5865:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10928:141;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11583:211;;;;;;;;;;;;;:::i;:::-;;6410:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11846:476;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10577:111;;;;;;;;;;;;;:::i;:::-;;6588:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10697:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1492:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11081:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3900:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5771:83;5808:13;5841:5;;;;;;;;;;;;;;;;;5834:12;;5771:83;:::o;6742:161::-;6817:4;6834:39;6843:12;:10;:12::i;:::-;6857:7;6866:6;6834:8;:39::i;:::-;6891:4;6884:11;;6742:161;;;;:::o;6056:95::-;6109:7;3228:1;3290:2;:13;;;;:::i;:::-;3272:15;:31;;;;:::i;:::-;6129:14;;6056:95;:::o;12333:385::-;12386:26;12415:21;12386:50;;12476:1;12455:18;:22;12447:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;12557:21;12535:18;:43;;12527:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;12629:15;;;;;;;;;;;12613:42;;:62;12656:18;12613:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12689:21;;;;;;;;;;12375:343;12333:385::o;6914:410::-;7012:4;7029:24;7056:11;:19;7068:6;7056:19;;;;;;;;;;;;;;;:33;7076:12;:10;:12::i;:::-;7056:33;;;;;;;;;;;;;;;;7029:60;;7128:6;7108:16;:26;;7100:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7190:36;7200:6;7208:9;7219:6;7190:9;:36::i;:::-;7237:57;7246:6;7254:12;:10;:12::i;:::-;7287:6;7268:16;:25;;;;:::i;:::-;7237:8;:57::i;:::-;7312:4;7305:11;;;6914:410;;;;;:::o;5962:83::-;6003:5;3228:1;6021:16;;5962:83;:::o;6162:119::-;6228:7;6255:9;:18;6265:7;6255:18;;;;;;;;;;;;;;;;6248:25;;6162:119;;;:::o;1898:148::-;1417:12;:10;:12::i;:::-;1407:22;;:6;;;;;;;;;;:22;;;1399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2005:1:::1;1968:40;;1989:6;::::0;::::1;;;;;;;;1968:40;;;;;;;;;;;;2036:1;2019:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1898:148::o:0;11326:246::-;1417:12;:10;:12::i;:::-;1407:22;;:6;;;;;;;;;;:22;;;1399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11438:5:::1;11407:36;;:18;:27;11426:7;11407:27;;;;;;;;;;;;;;;;;;;;;;;;;:36;;::::0;11399:76:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11516:5;11486:18;:27;11505:7;11486:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;11556:7;11534:30;;;;;;;;;;;;11326:246:::0;:::o;3055:79::-;3092:42;3055:79;:::o;3560:58::-;;;;:::o;1282:79::-;1320:7;1347:6;;;;;;;;;;;1340:13;;1282:79;:::o;3630:60::-;;;;:::o;5865:87::-;5904:13;5937:7;;;;;;;;;;;;;;;;;5930:14;;5865:87;:::o;10928:141::-;1417:12;:10;:12::i;:::-;1407:22;;:6;;;;;;;;;;:22;;;1399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11015:5:::1;10997:15;;:23;;;;;;;;;;;;;;;;;;11055:5;11032:29;;;;;;;;;;;;10928:141:::0;:::o;11583:211::-;1417:12;:10;:12::i;:::-;1407:22;;:6;;;;;;;;;;:22;;;1399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11650:11:::1;;;;;;;;;;;11649:12;11641:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11717:4;11699:15;;:22;;;;;;;;;;;;;;;;;;11747:4;11733:11;;:18;;;;;;;;;;;;;;;;;;11766:20;;;;;;;;;;11583:211::o:0;6410:167::-;6488:4;6505:42;6515:12;:10;:12::i;:::-;6529:9;6540:6;6505:9;:42::i;:::-;6565:4;6558:11;;6410:167;;;;:::o;11846:476::-;1417:12;:10;:12::i;:::-;1407:22;;:6;;;;;;;;;;:22;;;1399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11976:4:::1;11954:27;;:10;:27;;::::0;11946:94:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;12069:1;12059:7;:11;12051:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12146:10;12139:28;;;12176:4;12139:43;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12128:7;:54;;12120:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;12224:10;12217:27;;;12245:15;;;;;;;;;;;12262:7;12217:53;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12305:7;12284:29;;;;;;;;;;11846:476:::0;;:::o;10577:111::-;1417:12;:10;:12::i;:::-;1407:22;;:6;;;;;;;;;;:22;;;1399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3228:1:::1;3290:2;:13;;;;:::i;:::-;3272:15;:31;;;;:::i;:::-;10629:11;:21;;;;3228:1;3290:2;:13;;;;:::i;:::-;3272:15;:31;;;;:::i;:::-;10657:13;:23;;;;10577:111::o:0;6588:143::-;6669:7;6696:11;:18;6708:5;6696:18;;;;;;;;;;;;;;;:27;6715:7;6696:27;;;;;;;;;;;;;;;;6689:34;;6588:143;;;;:::o;10697:221::-;1417:12;:10;:12::i;:::-;1407:22;;:6;;;;;;;;;;:22;;;1399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10800:2:::1;10789:7;:13;;:31;;;;;10818:2;10806:8;:14;;10789:31;10781:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10872:7;10861:8;:18;;;;10902:8;10890:9;:20;;;;10697:221:::0;;:::o;1492:203::-;1417:12;:10;:12::i;:::-;1407:22;;:6;;;;;;;;;;:22;;;1399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1603:1:::1;1583:22;;:8;:22;;::::0;1575:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1659:28;1678:8;1659:18;:28::i;:::-;1492:203:::0;:::o;11081:234::-;1417:12;:10;:12::i;:::-;1407:22;;:6;;;;;;;;;;:22;;;1399:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11187:4:::1;11156:35;;:18;:27;11175:7;11156:27;;;;;;;;;;;;;;;;;;;;;;;;;:35;;::::0;11148:74:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11262:4;11232:18;:27;11251:7;11232:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11300:7;11278:30;;;;;;;;;;;;11081:234:::0;:::o;3900:31::-;;;;;;;;;;;;;:::o;188:98::-;241:7;268:10;261:17;;188:98;:::o;7335:335::-;7445:1;7428:19;;:5;:19;;;7420:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7526:1;7507:21;;:7;:21;;;7499:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7608:6;7578:11;:18;7590:5;7578:18;;;;;;;;;;;;;;;:27;7597:7;7578:27;;;;;;;;;;;;;;;:36;;;;7646:7;7630:32;;7639:5;7630:32;;;7655:6;7630:32;;;;;;:::i;:::-;;;;;;;;7335:335;;;:::o;7681:2232::-;7785:1;7769:18;;:4;:18;;;7761:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7862:1;7848:16;;:2;:16;;;7840:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7932:1;7923:6;:10;7915:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7990:14;8024:18;:24;8043:4;8024:24;;;;;;;;;;;;;;;;;;;;;;;;;8023:25;:52;;;;;8053:18;:22;8072:2;8053:22;;;;;;;;;;;;;;;;;;;;;;;;;8052:23;8023:52;8019:189;;;8100:11;;;;;;;;;;;8092:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8192:3;8179:8;;8169:6;:19;;;;:::i;:::-;:27;;;;:::i;:::-;8160:36;;8019:189;8233:18;:24;8252:4;8233:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8261:18;:22;8280:2;8261:22;;;;;;;;;;;;;;;;;;;;;;;;;8233:50;8229:93;;;8309:1;8300:10;;8229:93;8358:13;;;;;;;;;;;8350:21;;:4;:21;;;:55;;;;;8389:15;;;;;;;;;;;8375:30;;:2;:30;;;;8350:55;:82;;;;;8410:18;:22;8429:2;8410:22;;;;;;;;;;;;;;;;;;;;;;;;;8409:23;8350:82;8346:298;;;8468:11;;8458:6;:21;;8450:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8559:13;;8549:6;8533:13;8543:2;8533:9;:13::i;:::-;:22;;;;:::i;:::-;:39;;8525:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;8620:8;;:10;;;;;;;;;:::i;:::-;;;;;;8346:298;8679:13;;;;;;;;;;;8671:21;;:4;:21;;;;:50;;;;;8697:18;:24;8716:4;8697:24;;;;;;;;;;;;;;;;;;;;;;;;;8696:25;8671:50;:77;;;;;8726:18;:22;8745:2;8726:22;;;;;;;;;;;;;;;;;;;;;;;;;8725:23;8671:77;8667:172;;;8784:11;;8774:6;:21;;8766:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8667:172;8871:13;;;;;;;;;;;8865:19;;:2;:19;;;:44;;;;;8904:4;8888:21;;:4;:21;;;;8865:44;:73;;;;;8914:18;:24;8933:4;8914:24;;;;;;;;;;;;;;;;;;;;;;;;;8913:25;8865:73;:100;;;;;8943:18;:22;8962:2;8943:22;;;;;;;;;;;;;;;;;;;;;;;;;8942:23;8865:100;8861:203;;;9022:3;9008:9;;8998:6;:20;;;;:::i;:::-;:28;;;;:::i;:::-;8989:37;;8861:203;9089:28;9120:24;9138:4;9120:9;:24::i;:::-;9089:55;;9164:6;;;;;;;;;;;9163:7;:32;;;;;9182:13;;;;;;;;;;;9174:21;;:4;:21;;;;9163:32;:51;;;;;9199:15;;;;;;;;;;;9163:51;:92;;;;;9241:14;;9218:20;:37;9163:92;:108;;;;;9270:1;9259:8;;:12;9163:108;9159:412;;;9292:72;9309:54;9313:6;9321:41;9325:20;9347:14;;9321:3;:41::i;:::-;9309:3;:54::i;:::-;9292:16;:72::i;:::-;9382:26;9411:21;9382:50;;9475:1;9454:18;:22;9451:105;;;9501:35;9514:21;9501:12;:35::i;:::-;9451:105;9273:298;9159:412;9617:6;9599:9;:15;9609:4;9599:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;9581:9;:15;9591:4;9581:15;;;;;;;;;;;;;;;:42;;;;9678:6;9668;:17;;;;:::i;:::-;9651:9;:13;9661:2;9651:13;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;9635:9;:13;9645:2;9635:13;;;;;;;;;;;;;;;:51;;;;9717:2;9702:37;;9711:4;9702:37;;;9731:6;9721;:17;;;;:::i;:::-;9702:37;;;;;;:::i;:::-;;;;;;;;9763:1;9754:6;:10;9751:155;;;9833:6;9805:9;:24;9823:4;9805:24;;;;;;;;;;;;;;;;:35;;;;:::i;:::-;9778:9;:24;9796:4;9778:24;;;;;;;;;;;;;;;:62;;;;9881:4;9858:36;;9867:4;9858:36;;;9887:6;9858:36;;;;;;:::i;:::-;;;;;;;;9751:155;7750:2163;;7681:2232;;;:::o;1701:191::-;1775:16;1794:6;;;;;;;;;;;1775:25;;1820:8;1811:6;;:17;;;;;;;;;;;;;;;;;;1875:8;1844:40;;1865:8;1844:40;;;;;;;;;;;;1764:128;1701:191;:::o;6292:107::-;6349:7;6381:1;6377;:5;6376:15;;6390:1;6376:15;;;6386:1;6376:15;6369:22;;6292:107;;;;:::o;9925:471::-;4440:4;4431:6;;:13;;;;;;;;;;;;;;;;;;10025:1:::1;10011:11;:15;10003:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10071:21;10109:1;10095:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10071:40;;10140:4;10122;10127:1;10122:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10166:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10156:4;10161:1;10156:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10199:62;10216:4;10231:15;;;;;;;;;;;10249:11;10199:8;:62::i;:::-;10272:15;;;;;;;;;;;:66;;;10339:11;10351:1;10353:4;10366;10372:15;10272:116;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9992:404;4476:5:::0;4467:6;;:14;;;;;;;;;;;;;;;;;;9925:471;:::o;10408:159::-;10481:1;10472:6;:10;10464:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;10527:15;;;;;;;;;;;:24;;:32;10552:6;10527:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10408:159;:::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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:116::-;5610:21;5625:5;5610:21;:::i;:::-;5603:5;5600:32;5590:60;;5646:1;5643;5636:12;5590:60;5540:116;:::o;5662:133::-;5705:5;5743:6;5730:20;5721:29;;5759:30;5783:5;5759:30;:::i;:::-;5662:133;;;;:::o;5801:323::-;5857:6;5906:2;5894:9;5885:7;5881:23;5877:32;5874:119;;;5912:79;;:::i;:::-;5874:119;6032:1;6057:50;6099:7;6090:6;6079:9;6075:22;6057:50;:::i;:::-;6047:60;;6003:114;5801:323;;;;:::o;6130:474::-;6198:6;6206;6255:2;6243:9;6234:7;6230:23;6226:32;6223:119;;;6261:79;;:::i;:::-;6223:119;6381:1;6406:53;6451:7;6442:6;6431:9;6427:22;6406:53;:::i;:::-;6396:63;;6352:117;6508:2;6534:53;6579:7;6570:6;6559:9;6555:22;6534:53;:::i;:::-;6524:63;;6479:118;6130:474;;;;;:::o;6610:::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:180::-;7138:77;7135:1;7128:88;7235:4;7232:1;7225:15;7259:4;7256:1;7249:15;7276:102;7318:8;7365:5;7362:1;7358:13;7337:34;;7276:102;;;:::o;7384:848::-;7445:5;7452:4;7476:6;7467:15;;7500:5;7491:14;;7514:712;7535:1;7525:8;7522:15;7514:712;;;7630:4;7625:3;7621:14;7615:4;7612:24;7609:50;;;7639:18;;:::i;:::-;7609:50;7689:1;7679:8;7675:16;7672:451;;;8104:4;8097:5;8093:16;8084:25;;7672:451;8154:4;8148;8144:15;8136:23;;8184:32;8207:8;8184:32;:::i;:::-;8172:44;;7514:712;;;7384:848;;;;;;;:::o;8238:1073::-;8292:5;8483:8;8473:40;;8504:1;8495:10;;8506:5;;8473:40;8532:4;8522:36;;8549:1;8540:10;;8551:5;;8522:36;8618:4;8666:1;8661:27;;;;8702:1;8697:191;;;;8611:277;;8661:27;8679:1;8670:10;;8681:5;;;8697:191;8742:3;8732:8;8729:17;8726:43;;;8749:18;;:::i;:::-;8726:43;8798:8;8795:1;8791:16;8782:25;;8833:3;8826:5;8823:14;8820:40;;;8840:18;;:::i;:::-;8820:40;8873:5;;;8611:277;;8997:2;8987:8;8984:16;8978:3;8972:4;8969:13;8965:36;8947:2;8937:8;8934:16;8929:2;8923:4;8920:12;8916:35;8900:111;8897:246;;;9053:8;9047:4;9043:19;9034:28;;9088:3;9081:5;9078:14;9075:40;;;9095:18;;:::i;:::-;9075:40;9128:5;;8897:246;9168:42;9206:3;9196:8;9190:4;9187:1;9168:42;:::i;:::-;9153:57;;;;9242:4;9237:3;9233:14;9226:5;9223:25;9220:51;;;9251:18;;:::i;:::-;9220:51;9300:4;9293:5;9289:16;9280:25;;8238:1073;;;;;;:::o;9317:281::-;9375:5;9399:23;9417:4;9399:23;:::i;:::-;9391:31;;9443:25;9459:8;9443:25;:::i;:::-;9431:37;;9487:104;9524:66;9514:8;9508:4;9487:104;:::i;:::-;9478:113;;9317:281;;;;:::o;9604:410::-;9644:7;9667:20;9685:1;9667:20;:::i;:::-;9662:25;;9701:20;9719:1;9701:20;:::i;:::-;9696:25;;9756:1;9753;9749:9;9778:30;9796:11;9778:30;:::i;:::-;9767:41;;9957:1;9948:7;9944:15;9941:1;9938:22;9918:1;9911:9;9891:83;9868:139;;9987:18;;:::i;:::-;9868:139;9652:362;9604:410;;;;:::o;10020:221::-;10160:34;10156:1;10148:6;10144:14;10137:58;10229:4;10224:2;10216:6;10212:15;10205:29;10020:221;:::o;10247:366::-;10389:3;10410:67;10474:2;10469:3;10410:67;:::i;:::-;10403:74;;10486:93;10575:3;10486:93;:::i;:::-;10604:2;10599:3;10595:12;10588:19;;10247:366;;;:::o;10619:419::-;10785:4;10823:2;10812:9;10808:18;10800:26;;10872:9;10866:4;10862:20;10858:1;10847:9;10843:17;10836:47;10900:131;11026:4;10900:131;:::i;:::-;10892:139;;10619:419;;;:::o;11044:169::-;11184:21;11180:1;11172:6;11168:14;11161:45;11044:169;:::o;11219:366::-;11361:3;11382:67;11446:2;11441:3;11382:67;:::i;:::-;11375:74;;11458:93;11547:3;11458:93;:::i;:::-;11576:2;11571:3;11567:12;11560:19;;11219:366;;;:::o;11591:419::-;11757:4;11795:2;11784:9;11780:18;11772:26;;11844:9;11838:4;11834:20;11830:1;11819:9;11815:17;11808:47;11872:131;11998:4;11872:131;:::i;:::-;11864:139;;11591:419;;;:::o;12016:227::-;12156:34;12152:1;12144:6;12140:14;12133:58;12225:10;12220:2;12212:6;12208:15;12201:35;12016:227;:::o;12249:366::-;12391:3;12412:67;12476:2;12471:3;12412:67;:::i;:::-;12405:74;;12488:93;12577:3;12488:93;:::i;:::-;12606:2;12601:3;12597:12;12590:19;;12249:366;;;:::o;12621:419::-;12787:4;12825:2;12814:9;12810:18;12802:26;;12874:9;12868:4;12864:20;12860:1;12849:9;12845:17;12838:47;12902:131;13028:4;12902:131;:::i;:::-;12894:139;;12621:419;;;:::o;13046:194::-;13086:4;13106:20;13124:1;13106:20;:::i;:::-;13101:25;;13140:20;13158:1;13140:20;:::i;:::-;13135:25;;13184:1;13181;13177:9;13169:17;;13208:1;13202:4;13199:11;13196:37;;;13213:18;;:::i;:::-;13196:37;13046:194;;;;:::o;13246:182::-;13386:34;13382:1;13374:6;13370:14;13363:58;13246:182;:::o;13434:366::-;13576:3;13597:67;13661:2;13656:3;13597:67;:::i;:::-;13590:74;;13673:93;13762:3;13673:93;:::i;:::-;13791:2;13786:3;13782:12;13775:19;;13434:366;;;:::o;13806:419::-;13972:4;14010:2;13999:9;13995:18;13987:26;;14059:9;14053:4;14049:20;14045:1;14034:9;14030:17;14023:47;14087:131;14213:4;14087:131;:::i;:::-;14079:139;;13806:419;;;:::o;14231:177::-;14371:29;14367:1;14359:6;14355:14;14348:53;14231:177;:::o;14414:366::-;14556:3;14577:67;14641:2;14636:3;14577:67;:::i;:::-;14570:74;;14653:93;14742:3;14653:93;:::i;:::-;14771:2;14766:3;14762:12;14755:19;;14414:366;;;:::o;14786:419::-;14952:4;14990:2;14979:9;14975:18;14967:26;;15039:9;15033:4;15029:20;15025:1;15014:9;15010:17;15003:47;15067:131;15193:4;15067:131;:::i;:::-;15059:139;;14786:419;;;:::o;15211:173::-;15351:25;15347:1;15339:6;15335:14;15328:49;15211:173;:::o;15390:366::-;15532:3;15553:67;15617:2;15612:3;15553:67;:::i;:::-;15546:74;;15629:93;15718:3;15629:93;:::i;:::-;15747:2;15742:3;15738:12;15731:19;;15390:366;;;:::o;15762:419::-;15928:4;15966:2;15955:9;15951:18;15943:26;;16015:9;16009:4;16005:20;16001:1;15990:9;15986:17;15979:47;16043:131;16169:4;16043:131;:::i;:::-;16035:139;;15762:419;;;:::o;16187:241::-;16327:34;16323:1;16315:6;16311:14;16304:58;16396:24;16391:2;16383:6;16379:15;16372:49;16187:241;:::o;16434:366::-;16576:3;16597:67;16661:2;16656:3;16597:67;:::i;:::-;16590:74;;16673:93;16762:3;16673:93;:::i;:::-;16791:2;16786:3;16782:12;16775:19;;16434:366;;;:::o;16806:419::-;16972:4;17010:2;16999:9;16995:18;16987:26;;17059:9;17053:4;17049:20;17045:1;17034:9;17030:17;17023:47;17087:131;17213:4;17087:131;:::i;:::-;17079:139;;16806:419;;;:::o;17231:143::-;17288:5;17319:6;17313:13;17304:22;;17335:33;17362:5;17335:33;:::i;:::-;17231:143;;;;:::o;17380:351::-;17450:6;17499:2;17487:9;17478:7;17474:23;17470:32;17467:119;;;17505:79;;:::i;:::-;17467:119;17625:1;17650:64;17706:7;17697:6;17686:9;17682:22;17650:64;:::i;:::-;17640:74;;17596:128;17380:351;;;;:::o;17737:60::-;17765:3;17786:5;17779:12;;17737:60;;;:::o;17803:142::-;17853:9;17886:53;17904:34;17913:24;17931:5;17913:24;:::i;:::-;17904:34;:::i;:::-;17886:53;:::i;:::-;17873:66;;17803:142;;;:::o;17951:126::-;18001:9;18034:37;18065:5;18034:37;:::i;:::-;18021:50;;17951:126;;;:::o;18083:134::-;18141:9;18174:37;18205:5;18174:37;:::i;:::-;18161:50;;18083:134;;;:::o;18223:147::-;18318:45;18357:5;18318:45;:::i;:::-;18313:3;18306:58;18223:147;;:::o;18376:348::-;18505:4;18543:2;18532:9;18528:18;18520:26;;18556:79;18632:1;18621:9;18617:17;18608:6;18556:79;:::i;:::-;18645:72;18713:2;18702:9;18698:18;18689:6;18645:72;:::i;:::-;18376:348;;;;;:::o;18730:137::-;18784:5;18815:6;18809:13;18800:22;;18831:30;18855:5;18831:30;:::i;:::-;18730:137;;;;:::o;18873:345::-;18940:6;18989:2;18977:9;18968:7;18964:23;18960:32;18957:119;;;18995:79;;:::i;:::-;18957:119;19115:1;19140:61;19193:7;19184:6;19173:9;19169:22;19140:61;:::i;:::-;19130:71;;19086:125;18873:345;;;;:::o;19224:175::-;19364:27;19360:1;19352:6;19348:14;19341:51;19224:175;:::o;19405:366::-;19547:3;19568:67;19632:2;19627:3;19568:67;:::i;:::-;19561:74;;19644:93;19733:3;19644:93;:::i;:::-;19762:2;19757:3;19753:12;19746:19;;19405:366;;;:::o;19777:419::-;19943:4;19981:2;19970:9;19966:18;19958:26;;20030:9;20024:4;20020:20;20016:1;20005:9;20001:17;19994:47;20058:131;20184:4;20058:131;:::i;:::-;20050:139;;19777:419;;;:::o;20202:225::-;20342:34;20338:1;20330:6;20326:14;20319:58;20411:8;20406:2;20398:6;20394:15;20387:33;20202:225;:::o;20433:366::-;20575:3;20596:67;20660:2;20655:3;20596:67;:::i;:::-;20589:74;;20672:93;20761:3;20672:93;:::i;:::-;20790:2;20785:3;20781:12;20774:19;;20433:366;;;:::o;20805:419::-;20971:4;21009:2;20998:9;20994:18;20986:26;;21058:9;21052:4;21048:20;21044:1;21033:9;21029:17;21022:47;21086:131;21212:4;21086:131;:::i;:::-;21078:139;;20805:419;;;:::o;21230:177::-;21370:29;21366:1;21358:6;21354:14;21347:53;21230:177;:::o;21413:366::-;21555:3;21576:67;21640:2;21635:3;21576:67;:::i;:::-;21569:74;;21652:93;21741:3;21652:93;:::i;:::-;21770:2;21765:3;21761:12;21754:19;;21413:366;;;:::o;21785:419::-;21951:4;21989:2;21978:9;21974:18;21966:26;;22038:9;22032:4;22028:20;22024:1;22013:9;22009:17;22002:47;22066:131;22192:4;22066:131;:::i;:::-;22058:139;;21785:419;;;:::o;22210:223::-;22350:34;22346:1;22338:6;22334:14;22327:58;22419:6;22414:2;22406:6;22402:15;22395:31;22210:223;:::o;22439:366::-;22581:3;22602:67;22666:2;22661:3;22602:67;:::i;:::-;22595:74;;22678:93;22767:3;22678:93;:::i;:::-;22796:2;22791:3;22787:12;22780:19;;22439:366;;;:::o;22811:419::-;22977:4;23015:2;23004:9;23000:18;22992:26;;23064:9;23058:4;23054:20;23050:1;23039:9;23035:17;23028:47;23092:131;23218:4;23092:131;:::i;:::-;23084:139;;22811:419;;;:::o;23236:221::-;23376:34;23372:1;23364:6;23360:14;23353:58;23445:4;23440:2;23432:6;23428:15;23421:29;23236:221;:::o;23463:366::-;23605:3;23626:67;23690:2;23685:3;23626:67;:::i;:::-;23619:74;;23702:93;23791:3;23702:93;:::i;:::-;23820:2;23815:3;23811:12;23804:19;;23463:366;;;:::o;23835:419::-;24001:4;24039:2;24028:9;24024:18;24016:26;;24088:9;24082:4;24078:20;24074:1;24063:9;24059:17;24052:47;24116:131;24242:4;24116:131;:::i;:::-;24108:139;;23835:419;;;:::o;24260:224::-;24400:34;24396:1;24388:6;24384:14;24377:58;24469:7;24464:2;24456:6;24452:15;24445:32;24260:224;:::o;24490:366::-;24632:3;24653:67;24717:2;24712:3;24653:67;:::i;:::-;24646:74;;24729:93;24818:3;24729:93;:::i;:::-;24847:2;24842:3;24838:12;24831:19;;24490:366;;;:::o;24862:419::-;25028:4;25066:2;25055:9;25051:18;25043:26;;25115:9;25109:4;25105:20;25101:1;25090:9;25086:17;25079:47;25143:131;25269:4;25143:131;:::i;:::-;25135:139;;24862:419;;;:::o;25287:222::-;25427:34;25423:1;25415:6;25411:14;25404:58;25496:5;25491:2;25483:6;25479:15;25472:30;25287:222;:::o;25515:366::-;25657:3;25678:67;25742:2;25737:3;25678:67;:::i;:::-;25671:74;;25754:93;25843:3;25754:93;:::i;:::-;25872:2;25867:3;25863:12;25856:19;;25515:366;;;:::o;25887:419::-;26053:4;26091:2;26080:9;26076:18;26068:26;;26140:9;26134:4;26130:20;26126:1;26115:9;26111:17;26104:47;26168:131;26294:4;26168:131;:::i;:::-;26160:139;;25887:419;;;:::o;26312:228::-;26452:34;26448:1;26440:6;26436:14;26429:58;26521:11;26516:2;26508:6;26504:15;26497:36;26312:228;:::o;26546:366::-;26688:3;26709:67;26773:2;26768:3;26709:67;:::i;:::-;26702:74;;26785:93;26874:3;26785:93;:::i;:::-;26903:2;26898:3;26894:12;26887:19;;26546:366;;;:::o;26918:419::-;27084:4;27122:2;27111:9;27107:18;27099:26;;27171:9;27165:4;27161:20;27157:1;27146:9;27142:17;27135:47;27199:131;27325:4;27199:131;:::i;:::-;27191:139;;26918:419;;;:::o;27343:169::-;27483:21;27479:1;27471:6;27467:14;27460:45;27343:169;:::o;27518:366::-;27660:3;27681:67;27745:2;27740:3;27681:67;:::i;:::-;27674:74;;27757:93;27846:3;27757:93;:::i;:::-;27875:2;27870:3;27866:12;27859:19;;27518:366;;;:::o;27890:419::-;28056:4;28094:2;28083:9;28079:18;28071:26;;28143:9;28137:4;28133:20;28129:1;28118:9;28114:17;28107:47;28171:131;28297:4;28171:131;:::i;:::-;28163:139;;27890:419;;;:::o;28315:180::-;28363:77;28360:1;28353:88;28460:4;28457:1;28450:15;28484:4;28481:1;28474:15;28501:185;28541:1;28558:20;28576:1;28558:20;:::i;:::-;28553:25;;28592:20;28610:1;28592:20;:::i;:::-;28587:25;;28631:1;28621:35;;28636:18;;:::i;:::-;28621:35;28678:1;28675;28671:9;28666:14;;28501:185;;;;:::o;28692:175::-;28832:27;28828:1;28820:6;28816:14;28809:51;28692:175;:::o;28873:366::-;29015:3;29036:67;29100:2;29095:3;29036:67;:::i;:::-;29029:74;;29112:93;29201:3;29112:93;:::i;:::-;29230:2;29225:3;29221:12;29214:19;;28873:366;;;:::o;29245:419::-;29411:4;29449:2;29438:9;29434:18;29426:26;;29498:9;29492:4;29488:20;29484:1;29473:9;29469:17;29462:47;29526:131;29652:4;29526:131;:::i;:::-;29518:139;;29245:419;;;:::o;29670:191::-;29710:3;29729:20;29747:1;29729:20;:::i;:::-;29724:25;;29763:20;29781:1;29763:20;:::i;:::-;29758:25;;29806:1;29803;29799:9;29792:16;;29827:3;29824:1;29821:10;29818:36;;;29834:18;;:::i;:::-;29818:36;29670:191;;;;:::o;29867:176::-;30007:28;30003:1;29995:6;29991:14;29984:52;29867:176;:::o;30049:366::-;30191:3;30212:67;30276:2;30271:3;30212:67;:::i;:::-;30205:74;;30288:93;30377:3;30288:93;:::i;:::-;30406:2;30401:3;30397:12;30390:19;;30049:366;;;:::o;30421:419::-;30587:4;30625:2;30614:9;30610:18;30602:26;;30674:9;30668:4;30664:20;30660:1;30649:9;30645:17;30638:47;30702:131;30828:4;30702:131;:::i;:::-;30694:139;;30421:419;;;:::o;30846:233::-;30885:3;30908:24;30926:5;30908:24;:::i;:::-;30899:33;;30954:66;30947:5;30944:77;30941:103;;31024:18;;:::i;:::-;30941:103;31071:1;31064:5;31060:13;31053:20;;30846:233;;;:::o;31085:179::-;31225:31;31221:1;31213:6;31209:14;31202:55;31085:179;:::o;31270:366::-;31412:3;31433:67;31497:2;31492:3;31433:67;:::i;:::-;31426:74;;31509:93;31598:3;31509:93;:::i;:::-;31627:2;31622:3;31618:12;31611:19;;31270:366;;;:::o;31642:419::-;31808:4;31846:2;31835:9;31831:18;31823:26;;31895:9;31889:4;31885:20;31881:1;31870:9;31866:17;31859:47;31923:131;32049:4;31923:131;:::i;:::-;31915:139;;31642:419;;;:::o;32067:180::-;32115:77;32112:1;32105:88;32212:4;32209:1;32202:15;32236:4;32233:1;32226:15;32253:180;32301:77;32298:1;32291:88;32398:4;32395:1;32388:15;32422:4;32419:1;32412:15;32439:143;32496:5;32527:6;32521:13;32512:22;;32543:33;32570:5;32543:33;:::i;:::-;32439:143;;;;:::o;32588:351::-;32658:6;32707:2;32695:9;32686:7;32682:23;32678:32;32675:119;;;32713:79;;:::i;:::-;32675:119;32833:1;32858:64;32914:7;32905:6;32894:9;32890:22;32858:64;:::i;:::-;32848:74;;32804:128;32588:351;;;;:::o;32945:85::-;32990:7;33019:5;33008:16;;32945:85;;;:::o;33036:158::-;33094:9;33127:61;33145:42;33154:32;33180:5;33154:32;:::i;:::-;33145:42;:::i;:::-;33127:61;:::i;:::-;33114:74;;33036:158;;;:::o;33200:147::-;33295:45;33334:5;33295:45;:::i;:::-;33290:3;33283:58;33200:147;;:::o;33353:114::-;33420:6;33454:5;33448:12;33438:22;;33353:114;;;:::o;33473:184::-;33572:11;33606:6;33601:3;33594:19;33646:4;33641:3;33637:14;33622:29;;33473:184;;;;:::o;33663:132::-;33730:4;33753:3;33745:11;;33783:4;33778:3;33774:14;33766:22;;33663:132;;;:::o;33801:108::-;33878:24;33896:5;33878:24;:::i;:::-;33873:3;33866:37;33801:108;;:::o;33915:179::-;33984:10;34005:46;34047:3;34039:6;34005:46;:::i;:::-;34083:4;34078:3;34074:14;34060:28;;33915:179;;;;:::o;34100:113::-;34170:4;34202;34197:3;34193:14;34185:22;;34100:113;;;:::o;34249:732::-;34368:3;34397:54;34445:5;34397:54;:::i;:::-;34467:86;34546:6;34541:3;34467:86;:::i;:::-;34460:93;;34577:56;34627:5;34577:56;:::i;:::-;34656:7;34687:1;34672:284;34697:6;34694:1;34691:13;34672:284;;;34773:6;34767:13;34800:63;34859:3;34844:13;34800:63;:::i;:::-;34793:70;;34886:60;34939:6;34886:60;:::i;:::-;34876:70;;34732:224;34719:1;34716;34712:9;34707:14;;34672:284;;;34676:14;34972:3;34965:10;;34373:608;;;34249:732;;;;:::o;34987:831::-;35250:4;35288:3;35277:9;35273:19;35265:27;;35302:71;35370:1;35359:9;35355:17;35346:6;35302:71;:::i;:::-;35383:80;35459:2;35448:9;35444:18;35435:6;35383:80;:::i;:::-;35510:9;35504:4;35500:20;35495:2;35484:9;35480:18;35473:48;35538:108;35641:4;35632:6;35538:108;:::i;:::-;35530:116;;35656:72;35724:2;35713:9;35709:18;35700:6;35656:72;:::i;:::-;35738:73;35806:3;35795:9;35791:19;35782:6;35738:73;:::i;:::-;34987:831;;;;;;;;:::o

Swarm Source

ipfs://3dd58489f0d9876792e1970333ff82f9d43e9ef68f89df5a49c69280b6716295
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.