ETH Price: $2,617.59 (+0.79%)

Token

God Bless America (GBA)
 

Overview

Max Total Supply

1,000,000,000 GBA

Holders

57

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
7,938,000 GBA

Value
$0.00
0xf055c199f763265C77b741c2c4B9128c16DA27F4
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:
GBA

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-15
*/

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

// TG: https://t.me/GBA_Crypto

// Twitter: https://x.com/GBA_Crypto/

// Website: https://GBAcrypto.us/

// SPDX-License-Identifier: NONE

/*
*/

pragma solidity 0.8.22;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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

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

    uint256 private _initialBuyTax=19;
    uint256 private _initialSellTax=19;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private _reduceBuyTaxAt=25;
    uint256 private _reduceSellTaxAt=25;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"God Bless America";
    string private constant _symbol = unicode"GBA";
    uint256 public _maxTxAmount =   10000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=10000000 * 10**_decimals;
    uint256 public _maxTaxSwap=1000000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    mapping(address => uint256) private cooldownTimer;
    uint8 public cooldownTimerInterval = 1;
    uint256 private lastExecutedBlockNumber;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

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

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
            require(block.number > lastExecutedBlockNumber, "Exceeds the maxWalletSize.");
            swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                sendETHToFee(address(this).balance);
            }
                lastExecutedBlockNumber = block.number;
            }
        }

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

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

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","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":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manual","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600160065f6101000a81548160ff021916908315150217905550601360075560136008555f6009555f600a556019600b556019600c55600a600d555f600e556008600a62000053919062000627565b6298968062000063919062000677565b600f556008600a62000076919062000627565b6301312d0062000087919062000677565b6010556008600a6200009a919062000627565b62989680620000aa919062000677565b6011556008600a620000bd919062000627565b633b9aca00620000ce919062000677565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff021916908315150217905550600160165f6101000a81548160ff021916908360ff1602179055503480156200012c575f80fd5b505f6200013e6200046760201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ea6200046760201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a6200023a919062000627565b633b9aca006200024b919062000677565b60015f6200025e6200046760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002b06200046e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003db6200046760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000439919062000627565b633b9aca006200044a919062000677565b604051620004599190620006d2565b60405180910390a3620006ed565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200051f57808604811115620004f757620004f662000495565b5b6001851615620005075780820291505b80810290506200051785620004c2565b9450620004d7565b94509492505050565b5f826200053957600190506200060b565b8162000548575f90506200060b565b81600181146200056157600281146200056c57620005a2565b60019150506200060b565b60ff84111562000581576200058062000495565b5b8360020a9150848211156200059b576200059a62000495565b5b506200060b565b5060208310610133831016604e8410600b8410161715620005dc5782820a905083811115620005d657620005d562000495565b5b6200060b565b620005eb8484846001620004ce565b9250905081840481111562000605576200060462000495565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006338262000612565b915062000640836200061b565b92506200066f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000528565b905092915050565b5f620006838262000612565b9150620006908362000612565b9250828202620006a08162000612565b91508282048414831517620006ba57620006b962000495565b5b5092915050565b620006cc8162000612565b82525050565b5f602082019050620006e75f830184620006c1565b92915050565b61361580620006fb5f395ff3fe60806040526004361061014e575f3560e01c8063751039fc116100b5578063bf474bed1161006e578063bf474bed14610469578063c876d0b914610493578063c9567bf9146104bd578063d34628cc146104d3578063dd62ed3e146104fb578063ec1f3f631461053757610155565b8063751039fc1461036f5780637d1db4a5146103855780638da5cb5b146103af5780638f9a55c0146103d957806395d89b4114610403578063a9059cbb1461042d57610155565b8063313ce56711610107578063313ce5671461026557806331c2d8471461028f5780633bbac579146102b757806370a08231146102f3578063715018a61461032f578063722b62ad1461034557610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e9578063226e2d101461021357806323b872dd1461022957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d61055f565b60405161017a9190612575565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612633565b61059c565b6040516101b6919061268b565b60405180910390f35b3480156101ca575f80fd5b506101d36105b9565b6040516101e091906126b3565b60405180910390f35b3480156101f4575f80fd5b506101fd6105bf565b60405161020a91906126b3565b60405180910390f35b34801561021e575f80fd5b506102276105e2565b005b348015610234575f80fd5b5061024f600480360381019061024a91906126cc565b61067a565b60405161025c919061268b565b60405180910390f35b348015610270575f80fd5b5061027961074e565b6040516102869190612737565b60405180910390f35b34801561029a575f80fd5b506102b560048036038101906102b09190612890565b610756565b005b3480156102c2575f80fd5b506102dd60048036038101906102d891906128d7565b610874565b6040516102ea919061268b565b60405180910390f35b3480156102fe575f80fd5b50610319600480360381019061031491906128d7565b6108c6565b60405161032691906126b3565b60405180910390f35b34801561033a575f80fd5b5061034361090c565b005b348015610350575f80fd5b50610359610a5a565b6040516103669190612737565b60405180910390f35b34801561037a575f80fd5b50610383610a6c565b005b348015610390575f80fd5b50610399610bb4565b6040516103a691906126b3565b60405180910390f35b3480156103ba575f80fd5b506103c3610bba565b6040516103d09190612911565b60405180910390f35b3480156103e4575f80fd5b506103ed610be1565b6040516103fa91906126b3565b60405180910390f35b34801561040e575f80fd5b50610417610be7565b6040516104249190612575565b60405180910390f35b348015610438575f80fd5b50610453600480360381019061044e9190612633565b610c24565b604051610460919061268b565b60405180910390f35b348015610474575f80fd5b5061047d610c41565b60405161048a91906126b3565b60405180910390f35b34801561049e575f80fd5b506104a7610c47565b6040516104b4919061268b565b60405180910390f35b3480156104c8575f80fd5b506104d1610c59565b005b3480156104de575f80fd5b506104f960048036038101906104f49190612890565b611178565b005b348015610506575f80fd5b50610521600480360381019061051c919061292a565b611297565b60405161052e91906126b3565b60405180910390f35b348015610542575f80fd5b5061055d60048036038101906105589190612968565b611319565b005b60606040518060400160405280601181526020017f476f6420426c65737320416d6572696361000000000000000000000000000000815250905090565b5f6105af6105a86113a6565b84846113ad565b6001905092915050565b60125481565b5f6008600a6105ce9190612aef565b633b9aca006105dd9190612b39565b905090565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106236113a6565b73ffffffffffffffffffffffffffffffffffffffff1614610642575f80fd5b5f61064c306108c6565b90505f8111156106605761065f81611570565b5b5f4790505f81111561067657610675816117db565b5b5050565b5f610686848484611844565b610743846106926113a6565b61073e856040518060600160405280602881526020016135b86028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106f56113a6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122aa9092919063ffffffff16565b6113ad565b600190509392505050565b5f6008905090565b61075e6113a6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190612bc4565b60405180910390fd5b5f5b8151811015610870575f60045f84848151811061080c5761080b612be2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107ec565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109146113a6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099790612bc4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165f9054906101000a900460ff1681565b610a746113a6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af790612bc4565b60405180910390fd5b6008600a610b0e9190612aef565b633b9aca00610b1d9190612b39565b600f819055506008600a610b319190612aef565b633b9aca00610b409190612b39565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b8e9190612aef565b633b9aca00610b9d9190612b39565b604051610baa91906126b3565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f4742410000000000000000000000000000000000000000000000000000000000815250905090565b5f610c37610c306113a6565b8484611844565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610c616113a6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612bc4565b60405180910390fd5b60148054906101000a900460ff1615610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3290612c59565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd73060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610dc39190612aef565b633b9aca00610dd29190612b39565b6113ad565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e659190612c8b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eeb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0f9190612c8b565b6040518363ffffffff1660e01b8152600401610f2c929190612cb6565b6020604051808303815f875af1158015610f48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6c9190612c8b565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff3306108c6565b5f80610ffd610bba565b426040518863ffffffff1660e01b815260040161101f96959493929190612d1f565b60606040518083038185885af115801561103b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110609190612d92565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611100929190612de2565b6020604051808303815f875af115801561111c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111409190612e33565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6111806113a6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390612bc4565b60405180910390fd5b5f5b815181101561129357600160045f84848151811061122f5761122e612be2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061120e565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661135a6113a6565b73ffffffffffffffffffffffffffffffffffffffff1614611379575f80fd5b600954811115801561138d5750600a548111155b611395575f80fd5b8060098190555080600a8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141290612ece565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148090612f5c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161156391906126b3565b60405180910390a3505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156115a7576115a6612754565b5b6040519080825280602002602001820160405280156115d55781602001602082028036833780820191505090505b50905030815f815181106115ec576115eb612be2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611690573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b49190612c8b565b816001815181106116c8576116c7612be2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061172e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ad565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611790959493929190613031565b5f604051808303815f87803b1580156117a7575f80fd5b505af11580156117b9573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611840573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a9906130f9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613187565b60405180910390fd5b5f8111611962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195990613215565b60405180910390fd5b5f61196b610bba565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119d957506119a9610bba565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ffa5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a7c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611a84575f80fd5b611ac06064611ab2600b54600e5411611a9f57600754611aa3565b6009545b8561230c90919063ffffffff16565b61238390919063ffffffff16565b905060065f9054906101000a900460ff1615611c485760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b80575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c47574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb906132c9565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cf1575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d44575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dfe57600f54821115611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8590613331565b60405180910390fd5b60105482611d9b856108c6565b611da5919061334f565b1115611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd906133cc565b60405180910390fd5b600e5f815480929190611df8906133ea565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e8657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611eca57611ec76064611eb9600c54600e5411611ea657600854611eaa565b600a545b8561230c90919063ffffffff16565b61238390919063ffffffff16565b90505b5f611ed4306108c6565b9050601460159054906101000a900460ff16158015611f3f575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f575750601460169054906101000a900460ff165b8015611f64575060115481115b8015611f735750600d54600e54115b15611ff8576017544311611fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb3906133cc565b60405180910390fd5b611fd9611fd484611fcf846012546123cc565b6123cc565b611570565b5f4790505f811115611fef57611fee476117db565b5b43601781905550505b505b5f8111156120f9576120528160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123e490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120f091906126b3565b60405180910390a35b6121498260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461244190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506121ec6121a0828461244190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123e490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61228f848661244190919063ffffffff16565b60405161229c91906126b3565b60405180910390a350505050565b5f8383111582906122f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e89190612575565b60405180910390fd5b505f83856122ff9190613431565b9050809150509392505050565b5f80830361231c575f905061237d565b5f82846123299190612b39565b90508284826123389190613491565b14612378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236f90613531565b60405180910390fd5b809150505b92915050565b5f6123c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061248a565b905092915050565b5f8183116123da57826123dc565b815b905092915050565b5f8082846123f2919061334f565b905083811015612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242e90613599565b60405180910390fd5b8091505092915050565b5f61248283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122aa565b905092915050565b5f80831182906124d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c79190612575565b60405180910390fd5b505f83856124de9190613491565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612522578082015181840152602081019050612507565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612547826124eb565b61255181856124f5565b9350612561818560208601612505565b61256a8161252d565b840191505092915050565b5f6020820190508181035f83015261258d818461253d565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125cf826125a6565b9050919050565b6125df816125c5565b81146125e9575f80fd5b50565b5f813590506125fa816125d6565b92915050565b5f819050919050565b61261281612600565b811461261c575f80fd5b50565b5f8135905061262d81612609565b92915050565b5f80604083850312156126495761264861259e565b5b5f612656858286016125ec565b92505060206126678582860161261f565b9150509250929050565b5f8115159050919050565b61268581612671565b82525050565b5f60208201905061269e5f83018461267c565b92915050565b6126ad81612600565b82525050565b5f6020820190506126c65f8301846126a4565b92915050565b5f805f606084860312156126e3576126e261259e565b5b5f6126f0868287016125ec565b9350506020612701868287016125ec565b92505060406127128682870161261f565b9150509250925092565b5f60ff82169050919050565b6127318161271c565b82525050565b5f60208201905061274a5f830184612728565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61278a8261252d565b810181811067ffffffffffffffff821117156127a9576127a8612754565b5b80604052505050565b5f6127bb612595565b90506127c78282612781565b919050565b5f67ffffffffffffffff8211156127e6576127e5612754565b5b602082029050602081019050919050565b5f80fd5b5f61280d612808846127cc565b6127b2565b905080838252602082019050602084028301858111156128305761282f6127f7565b5b835b81811015612859578061284588826125ec565b845260208401935050602081019050612832565b5050509392505050565b5f82601f83011261287757612876612750565b5b81356128878482602086016127fb565b91505092915050565b5f602082840312156128a5576128a461259e565b5b5f82013567ffffffffffffffff8111156128c2576128c16125a2565b5b6128ce84828501612863565b91505092915050565b5f602082840312156128ec576128eb61259e565b5b5f6128f9848285016125ec565b91505092915050565b61290b816125c5565b82525050565b5f6020820190506129245f830184612902565b92915050565b5f80604083850312156129405761293f61259e565b5b5f61294d858286016125ec565b925050602061295e858286016125ec565b9150509250929050565b5f6020828403121561297d5761297c61259e565b5b5f61298a8482850161261f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a15578086048111156129f1576129f0612993565b5b6001851615612a005780820291505b8081029050612a0e856129c0565b94506129d5565b94509492505050565b5f82612a2d5760019050612ae8565b81612a3a575f9050612ae8565b8160018114612a505760028114612a5a57612a89565b6001915050612ae8565b60ff841115612a6c57612a6b612993565b5b8360020a915084821115612a8357612a82612993565b5b50612ae8565b5060208310610133831016604e8410600b8410161715612abe5782820a905083811115612ab957612ab8612993565b5b612ae8565b612acb84848460016129cc565b92509050818404811115612ae257612ae1612993565b5b81810290505b9392505050565b5f612af982612600565b9150612b048361271c565b9250612b317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a1e565b905092915050565b5f612b4382612600565b9150612b4e83612600565b9250828202612b5c81612600565b91508282048414831517612b7357612b72612993565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612bae6020836124f5565b9150612bb982612b7a565b602082019050919050565b5f6020820190508181035f830152612bdb81612ba2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c436017836124f5565b9150612c4e82612c0f565b602082019050919050565b5f6020820190508181035f830152612c7081612c37565b9050919050565b5f81519050612c85816125d6565b92915050565b5f60208284031215612ca057612c9f61259e565b5b5f612cad84828501612c77565b91505092915050565b5f604082019050612cc95f830185612902565b612cd66020830184612902565b9392505050565b5f819050919050565b5f819050919050565b5f612d09612d04612cff84612cdd565b612ce6565b612600565b9050919050565b612d1981612cef565b82525050565b5f60c082019050612d325f830189612902565b612d3f60208301886126a4565b612d4c6040830187612d10565b612d596060830186612d10565b612d666080830185612902565b612d7360a08301846126a4565b979650505050505050565b5f81519050612d8c81612609565b92915050565b5f805f60608486031215612da957612da861259e565b5b5f612db686828701612d7e565b9350506020612dc786828701612d7e565b9250506040612dd886828701612d7e565b9150509250925092565b5f604082019050612df55f830185612902565b612e0260208301846126a4565b9392505050565b612e1281612671565b8114612e1c575f80fd5b50565b5f81519050612e2d81612e09565b92915050565b5f60208284031215612e4857612e4761259e565b5b5f612e5584828501612e1f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612eb86024836124f5565b9150612ec382612e5e565b604082019050919050565b5f6020820190508181035f830152612ee581612eac565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f466022836124f5565b9150612f5182612eec565b604082019050919050565b5f6020820190508181035f830152612f7381612f3a565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612fac816125c5565b82525050565b5f612fbd8383612fa3565b60208301905092915050565b5f602082019050919050565b5f612fdf82612f7a565b612fe98185612f84565b9350612ff483612f94565b805f5b8381101561302457815161300b8882612fb2565b975061301683612fc9565b925050600181019050612ff7565b5085935050505092915050565b5f60a0820190506130445f8301886126a4565b6130516020830187612d10565b81810360408301526130638186612fd5565b90506130726060830185612902565b61307f60808301846126a4565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6130e36025836124f5565b91506130ee82613089565b604082019050919050565b5f6020820190508181035f830152613110816130d7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131716023836124f5565b915061317c82613117565b604082019050919050565b5f6020820190508181035f83015261319e81613165565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131ff6029836124f5565b915061320a826131a5565b604082019050919050565b5f6020820190508181035f83015261322c816131f3565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6132b36049836124f5565b91506132be82613233565b606082019050919050565b5f6020820190508181035f8301526132e0816132a7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61331b6019836124f5565b9150613326826132e7565b602082019050919050565b5f6020820190508181035f8301526133488161330f565b9050919050565b5f61335982612600565b915061336483612600565b925082820190508082111561337c5761337b612993565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6133b6601a836124f5565b91506133c182613382565b602082019050919050565b5f6020820190508181035f8301526133e3816133aa565b9050919050565b5f6133f482612600565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361342657613425612993565b5b600182019050919050565b5f61343b82612600565b915061344683612600565b925082820390508181111561345e5761345d612993565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61349b82612600565b91506134a683612600565b9250826134b6576134b5613464565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61351b6021836124f5565b9150613526826134c1565b604082019050919050565b5f6020820190508181035f8301526135488161350f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613583601b836124f5565b915061358e8261354f565b602082019050919050565b5f6020820190508181035f8301526135b081613577565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f370efc53fb5743dba787fbcfd8e6ca61091983177ccceaa5a1ea8dec3e9eb8e64736f6c63430008160033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c8063751039fc116100b5578063bf474bed1161006e578063bf474bed14610469578063c876d0b914610493578063c9567bf9146104bd578063d34628cc146104d3578063dd62ed3e146104fb578063ec1f3f631461053757610155565b8063751039fc1461036f5780637d1db4a5146103855780638da5cb5b146103af5780638f9a55c0146103d957806395d89b4114610403578063a9059cbb1461042d57610155565b8063313ce56711610107578063313ce5671461026557806331c2d8471461028f5780633bbac579146102b757806370a08231146102f3578063715018a61461032f578063722b62ad1461034557610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e9578063226e2d101461021357806323b872dd1461022957610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d61055f565b60405161017a9190612575565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612633565b61059c565b6040516101b6919061268b565b60405180910390f35b3480156101ca575f80fd5b506101d36105b9565b6040516101e091906126b3565b60405180910390f35b3480156101f4575f80fd5b506101fd6105bf565b60405161020a91906126b3565b60405180910390f35b34801561021e575f80fd5b506102276105e2565b005b348015610234575f80fd5b5061024f600480360381019061024a91906126cc565b61067a565b60405161025c919061268b565b60405180910390f35b348015610270575f80fd5b5061027961074e565b6040516102869190612737565b60405180910390f35b34801561029a575f80fd5b506102b560048036038101906102b09190612890565b610756565b005b3480156102c2575f80fd5b506102dd60048036038101906102d891906128d7565b610874565b6040516102ea919061268b565b60405180910390f35b3480156102fe575f80fd5b50610319600480360381019061031491906128d7565b6108c6565b60405161032691906126b3565b60405180910390f35b34801561033a575f80fd5b5061034361090c565b005b348015610350575f80fd5b50610359610a5a565b6040516103669190612737565b60405180910390f35b34801561037a575f80fd5b50610383610a6c565b005b348015610390575f80fd5b50610399610bb4565b6040516103a691906126b3565b60405180910390f35b3480156103ba575f80fd5b506103c3610bba565b6040516103d09190612911565b60405180910390f35b3480156103e4575f80fd5b506103ed610be1565b6040516103fa91906126b3565b60405180910390f35b34801561040e575f80fd5b50610417610be7565b6040516104249190612575565b60405180910390f35b348015610438575f80fd5b50610453600480360381019061044e9190612633565b610c24565b604051610460919061268b565b60405180910390f35b348015610474575f80fd5b5061047d610c41565b60405161048a91906126b3565b60405180910390f35b34801561049e575f80fd5b506104a7610c47565b6040516104b4919061268b565b60405180910390f35b3480156104c8575f80fd5b506104d1610c59565b005b3480156104de575f80fd5b506104f960048036038101906104f49190612890565b611178565b005b348015610506575f80fd5b50610521600480360381019061051c919061292a565b611297565b60405161052e91906126b3565b60405180910390f35b348015610542575f80fd5b5061055d60048036038101906105589190612968565b611319565b005b60606040518060400160405280601181526020017f476f6420426c65737320416d6572696361000000000000000000000000000000815250905090565b5f6105af6105a86113a6565b84846113ad565b6001905092915050565b60125481565b5f6008600a6105ce9190612aef565b633b9aca006105dd9190612b39565b905090565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106236113a6565b73ffffffffffffffffffffffffffffffffffffffff1614610642575f80fd5b5f61064c306108c6565b90505f8111156106605761065f81611570565b5b5f4790505f81111561067657610675816117db565b5b5050565b5f610686848484611844565b610743846106926113a6565b61073e856040518060600160405280602881526020016135b86028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106f56113a6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122aa9092919063ffffffff16565b6113ad565b600190509392505050565b5f6008905090565b61075e6113a6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e190612bc4565b60405180910390fd5b5f5b8151811015610870575f60045f84848151811061080c5761080b612be2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107ec565b5050565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6109146113a6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099790612bc4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60165f9054906101000a900460ff1681565b610a746113a6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b00576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610af790612bc4565b60405180910390fd5b6008600a610b0e9190612aef565b633b9aca00610b1d9190612b39565b600f819055506008600a610b319190612aef565b633b9aca00610b409190612b39565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610b8e9190612aef565b633b9aca00610b9d9190612b39565b604051610baa91906126b3565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600381526020017f4742410000000000000000000000000000000000000000000000000000000000815250905090565b5f610c37610c306113a6565b8484611844565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610c616113a6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ced576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce490612bc4565b60405180910390fd5b60148054906101000a900460ff1615610d3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3290612c59565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610dd73060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610dc39190612aef565b633b9aca00610dd29190612b39565b6113ad565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e41573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e659190612c8b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eeb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f0f9190612c8b565b6040518363ffffffff1660e01b8152600401610f2c929190612cb6565b6020604051808303815f875af1158015610f48573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f6c9190612c8b565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610ff3306108c6565b5f80610ffd610bba565b426040518863ffffffff1660e01b815260040161101f96959493929190612d1f565b60606040518083038185885af115801561103b573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110609190612d92565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611100929190612de2565b6020604051808303815f875af115801561111c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111409190612e33565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b6111806113a6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461120c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120390612bc4565b60405180910390fd5b5f5b815181101561129357600160045f84848151811061122f5761122e612be2565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061120e565b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661135a6113a6565b73ffffffffffffffffffffffffffffffffffffffff1614611379575f80fd5b600954811115801561138d5750600a548111155b611395575f80fd5b8060098190555080600a8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141290612ece565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611489576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148090612f5c565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161156391906126b3565b60405180910390a3505050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156115a7576115a6612754565b5b6040519080825280602002602001820160405280156115d55781602001602082028036833780820191505090505b50905030815f815181106115ec576115eb612be2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611690573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116b49190612c8b565b816001815181106116c8576116c7612be2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061172e3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113ad565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611790959493929190613031565b5f604051808303815f87803b1580156117a7575f80fd5b505af11580156117b9573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611840573d5f803e3d5ffd5b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a9906130f9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191790613187565b60405180910390fd5b5f8111611962576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195990613215565b60405180910390fd5b5f61196b610bba565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119d957506119a9610bba565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ffa5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611a7c575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611a84575f80fd5b611ac06064611ab2600b54600e5411611a9f57600754611aa3565b6009545b8561230c90919063ffffffff16565b61238390919063ffffffff16565b905060065f9054906101000a900460ff1615611c485760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b80575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611c47574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb906132c9565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611cf1575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d44575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dfe57600f54821115611d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8590613331565b60405180910390fd5b60105482611d9b856108c6565b611da5919061334f565b1115611de6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ddd906133cc565b60405180910390fd5b600e5f815480929190611df8906133ea565b91905055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611e8657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611eca57611ec76064611eb9600c54600e5411611ea657600854611eaa565b600a545b8561230c90919063ffffffff16565b61238390919063ffffffff16565b90505b5f611ed4306108c6565b9050601460159054906101000a900460ff16158015611f3f575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611f575750601460169054906101000a900460ff165b8015611f64575060115481115b8015611f735750600d54600e54115b15611ff8576017544311611fbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb3906133cc565b60405180910390fd5b611fd9611fd484611fcf846012546123cc565b6123cc565b611570565b5f4790505f811115611fef57611fee476117db565b5b43601781905550505b505b5f8111156120f9576120528160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123e490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516120f091906126b3565b60405180910390a35b6121498260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461244190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506121ec6121a0828461244190919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123e490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61228f848661244190919063ffffffff16565b60405161229c91906126b3565b60405180910390a350505050565b5f8383111582906122f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e89190612575565b60405180910390fd5b505f83856122ff9190613431565b9050809150509392505050565b5f80830361231c575f905061237d565b5f82846123299190612b39565b90508284826123389190613491565b14612378576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161236f90613531565b60405180910390fd5b809150505b92915050565b5f6123c483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061248a565b905092915050565b5f8183116123da57826123dc565b815b905092915050565b5f8082846123f2919061334f565b905083811015612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242e90613599565b60405180910390fd5b8091505092915050565b5f61248283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122aa565b905092915050565b5f80831182906124d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124c79190612575565b60405180910390fd5b505f83856124de9190613491565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612522578082015181840152602081019050612507565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612547826124eb565b61255181856124f5565b9350612561818560208601612505565b61256a8161252d565b840191505092915050565b5f6020820190508181035f83015261258d818461253d565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125cf826125a6565b9050919050565b6125df816125c5565b81146125e9575f80fd5b50565b5f813590506125fa816125d6565b92915050565b5f819050919050565b61261281612600565b811461261c575f80fd5b50565b5f8135905061262d81612609565b92915050565b5f80604083850312156126495761264861259e565b5b5f612656858286016125ec565b92505060206126678582860161261f565b9150509250929050565b5f8115159050919050565b61268581612671565b82525050565b5f60208201905061269e5f83018461267c565b92915050565b6126ad81612600565b82525050565b5f6020820190506126c65f8301846126a4565b92915050565b5f805f606084860312156126e3576126e261259e565b5b5f6126f0868287016125ec565b9350506020612701868287016125ec565b92505060406127128682870161261f565b9150509250925092565b5f60ff82169050919050565b6127318161271c565b82525050565b5f60208201905061274a5f830184612728565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61278a8261252d565b810181811067ffffffffffffffff821117156127a9576127a8612754565b5b80604052505050565b5f6127bb612595565b90506127c78282612781565b919050565b5f67ffffffffffffffff8211156127e6576127e5612754565b5b602082029050602081019050919050565b5f80fd5b5f61280d612808846127cc565b6127b2565b905080838252602082019050602084028301858111156128305761282f6127f7565b5b835b81811015612859578061284588826125ec565b845260208401935050602081019050612832565b5050509392505050565b5f82601f83011261287757612876612750565b5b81356128878482602086016127fb565b91505092915050565b5f602082840312156128a5576128a461259e565b5b5f82013567ffffffffffffffff8111156128c2576128c16125a2565b5b6128ce84828501612863565b91505092915050565b5f602082840312156128ec576128eb61259e565b5b5f6128f9848285016125ec565b91505092915050565b61290b816125c5565b82525050565b5f6020820190506129245f830184612902565b92915050565b5f80604083850312156129405761293f61259e565b5b5f61294d858286016125ec565b925050602061295e858286016125ec565b9150509250929050565b5f6020828403121561297d5761297c61259e565b5b5f61298a8482850161261f565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612a15578086048111156129f1576129f0612993565b5b6001851615612a005780820291505b8081029050612a0e856129c0565b94506129d5565b94509492505050565b5f82612a2d5760019050612ae8565b81612a3a575f9050612ae8565b8160018114612a505760028114612a5a57612a89565b6001915050612ae8565b60ff841115612a6c57612a6b612993565b5b8360020a915084821115612a8357612a82612993565b5b50612ae8565b5060208310610133831016604e8410600b8410161715612abe5782820a905083811115612ab957612ab8612993565b5b612ae8565b612acb84848460016129cc565b92509050818404811115612ae257612ae1612993565b5b81810290505b9392505050565b5f612af982612600565b9150612b048361271c565b9250612b317fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612a1e565b905092915050565b5f612b4382612600565b9150612b4e83612600565b9250828202612b5c81612600565b91508282048414831517612b7357612b72612993565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612bae6020836124f5565b9150612bb982612b7a565b602082019050919050565b5f6020820190508181035f830152612bdb81612ba2565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612c436017836124f5565b9150612c4e82612c0f565b602082019050919050565b5f6020820190508181035f830152612c7081612c37565b9050919050565b5f81519050612c85816125d6565b92915050565b5f60208284031215612ca057612c9f61259e565b5b5f612cad84828501612c77565b91505092915050565b5f604082019050612cc95f830185612902565b612cd66020830184612902565b9392505050565b5f819050919050565b5f819050919050565b5f612d09612d04612cff84612cdd565b612ce6565b612600565b9050919050565b612d1981612cef565b82525050565b5f60c082019050612d325f830189612902565b612d3f60208301886126a4565b612d4c6040830187612d10565b612d596060830186612d10565b612d666080830185612902565b612d7360a08301846126a4565b979650505050505050565b5f81519050612d8c81612609565b92915050565b5f805f60608486031215612da957612da861259e565b5b5f612db686828701612d7e565b9350506020612dc786828701612d7e565b9250506040612dd886828701612d7e565b9150509250925092565b5f604082019050612df55f830185612902565b612e0260208301846126a4565b9392505050565b612e1281612671565b8114612e1c575f80fd5b50565b5f81519050612e2d81612e09565b92915050565b5f60208284031215612e4857612e4761259e565b5b5f612e5584828501612e1f565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612eb86024836124f5565b9150612ec382612e5e565b604082019050919050565b5f6020820190508181035f830152612ee581612eac565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f466022836124f5565b9150612f5182612eec565b604082019050919050565b5f6020820190508181035f830152612f7381612f3a565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612fac816125c5565b82525050565b5f612fbd8383612fa3565b60208301905092915050565b5f602082019050919050565b5f612fdf82612f7a565b612fe98185612f84565b9350612ff483612f94565b805f5b8381101561302457815161300b8882612fb2565b975061301683612fc9565b925050600181019050612ff7565b5085935050505092915050565b5f60a0820190506130445f8301886126a4565b6130516020830187612d10565b81810360408301526130638186612fd5565b90506130726060830185612902565b61307f60808301846126a4565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6130e36025836124f5565b91506130ee82613089565b604082019050919050565b5f6020820190508181035f830152613110816130d7565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6131716023836124f5565b915061317c82613117565b604082019050919050565b5f6020820190508181035f83015261319e81613165565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6131ff6029836124f5565b915061320a826131a5565b604082019050919050565b5f6020820190508181035f83015261322c816131f3565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f6132b36049836124f5565b91506132be82613233565b606082019050919050565b5f6020820190508181035f8301526132e0816132a7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61331b6019836124f5565b9150613326826132e7565b602082019050919050565b5f6020820190508181035f8301526133488161330f565b9050919050565b5f61335982612600565b915061336483612600565b925082820190508082111561337c5761337b612993565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f6133b6601a836124f5565b91506133c182613382565b602082019050919050565b5f6020820190508181035f8301526133e3816133aa565b9050919050565b5f6133f482612600565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361342657613425612993565b5b600182019050919050565b5f61343b82612600565b915061344683612600565b925082820390508181111561345e5761345d612993565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61349b82612600565b91506134a683612600565b9250826134b6576134b5613464565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61351b6021836124f5565b9150613526826134c1565b604082019050919050565b5f6020820190508181035f8301526135488161350f565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613583601b836124f5565b915061358e8261354f565b602082019050919050565b5f6020820190508181035f8301526135b081613577565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f370efc53fb5743dba787fbcfd8e6ca61091983177ccceaa5a1ea8dec3e9eb8e64736f6c63430008160033

