ETH Price: $3,383.59 (-1.57%)
Gas: 2 Gwei

Token

Baby Calcium (BCAL)
 

Overview

Max Total Supply

420,690,000 BCAL

Holders

59

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
3,515,415.532876759 BCAL

Value
$0.00
0x3755493411ec9e59b7ccdcd047651449b65f0b4d
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:
BabyCalcium

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-27
*/

// SPDX-License-Identifier: MIT
 
/*
Website : https://babycalcium.com
Telegram : https://t.me/babycalcium
Twitter : https://twitter.com/BabycalciumEth
*/

pragma solidity 0.8.20;
 
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 BabyCalcium 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 _buyTax=15;
    uint256 private _sellTax=25; 
    uint256 private _preventSwapBefore=30;
    uint256 private _buyCount=0;
 
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000 * 10**_decimals;
    string private constant _name = unicode"Baby Calcium";
    string private constant _symbol = unicode"BCAL";
    uint256 public _maxTxAmount = 4206900 * 10**_decimals;
    uint256 public _maxWalletSize = 4206900 * 10**_decimals;
    uint256 public _taxSwapThreshold= 4206900  * 10**_decimals;
    uint256 public _maxTaxSwap= 4206900 * 10**_decimals;
    uint256 public _totalRewards = 0;
 
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private transfersAllowed = true;
 
    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(transfersAllowed, "Transfers are disabled");
            require(!bots[from] && !bots[to]);
            taxAmount = amount.mul(_buyTax).div(100);
 
            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(_sellTax).div(100);
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            taxAmount = 0;
        }
 
        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 getTotalRewards() public view returns(uint256) {
        return _totalRewards;
    }
 
    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 openLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }
 
    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
 
    function setFee(uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _buyTax = taxFeeOnBuy;
        _sellTax = taxFeeOnSell;
    }
 
    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;
        transfersAllowed = false;
    }
 
    function enableTrading() external onlyOwner() {
        transfersAllowed = true;
    }
 
    receive() external payable {}
 
    function manualClogged() external {
        require(_msgSender()==_taxWallet);
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
 
    function triggerContract() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(address(this).balance);
        }
    }
}

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":[],"name":"_totalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTotalRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualClogged","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","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"},{"inputs":[],"name":"triggerContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160065f6101000a81548160ff021916908315150217905550600f6007556019600855601e6009555f600a556009600a62000041919062000617565b6240313462000051919062000667565b600b556009600a62000064919062000617565b6240313462000074919062000667565b600c556009600a62000087919062000617565b6240313462000097919062000667565b600d556009600a620000aa919062000617565b62403134620000ba919062000667565b600e555f600f555f601160156101000a81548160ff0219169083151502179055505f601160166101000a81548160ff0219169083151502179055506001601160176101000a81548160ff0219169083151502179055503480156200011c575f80fd5b505f6200012e6200045760201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001da6200045760201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200022a919062000617565b63191338506200023b919062000667565b60015f6200024e6200045760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002a06200045e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003cb6200045760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a62000429919062000617565b63191338506200043a919062000667565b604051620004499190620006c2565b60405180910390a3620006dd565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050f57808604811115620004e757620004e662000485565b5b6001851615620004f75780820291505b80810290506200050785620004b2565b9450620004c7565b94509492505050565b5f82620005295760019050620005fb565b8162000538575f9050620005fb565b81600181146200055157600281146200055c5762000592565b6001915050620005fb565b60ff84111562000571576200057062000485565b5b8360020a9150848211156200058b576200058a62000485565b5b50620005fb565b5060208310610133831016604e8410600b8410161715620005cc5782820a905083811115620005c657620005c562000485565b5b620005fb565b620005db8484846001620004be565b92509050818404811115620005f557620005f462000485565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620006238262000602565b915062000630836200060b565b92506200065f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000518565b905092915050565b5f620006738262000602565b9150620006808362000602565b9250828202620006908162000602565b91508282048414831517620006aa57620006a962000485565b5b5092915050565b620006bc8162000602565b82525050565b5f602082019050620006d75f830184620006b1565b92915050565b6132b880620006eb5f395ff3fe60806040526004361061014e575f3560e01c80638a8c523c116100b5578063bf474bed1161006e578063bf474bed14610443578063c876d0b91461046d578063c9567bf914610497578063d2b799ad146104ad578063dd62ed3e146104c3578063e627f2db146104ff57610155565b80638a8c523c1461035d5780638da5cb5b146103735780638f9a55c01461039d57806395d89b41146103c7578063a9059cbb146103f1578063b4b534821461042d57610155565b806328af352b1161010757806328af352b14610265578063313ce5671461028f57806352f7c988146102b957806370a08231146102e1578063715018a61461031d5780637d1db4a51461033357610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e957806323b872dd14610213578063245a263a1461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610529565b60405161017a91906123b8565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612469565b610566565b6040516101b691906124c1565b60405180910390f35b3480156101ca575f80fd5b506101d3610583565b6040516101e091906124e9565b60405180910390f35b3480156101f4575f80fd5b506101fd610589565b60405161020a91906124e9565b60405180910390f35b34801561021e575f80fd5b5061023960048036038101906102349190612502565b6105ac565b60405161024691906124c1565b60405180910390f35b34801561025a575f80fd5b50610263610680565b005b348015610270575f80fd5b506102796107c8565b60405161028691906124e9565b60405180910390f35b34801561029a575f80fd5b506102a36107ce565b6040516102b0919061256d565b60405180910390f35b3480156102c4575f80fd5b506102df60048036038101906102da9190612586565b6107d6565b005b3480156102ec575f80fd5b50610307600480360381019061030291906125c4565b61087c565b60405161031491906124e9565b60405180910390f35b348015610328575f80fd5b506103316108c2565b005b34801561033e575f80fd5b50610347610a10565b60405161035491906124e9565b60405180910390f35b348015610368575f80fd5b50610371610a16565b005b34801561037e575f80fd5b50610387610ac7565b60405161039491906125fe565b60405180910390f35b3480156103a8575f80fd5b506103b1610aee565b6040516103be91906124e9565b60405180910390f35b3480156103d2575f80fd5b506103db610af4565b6040516103e891906123b8565b60405180910390f35b3480156103fc575f80fd5b5061041760048036038101906104129190612469565b610b31565b60405161042491906124c1565b60405180910390f35b348015610438575f80fd5b50610441610b4e565b005b34801561044e575f80fd5b50610457610bc7565b60405161046491906124e9565b60405180910390f35b348015610478575f80fd5b50610481610bcd565b60405161048e91906124c1565b60405180910390f35b3480156104a2575f80fd5b506104ab610bdf565b005b3480156104b8575f80fd5b506104c161111b565b005b3480156104ce575f80fd5b506104e960048036038101906104e49190612617565b6111b3565b6040516104f691906124e9565b60405180910390f35b34801561050a575f80fd5b50610513611235565b60405161052091906124e9565b60405180910390f35b60606040518060400160405280600c81526020017f426162792043616c6369756d0000000000000000000000000000000000000000815250905090565b5f61057961057261123e565b8484611245565b6001905092915050565b600e5481565b5f6009600a61059891906127b1565b63191338506105a791906127fb565b905090565b5f6105b8848484611408565b610675846105c461123e565b6106708560405180606001604052806028815260200161325b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61062761123e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e199092919063ffffffff16565b611245565b600190509392505050565b61068861123e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b90612886565b60405180910390fd5b6009600a61072291906127b1565b631913385061073191906127fb565b600b819055506009600a61074591906127b1565b631913385061075491906127fb565b600c819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6107a291906127b1565b63191338506107b191906127fb565b6040516107be91906124e9565b60405180910390a1565b600f5481565b5f6009905090565b6107de61123e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086190612886565b60405180910390fd5b81600781905550806008819055505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108ca61123e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d90612886565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b610a1e61123e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa190612886565b60405180910390fd5b6001601160176101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600481526020017f4243414c00000000000000000000000000000000000000000000000000000000815250905090565b5f610b44610b3d61123e565b8484611408565b6001905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b8f61123e565b73ffffffffffffffffffffffffffffffffffffffff1614610bae575f80fd5b5f4790505f811115610bc457610bc381611e7b565b5b50565b600d5481565b60065f9054906101000a900460ff1681565b610be761123e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612886565b60405180910390fd5b601160149054906101000a900460ff1615610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba906128ee565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d5f3060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d4b91906127b1565b6319133850610d5a91906127fb565b611245565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ded9190612920565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e979190612920565b6040518363ffffffff1660e01b8152600401610eb492919061294b565b6020604051808303815f875af1158015610ed0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef49190612920565b60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f7b3061087c565b5f80610f85610ac7565b426040518863ffffffff1660e01b8152600401610fa7969594939291906129b4565b60606040518083038185885af1158015610fc3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fe89190612a27565b50505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611088929190612a77565b6020604051808303815f875af11580156110a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c89190612ac8565b506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff0219169083151502179055505f601160176101000a81548160ff021916908315150217905550565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661115c61123e565b73ffffffffffffffffffffffffffffffffffffffff161461117b575f80fd5b5f6111853061087c565b90505f8111156111995761119881611ee4565b5b5f4790505f8111156111af576111ae47611e7b565b5b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f600f54905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90612b63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890612bf1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113fb91906124e9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146d90612c7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90612d0d565b60405180910390fd5b5f8111611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90612d9b565b60405180910390fd5b5f61152f610ac7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561159d575061156d610ac7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a1457601160179054906101000a900460ff166115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890612e03565b60405180910390fd5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561168f575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611697575f80fd5b6116bf60646116b16007548561214f90919063ffffffff16565b6121c690919063ffffffff16565b905060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561176a575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117bd575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561187757600b54821115611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90612e6b565b60405180910390fd5b600c54826118148561087c565b61181e9190612e89565b111561185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690612f06565b60405180910390fd5b600a5f81548092919061187190612f24565b91905055505b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118ff57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561192f5761192c606461191e6008548561214f90919063ffffffff16565b6121c690919063ffffffff16565b90505b5f6119393061087c565b9050601160159054906101000a900460ff161580156119a4575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119bc5750601160169054906101000a900460ff165b80156119c95750600d5481115b80156119d85750600954600a54115b15611a12576119fa6119f5846119f084600e5461220f565b61220f565b611ee4565b5f4790505f811115611a1057611a0f47611e7b565b5b505b505b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611aaf575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611b60575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b5f575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611b69575f90505b5f811115611c6857611bc18160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5f91906124e9565b60405180910390a35b611cb88260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461228490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d5b611d0f828461228490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dfe848661228490919063ffffffff16565b604051611e0b91906124e9565b60405180910390a350505050565b5f838311158290611e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5791906123b8565b60405180910390fd5b505f8385611e6e9190612f6b565b9050809150509392505050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ee0573d5f803e3d5ffd5b5050565b6001601160156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f1b57611f1a612f9e565b5b604051908082528060200260200182016040528015611f495781602001602082028036833780820191505090505b50905030815f81518110611f6057611f5f612fcb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612004573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120289190612920565b8160018151811061203c5761203b612fcb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120a23060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611245565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121049594939291906130af565b5f604051808303815f87803b15801561211b575f80fd5b505af115801561212d573d5f803e3d5ffd5b50505050505f601160156101000a81548160ff02191690831515021790555050565b5f80830361215f575f90506121c0565b5f828461216c91906127fb565b905082848261217b9190613134565b146121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b2906131d4565b60405180910390fd5b809150505b92915050565b5f61220783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122cd565b905092915050565b5f81831161221d578261221f565b815b905092915050565b5f8082846122359190612e89565b90508381101561227a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122719061323c565b60405180910390fd5b8091505092915050565b5f6122c583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e19565b905092915050565b5f8083118290612313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230a91906123b8565b60405180910390fd5b505f83856123219190613134565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561236557808201518184015260208101905061234a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61238a8261232e565b6123948185612338565b93506123a4818560208601612348565b6123ad81612370565b840191505092915050565b5f6020820190508181035f8301526123d08184612380565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612405826123dc565b9050919050565b612415816123fb565b811461241f575f80fd5b50565b5f813590506124308161240c565b92915050565b5f819050919050565b61244881612436565b8114612452575f80fd5b50565b5f813590506124638161243f565b92915050565b5f806040838503121561247f5761247e6123d8565b5b5f61248c85828601612422565b925050602061249d85828601612455565b9150509250929050565b5f8115159050919050565b6124bb816124a7565b82525050565b5f6020820190506124d45f8301846124b2565b92915050565b6124e381612436565b82525050565b5f6020820190506124fc5f8301846124da565b92915050565b5f805f60608486031215612519576125186123d8565b5b5f61252686828701612422565b935050602061253786828701612422565b925050604061254886828701612455565b9150509250925092565b5f60ff82169050919050565b61256781612552565b82525050565b5f6020820190506125805f83018461255e565b92915050565b5f806040838503121561259c5761259b6123d8565b5b5f6125a985828601612455565b92505060206125ba85828601612455565b9150509250929050565b5f602082840312156125d9576125d86123d8565b5b5f6125e684828501612422565b91505092915050565b6125f8816123fb565b82525050565b5f6020820190506126115f8301846125ef565b92915050565b5f806040838503121561262d5761262c6123d8565b5b5f61263a85828601612422565b925050602061264b85828601612422565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126d7578086048111156126b3576126b2612655565b5b60018516156126c25780820291505b80810290506126d085612682565b9450612697565b94509492505050565b5f826126ef57600190506127aa565b816126fc575f90506127aa565b8160018114612712576002811461271c5761274b565b60019150506127aa565b60ff84111561272e5761272d612655565b5b8360020a91508482111561274557612744612655565b5b506127aa565b5060208310610133831016604e8410600b84101617156127805782820a90508381111561277b5761277a612655565b5b6127aa565b61278d848484600161268e565b925090508184048111156127a4576127a3612655565b5b81810290505b9392505050565b5f6127bb82612436565b91506127c683612552565b92506127f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126e0565b905092915050565b5f61280582612436565b915061281083612436565b925082820261281e81612436565b9150828204841483151761283557612834612655565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612870602083612338565b915061287b8261283c565b602082019050919050565b5f6020820190508181035f83015261289d81612864565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128d8601783612338565b91506128e3826128a4565b602082019050919050565b5f6020820190508181035f830152612905816128cc565b9050919050565b5f8151905061291a8161240c565b92915050565b5f60208284031215612935576129346123d8565b5b5f6129428482850161290c565b91505092915050565b5f60408201905061295e5f8301856125ef565b61296b60208301846125ef565b9392505050565b5f819050919050565b5f819050919050565b5f61299e61299961299484612972565b61297b565b612436565b9050919050565b6129ae81612984565b82525050565b5f60c0820190506129c75f8301896125ef565b6129d460208301886124da565b6129e160408301876129a5565b6129ee60608301866129a5565b6129fb60808301856125ef565b612a0860a08301846124da565b979650505050505050565b5f81519050612a218161243f565b92915050565b5f805f60608486031215612a3e57612a3d6123d8565b5b5f612a4b86828701612a13565b9350506020612a5c86828701612a13565b9250506040612a6d86828701612a13565b9150509250925092565b5f604082019050612a8a5f8301856125ef565b612a9760208301846124da565b9392505050565b612aa7816124a7565b8114612ab1575f80fd5b50565b5f81519050612ac281612a9e565b92915050565b5f60208284031215612add57612adc6123d8565b5b5f612aea84828501612ab4565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b4d602483612338565b9150612b5882612af3565b604082019050919050565b5f6020820190508181035f830152612b7a81612b41565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bdb602283612338565b9150612be682612b81565b604082019050919050565b5f6020820190508181035f830152612c0881612bcf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c69602583612338565b9150612c7482612c0f565b604082019050919050565b5f6020820190508181035f830152612c9681612c5d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612cf7602383612338565b9150612d0282612c9d565b604082019050919050565b5f6020820190508181035f830152612d2481612ceb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d85602983612338565b9150612d9082612d2b565b604082019050919050565b5f6020820190508181035f830152612db281612d79565b9050919050565b7f5472616e7366657273206172652064697361626c6564000000000000000000005f82015250565b5f612ded601683612338565b9150612df882612db9565b602082019050919050565b5f6020820190508181035f830152612e1a81612de1565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e55601983612338565b9150612e6082612e21565b602082019050919050565b5f6020820190508181035f830152612e8281612e49565b9050919050565b5f612e9382612436565b9150612e9e83612436565b9250828201905080821115612eb657612eb5612655565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ef0601a83612338565b9150612efb82612ebc565b602082019050919050565b5f6020820190508181035f830152612f1d81612ee4565b9050919050565b5f612f2e82612436565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f6057612f5f612655565b5b600182019050919050565b5f612f7582612436565b9150612f8083612436565b9250828203905081811115612f9857612f97612655565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61302a816123fb565b82525050565b5f61303b8383613021565b60208301905092915050565b5f602082019050919050565b5f61305d82612ff8565b6130678185613002565b935061307283613012565b805f5b838110156130a25781516130898882613030565b975061309483613047565b925050600181019050613075565b5085935050505092915050565b5f60a0820190506130c25f8301886124da565b6130cf60208301876129a5565b81810360408301526130e18186613053565b90506130f060608301856125ef565b6130fd60808301846124da565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61313e82612436565b915061314983612436565b92508261315957613158613107565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131be602183612338565b91506131c982613164565b604082019050919050565b5f6020820190508181035f8301526131eb816131b2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613226601b83612338565b9150613231826131f2565b602082019050919050565b5f6020820190508181035f8301526132538161321a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207b41de07d89e20160747f5183eda21d1ee9316fdf3b107a3a561b7043503368464736f6c63430008140033

Deployed Bytecode

0x60806040526004361061014e575f3560e01c80638a8c523c116100b5578063bf474bed1161006e578063bf474bed14610443578063c876d0b91461046d578063c9567bf914610497578063d2b799ad146104ad578063dd62ed3e146104c3578063e627f2db146104ff57610155565b80638a8c523c1461035d5780638da5cb5b146103735780638f9a55c01461039d57806395d89b41146103c7578063a9059cbb146103f1578063b4b534821461042d57610155565b806328af352b1161010757806328af352b14610265578063313ce5671461028f57806352f7c988146102b957806370a08231146102e1578063715018a61461031d5780637d1db4a51461033357610155565b806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e957806323b872dd14610213578063245a263a1461024f57610155565b3661015557005b5f80fd5b348015610164575f80fd5b5061016d610529565b60405161017a91906123b8565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612469565b610566565b6040516101b691906124c1565b60405180910390f35b3480156101ca575f80fd5b506101d3610583565b6040516101e091906124e9565b60405180910390f35b3480156101f4575f80fd5b506101fd610589565b60405161020a91906124e9565b60405180910390f35b34801561021e575f80fd5b5061023960048036038101906102349190612502565b6105ac565b60405161024691906124c1565b60405180910390f35b34801561025a575f80fd5b50610263610680565b005b348015610270575f80fd5b506102796107c8565b60405161028691906124e9565b60405180910390f35b34801561029a575f80fd5b506102a36107ce565b6040516102b0919061256d565b60405180910390f35b3480156102c4575f80fd5b506102df60048036038101906102da9190612586565b6107d6565b005b3480156102ec575f80fd5b50610307600480360381019061030291906125c4565b61087c565b60405161031491906124e9565b60405180910390f35b348015610328575f80fd5b506103316108c2565b005b34801561033e575f80fd5b50610347610a10565b60405161035491906124e9565b60405180910390f35b348015610368575f80fd5b50610371610a16565b005b34801561037e575f80fd5b50610387610ac7565b60405161039491906125fe565b60405180910390f35b3480156103a8575f80fd5b506103b1610aee565b6040516103be91906124e9565b60405180910390f35b3480156103d2575f80fd5b506103db610af4565b6040516103e891906123b8565b60405180910390f35b3480156103fc575f80fd5b5061041760048036038101906104129190612469565b610b31565b60405161042491906124c1565b60405180910390f35b348015610438575f80fd5b50610441610b4e565b005b34801561044e575f80fd5b50610457610bc7565b60405161046491906124e9565b60405180910390f35b348015610478575f80fd5b50610481610bcd565b60405161048e91906124c1565b60405180910390f35b3480156104a2575f80fd5b506104ab610bdf565b005b3480156104b8575f80fd5b506104c161111b565b005b3480156104ce575f80fd5b506104e960048036038101906104e49190612617565b6111b3565b6040516104f691906124e9565b60405180910390f35b34801561050a575f80fd5b50610513611235565b60405161052091906124e9565b60405180910390f35b60606040518060400160405280600c81526020017f426162792043616c6369756d0000000000000000000000000000000000000000815250905090565b5f61057961057261123e565b8484611245565b6001905092915050565b600e5481565b5f6009600a61059891906127b1565b63191338506105a791906127fb565b905090565b5f6105b8848484611408565b610675846105c461123e565b6106708560405180606001604052806028815260200161325b6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61062761123e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e199092919063ffffffff16565b611245565b600190509392505050565b61068861123e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610714576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161070b90612886565b60405180910390fd5b6009600a61072291906127b1565b631913385061073191906127fb565b600b819055506009600a61074591906127b1565b631913385061075491906127fb565b600c819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6107a291906127b1565b63191338506107b191906127fb565b6040516107be91906124e9565b60405180910390a1565b600f5481565b5f6009905090565b6107de61123e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086190612886565b60405180910390fd5b81600781905550806008819055505050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6108ca61123e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610956576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094d90612886565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b5481565b610a1e61123e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa190612886565b60405180910390fd5b6001601160176101000a81548160ff021916908315150217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600c5481565b60606040518060400160405280600481526020017f4243414c00000000000000000000000000000000000000000000000000000000815250905090565b5f610b44610b3d61123e565b8484611408565b6001905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b8f61123e565b73ffffffffffffffffffffffffffffffffffffffff1614610bae575f80fd5b5f4790505f811115610bc457610bc381611e7b565b5b50565b600d5481565b60065f9054906101000a900460ff1681565b610be761123e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6a90612886565b60405180910390fd5b601160149054906101000a900460ff1615610cc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cba906128ee565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d5f3060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610d4b91906127b1565b6319133850610d5a91906127fb565b611245565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ded9190612920565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e73573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e979190612920565b6040518363ffffffff1660e01b8152600401610eb492919061294b565b6020604051808303815f875af1158015610ed0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ef49190612920565b60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f7b3061087c565b5f80610f85610ac7565b426040518863ffffffff1660e01b8152600401610fa7969594939291906129b4565b60606040518083038185885af1158015610fc3573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fe89190612a27565b50505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611088929190612a77565b6020604051808303815f875af11580156110a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c89190612ac8565b506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff0219169083151502179055505f601160176101000a81548160ff021916908315150217905550565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661115c61123e565b73ffffffffffffffffffffffffffffffffffffffff161461117b575f80fd5b5f6111853061087c565b90505f8111156111995761119881611ee4565b5b5f4790505f8111156111af576111ae47611e7b565b5b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f600f54905090565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90612b63565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890612bf1565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113fb91906124e9565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611476576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146d90612c7f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114db90612d0d565b60405180910390fd5b5f8111611526576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151d90612d9b565b60405180910390fd5b5f61152f610ac7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561159d575061156d610ac7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a1457601160179054906101000a900460ff166115f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e890612e03565b60405180910390fd5b60045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561168f575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611697575f80fd5b6116bf60646116b16007548561214f90919063ffffffff16565b6121c690919063ffffffff16565b905060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561176a575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117bd575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561187757600b54821115611807576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117fe90612e6b565b60405180910390fd5b600c54826118148561087c565b61181e9190612e89565b111561185f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185690612f06565b60405180910390fd5b600a5f81548092919061187190612f24565b91905055505b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118ff57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561192f5761192c606461191e6008548561214f90919063ffffffff16565b6121c690919063ffffffff16565b90505b5f6119393061087c565b9050601160159054906101000a900460ff161580156119a4575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119bc5750601160169054906101000a900460ff165b80156119c95750600d5481115b80156119d85750600954600a54115b15611a12576119fa6119f5846119f084600e5461220f565b61220f565b611ee4565b5f4790505f811115611a1057611a0f47611e7b565b5b505b505b60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611aaf575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611b60575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611b5f575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611b69575f90505b5f811115611c6857611bc18160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611c5f91906124e9565b60405180910390a35b611cb88260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461228490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d5b611d0f828461228490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461222790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611dfe848661228490919063ffffffff16565b604051611e0b91906124e9565b60405180910390a350505050565b5f838311158290611e60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5791906123b8565b60405180910390fd5b505f8385611e6e9190612f6b565b9050809150509392505050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ee0573d5f803e3d5ffd5b5050565b6001601160156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611f1b57611f1a612f9e565b5b604051908082528060200260200182016040528015611f495781602001602082028036833780820191505090505b50905030815f81518110611f6057611f5f612fcb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612004573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120289190612920565b8160018151811061203c5761203b612fcb565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120a23060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611245565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121049594939291906130af565b5f604051808303815f87803b15801561211b575f80fd5b505af115801561212d573d5f803e3d5ffd5b50505050505f601160156101000a81548160ff02191690831515021790555050565b5f80830361215f575f90506121c0565b5f828461216c91906127fb565b905082848261217b9190613134565b146121bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b2906131d4565b60405180910390fd5b809150505b92915050565b5f61220783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506122cd565b905092915050565b5f81831161221d578261221f565b815b905092915050565b5f8082846122359190612e89565b90508381101561227a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122719061323c565b60405180910390fd5b8091505092915050565b5f6122c583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e19565b905092915050565b5f8083118290612313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230a91906123b8565b60405180910390fd5b505f83856123219190613134565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561236557808201518184015260208101905061234a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61238a8261232e565b6123948185612338565b93506123a4818560208601612348565b6123ad81612370565b840191505092915050565b5f6020820190508181035f8301526123d08184612380565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612405826123dc565b9050919050565b612415816123fb565b811461241f575f80fd5b50565b5f813590506124308161240c565b92915050565b5f819050919050565b61244881612436565b8114612452575f80fd5b50565b5f813590506124638161243f565b92915050565b5f806040838503121561247f5761247e6123d8565b5b5f61248c85828601612422565b925050602061249d85828601612455565b9150509250929050565b5f8115159050919050565b6124bb816124a7565b82525050565b5f6020820190506124d45f8301846124b2565b92915050565b6124e381612436565b82525050565b5f6020820190506124fc5f8301846124da565b92915050565b5f805f60608486031215612519576125186123d8565b5b5f61252686828701612422565b935050602061253786828701612422565b925050604061254886828701612455565b9150509250925092565b5f60ff82169050919050565b61256781612552565b82525050565b5f6020820190506125805f83018461255e565b92915050565b5f806040838503121561259c5761259b6123d8565b5b5f6125a985828601612455565b92505060206125ba85828601612455565b9150509250929050565b5f602082840312156125d9576125d86123d8565b5b5f6125e684828501612422565b91505092915050565b6125f8816123fb565b82525050565b5f6020820190506126115f8301846125ef565b92915050565b5f806040838503121561262d5761262c6123d8565b5b5f61263a85828601612422565b925050602061264b85828601612422565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156126d7578086048111156126b3576126b2612655565b5b60018516156126c25780820291505b80810290506126d085612682565b9450612697565b94509492505050565b5f826126ef57600190506127aa565b816126fc575f90506127aa565b8160018114612712576002811461271c5761274b565b60019150506127aa565b60ff84111561272e5761272d612655565b5b8360020a91508482111561274557612744612655565b5b506127aa565b5060208310610133831016604e8410600b84101617156127805782820a90508381111561277b5761277a612655565b5b6127aa565b61278d848484600161268e565b925090508184048111156127a4576127a3612655565b5b81810290505b9392505050565b5f6127bb82612436565b91506127c683612552565b92506127f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846126e0565b905092915050565b5f61280582612436565b915061281083612436565b925082820261281e81612436565b9150828204841483151761283557612834612655565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612870602083612338565b915061287b8261283c565b602082019050919050565b5f6020820190508181035f83015261289d81612864565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128d8601783612338565b91506128e3826128a4565b602082019050919050565b5f6020820190508181035f830152612905816128cc565b9050919050565b5f8151905061291a8161240c565b92915050565b5f60208284031215612935576129346123d8565b5b5f6129428482850161290c565b91505092915050565b5f60408201905061295e5f8301856125ef565b61296b60208301846125ef565b9392505050565b5f819050919050565b5f819050919050565b5f61299e61299961299484612972565b61297b565b612436565b9050919050565b6129ae81612984565b82525050565b5f60c0820190506129c75f8301896125ef565b6129d460208301886124da565b6129e160408301876129a5565b6129ee60608301866129a5565b6129fb60808301856125ef565b612a0860a08301846124da565b979650505050505050565b5f81519050612a218161243f565b92915050565b5f805f60608486031215612a3e57612a3d6123d8565b5b5f612a4b86828701612a13565b9350506020612a5c86828701612a13565b9250506040612a6d86828701612a13565b9150509250925092565b5f604082019050612a8a5f8301856125ef565b612a9760208301846124da565b9392505050565b612aa7816124a7565b8114612ab1575f80fd5b50565b5f81519050612ac281612a9e565b92915050565b5f60208284031215612add57612adc6123d8565b5b5f612aea84828501612ab4565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b4d602483612338565b9150612b5882612af3565b604082019050919050565b5f6020820190508181035f830152612b7a81612b41565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bdb602283612338565b9150612be682612b81565b604082019050919050565b5f6020820190508181035f830152612c0881612bcf565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c69602583612338565b9150612c7482612c0f565b604082019050919050565b5f6020820190508181035f830152612c9681612c5d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612cf7602383612338565b9150612d0282612c9d565b604082019050919050565b5f6020820190508181035f830152612d2481612ceb565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d85602983612338565b9150612d9082612d2b565b604082019050919050565b5f6020820190508181035f830152612db281612d79565b9050919050565b7f5472616e7366657273206172652064697361626c6564000000000000000000005f82015250565b5f612ded601683612338565b9150612df882612db9565b602082019050919050565b5f6020820190508181035f830152612e1a81612de1565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e55601983612338565b9150612e6082612e21565b602082019050919050565b5f6020820190508181035f830152612e8281612e49565b9050919050565b5f612e9382612436565b9150612e9e83612436565b9250828201905080821115612eb657612eb5612655565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ef0601a83612338565b9150612efb82612ebc565b602082019050919050565b5f6020820190508181035f830152612f1d81612ee4565b9050919050565b5f612f2e82612436565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f6057612f5f612655565b5b600182019050919050565b5f612f7582612436565b9150612f8083612436565b9250828203905081811115612f9857612f97612655565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61302a816123fb565b82525050565b5f61303b8383613021565b60208301905092915050565b5f602082019050919050565b5f61305d82612ff8565b6130678185613002565b935061307283613012565b805f5b838110156130a25781516130898882613030565b975061309483613047565b925050600181019050613075565b5085935050505092915050565b5f60a0820190506130c25f8301886124da565b6130cf60208301876129a5565b81810360408301526130e18186613053565b90506130f060608301856125ef565b6130fd60808301846124da565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61313e82612436565b915061314983612436565b92508261315957613158613107565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131be602183612338565b91506131c982613164565b604082019050919050565b5f6020820190508181035f8301526131eb816131b2565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613226601b83612338565b9150613231826131f2565b602082019050919050565b5f6020820190508181035f8301526132538161321a565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207b41de07d89e20160747f5183eda21d1ee9316fdf3b107a3a561b7043503368464736f6c63430008140033