Deployed Bytecode Sourcemap

3667:8974:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5756:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6589:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4879:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6033:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12294:344;;;;;;;;;;;;;:::i;:::-;;6758:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5942:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11085:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11255:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6136:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2748:148;;;;;;;;;;;;;:::i;:::-;;5192:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10609:196;;;;;;;;;;;;;:::i;:::-;;4689:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2534:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4752:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5847:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6263:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4815:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4052:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11346:671;;;;;;;;;;;;;:::i;:::-;;10913:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6438:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12031:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5756:83;5793:13;5826:5;;;;;;;;;;;;;;;;;5819:12;;5756:83;:::o;6589:161::-;6664:4;6681:39;6690:12;:10;:12::i;:::-;6704:7;6713:6;6681:8;:39::i;:::-;6738:4;6731:11;;6589:161;;;;:::o;4879:53::-;;;;:::o;6033:95::-;6086:7;4495:1;4551:2;:13;;;;:::i;:::-;4538:10;:26;;;;:::i;:::-;6106:14;;6033:95;:::o;12294:344::-;12354:10;;;;;;;;;;;12340:24;;:12;:10;:12::i;:::-;:24;;;12332:33;;;;;;12376:20;12397:24;12415:4;12397:9;:24::i;:::-;12376:45;;12448:1;12435:12;:14;12432:73;;;12463:30;12480:12;12463:16;:30::i;:::-;12432:73;12515:18;12534:21;12515:40;;12580:1;12569:10;:12;12566:65;;;12595:24;12608:10;12595:12;:24::i;:::-;12566:65;12321:317;;12294:344::o;6758:313::-;6856:4;6873:36;6883:6;6891:9;6902:6;6873:9;:36::i;:::-;6920:121;6929:6;6937:12;:10;:12::i;:::-;6951:89;6989:6;6951:89;;;;;;;;;;;;;;;;;:11;:19;6963:6;6951:19;;;;;;;;;;;;;;;:33;6971:12;:10;:12::i;:::-;6951:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6920:8;:121::i;:::-;7059:4;7052:11;;6758:313;;;;;:::o;5942:83::-;5983:5;4495:1;6001:16;;5942:83;:::o;11085:162::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11158:6:::1;11153:87;11174:6;:13;11170:1;:17;11153:87;;;11225:5;11207:4;:15;11212:6;11219:1;11212:9;;;;;;;;:::i;:::-;;;;;;;;11207:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;11189:3;;;;;;;11153:87;;;;11085:162:::0;:::o;11255:83::-;11302:4;11323;:7;11328:1;11323:7;;;;;;;;;;;;;;;;;;;;;;;;;11316:14;;11255:83;;;:::o;6136:119::-;6202:7;6229:9;:18;6239:7;6229:18;;;;;;;;;;;;;;;;6222:25;;6136:119;;;:::o;2748:148::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2855:1:::1;2818:40;;2839:6;::::0;::::1;;;;;;;;2818:40;;;;;;;;;;;;2886:1;2869:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2748:148::o:0;5192:38::-;;;;;;;;;;;;;:::o;10609:196::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4495:1:::1;4551:2;:13;;;;:::i;:::-;4538:10;:26;;;;:::i;:::-;10662:12;:22;;;;4495:1;4551:2;:13;;;;:::i;:::-;4538:10;:26;;;;:::i;:::-;10695:14;:22;;;;10749:5;10728:20;;:26;;;;;;;;;;;;;;;;;;10770:27;4495:1;4551:2;:13;;;;:::i;:::-;4538:10;:26;;;;:::i;:::-;10770:27;;;;;;:::i;:::-;;;;;;;;10609:196::o:0;4689:56::-;;;;:::o;2534:79::-;2572:7;2599:6;;;;;;;;;;;2592:13;;2534:79;:::o;4752:56::-;;;;:::o;5847:87::-;5886:13;5919:7;;;;;;;;;;;;;;;;;5912:14;;5847:87;:::o;6263:167::-;6341:4;6358:42;6368:12;:10;:12::i;:::-;6382:9;6393:6;6358:9;:42::i;:::-;6418:4;6411:11;;6263:167;;;;:::o;4815:57::-;;;;:::o;4052:39::-;;;;;;;;;;;;;:::o;11346:671::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11410:11:::1;::::0;::::1;;;;;;;;11409:12;11401:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11496:42;11459:15;;:80;;;;;;;;;;;;;;;;;;11550:58;11567:4;11582:15;;;;;;;;;;;4495:1;4551:2;:13;;;;:::i;:::-;4538:10;:26;;;;:::i;:::-;11550:8;:58::i;:::-;11653:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11635:55;;;11699:4;11706:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11635:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11619:13;;:110;;;;;;;;;;;;;;;;;;11740:15;;;;;;;;;;;:31;;;11779:21;11810:4;11816:24;11834:4;11816:9;:24::i;:::-;11841:1;11843::::0;11845:7:::1;:5;:7::i;:::-;11853:15;11740:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11887:13;;;;;;;;;;;11880:29;;;11918:15;;;;;;;;;;;11936:14;11880:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11976:4;11962:11;;:18;;;;;;;;;;;;;;;;;;12005:4;11991:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11346:671::o:0;10913:164::-;2671:12;:10;:12::i;:::-;2661:22;;:6;;;;;;;;;;:22;;;2653:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10987:6:::1;10982:88;11003:5;:12;10999:1;:16;10982:88;;;11054:4;11037;:14;11042:5;11048:1;11042:8;;;;;;;;:::i;:::-;;;;;;;;11037:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11017:3;;;;;;;10982:88;;;;10913:164:::0;:::o;6438:143::-;6519:7;6546:11;:18;6558:5;6546:18;;;;;;;;;;;;;;;:27;6565:7;6546:27;;;;;;;;;;;;;;;;6539:34;;6438:143;;;;:::o;12031:218::-;12106:10;;;;;;;;;;;12092:24;;:12;:10;:12::i;:::-;:24;;;12084:33;;;;;;12143:12;;12134:7;:21;;:47;;;;;12168:13;;12159:7;:22;;12134:47;12126:56;;;;;;12204:7;12191:12;:20;;;;12234:7;12220:13;:21;;;;12031:218;:::o;289:98::-;342:7;369:10;362:17;;289:98;:::o;7079:335::-;7189:1;7172:19;;:5;:19;;;7164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7270:1;7251:21;;:7;:21;;;7243:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7352:6;7322:11;:18;7334:5;7322:18;;;;;;;;;;;;;;;:27;7341:7;7322:27;;;;;;;;;;;;;;;:36;;;;7390:7;7374:32;;7383:5;7374:32;;;7399:6;7374:32;;;;;;:::i;:::-;;;;;;;;7079:335;;;:::o;10118:483::-;5374:4;5365:6;;:13;;;;;;;;;;;;;;;;;;10196:21:::1;10234:1;10220:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10196:40;;10265:4;10247;10252:1;10247:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10291:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10281:4;10286:1;10281:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10324:62;10341:4;10356:15;;;;;;;;;;;10374:11;10324:8;:62::i;:::-;10397:15;;;;;;;;;;;:66;;;10478:11;10504:1;10520:4;10547;10567:15;10397:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10185:416;5410:5:::0;5401:6;;:14;;;;;;;;;;;;;;;;;;10118:483;:::o;10813:92::-;10870:10;;;;;;;;;;;:19;;:27;10890:6;10870:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10813:92;:::o;7422:2580::-;7526:1;7510:18;;:4;:18;;;7502:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7603:1;7589:16;;:2;:16;;;7581:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7673:1;7664:6;:10;7656:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7731:17;7773:7;:5;:7::i;:::-;7765:15;;:4;:15;;;;:32;;;;;7790:7;:5;:7::i;:::-;7784:13;;:2;:13;;;;7765:32;7761:1885;;;7823:4;:10;7828:4;7823:10;;;;;;;;;;;;;;;;;;;;;;;;;7822:11;:24;;;;;7838:4;:8;7843:2;7838:8;;;;;;;;;;;;;;;;;;;;;;;;;7837:9;7822:24;7814:33;;;;;;7874:76;7946:3;7874:67;7896:15;;7886:9;;:25;7885:55;;7926:14;;7885:55;;;7913:12;;7885:55;7874:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7862:88;;7971:20;;;;;;;;;;;7967:508;;;8032:15;;;;;;;;;;;8018:30;;:2;:30;;;;:62;;;;;8066:13;;;;;;;;;;;8052:28;;:2;:28;;;;8018:62;8014:444;;;8216:12;8143:28;:39;8172:9;8143:39;;;;;;;;;;;;;;;;:85;8107:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;8424:12;8382:28;:39;8411:9;8382:39;;;;;;;;;;;;;;;:54;;;;8014:444;7967:508;8503:13;;;;;;;;;;;8495:21;;:4;:21;;;:55;;;;;8534:15;;;;;;;;;;;8520:30;;:2;:30;;;;8495:55;:83;;;;;8556:18;:22;8575:2;8556:22;;;;;;;;;;;;;;;;;;;;;;;;;8554:24;8495:83;8491:313;;;8618:12;;8608:6;:22;;8600:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8713:14;;8703:6;8687:13;8697:2;8687:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8679:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8777:9;;:11;;;;;;;;;:::i;:::-;;;;;;8491:313;8829:13;;;;;;;;;;;8823:19;;:2;:19;;;:43;;;;;8861:4;8846:20;;:4;:20;;;;8823:43;8820:174;;;8899:79;8974:3;8899:70;8921:16;;8911:9;;:26;8910:58;;8953:15;;8910:58;;;8939:13;;8910:58;8899:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8887:91;;8820:174;9010:28;9041:24;9059:4;9041:9;:24::i;:::-;9010:55;;9085:6;;;;;;;;;;;9084:7;:30;;;;;9101:13;;;;;;;;;;;9095:19;;:2;:19;;;9084:30;:45;;;;;9118:11;;;;;;;;;;;9084:45;:89;;;;;9156:17;;9133:20;:40;9084:89;:123;;;;;9189:18;;9177:9;;:30;9084:123;9080:555;;;9247:23;;9232:12;:38;9224:77;;;;;;;;;;;;:::i;:::-;;;;;;;;;9316:69;9333:51;9337:6;9345:38;9349:20;9371:11;;9345:3;:38::i;:::-;9333:3;:51::i;:::-;9316:16;:69::i;:::-;9400:26;9429:21;9400:50;;9490:1;9469:18;:22;9465:98;;;9512:35;9525:21;9512:12;:35::i;:::-;9465:98;9607:12;9581:23;:38;;;;9209:426;9080:555;7799:1847;7761:1885;9671:1;9661:9;:11;9658:161;;;9711:39;9740:9;9711;:24;9729:4;9711:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9686:9;:24;9704:4;9686:24;;;;;;;;;;;;;;;:64;;;;9791:4;9768:39;;9777:4;9768:39;;;9797:9;9768:39;;;;;;:::i;:::-;;;;;;;;9658:161;9845:27;9865:6;9845:9;:15;9855:4;9845:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9829:9;:15;9839:4;9829:15;;;;;;;;;;;;;;;:43;;;;9897:40;9915:21;9926:9;9915:6;:10;;:21;;;;:::i;:::-;9897:9;:13;9907:2;9897:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9883:9;:13;9893:2;9883:13;;;;;;;;;;;;;;;:54;;;;9968:2;9953:41;;9962:4;9953:41;;;9972:21;9983:9;9972:6;:10;;:21;;;;:::i;:::-;9953:41;;;;;;:::i;:::-;;;;;;;;7491:2511;7422:2580;;;:::o;1426:190::-;1512:7;1545:1;1540;:6;;1548:12;1532:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1572:9;1588:1;1584;:5;;;;:::i;:::-;1572:17;;1607:1;1600:8;;;1426:190;;;;;:::o;1624:246::-;1682:7;1711:1;1706;:6;1702:47;;1736:1;1729:8;;;;1702:47;1759:9;1775:1;1771;:5;;;;:::i;:::-;1759:17;;1804:1;1799;1795;:5;;;;:::i;:::-;:10;1787:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1861:1;1854:8;;;1624:246;;;;;:::o;1878:132::-;1936:7;1963:39;1967:1;1970;1963:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1956:46;;1878:132;;;;:::o;10012:98::-;10069:7;10096:1;10094;:3;10093:9;;10101:1;10093:9;;;10099:1;10093:9;10086:16;;10012:98;;;;:::o;1095:179::-;1153:7;1173:9;1189:1;1185;:5;;;;:::i;:::-;1173:17;;1214:1;1209;:6;;1201:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1265:1;1258:8;;;1095:179;;;;:::o;1282:136::-;1340:7;1367:43;1371:1;1374;1367:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1360:50;;1282:136;;;;:::o;2018:189::-;2104:7;2136:1;2132;:5;2139:12;2124:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2163:9;2179:1;2175;:5;;;;:::i;:::-;2163:17;;2198:1;2191:8;;;2018:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287: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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:329::-;8921:6;8970:2;8958:9;8949:7;8945:23;8941:32;8938:119;;;8976:79;;:::i;:::-;8938:119;9096:1;9121:53;9166:7;9157:6;9146:9;9142:22;9121:53;:::i;:::-;9111:63;;9067:117;8862:329;;;;:::o;9197:180::-;9245:77;9242:1;9235:88;9342:4;9339:1;9332:15;9366:4;9363:1;9356:15;9383:102;9425:8;9472:5;9469:1;9465:13;9444:34;;9383:102;;;:::o;9491:848::-;9552:5;9559:4;9583:6;9574:15;;9607:5;9598:14;;9621:712;9642:1;9632:8;9629:15;9621:712;;;9737:4;9732:3;9728:14;9722:4;9719:24;9716:50;;;9746:18;;:::i;:::-;9716:50;9796:1;9786:8;9782:16;9779:451;;;10211:4;10204:5;10200:16;10191:25;;9779:451;10261:4;10255;10251:15;10243:23;;10291:32;10314:8;10291:32;:::i;:::-;10279:44;;9621:712;;;9491:848;;;;;;;:::o;10345:1073::-;10399:5;10590:8;10580:40;;10611:1;10602:10;;10613:5;;10580:40;10639:4;10629:36;;10656:1;10647:10;;10658:5;;10629:36;10725:4;10773:1;10768:27;;;;10809:1;10804:191;;;;10718:277;;10768:27;10786:1;10777:10;;10788:5;;;10804:191;10849:3;10839:8;10836:17;10833:43;;;10856:18;;:::i;:::-;10833:43;10905:8;10902:1;10898:16;10889:25;;10940:3;10933:5;10930:14;10927:40;;;10947:18;;:::i;:::-;10927:40;10980:5;;;10718:277;;11104:2;11094:8;11091:16;11085:3;11079:4;11076:13;11072:36;11054:2;11044:8;11041:16;11036:2;11030:4;11027:12;11023:35;11007:111;11004:246;;;11160:8;11154:4;11150:19;11141:28;;11195:3;11188:5;11185:14;11182:40;;;11202:18;;:::i;:::-;11182:40;11235:5;;11004:246;11275:42;11313:3;11303:8;11297:4;11294:1;11275:42;:::i;:::-;11260:57;;;;11349:4;11344:3;11340:14;11333:5;11330:25;11327:51;;;11358:18;;:::i;:::-;11327:51;11407:4;11400:5;11396:16;11387:25;;10345:1073;;;;;;:::o;11424:281::-;11482:5;11506:23;11524:4;11506:23;:::i;:::-;11498:31;;11550:25;11566:8;11550:25;:::i;:::-;11538:37;;11594:104;11631:66;11621:8;11615:4;11594:104;:::i;:::-;11585:113;;11424:281;;;;:::o;11711:410::-;11751:7;11774:20;11792:1;11774:20;:::i;:::-;11769:25;;11808:20;11826:1;11808:20;:::i;:::-;11803:25;;11863:1;11860;11856:9;11885:30;11903:11;11885:30;:::i;:::-;11874:41;;12064:1;12055:7;12051:15;12048:1;12045:22;12025:1;12018:9;11998:83;11975:139;;12094:18;;:::i;:::-;11975:139;11759:362;11711:410;;;;:::o;12127:182::-;12267:34;12263:1;12255:6;12251:14;12244:58;12127:182;:::o;12315:366::-;12457:3;12478:67;12542:2;12537:3;12478:67;:::i;:::-;12471:74;;12554:93;12643:3;12554:93;:::i;:::-;12672:2;12667:3;12663:12;12656:19;;12315:366;;;:::o;12687:419::-;12853:4;12891:2;12880:9;12876:18;12868:26;;12940:9;12934:4;12930:20;12926:1;12915:9;12911:17;12904:47;12968:131;13094:4;12968:131;:::i;:::-;12960:139;;12687:419;;;:::o;13112:180::-;13160:77;13157:1;13150:88;13257:4;13254:1;13247:15;13281:4;13278:1;13271:15;13298:173;13438:25;13434:1;13426:6;13422:14;13415:49;13298:173;:::o;13477:366::-;13619:3;13640:67;13704:2;13699:3;13640:67;:::i;:::-;13633:74;;13716:93;13805:3;13716:93;:::i;:::-;13834:2;13829:3;13825:12;13818:19;;13477:366;;;:::o;13849:419::-;14015:4;14053:2;14042:9;14038:18;14030:26;;14102:9;14096:4;14092:20;14088:1;14077:9;14073:17;14066:47;14130:131;14256:4;14130:131;:::i;:::-;14122:139;;13849:419;;;:::o;14274:143::-;14331:5;14362:6;14356:13;14347:22;;14378:33;14405:5;14378:33;:::i;:::-;14274:143;;;;:::o;14423:351::-;14493:6;14542:2;14530:9;14521:7;14517:23;14513:32;14510:119;;;14548:79;;:::i;:::-;14510:119;14668:1;14693:64;14749:7;14740:6;14729:9;14725:22;14693:64;:::i;:::-;14683:74;;14639:128;14423:351;;;;:::o;14780:332::-;14901:4;14939:2;14928:9;14924:18;14916:26;;14952:71;15020:1;15009:9;15005:17;14996:6;14952:71;:::i;:::-;15033:72;15101:2;15090:9;15086:18;15077:6;15033:72;:::i;:::-;14780:332;;;;;:::o;15118:85::-;15163:7;15192:5;15181:16;;15118:85;;;:::o;15209:60::-;15237:3;15258:5;15251:12;;15209:60;;;:::o;15275:158::-;15333:9;15366:61;15384:42;15393:32;15419:5;15393:32;:::i;:::-;15384:42;:::i;:::-;15366:61;:::i;:::-;15353:74;;15275:158;;;:::o;15439:147::-;15534:45;15573:5;15534:45;:::i;:::-;15529:3;15522:58;15439:147;;:::o;15592:807::-;15841:4;15879:3;15868:9;15864:19;15856:27;;15893:71;15961:1;15950:9;15946:17;15937:6;15893:71;:::i;:::-;15974:72;16042:2;16031:9;16027:18;16018:6;15974:72;:::i;:::-;16056:80;16132:2;16121:9;16117:18;16108:6;16056:80;:::i;:::-;16146;16222:2;16211:9;16207:18;16198:6;16146:80;:::i;:::-;16236:73;16304:3;16293:9;16289:19;16280:6;16236:73;:::i;:::-;16319;16387:3;16376:9;16372:19;16363:6;16319:73;:::i;:::-;15592:807;;;;;;;;;:::o;16405:143::-;16462:5;16493:6;16487:13;16478:22;;16509:33;16536:5;16509:33;:::i;:::-;16405:143;;;;:::o;16554:663::-;16642:6;16650;16658;16707:2;16695:9;16686:7;16682:23;16678:32;16675:119;;;16713:79;;:::i;:::-;16675:119;16833:1;16858:64;16914:7;16905:6;16894:9;16890:22;16858:64;:::i;:::-;16848:74;;16804:128;16971:2;16997:64;17053:7;17044:6;17033:9;17029:22;16997:64;:::i;:::-;16987:74;;16942:129;17110:2;17136:64;17192:7;17183:6;17172:9;17168:22;17136:64;:::i;:::-;17126:74;;17081:129;16554:663;;;;;:::o;17223:332::-;17344:4;17382:2;17371:9;17367:18;17359:26;;17395:71;17463:1;17452:9;17448:17;17439:6;17395:71;:::i;:::-;17476:72;17544:2;17533:9;17529:18;17520:6;17476:72;:::i;:::-;17223:332;;;;;:::o;17561:116::-;17631:21;17646:5;17631:21;:::i;:::-;17624:5;17621:32;17611:60;;17667:1;17664;17657:12;17611:60;17561:116;:::o;17683:137::-;17737:5;17768:6;17762:13;17753:22;;17784:30;17808:5;17784:30;:::i;:::-;17683:137;;;;:::o;17826:345::-;17893:6;17942:2;17930:9;17921:7;17917:23;17913:32;17910:119;;;17948:79;;:::i;:::-;17910:119;18068:1;18093:61;18146:7;18137:6;18126:9;18122:22;18093:61;:::i;:::-;18083:71;;18039:125;17826:345;;;;:::o;18177:223::-;18317:34;18313:1;18305:6;18301:14;18294:58;18386:6;18381:2;18373:6;18369:15;18362:31;18177:223;:::o;18406:366::-;18548:3;18569:67;18633:2;18628:3;18569:67;:::i;:::-;18562:74;;18645:93;18734:3;18645:93;:::i;:::-;18763:2;18758:3;18754:12;18747:19;;18406:366;;;:::o;18778:419::-;18944:4;18982:2;18971:9;18967:18;18959:26;;19031:9;19025:4;19021:20;19017:1;19006:9;19002:17;18995:47;19059:131;19185:4;19059:131;:::i;:::-;19051:139;;18778:419;;;:::o;19203:221::-;19343:34;19339:1;19331:6;19327:14;19320:58;19412:4;19407:2;19399:6;19395:15;19388:29;19203:221;:::o;19430:366::-;19572:3;19593:67;19657:2;19652:3;19593:67;:::i;:::-;19586:74;;19669:93;19758:3;19669:93;:::i;:::-;19787:2;19782:3;19778:12;19771:19;;19430:366;;;:::o;19802:419::-;19968:4;20006:2;19995:9;19991:18;19983:26;;20055:9;20049:4;20045:20;20041:1;20030:9;20026:17;20019:47;20083:131;20209:4;20083:131;:::i;:::-;20075:139;;19802:419;;;:::o;20227:114::-;20294:6;20328:5;20322:12;20312:22;;20227:114;;;:::o;20347:184::-;20446:11;20480:6;20475:3;20468:19;20520:4;20515:3;20511:14;20496:29;;20347:184;;;;:::o;20537:132::-;20604:4;20627:3;20619:11;;20657:4;20652:3;20648:14;20640:22;;20537:132;;;:::o;20675:108::-;20752:24;20770:5;20752:24;:::i;:::-;20747:3;20740:37;20675:108;;:::o;20789:179::-;20858:10;20879:46;20921:3;20913:6;20879:46;:::i;:::-;20957:4;20952:3;20948:14;20934:28;;20789:179;;;;:::o;20974:113::-;21044:4;21076;21071:3;21067:14;21059:22;;20974:113;;;:::o;21123:732::-;21242:3;21271:54;21319:5;21271:54;:::i;:::-;21341:86;21420:6;21415:3;21341:86;:::i;:::-;21334:93;;21451:56;21501:5;21451:56;:::i;:::-;21530:7;21561:1;21546:284;21571:6;21568:1;21565:13;21546:284;;;21647:6;21641:13;21674:63;21733:3;21718:13;21674:63;:::i;:::-;21667:70;;21760:60;21813:6;21760:60;:::i;:::-;21750:70;;21606:224;21593:1;21590;21586:9;21581:14;;21546:284;;;21550:14;21846:3;21839:10;;21247:608;;;21123:732;;;;:::o;21861:831::-;22124:4;22162:3;22151:9;22147:19;22139:27;;22176:71;22244:1;22233:9;22229:17;22220:6;22176:71;:::i;:::-;22257:80;22333:2;22322:9;22318:18;22309:6;22257:80;:::i;:::-;22384:9;22378:4;22374:20;22369:2;22358:9;22354:18;22347:48;22412:108;22515:4;22506:6;22412:108;:::i;:::-;22404:116;;22530:72;22598:2;22587:9;22583:18;22574:6;22530:72;:::i;:::-;22612:73;22680:3;22669:9;22665:19;22656:6;22612:73;:::i;:::-;21861:831;;;;;;;;:::o;22698:224::-;22838:34;22834:1;22826:6;22822:14;22815:58;22907:7;22902:2;22894:6;22890:15;22883:32;22698:224;:::o;22928:366::-;23070:3;23091:67;23155:2;23150:3;23091:67;:::i;:::-;23084:74;;23167:93;23256:3;23167:93;:::i;:::-;23285:2;23280:3;23276:12;23269:19;;22928:366;;;:::o;23300:419::-;23466:4;23504:2;23493:9;23489:18;23481:26;;23553:9;23547:4;23543:20;23539:1;23528:9;23524:17;23517:47;23581:131;23707:4;23581:131;:::i;:::-;23573:139;;23300:419;;;:::o;23725:222::-;23865:34;23861:1;23853:6;23849:14;23842:58;23934:5;23929:2;23921:6;23917:15;23910:30;23725:222;:::o;23953:366::-;24095:3;24116:67;24180:2;24175:3;24116:67;:::i;:::-;24109:74;;24192:93;24281:3;24192:93;:::i;:::-;24310:2;24305:3;24301:12;24294:19;;23953:366;;;:::o;24325:419::-;24491:4;24529:2;24518:9;24514:18;24506:26;;24578:9;24572:4;24568:20;24564:1;24553:9;24549:17;24542:47;24606:131;24732:4;24606:131;:::i;:::-;24598:139;;24325:419;;;:::o;24750:228::-;24890:34;24886:1;24878:6;24874:14;24867:58;24959:11;24954:2;24946:6;24942:15;24935:36;24750:228;:::o;24984:366::-;25126:3;25147:67;25211:2;25206:3;25147:67;:::i;:::-;25140:74;;25223:93;25312:3;25223:93;:::i;:::-;25341:2;25336:3;25332:12;25325:19;;24984:366;;;:::o;25356:419::-;25522:4;25560:2;25549:9;25545:18;25537:26;;25609:9;25603:4;25599:20;25595:1;25584:9;25580:17;25573:47;25637:131;25763:4;25637:131;:::i;:::-;25629:139;;25356:419;;;:::o;25781:297::-;25921:34;25917:1;25909:6;25905:14;25898:58;25990:34;25985:2;25977:6;25973:15;25966:59;26059:11;26054:2;26046:6;26042:15;26035:36;25781:297;:::o;26084:366::-;26226:3;26247:67;26311:2;26306:3;26247:67;:::i;:::-;26240:74;;26323:93;26412:3;26323:93;:::i;:::-;26441:2;26436:3;26432:12;26425:19;;26084:366;;;:::o;26456:419::-;26622:4;26660:2;26649:9;26645:18;26637:26;;26709:9;26703:4;26699:20;26695:1;26684:9;26680:17;26673:47;26737:131;26863:4;26737:131;:::i;:::-;26729:139;;26456:419;;;:::o;26881:175::-;27021:27;27017:1;27009:6;27005:14;26998:51;26881:175;:::o;27062:366::-;27204:3;27225:67;27289:2;27284:3;27225:67;:::i;:::-;27218:74;;27301:93;27390:3;27301:93;:::i;:::-;27419:2;27414:3;27410:12;27403:19;;27062:366;;;:::o;27434:419::-;27600:4;27638:2;27627:9;27623:18;27615:26;;27687:9;27681:4;27677:20;27673:1;27662:9;27658:17;27651:47;27715:131;27841:4;27715:131;:::i;:::-;27707:139;;27434:419;;;:::o;27859:191::-;27899:3;27918:20;27936:1;27918:20;:::i;:::-;27913:25;;27952:20;27970:1;27952:20;:::i;:::-;27947:25;;27995:1;27992;27988:9;27981:16;;28016:3;28013:1;28010:10;28007:36;;;28023:18;;:::i;:::-;28007:36;27859:191;;;;:::o;28056:176::-;28196:28;28192:1;28184:6;28180:14;28173:52;28056:176;:::o;28238:366::-;28380:3;28401:67;28465:2;28460:3;28401:67;:::i;:::-;28394:74;;28477:93;28566:3;28477:93;:::i;:::-;28595:2;28590:3;28586:12;28579:19;;28238:366;;;:::o;28610:419::-;28776:4;28814:2;28803:9;28799:18;28791:26;;28863:9;28857:4;28853:20;28849:1;28838:9;28834:17;28827:47;28891:131;29017:4;28891:131;:::i;:::-;28883:139;;28610:419;;;:::o;29035:233::-;29074:3;29097:24;29115:5;29097:24;:::i;:::-;29088:33;;29143:66;29136:5;29133:77;29130:103;;29213:18;;:::i;:::-;29130:103;29260:1;29253:5;29249:13;29242:20;;29035:233;;;:::o;29274:194::-;29314:4;29334:20;29352:1;29334:20;:::i;:::-;29329:25;;29368:20;29386:1;29368:20;:::i;:::-;29363:25;;29412:1;29409;29405:9;29397:17;;29436:1;29430:4;29427:11;29424:37;;;29441:18;;:::i;:::-;29424:37;29274:194;;;;:::o;29474:180::-;29522:77;29519:1;29512:88;29619:4;29616:1;29609:15;29643:4;29640:1;29633:15;29660:185;29700:1;29717:20;29735:1;29717:20;:::i;:::-;29712:25;;29751:20;29769:1;29751:20;:::i;:::-;29746:25;;29790:1;29780:35;;29795:18;;:::i;:::-;29780:35;29837:1;29834;29830:9;29825:14;;29660:185;;;;:::o;29851:220::-;29991:34;29987:1;29979:6;29975:14;29968:58;30060:3;30055:2;30047:6;30043:15;30036:28;29851:220;:::o;30077:366::-;30219:3;30240:67;30304:2;30299:3;30240:67;:::i;:::-;30233:74;;30316:93;30405:3;30316:93;:::i;:::-;30434:2;30429:3;30425:12;30418:19;;30077:366;;;:::o;30449:419::-;30615:4;30653:2;30642:9;30638:18;30630:26;;30702:9;30696:4;30692:20;30688:1;30677:9;30673:17;30666:47;30730:131;30856:4;30730:131;:::i;:::-;30722:139;;30449:419;;;:::o;30874:177::-;31014:29;31010:1;31002:6;30998:14;30991:53;30874:177;:::o;31057:366::-;31199:3;31220:67;31284:2;31279:3;31220:67;:::i;:::-;31213:74;;31296:93;31385:3;31296:93;:::i;:::-;31414:2;31409:3;31405:12;31398:19;;31057:366;;;:::o;31429:419::-;31595:4;31633:2;31622:9;31618:18;31610:26;;31682:9;31676:4;31672:20;31668:1;31657:9;31653:17;31646:47;31710:131;31836:4;31710:131;:::i;:::-;31702:139;;31429:419;;;:::o

Swarm Source

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