Deployed Bytecode Sourcemap

3620:8206:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5474:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6314:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4663:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5754:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6484:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9925:194;;;;;;;;;;;;;:::i;:::-;;4721:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5662:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10229:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5858:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2697:148;;;;;;;;;;;;;:::i;:::-;;4476:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11103:88;;;;;;;;;;;;;:::i;:::-;;2481:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4536:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5566:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5986:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11238:212;;;;;;;;;;;;;:::i;:::-;;4598:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4013:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10388:706;;;;;;;;;;;;;:::i;:::-;;11459:364;;;;;;;;;;;;;:::i;:::-;;6162:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9329:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5474:83;5511:13;5544:5;;;;;;;;;;;;;;;;;5537:12;;5474:83;:::o;6314:161::-;6389:4;6406:39;6415:12;:10;:12::i;:::-;6429:7;6438:6;6406:8;:39::i;:::-;6463:4;6456:11;;6314:161;;;;:::o;4663:51::-;;;;:::o;5754:95::-;5807:7;4287:1;4342:2;:13;;;;:::i;:::-;4330:9;:25;;;;:::i;:::-;5827:14;;5754:95;:::o;6484:313::-;6582:4;6599:36;6609:6;6617:9;6628:6;6599:9;:36::i;:::-;6646:121;6655:6;6663:12;:10;:12::i;:::-;6677:89;6715:6;6677:89;;;;;;;;;;;;;;;;;:11;:19;6689:6;6677:19;;;;;;;;;;;;;;;:33;6697:12;:10;:12::i;:::-;6677:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6646:8;:121::i;:::-;6785:4;6778:11;;6484:313;;;;;:::o;9925:194::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4287:1:::1;4342:2;:13;;;;:::i;:::-;4330:9;:25;;;;:::i;:::-;9976:12;:22;;;;4287:1;4342:2;:13;;;;:::i;:::-;4330:9;:25;;;;:::i;:::-;10009:14;:22;;;;10063:5;10042:20;;:26;;;;;;;;;;;;;;;;;;10084:27;4287:1;4342:2;:13;;;;:::i;:::-;4330:9;:25;;;;:::i;:::-;10084:27;;;;;;:::i;:::-;;;;;;;;9925:194::o:0;4721:32::-;;;;:::o;5662:83::-;5703:5;4287:1;5721:16;;5662:83;:::o;10229:150::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10326:11:::1;10316:7;:21;;;;10359:12;10348:8;:23;;;;10229:150:::0;;:::o;5858:119::-;5924:7;5951:9;:18;5961:7;5951:18;;;;;;;;;;;;;;;;5944:25;;5858:119;;;:::o;2697:148::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2804:1:::1;2767:40;;2788:6;::::0;::::1;;;;;;;;2767:40;;;;;;;;;;;;2835:1;2818:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2697:148::o:0;4476:53::-;;;;:::o;11103:88::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11179:4:::1;11160:16;;:23;;;;;;;;;;;;;;;;;;11103:88::o:0;2481:79::-;2519:7;2546:6;;;;;;;;;;;2539:13;;2481:79;:::o;4536:55::-;;;;:::o;5566:87::-;5605:13;5638:7;;;;;;;;;;;;;;;;;5631:14;;5566:87;:::o;5986:167::-;6064:4;6081:42;6091:12;:10;:12::i;:::-;6105:9;6116:6;6081:9;:42::i;:::-;6141:4;6134:11;;5986:167;;;;:::o;11238:212::-;11305:10;;;;;;;;;;;11291:24;;:12;:10;:12::i;:::-;:24;;;11283:33;;;;;;11327:18;11346:21;11327:40;;11392:1;11381:10;:12;11378:65;;;11407:24;11420:10;11407:12;:24::i;:::-;11378:65;11272:178;11238:212::o;4598:58::-;;;;:::o;4013:39::-;;;;;;;;;;;;;:::o;10388:706::-;2619:12;:10;:12::i;:::-;2609:22;;:6;;;;;;;;;;:22;;;2601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10452:11:::1;;;;;;;;;;;10451:12;10443:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10538:42;10501:15;;:80;;;;;;;;;;;;;;;;;;10592:58;10609:4;10624:15;;;;;;;;;;;4287:1;4342:2;:13;;;;:::i;:::-;4330:9;:25;;;;:::i;:::-;10592:8;:58::i;:::-;10695:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10677:55;;;10741:4;10748:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10677:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10661:13;;:110;;;;;;;;;;;;;;;;;;10782:15;;;;;;;;;;;:31;;;10821:21;10852:4;10858:24;10876:4;10858:9;:24::i;:::-;10883:1;10885::::0;10887:7:::1;:5;:7::i;:::-;10895:15;10782:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10929:13;;;;;;;;;;;10922:29;;;10960:15;;;;;;;;;;;10978:14;10922:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11018:4;11004:11;;:18;;;;;;;;;;;;;;;;;;11047:4;11033:11;;:18;;;;;;;;;;;;;;;;;;11081:5;11062:16;;:24;;;;;;;;;;;;;;;;;;10388:706::o:0;11459:364::-;11528:10;;;;;;;;;;;11514:24;;:12;:10;:12::i;:::-;:24;;;11506:33;;;;;;11550:20;11571:24;11589:4;11571:9;:24::i;:::-;11550:45;;11622:1;11609:12;:14;11606:73;;;11637:30;11654:12;11637:16;:30::i;:::-;11606:73;11689:18;11708:21;11689:40;;11754:1;11743:10;:12;11740:76;;;11769:35;11782:21;11769:12;:35::i;:::-;11740:76;11495:328;;11459:364::o;6162:143::-;6243:7;6270:11;:18;6282:5;6270:18;;;;;;;;;;;;;;;:27;6289:7;6270:27;;;;;;;;;;;;;;;;6263:34;;6162:143;;;;:::o;9329:95::-;9376:7;9403:13;;9396:20;;9329:95;:::o;225:98::-;278:7;305:10;298:17;;225:98;:::o;6806:335::-;6916:1;6899:19;;:5;:19;;;6891:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6997:1;6978:21;;:7;:21;;;6970:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7079:6;7049:11;:18;7061:5;7049:18;;;;;;;;;;;;;;;:27;7068:7;7049:27;;;;;;;;;;;;;;;:36;;;;7117:7;7101:32;;7110:5;7101:32;;;7126:6;7101:32;;;;;;:::i;:::-;;;;;;;;6806:335;;;:::o;7150:2060::-;7254:1;7238:18;;:4;:18;;;7230:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7331:1;7317:16;;:2;:16;;;7309:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7401:1;7392:6;:10;7384:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7459:17;7501:7;:5;:7::i;:::-;7493:15;;:4;:15;;;;:32;;;;;7518:7;:5;:7::i;:::-;7512:13;;:2;:13;;;;7493:32;7489:1198;;;7550:16;;;;;;;;;;;7542:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;7617:4;:10;7622:4;7617:10;;;;;;;;;;;;;;;;;;;;;;;;;7616:11;:24;;;;;7632:4;:8;7637:2;7632:8;;;;;;;;;;;;;;;;;;;;;;;;;7631:9;7616:24;7608:33;;;;;;7668:28;7692:3;7668:19;7679:7;;7668:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;7656:40;;7726:13;;;;;;;;;;;7718:21;;:4;:21;;;:55;;;;;7757:15;;;;;;;;;;;7743:30;;:2;:30;;;;7718:55;:83;;;;;7779:18;:22;7798:2;7779:22;;;;;;;;;;;;;;;;;;;;;;;;;7777:24;7718:83;7714:313;;;7841:12;;7831:6;:22;;7823:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;7936:14;;7926:6;7910:13;7920:2;7910:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7902:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8000:9;;:11;;;;;;;;;:::i;:::-;;;;;;7714:313;8053:13;;;;;;;;;;;8047:19;;:2;:19;;;:43;;;;;8085:4;8070:20;;:4;:20;;;;8047:43;8044:124;;;8123:29;8148:3;8123:20;8134:8;;8123:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8111:41;;8044:124;8185:28;8216:24;8234:4;8216:9;:24::i;:::-;8185:55;;8260:6;;;;;;;;;;;8259:7;:32;;;;;8278:13;;;;;;;;;;;8270:21;;:2;:21;;;8259:32;:47;;;;;8295:11;;;;;;;;;;;8259:47;:89;;;;;8331:17;;8310:20;:38;8259:89;:121;;;;;8362:18;;8352:9;;:28;8259:121;8255:421;;;8401:67;8418:49;8422:6;8429:37;8433:20;8454:11;;8429:3;:37::i;:::-;8418:3;:49::i;:::-;8401:16;:67::i;:::-;8487:26;8516:21;8487:50;;8580:1;8559:18;:22;8556:105;;;8606:35;8619:21;8606:12;:35::i;:::-;8556:105;8382:294;8255:421;7527:1160;7489:1198;8705:18;:24;8724:4;8705:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8733:18;:22;8752:2;8733:22;;;;;;;;;;;;;;;;;;;;;;;;;8705:50;8704:102;;;;8769:13;;;;;;;;;;;8761:21;;:4;:21;;;;:44;;;;;8792:13;;;;;;;;;;;8786:19;;:2;:19;;;;8761:44;8704:102;8700:148;;;8835:1;8823:13;;8700:148;8876:1;8864:9;:13;8861:163;;;8916:39;8945:9;8916;:24;8934:4;8916:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8891:9;:24;8909:4;8891:24;;;;;;;;;;;;;;;:64;;;;8996:4;8973:39;;8982:4;8973:39;;;9002:9;8973:39;;;;;;:::i;:::-;;;;;;;;8861:163;9053:27;9073:6;9053:9;:15;9063:4;9053:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9037:9;:15;9047:4;9037:15;;;;;;;;;;;;;;;:43;;;;9105:40;9123:21;9134:9;9123:6;:10;;:21;;;;:::i;:::-;9105:9;:13;9115:2;9105:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9091:9;:13;9101:2;9091:13;;;;;;;;;;;;;;;:54;;;;9176:2;9161:41;;9170:4;9161:41;;;9180:21;9191:9;9180:6;:10;;:21;;;;:::i;:::-;9161:41;;;;;;:::i;:::-;;;;;;;;7219:1991;7150:2060;;;:::o;1366:190::-;1452:7;1485:1;1480;:6;;1488:12;1472:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1512:9;1528:1;1524;:5;;;;:::i;:::-;1512:17;;1547:1;1540:8;;;1366:190;;;;;:::o;10128:92::-;10185:10;;;;;;;;;;;:19;;:27;10205:6;10185:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10128:92;:::o;9433:483::-;5089:4;5080:6;;:13;;;;;;;;;;;;;;;;;;9511:21:::1;9549:1;9535:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9511:40;;9580:4;9562;9567:1;9562:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9606:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9596:4;9601:1;9596:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9639:62;9656:4;9671:15;;;;;;;;;;;9689:11;9639:8;:62::i;:::-;9712:15;;;;;;;;;;;:66;;;9793:11;9819:1;9835:4;9862;9882:15;9712:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9500:416;5125:5:::0;5116:6;;:14;;;;;;;;;;;;;;;;;;9433:483;:::o;1565:246::-;1623:7;1652:1;1647;:6;1643:47;;1677:1;1670:8;;;;1643:47;1700:9;1716:1;1712;:5;;;;:::i;:::-;1700:17;;1745:1;1740;1736;:5;;;;:::i;:::-;:10;1728:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1802:1;1795:8;;;1565:246;;;;;:::o;1820:132::-;1878:7;1905:39;1909:1;1912;1905:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1898:46;;1820:132;;;;:::o;9222:98::-;9279:7;9306:1;9304;:3;9303:9;;9311:1;9303:9;;;9309:1;9303:9;9296:16;;9222:98;;;;:::o;1033:179::-;1091:7;1111:9;1127:1;1123;:5;;;;:::i;:::-;1111:17;;1152:1;1147;:6;;1139:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1203:1;1196:8;;;1033:179;;;;:::o;1221:136::-;1279:7;1306:43;1310:1;1313;1306:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1299:50;;1221:136;;;;:::o;1961:189::-;2047:7;2079:1;2075;:5;2082:12;2067:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2106:9;2122:1;2118;:5;;;;:::i;:::-;2106:17;;2141:1;2134:8;;;1961: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;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:474::-;4921:6;4929;4978:2;4966:9;4957:7;4953:23;4949:32;4946:119;;;4984:79;;:::i;:::-;4946:119;5104:1;5129:53;5174:7;5165:6;5154:9;5150:22;5129:53;:::i;:::-;5119:63;;5075:117;5231:2;5257:53;5302:7;5293:6;5282:9;5278:22;5257:53;:::i;:::-;5247:63;;5202:118;4853:474;;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:118::-;5755:24;5773:5;5755:24;:::i;:::-;5750:3;5743:37;5668:118;;:::o;5792:222::-;5885:4;5923:2;5912:9;5908:18;5900:26;;5936:71;6004:1;5993:9;5989:17;5980:6;5936:71;:::i;:::-;5792:222;;;;:::o;6020:474::-;6088:6;6096;6145:2;6133:9;6124:7;6120:23;6116:32;6113:119;;;6151:79;;:::i;:::-;6113:119;6271:1;6296:53;6341:7;6332:6;6321:9;6317:22;6296:53;:::i;:::-;6286:63;;6242:117;6398:2;6424:53;6469:7;6460:6;6449:9;6445:22;6424:53;:::i;:::-;6414:63;;6369:118;6020:474;;;;;:::o;6500:180::-;6548:77;6545:1;6538:88;6645:4;6642:1;6635:15;6669:4;6666:1;6659:15;6686:102;6728:8;6775:5;6772:1;6768:13;6747:34;;6686:102;;;:::o;6794:848::-;6855:5;6862:4;6886:6;6877:15;;6910:5;6901:14;;6924:712;6945:1;6935:8;6932:15;6924:712;;;7040:4;7035:3;7031:14;7025:4;7022:24;7019:50;;;7049:18;;:::i;:::-;7019:50;7099:1;7089:8;7085:16;7082:451;;;7514:4;7507:5;7503:16;7494:25;;7082:451;7564:4;7558;7554:15;7546:23;;7594:32;7617:8;7594:32;:::i;:::-;7582:44;;6924:712;;;6794:848;;;;;;;:::o;7648:1073::-;7702:5;7893:8;7883:40;;7914:1;7905:10;;7916:5;;7883:40;7942:4;7932:36;;7959:1;7950:10;;7961:5;;7932:36;8028:4;8076:1;8071:27;;;;8112:1;8107:191;;;;8021:277;;8071:27;8089:1;8080:10;;8091:5;;;8107:191;8152:3;8142:8;8139:17;8136:43;;;8159:18;;:::i;:::-;8136:43;8208:8;8205:1;8201:16;8192:25;;8243:3;8236:5;8233:14;8230:40;;;8250:18;;:::i;:::-;8230:40;8283:5;;;8021:277;;8407:2;8397:8;8394:16;8388:3;8382:4;8379:13;8375:36;8357:2;8347:8;8344:16;8339:2;8333:4;8330:12;8326:35;8310:111;8307:246;;;8463:8;8457:4;8453:19;8444:28;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;8307:246;8578:42;8616:3;8606:8;8600:4;8597:1;8578:42;:::i;:::-;8563:57;;;;8652:4;8647:3;8643:14;8636:5;8633:25;8630:51;;;8661:18;;:::i;:::-;8630:51;8710:4;8703:5;8699:16;8690:25;;7648:1073;;;;;;:::o;8727:281::-;8785:5;8809:23;8827:4;8809:23;:::i;:::-;8801:31;;8853:25;8869:8;8853:25;:::i;:::-;8841:37;;8897:104;8934:66;8924:8;8918:4;8897:104;:::i;:::-;8888:113;;8727:281;;;;:::o;9014:410::-;9054:7;9077:20;9095:1;9077:20;:::i;:::-;9072:25;;9111:20;9129:1;9111:20;:::i;:::-;9106:25;;9166:1;9163;9159:9;9188:30;9206:11;9188:30;:::i;:::-;9177:41;;9367:1;9358:7;9354:15;9351:1;9348:22;9328:1;9321:9;9301:83;9278:139;;9397:18;;:::i;:::-;9278:139;9062:362;9014:410;;;;:::o;9430:182::-;9570:34;9566:1;9558:6;9554:14;9547:58;9430:182;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:419::-;10156:4;10194:2;10183:9;10179:18;10171:26;;10243:9;10237:4;10233:20;10229:1;10218:9;10214:17;10207:47;10271:131;10397:4;10271:131;:::i;:::-;10263:139;;9990:419;;;:::o;10415:173::-;10555:25;10551:1;10543:6;10539:14;10532:49;10415:173;:::o;10594:366::-;10736:3;10757:67;10821:2;10816:3;10757:67;:::i;:::-;10750:74;;10833:93;10922:3;10833:93;:::i;:::-;10951:2;10946:3;10942:12;10935:19;;10594:366;;;:::o;10966:419::-;11132:4;11170:2;11159:9;11155:18;11147:26;;11219:9;11213:4;11209:20;11205:1;11194:9;11190:17;11183:47;11247:131;11373:4;11247:131;:::i;:::-;11239:139;;10966:419;;;:::o;11391:143::-;11448:5;11479:6;11473:13;11464:22;;11495:33;11522:5;11495:33;:::i;:::-;11391:143;;;;:::o;11540:351::-;11610:6;11659:2;11647:9;11638:7;11634:23;11630:32;11627:119;;;11665:79;;:::i;:::-;11627:119;11785:1;11810:64;11866:7;11857:6;11846:9;11842:22;11810:64;:::i;:::-;11800:74;;11756:128;11540:351;;;;:::o;11897:332::-;12018:4;12056:2;12045:9;12041:18;12033:26;;12069:71;12137:1;12126:9;12122:17;12113:6;12069:71;:::i;:::-;12150:72;12218:2;12207:9;12203:18;12194:6;12150:72;:::i;:::-;11897:332;;;;;:::o;12235:85::-;12280:7;12309:5;12298:16;;12235:85;;;:::o;12326:60::-;12354:3;12375:5;12368:12;;12326:60;;;:::o;12392:158::-;12450:9;12483:61;12501:42;12510:32;12536:5;12510:32;:::i;:::-;12501:42;:::i;:::-;12483:61;:::i;:::-;12470:74;;12392:158;;;:::o;12556:147::-;12651:45;12690:5;12651:45;:::i;:::-;12646:3;12639:58;12556:147;;:::o;12709:807::-;12958:4;12996:3;12985:9;12981:19;12973:27;;13010:71;13078:1;13067:9;13063:17;13054:6;13010:71;:::i;:::-;13091:72;13159:2;13148:9;13144:18;13135:6;13091:72;:::i;:::-;13173:80;13249:2;13238:9;13234:18;13225:6;13173:80;:::i;:::-;13263;13339:2;13328:9;13324:18;13315:6;13263:80;:::i;:::-;13353:73;13421:3;13410:9;13406:19;13397:6;13353:73;:::i;:::-;13436;13504:3;13493:9;13489:19;13480:6;13436:73;:::i;:::-;12709:807;;;;;;;;;:::o;13522:143::-;13579:5;13610:6;13604:13;13595:22;;13626:33;13653:5;13626:33;:::i;:::-;13522:143;;;;:::o;13671:663::-;13759:6;13767;13775;13824:2;13812:9;13803:7;13799:23;13795:32;13792:119;;;13830:79;;:::i;:::-;13792:119;13950:1;13975:64;14031:7;14022:6;14011:9;14007:22;13975:64;:::i;:::-;13965:74;;13921:128;14088:2;14114:64;14170:7;14161:6;14150:9;14146:22;14114:64;:::i;:::-;14104:74;;14059:129;14227:2;14253:64;14309:7;14300:6;14289:9;14285:22;14253:64;:::i;:::-;14243:74;;14198:129;13671:663;;;;;:::o;14340:332::-;14461:4;14499:2;14488:9;14484:18;14476:26;;14512:71;14580:1;14569:9;14565:17;14556:6;14512:71;:::i;:::-;14593:72;14661:2;14650:9;14646:18;14637:6;14593:72;:::i;:::-;14340:332;;;;;:::o;14678:116::-;14748:21;14763:5;14748:21;:::i;:::-;14741:5;14738:32;14728:60;;14784:1;14781;14774:12;14728:60;14678:116;:::o;14800:137::-;14854:5;14885:6;14879:13;14870:22;;14901:30;14925:5;14901:30;:::i;:::-;14800:137;;;;:::o;14943:345::-;15010:6;15059:2;15047:9;15038:7;15034:23;15030:32;15027:119;;;15065:79;;:::i;:::-;15027:119;15185:1;15210:61;15263:7;15254:6;15243:9;15239:22;15210:61;:::i;:::-;15200:71;;15156:125;14943:345;;;;:::o;15294:223::-;15434:34;15430:1;15422:6;15418:14;15411:58;15503:6;15498:2;15490:6;15486:15;15479:31;15294:223;:::o;15523:366::-;15665:3;15686:67;15750:2;15745:3;15686:67;:::i;:::-;15679:74;;15762:93;15851:3;15762:93;:::i;:::-;15880:2;15875:3;15871:12;15864:19;;15523:366;;;:::o;15895:419::-;16061:4;16099:2;16088:9;16084:18;16076:26;;16148:9;16142:4;16138:20;16134:1;16123:9;16119:17;16112:47;16176:131;16302:4;16176:131;:::i;:::-;16168:139;;15895:419;;;:::o;16320:221::-;16460:34;16456:1;16448:6;16444:14;16437:58;16529:4;16524:2;16516:6;16512:15;16505:29;16320:221;:::o;16547:366::-;16689:3;16710:67;16774:2;16769:3;16710:67;:::i;:::-;16703:74;;16786:93;16875:3;16786:93;:::i;:::-;16904:2;16899:3;16895:12;16888:19;;16547:366;;;:::o;16919:419::-;17085:4;17123:2;17112:9;17108:18;17100:26;;17172:9;17166:4;17162:20;17158:1;17147:9;17143:17;17136:47;17200:131;17326:4;17200:131;:::i;:::-;17192:139;;16919:419;;;:::o;17344:224::-;17484:34;17480:1;17472:6;17468:14;17461:58;17553:7;17548:2;17540:6;17536:15;17529:32;17344:224;:::o;17574:366::-;17716:3;17737:67;17801:2;17796:3;17737:67;:::i;:::-;17730:74;;17813:93;17902:3;17813:93;:::i;:::-;17931:2;17926:3;17922:12;17915:19;;17574:366;;;:::o;17946:419::-;18112:4;18150:2;18139:9;18135:18;18127:26;;18199:9;18193:4;18189:20;18185:1;18174:9;18170:17;18163:47;18227:131;18353:4;18227:131;:::i;:::-;18219:139;;17946:419;;;:::o;18371:222::-;18511:34;18507:1;18499:6;18495:14;18488:58;18580:5;18575:2;18567:6;18563:15;18556:30;18371:222;:::o;18599:366::-;18741:3;18762:67;18826:2;18821:3;18762:67;:::i;:::-;18755:74;;18838:93;18927:3;18838:93;:::i;:::-;18956:2;18951:3;18947:12;18940:19;;18599:366;;;:::o;18971:419::-;19137:4;19175:2;19164:9;19160:18;19152:26;;19224:9;19218:4;19214:20;19210:1;19199:9;19195:17;19188:47;19252:131;19378:4;19252:131;:::i;:::-;19244:139;;18971:419;;;:::o;19396:228::-;19536:34;19532:1;19524:6;19520:14;19513:58;19605:11;19600:2;19592:6;19588:15;19581:36;19396:228;:::o;19630:366::-;19772:3;19793:67;19857:2;19852:3;19793:67;:::i;:::-;19786:74;;19869:93;19958:3;19869:93;:::i;:::-;19987:2;19982:3;19978:12;19971:19;;19630:366;;;:::o;20002:419::-;20168:4;20206:2;20195:9;20191:18;20183:26;;20255:9;20249:4;20245:20;20241:1;20230:9;20226:17;20219:47;20283:131;20409:4;20283:131;:::i;:::-;20275:139;;20002:419;;;:::o;20427:172::-;20567:24;20563:1;20555:6;20551:14;20544:48;20427:172;:::o;20605:366::-;20747:3;20768:67;20832:2;20827:3;20768:67;:::i;:::-;20761:74;;20844:93;20933:3;20844:93;:::i;:::-;20962:2;20957:3;20953:12;20946:19;;20605:366;;;:::o;20977:419::-;21143:4;21181:2;21170:9;21166:18;21158:26;;21230:9;21224:4;21220:20;21216:1;21205:9;21201:17;21194:47;21258:131;21384:4;21258:131;:::i;:::-;21250:139;;20977:419;;;:::o;21402:175::-;21542:27;21538:1;21530:6;21526:14;21519:51;21402:175;:::o;21583:366::-;21725:3;21746:67;21810:2;21805:3;21746:67;:::i;:::-;21739:74;;21822:93;21911:3;21822:93;:::i;:::-;21940:2;21935:3;21931:12;21924:19;;21583:366;;;:::o;21955:419::-;22121:4;22159:2;22148:9;22144:18;22136:26;;22208:9;22202:4;22198:20;22194:1;22183:9;22179:17;22172:47;22236:131;22362:4;22236:131;:::i;:::-;22228:139;;21955:419;;;:::o;22380:191::-;22420:3;22439:20;22457:1;22439:20;:::i;:::-;22434:25;;22473:20;22491:1;22473:20;:::i;:::-;22468:25;;22516:1;22513;22509:9;22502:16;;22537:3;22534:1;22531:10;22528:36;;;22544:18;;:::i;:::-;22528:36;22380:191;;;;:::o;22577:176::-;22717:28;22713:1;22705:6;22701:14;22694:52;22577:176;:::o;22759:366::-;22901:3;22922:67;22986:2;22981:3;22922:67;:::i;:::-;22915:74;;22998:93;23087:3;22998:93;:::i;:::-;23116:2;23111:3;23107:12;23100:19;;22759:366;;;:::o;23131:419::-;23297:4;23335:2;23324:9;23320:18;23312:26;;23384:9;23378:4;23374:20;23370:1;23359:9;23355:17;23348:47;23412:131;23538:4;23412:131;:::i;:::-;23404:139;;23131:419;;;:::o;23556:233::-;23595:3;23618:24;23636:5;23618:24;:::i;:::-;23609:33;;23664:66;23657:5;23654:77;23651:103;;23734:18;;:::i;:::-;23651:103;23781:1;23774:5;23770:13;23763:20;;23556:233;;;:::o;23795:194::-;23835:4;23855:20;23873:1;23855:20;:::i;:::-;23850:25;;23889:20;23907:1;23889:20;:::i;:::-;23884:25;;23933:1;23930;23926:9;23918:17;;23957:1;23951:4;23948:11;23945:37;;;23962:18;;:::i;:::-;23945:37;23795:194;;;;:::o;23995:180::-;24043:77;24040:1;24033:88;24140:4;24137:1;24130:15;24164:4;24161:1;24154:15;24181:180;24229:77;24226:1;24219:88;24326:4;24323:1;24316:15;24350:4;24347:1;24340:15;24367:114;24434:6;24468:5;24462:12;24452:22;;24367:114;;;:::o;24487:184::-;24586:11;24620:6;24615:3;24608:19;24660:4;24655:3;24651:14;24636:29;;24487:184;;;;:::o;24677:132::-;24744:4;24767:3;24759:11;;24797:4;24792:3;24788:14;24780:22;;24677:132;;;:::o;24815:108::-;24892:24;24910:5;24892:24;:::i;:::-;24887:3;24880:37;24815:108;;:::o;24929:179::-;24998:10;25019:46;25061:3;25053:6;25019:46;:::i;:::-;25097:4;25092:3;25088:14;25074:28;;24929:179;;;;:::o;25114:113::-;25184:4;25216;25211:3;25207:14;25199:22;;25114:113;;;:::o;25263:732::-;25382:3;25411:54;25459:5;25411:54;:::i;:::-;25481:86;25560:6;25555:3;25481:86;:::i;:::-;25474:93;;25591:56;25641:5;25591:56;:::i;:::-;25670:7;25701:1;25686:284;25711:6;25708:1;25705:13;25686:284;;;25787:6;25781:13;25814:63;25873:3;25858:13;25814:63;:::i;:::-;25807:70;;25900:60;25953:6;25900:60;:::i;:::-;25890:70;;25746:224;25733:1;25730;25726:9;25721:14;;25686:284;;;25690:14;25986:3;25979:10;;25387:608;;;25263:732;;;;:::o;26001:831::-;26264:4;26302:3;26291:9;26287:19;26279:27;;26316:71;26384:1;26373:9;26369:17;26360:6;26316:71;:::i;:::-;26397:80;26473:2;26462:9;26458:18;26449:6;26397:80;:::i;:::-;26524:9;26518:4;26514:20;26509:2;26498:9;26494:18;26487:48;26552:108;26655:4;26646:6;26552:108;:::i;:::-;26544:116;;26670:72;26738:2;26727:9;26723:18;26714:6;26670:72;:::i;:::-;26752:73;26820:3;26809:9;26805:19;26796:6;26752:73;:::i;:::-;26001:831;;;;;;;;:::o;26838:180::-;26886:77;26883:1;26876:88;26983:4;26980:1;26973:15;27007:4;27004:1;26997:15;27024:185;27064:1;27081:20;27099:1;27081:20;:::i;:::-;27076:25;;27115:20;27133:1;27115:20;:::i;:::-;27110:25;;27154:1;27144:35;;27159:18;;:::i;:::-;27144:35;27201:1;27198;27194:9;27189:14;;27024:185;;;;:::o;27215:220::-;27355:34;27351:1;27343:6;27339:14;27332:58;27424:3;27419:2;27411:6;27407:15;27400:28;27215:220;:::o;27441:366::-;27583:3;27604:67;27668:2;27663:3;27604:67;:::i;:::-;27597:74;;27680:93;27769:3;27680:93;:::i;:::-;27798:2;27793:3;27789:12;27782:19;;27441:366;;;:::o;27813:419::-;27979:4;28017:2;28006:9;28002:18;27994:26;;28066:9;28060:4;28056:20;28052:1;28041:9;28037:17;28030:47;28094:131;28220:4;28094:131;:::i;:::-;28086:139;;27813:419;;;:::o;28238:177::-;28378:29;28374:1;28366:6;28362:14;28355:53;28238:177;:::o;28421:366::-;28563:3;28584:67;28648:2;28643:3;28584:67;:::i;:::-;28577:74;;28660:93;28749:3;28660:93;:::i;:::-;28778:2;28773:3;28769:12;28762:19;;28421:366;;;:::o;28793:419::-;28959:4;28997:2;28986:9;28982:18;28974:26;;29046:9;29040:4;29036:20;29032:1;29021:9;29017:17;29010:47;29074:131;29200:4;29074:131;:::i;:::-;29066:139;;28793:419;;;:::o

Swarm Source

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