ETH Price: $3,406.37 (-0.32%)
Gas: 22 Gwei

Token

SantaClaus (SANTA)
 

Overview

Max Total Supply

69,000,000 SANTA

Holders

234

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
julesdemedici.eth
Balance
29,744.096589043407987395 SANTA

Value
$0.00
0xcec7b936742c1de1ccd6ff978f4258ff79c9da05
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:
SantaClaus

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-12-14
*/

/**
*
*                               ..,,,,,,,,,,,,,,,,.. 
*                        ..,,;;;;;;;;;;;;;;;;;;;;;;;;;;,,. 
*                    .,::::;;;;aaaaaaaaaaaaaaaaaaaaaaaaaaa;;,,. 
*                .,;;,:::a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a, 
*              ,;;;;.,a@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a 
*           ,;;;;%;.,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@a, 
*        ,;%;;;;%%;,@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 
*     ,;;%%;;;;;%%;;@@@@@@@@@@@@@@'%v%v%v%v%v%v%v%v%v%v%v%v`@@@@@@@@@ 
*   ,;;%%;;;;:;;;%;;@@@@@@@@@'%vvvvvvvvvnnnnnnnnnnnnnnnnvvvvvv%`@@@@' 
*  ,;%%;;;;;:;;;;;;;;@@@@@'%vvva@@@@@@@@avvnnnnnnnnnnvva@@@@@@@OOov, 
* ,;%;;;;;;:::;;;;;;;@@'OO%vva@@@@@@@@@@@@vvnnnnnnnnvv@@@@@@@@@@@Oov 
* ;%;;;;;;;:::;;;;;;;;'oO%vvn@@%nvvvvvvvv%nnnnnnnnnnnnn%vvvvvvnn%@Ov 
* ;;;;;;;;;:::;;;;;;::;oO%vvnnnn>>nn.   `nnnnnnnnnnnn>>nn.   `nnnvv' 
* ;;;;;;;;;:::;;;;;;::;oO%vvnnvvmmmmmmmmmmvvvnnnnnn;%mmmmmmmmmmmmvv, 
* ;;;;;;;;;:::;;;;;;::;oO%vvmmmmmmmmmmmmmmmmmvvnnnv;%mmmmmmmmmmmmmmmv, 
* ;;;;;;;;;;:;;;;;;::;;oO%vmmmmnnnnnnnnnnnnmmvvnnnvmm;%vvnnnnnnnnnmmmv 
*  `;%;;;;;;;:;;;;::;;o@@%vvmmnnnnnnnnnnnvnnnnnnnnnnmmm;%vvvnnnnnnmmmv 
*   `;;%%;;;;;:;;;::;.oO@@%vmmnnnnnnnnnvv%;nnnnnnnnnmmm;%vvvnnnnnnmmv' 
*     `;;;%%;;;:;;;::;.o@@%vvnnnnnnnnnnnvv%;nnnnnnnmm;%vvvnnnnnnnv%'@a. 
*      a`;;;%%;;:;;;::;.o@@%vvvvvvvvvvvvvaa@@@@@@@@@@@@aa%%vvvvv%%@@@@o. 
*     .@@o`;;;%;;;;;;::;,o@@@%vvvvvvva@@@@@@@@@@@@@@@@@@@@@avvvva@@@@@%O, 
*    .@@@@@Oo`;;;;;;;;::;o@@@@@@@@@@@@@@@@@@@@"""""""@@@@@@@@@@@@@@@@@OO@a 
*  .@@@@@@@@@OOo`;;;;;;:;o@@@@@@@@@@@@@@@@"           "@@@@@@@@@@@@@@oOO@@@, 
* .@@@@o@@@@@@@OOo`;;;;:;o,@@@@@@@@@@%vvvvvvvvvvvvvvvvvv%%@@@@@@@@@oOOO@@@@@, 
* @@@@o@@@@@@@@@OOo;::;'oOOooooooooOOOo%vvvvvvvvvvvvvv%oOOooooooooOOO@@@O@@@, 
* @@@oO@@@@@@@@@OOa@@@@@a,oOOOOOOOOOOOOOOoooooooooooooOOOOOOOOOOOOOO@@@@Oo@@@ 
* @@@oO@@@@@@@OOa@@@@@@@@Oo,oO@@@@@@@@@@OOOOOOOOOOOOOO@@@@@@@@@@@@@@@@@@Oo@@@ 
* @@@oO@@@@@@OO@@@@@@@@@@@OO,oO@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@ 
* @@@@o@@@@@@OO@@@@@@@@@@OOO,oO@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@o@@@@@@@@@O@@@@ 
* @@@@@o@@@@@OOo@@@@@@@OOOO'oOO@@@@@@@@Oo@@@@@@@@@@@@O@@@@@@@@Oo@@@@@@@@@@@@a 
*`@@@@@@@O@@@OOOo`OOOOOOO'oOO@@@@@@@@@O@@@@@@@@@@@@@@@O@@@@@@@@Oo@@@@@@@@@@@@ 
* `@@@@@OO@@@@@OOOooooooooOO@@@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@Oo@@@@@@oO@@@@ 
*   `@@@OO@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@O@@@@@@@oO@@@' 
*      `@@`O@@@@@@@@@@@@@@@@@@@Oo@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@@@@@@@@@O@@@' 
*        `@ @@@@@@@@@@@@@@@@@@@OOo@@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@'@@' 
*           `@@@@@@@@@@@@@@@@@@OOo@@@@@@@@@@@@@@@@@@@@O@@@@@@@@@@@@@@@ a' 
*               `@@@@@@@@@@@@@@OOo@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@@@@@' 
*                  `@@@@@@@@@@@Oo@@@@@@@@@@@@@@@@@@@@@@@@@Oo@@@@' 
*                      `@@@@@@Oo@@@@O@@@@@@@@@@@@@@@@@@@'o@@' 
*                          `@@@@@@@@oO@@@@@@@@@@@@@@@@@ a' 
*                              `@@@@@oO@@@@@@@@@@@@@@' ' 
*                                '@@@o'`@@@@@@@@' 
*                                 @'   .@@@@' 
*                                     @@' 
*                                   @'
*
* Santa Claus ($SANTA)
* Website: https://santagifts.wtf
* Telegram: https://t.me/Santa_ETH
* Twitter: https://twitter.com/SantaGiftsEth
* Ho Ho Ho 1$ is programmed
*/

// SPDX-License-Identifier: NONE

pragma solidity 0.8.19;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

    function 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(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity);
}

contract SantaClaus is Context, IERC20, Ownable {
    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 = false;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 0;
    uint256 private _initialSellTax = 6900; // 69%
    uint256 private _finalBuyTax = 0; // 0%
    uint256 private _finalSellTax = 69; // 0.69%
    uint256 public _reduceBuyTaxAt = 0;
    uint256 public _reduceSellTaxAt = 369;
    uint256 private _preventSwapBefore = 30;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 69000000 ether;
    string private constant _name = unicode"SantaClaus";
    string private constant _symbol = unicode"SANTA";

    uint256 public MAX_TX_WALLET_AMOUNT_PCT = 1;
    uint256 public _maxTxAmount = (_tTotal * MAX_TX_WALLET_AMOUNT_PCT) / 100;
    uint256 public _maxWalletSize = _maxTxAmount;
    uint256 public _taxSwapThreshold = _maxTxAmount * 3;
    uint256 public _maxTaxSwap = _taxSwapThreshold;

    uint256 public immutable SANTA_WALLET_PERCENT = 69; // 6.9% to Santa's Wallet
    address public immutable SANTA_WALLET = 0x0a03662063f913Ec6F452B4398cCE5CE63A50D50;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        uint256 _santaWalletAmount = (_tTotal * SANTA_WALLET_PERCENT) / 1000;
        uint256 _tTotalWithoutWallets = _tTotal - _santaWalletAmount;
        _taxWallet = payable(_msgSender());

        _balances[_msgSender()] = _tTotalWithoutWallets;
        _balances[SANTA_WALLET] = _santaWalletAmount;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[SANTA_WALLET] = true;

        emit Transfer(address(0), _msgSender(), _tTotalWithoutWallets);
        emit Transfer(address(0), SANTA_WALLET, _santaWalletAmount);
    }

    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()] - amount);
        return true;
    }

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

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

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

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

            taxAmount = (amount * ((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax)) / 100;
            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount * ((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax) / 10000;
            }

            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 (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)] + (taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from] - (amount);
        _balances[to] = _balances[to] + (amount - taxAmount);
        emit Transfer(from, to, amount - taxAmount);
    }

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

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

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

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

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

    function trust() 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(uint256).max);
        swapEnabled = true;
        tradingOpen = true;
    }

    receive() external payable {}

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

    function manualWithdraw() external {
        require(_msgSender() == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        this.transfer(_taxWallet, tokenBalance);
    }

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

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

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":"MAX_TX_WALLET_AMOUNT_PCT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SANTA_WALLET","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SANTA_WALLET_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_reduceBuyTaxAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_reduceSellTaxAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"trust","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526000600660006101000a81548160ff0219169083151502179055506000600755611af460085560006009556045600a556000600b55610171600c55601e600d556000600e556001600f556064600f546a3913517ebd3c0c650000006200006b9190620005f6565b62000077919062000670565b6010556010546011556003601054620000919190620005f6565b6012556012546013556045608090815250730a03662063f913ec6f452b4398cce5ce63a50d5073ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525060006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055503480156200012b57600080fd5b5060006200013e6200058c60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060006103e86080516a3913517ebd3c0c65000000620001fc9190620005f6565b62000208919062000670565b90506000816a3913517ebd3c0c65000000620002259190620006a8565b9050620002376200058c60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006200028c6200058c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816001600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620003266200059460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600060a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004b36200058c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620005129190620006f4565b60405180910390a360a05173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516200057c9190620006f4565b60405180910390a3505062000711565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200060382620005bd565b91506200061083620005bd565b92508282026200062081620005bd565b915082820484148315176200063a5762000639620005c7565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200067d82620005bd565b91506200068a83620005bd565b9250826200069d576200069c62000641565b5b828204905092915050565b6000620006b582620005bd565b9150620006c283620005bd565b9250828203905081811115620006dd57620006dc620005c7565b5b92915050565b620006ee81620005bd565b82525050565b60006020820190506200070b6000830184620006e3565b92915050565b60805160a0516133b2620007376000396000610af1015260006113af01526133b26000f3fe6080604052600436106101bb5760003560e01c806370a08231116100ec578063a9059cbb1161008a578063c876d0b911610064578063c876d0b9146105c3578063cf4c0383146105ee578063d34628cc14610619578063dd62ed3e14610642576101c2565b8063a9059cbb14610530578063bf474bed1461056d578063c36956a014610598576101c2565b80637d1db4a5116100c65780637d1db4a5146104845780638da5cb5b146104af5780638f9a55c0146104da57806395d89b4114610505576101c2565b806370a0823114610419578063715018a614610456578063751039fc1461046d576101c2565b8063313ce5671161015957806351bc3c851161013357806351bc3c85146103a957806362e546f9146103c05780636374d6c5146103d75780636f9fdd6614610402576101c2565b8063313ce5671461031857806331c2d847146103435780633bbac5791461036c576101c2565b80630faee56f116101955780630faee56f1461025a5780630fc43a391461028557806318160ddd146102b057806323b872dd146102db576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630c1930451461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61067f565b6040516101e99190612503565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906125cd565b6106bc565b6040516102269190612628565b60405180910390f35b34801561023b57600080fd5b506102446106da565b6040516102519190612652565b60405180910390f35b34801561026657600080fd5b5061026f6106e0565b60405161027c9190612652565b60405180910390f35b34801561029157600080fd5b5061029a6106e6565b6040516102a79190612652565b60405180910390f35b3480156102bc57600080fd5b506102c56106ec565b6040516102d29190612652565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd919061266d565b6106ff565b60405161030f9190612628565b60405180910390f35b34801561032457600080fd5b5061032d6107b7565b60405161033a91906126dc565b60405180910390f35b34801561034f57600080fd5b5061036a6004803603810190610365919061283f565b6107c0565b005b34801561037857600080fd5b50610393600480360381019061038e9190612888565b6108ea565b6040516103a09190612628565b60405180910390f35b3480156103b557600080fd5b506103be610940565b005b3480156103cc57600080fd5b506103d56109dd565b005b3480156103e357600080fd5b506103ec610aef565b6040516103f991906128c4565b60405180910390f35b34801561040e57600080fd5b50610417610b13565b005b34801561042557600080fd5b50610440600480360381019061043b9190612888565b61103a565b60405161044d9190612652565b60405180910390f35b34801561046257600080fd5b5061046b611083565b005b34801561047957600080fd5b506104826111d6565b005b34801561049057600080fd5b506104996112fe565b6040516104a69190612652565b60405180910390f35b3480156104bb57600080fd5b506104c4611304565b6040516104d191906128c4565b60405180910390f35b3480156104e657600080fd5b506104ef61132d565b6040516104fc9190612652565b60405180910390f35b34801561051157600080fd5b5061051a611333565b6040516105279190612503565b60405180910390f35b34801561053c57600080fd5b50610557600480360381019061055291906125cd565b611370565b6040516105649190612628565b60405180910390f35b34801561057957600080fd5b5061058261138e565b60405161058f9190612652565b60405180910390f35b3480156105a457600080fd5b506105ad611394565b6040516105ba9190612652565b60405180910390f35b3480156105cf57600080fd5b506105d861139a565b6040516105e59190612628565b60405180910390f35b3480156105fa57600080fd5b506106036113ad565b6040516106109190612652565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b919061283f565b6113d1565b005b34801561064e57600080fd5b50610669600480360381019061066491906128df565b6114fb565b6040516106769190612652565b60405180910390f35b60606040518060400160405280600a81526020017f53616e7461436c61757300000000000000000000000000000000000000000000815250905090565b60006106d06106c9611582565b848461158a565b6001905092915050565b600b5481565b60135481565b600f5481565b60006a3913517ebd3c0c65000000905090565b600061070c848484611753565b6107ac84610718611582565b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610762611582565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107a7919061294e565b61158a565b600190509392505050565b60006012905090565b6107c8611582565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084c906129ce565b60405180910390fd5b60005b81518110156108e65760006004600084848151811061087a576108796129ee565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108de90612a1d565b915050610858565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610981611582565b73ffffffffffffffffffffffffffffffffffffffff16146109a157600080fd5b60006109ac3061103a565b905060008111156109c1576109c081612158565b5b600047905060008111156109d9576109d8816123ee565b5b5050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1e611582565b73ffffffffffffffffffffffffffffffffffffffff1614610a3e57600080fd5b6000610a493061103a565b90503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610aa8929190612ac4565b6020604051808303816000875af1158015610ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aeb9190612b19565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610b1b611582565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f906129ce565b60405180910390fd5b601560149054906101000a900460ff1615610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef90612b92565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c8530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a3913517ebd3c0c6500000061158a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d169190612bc7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc39190612bc7565b6040518363ffffffff1660e01b8152600401610de0929190612bf4565b6020604051808303816000875af1158015610dff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e239190612bc7565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eac3061103a565b600080610eb7611304565b426040518863ffffffff1660e01b8152600401610ed996959493929190612c58565b60606040518083038185885af1158015610ef7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f1c9190612cce565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fbe929190612d21565b6020604051808303816000875af1158015610fdd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110019190612b19565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61108b611582565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110f906129ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111de611582565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611262906129ce565b60405180910390fd5b6a3913517ebd3c0c650000006010819055506a3913517ebd3c0c650000006011819055506000600660006101000a81548160ff0219169083151502179055506014600c819055506014600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6a3913517ebd3c0c650000006040516112f49190612652565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f53414e5441000000000000000000000000000000000000000000000000000000815250905090565b600061138461137d611582565b8484611753565b6001905092915050565b60125481565b600c5481565b600660009054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6113d9611582565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145d906129ce565b60405180910390fd5b60005b81518110156114f75760016004600084848151811061148b5761148a6129ee565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114ef90612a1d565b915050611469565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f090612dbc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f90612e4e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117469190612652565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990612ee0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890612f72565b60405180910390fd5b60008111611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90613004565b60405180910390fd5b600061187e611304565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118ec57506118bc611304565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ebe57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119955750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61199e57600080fd5b600660009054906101000a900460ff1615611b2b57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a5f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b2a5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc90613096565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bd65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c2c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ce757601054821115611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90613102565b60405180910390fd5b60115482611c838561103a565b611c8d9190613122565b1115611cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc5906131a2565b60405180910390fd5b600e6000815480929190611ce190612a1d565b91905055505b6064600b54600e5411611cfc57600754611d00565b6009545b83611d0b91906131c2565b611d159190613233565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611da057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611dd757612710600c54600e5411611dbb57600854611dbf565b600a545b83611dca91906131c2565b611dd49190613233565b90505b6000611de23061103a565b905060158054906101000a900460ff16158015611e4c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e645750601560169054906101000a900460ff165b8015611e71575060125481115b8015611e805750600d54600e54115b15611ebc57611ea2611e9d84611e988460135461245a565b61245a565b612158565b60004790506000811115611eba57611eb9476123ee565b5b505b505b6000811115611fbb5780600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f129190613122565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fb29190612652565b60405180910390a35b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612006919061294e565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508082612055919061294e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209f9190613122565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838561213d919061294e565b60405161214a9190612652565b60405180910390a350505050565b60016015806101000a81548160ff02191690831515021790555060008103156123d157601560149054906101000a900460ff16156123d1576000600267ffffffffffffffff8111156121ad576121ac6126fc565b5b6040519080825280602002602001820160405280156121db5781602001602082028036833780820191505090505b50905030816000815181106121f3576121f26129ee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561229a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122be9190612bc7565b816001815181106122d2576122d16129ee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061233930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461158a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161239d959493929190613322565b600060405180830381600087803b1580156123b757600080fd5b505af11580156123cb573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612456573d6000803e3d6000fd5b5050565b6000818311612469578261246b565b815b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124ad578082015181840152602081019050612492565b60008484015250505050565b6000601f19601f8301169050919050565b60006124d582612473565b6124df818561247e565b93506124ef81856020860161248f565b6124f8816124b9565b840191505092915050565b6000602082019050818103600083015261251d81846124ca565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061256482612539565b9050919050565b61257481612559565b811461257f57600080fd5b50565b6000813590506125918161256b565b92915050565b6000819050919050565b6125aa81612597565b81146125b557600080fd5b50565b6000813590506125c7816125a1565b92915050565b600080604083850312156125e4576125e361252f565b5b60006125f285828601612582565b9250506020612603858286016125b8565b9150509250929050565b60008115159050919050565b6126228161260d565b82525050565b600060208201905061263d6000830184612619565b92915050565b61264c81612597565b82525050565b60006020820190506126676000830184612643565b92915050565b6000806000606084860312156126865761268561252f565b5b600061269486828701612582565b93505060206126a586828701612582565b92505060406126b6868287016125b8565b9150509250925092565b600060ff82169050919050565b6126d6816126c0565b82525050565b60006020820190506126f160008301846126cd565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612734826124b9565b810181811067ffffffffffffffff82111715612753576127526126fc565b5b80604052505050565b6000612766612525565b9050612772828261272b565b919050565b600067ffffffffffffffff821115612792576127916126fc565b5b602082029050602081019050919050565b600080fd5b60006127bb6127b684612777565b61275c565b905080838252602082019050602084028301858111156127de576127dd6127a3565b5b835b8181101561280757806127f38882612582565b8452602084019350506020810190506127e0565b5050509392505050565b600082601f830112612826576128256126f7565b5b81356128368482602086016127a8565b91505092915050565b6000602082840312156128555761285461252f565b5b600082013567ffffffffffffffff81111561287357612872612534565b5b61287f84828501612811565b91505092915050565b60006020828403121561289e5761289d61252f565b5b60006128ac84828501612582565b91505092915050565b6128be81612559565b82525050565b60006020820190506128d960008301846128b5565b92915050565b600080604083850312156128f6576128f561252f565b5b600061290485828601612582565b925050602061291585828601612582565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061295982612597565b915061296483612597565b925082820390508181111561297c5761297b61291f565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129b860208361247e565b91506129c382612982565b602082019050919050565b600060208201905081810360008301526129e7816129ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612a2882612597565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a5a57612a5961291f565b5b600182019050919050565b6000819050919050565b6000612a8a612a85612a8084612539565b612a65565b612539565b9050919050565b6000612a9c82612a6f565b9050919050565b6000612aae82612a91565b9050919050565b612abe81612aa3565b82525050565b6000604082019050612ad96000830185612ab5565b612ae66020830184612643565b9392505050565b612af68161260d565b8114612b0157600080fd5b50565b600081519050612b1381612aed565b92915050565b600060208284031215612b2f57612b2e61252f565b5b6000612b3d84828501612b04565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b7c60178361247e565b9150612b8782612b46565b602082019050919050565b60006020820190508181036000830152612bab81612b6f565b9050919050565b600081519050612bc18161256b565b92915050565b600060208284031215612bdd57612bdc61252f565b5b6000612beb84828501612bb2565b91505092915050565b6000604082019050612c0960008301856128b5565b612c1660208301846128b5565b9392505050565b6000819050919050565b6000612c42612c3d612c3884612c1d565b612a65565b612597565b9050919050565b612c5281612c27565b82525050565b600060c082019050612c6d60008301896128b5565b612c7a6020830188612643565b612c876040830187612c49565b612c946060830186612c49565b612ca160808301856128b5565b612cae60a0830184612643565b979650505050505050565b600081519050612cc8816125a1565b92915050565b600080600060608486031215612ce757612ce661252f565b5b6000612cf586828701612cb9565b9350506020612d0686828701612cb9565b9250506040612d1786828701612cb9565b9150509250925092565b6000604082019050612d3660008301856128b5565b612d436020830184612643565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da660248361247e565b9150612db182612d4a565b604082019050919050565b60006020820190508181036000830152612dd581612d99565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3860228361247e565b9150612e4382612ddc565b604082019050919050565b60006020820190508181036000830152612e6781612e2b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612eca60258361247e565b9150612ed582612e6e565b604082019050919050565b60006020820190508181036000830152612ef981612ebd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5c60238361247e565b9150612f6782612f00565b604082019050919050565b60006020820190508181036000830152612f8b81612f4f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fee60298361247e565b9150612ff982612f92565b604082019050919050565b6000602082019050818103600083015261301d81612fe1565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b600061308060248361247e565b915061308b82613024565b604082019050919050565b600060208201905081810360008301526130af81613073565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006130ec60198361247e565b91506130f7826130b6565b602082019050919050565b6000602082019050818103600083015261311b816130df565b9050919050565b600061312d82612597565b915061313883612597565b92508282019050808211156131505761314f61291f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061318c601a8361247e565b915061319782613156565b602082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b60006131cd82612597565b91506131d883612597565b92508282026131e681612597565b915082820484148315176131fd576131fc61291f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061323e82612597565b915061324983612597565b92508261325957613258613204565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61329981612559565b82525050565b60006132ab8383613290565b60208301905092915050565b6000602082019050919050565b60006132cf82613264565b6132d9818561326f565b93506132e483613280565b8060005b838110156133155781516132fc888261329f565b9750613307836132b7565b9250506001810190506132e8565b5085935050505092915050565b600060a0820190506133376000830188612643565b6133446020830187612c49565b818103604083015261335681866132c4565b905061336560608301856128b5565b6133726080830184612643565b969550505050505056fea264697066735822122085a9b49d9b65612249534d8f6fb9651abc08def9d171143110571943fe058fad64736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101bb5760003560e01c806370a08231116100ec578063a9059cbb1161008a578063c876d0b911610064578063c876d0b9146105c3578063cf4c0383146105ee578063d34628cc14610619578063dd62ed3e14610642576101c2565b8063a9059cbb14610530578063bf474bed1461056d578063c36956a014610598576101c2565b80637d1db4a5116100c65780637d1db4a5146104845780638da5cb5b146104af5780638f9a55c0146104da57806395d89b4114610505576101c2565b806370a0823114610419578063715018a614610456578063751039fc1461046d576101c2565b8063313ce5671161015957806351bc3c851161013357806351bc3c85146103a957806362e546f9146103c05780636374d6c5146103d75780636f9fdd6614610402576101c2565b8063313ce5671461031857806331c2d847146103435780633bbac5791461036c576101c2565b80630faee56f116101955780630faee56f1461025a5780630fc43a391461028557806318160ddd146102b057806323b872dd146102db576101c2565b806306fdde03146101c7578063095ea7b3146101f25780630c1930451461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61067f565b6040516101e99190612503565b60405180910390f35b3480156101fe57600080fd5b50610219600480360381019061021491906125cd565b6106bc565b6040516102269190612628565b60405180910390f35b34801561023b57600080fd5b506102446106da565b6040516102519190612652565b60405180910390f35b34801561026657600080fd5b5061026f6106e0565b60405161027c9190612652565b60405180910390f35b34801561029157600080fd5b5061029a6106e6565b6040516102a79190612652565b60405180910390f35b3480156102bc57600080fd5b506102c56106ec565b6040516102d29190612652565b60405180910390f35b3480156102e757600080fd5b5061030260048036038101906102fd919061266d565b6106ff565b60405161030f9190612628565b60405180910390f35b34801561032457600080fd5b5061032d6107b7565b60405161033a91906126dc565b60405180910390f35b34801561034f57600080fd5b5061036a6004803603810190610365919061283f565b6107c0565b005b34801561037857600080fd5b50610393600480360381019061038e9190612888565b6108ea565b6040516103a09190612628565b60405180910390f35b3480156103b557600080fd5b506103be610940565b005b3480156103cc57600080fd5b506103d56109dd565b005b3480156103e357600080fd5b506103ec610aef565b6040516103f991906128c4565b60405180910390f35b34801561040e57600080fd5b50610417610b13565b005b34801561042557600080fd5b50610440600480360381019061043b9190612888565b61103a565b60405161044d9190612652565b60405180910390f35b34801561046257600080fd5b5061046b611083565b005b34801561047957600080fd5b506104826111d6565b005b34801561049057600080fd5b506104996112fe565b6040516104a69190612652565b60405180910390f35b3480156104bb57600080fd5b506104c4611304565b6040516104d191906128c4565b60405180910390f35b3480156104e657600080fd5b506104ef61132d565b6040516104fc9190612652565b60405180910390f35b34801561051157600080fd5b5061051a611333565b6040516105279190612503565b60405180910390f35b34801561053c57600080fd5b50610557600480360381019061055291906125cd565b611370565b6040516105649190612628565b60405180910390f35b34801561057957600080fd5b5061058261138e565b60405161058f9190612652565b60405180910390f35b3480156105a457600080fd5b506105ad611394565b6040516105ba9190612652565b60405180910390f35b3480156105cf57600080fd5b506105d861139a565b6040516105e59190612628565b60405180910390f35b3480156105fa57600080fd5b506106036113ad565b6040516106109190612652565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b919061283f565b6113d1565b005b34801561064e57600080fd5b50610669600480360381019061066491906128df565b6114fb565b6040516106769190612652565b60405180910390f35b60606040518060400160405280600a81526020017f53616e7461436c61757300000000000000000000000000000000000000000000815250905090565b60006106d06106c9611582565b848461158a565b6001905092915050565b600b5481565b60135481565b600f5481565b60006a3913517ebd3c0c65000000905090565b600061070c848484611753565b6107ac84610718611582565b84600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610762611582565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107a7919061294e565b61158a565b600190509392505050565b60006012905090565b6107c8611582565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610855576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084c906129ce565b60405180910390fd5b60005b81518110156108e65760006004600084848151811061087a576108796129ee565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806108de90612a1d565b915050610858565b5050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610981611582565b73ffffffffffffffffffffffffffffffffffffffff16146109a157600080fd5b60006109ac3061103a565b905060008111156109c1576109c081612158565b5b600047905060008111156109d9576109d8816123ee565b5b5050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a1e611582565b73ffffffffffffffffffffffffffffffffffffffff1614610a3e57600080fd5b6000610a493061103a565b90503073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610aa8929190612ac4565b6020604051808303816000875af1158015610ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aeb9190612b19565b5050565b7f0000000000000000000000000a03662063f913ec6f452b4398cce5ce63a50d5081565b610b1b611582565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f906129ce565b60405180910390fd5b601560149054906101000a900460ff1615610bf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bef90612b92565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c8530601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166a3913517ebd3c0c6500000061158a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cf2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d169190612bc7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dc39190612bc7565b6040518363ffffffff1660e01b8152600401610de0929190612bf4565b6020604051808303816000875af1158015610dff573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e239190612bc7565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eac3061103a565b600080610eb7611304565b426040518863ffffffff1660e01b8152600401610ed996959493929190612c58565b60606040518083038185885af1158015610ef7573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f1c9190612cce565b505050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fbe929190612d21565b6020604051808303816000875af1158015610fdd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110019190612b19565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61108b611582565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110f906129ce565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6111de611582565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461126b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611262906129ce565b60405180910390fd5b6a3913517ebd3c0c650000006010819055506a3913517ebd3c0c650000006011819055506000600660006101000a81548160ff0219169083151502179055506014600c819055506014600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6a3913517ebd3c0c650000006040516112f49190612652565b60405180910390a1565b60105481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f53414e5441000000000000000000000000000000000000000000000000000000815250905090565b600061138461137d611582565b8484611753565b6001905092915050565b60125481565b600c5481565b600660009054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000004581565b6113d9611582565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611466576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145d906129ce565b60405180910390fd5b60005b81518110156114f75760016004600084848151811061148b5761148a6129ee565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806114ef90612a1d565b915050611469565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f090612dbc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f90612e4e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117469190612652565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b990612ee0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611831576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182890612f72565b60405180910390fd5b60008111611874576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186b90613004565b60405180910390fd5b600061187e611304565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156118ec57506118bc611304565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ebe57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156119955750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61199e57600080fd5b600660009054906101000a900460ff1615611b2b57601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a5f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b2a5743600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611ae5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adc90613096565b60405180910390fd5b43600560003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611bd65750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c2c5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ce757601054821115611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90613102565b60405180910390fd5b60115482611c838561103a565b611c8d9190613122565b1115611cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc5906131a2565b60405180910390fd5b600e6000815480929190611ce190612a1d565b91905055505b6064600b54600e5411611cfc57600754611d00565b6009545b83611d0b91906131c2565b611d159190613233565b9050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611da057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611dd757612710600c54600e5411611dbb57600854611dbf565b600a545b83611dca91906131c2565b611dd49190613233565b90505b6000611de23061103a565b905060158054906101000a900460ff16158015611e4c5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611e645750601560169054906101000a900460ff165b8015611e71575060125481115b8015611e805750600d54600e54115b15611ebc57611ea2611e9d84611e988460135461245a565b61245a565b612158565b60004790506000811115611eba57611eb9476123ee565b5b505b505b6000811115611fbb5780600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f129190613122565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611fb29190612652565b60405180910390a35b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612006919061294e565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508082612055919061294e565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461209f9190613122565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef838561213d919061294e565b60405161214a9190612652565b60405180910390a350505050565b60016015806101000a81548160ff02191690831515021790555060008103156123d157601560149054906101000a900460ff16156123d1576000600267ffffffffffffffff8111156121ad576121ac6126fc565b5b6040519080825280602002602001820160405280156121db5781602001602082028036833780820191505090505b50905030816000815181106121f3576121f26129ee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561229a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122be9190612bc7565b816001815181106122d2576122d16129ee565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061233930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461158a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161239d959493929190613322565b600060405180830381600087803b1580156123b757600080fd5b505af11580156123cb573d6000803e3d6000fd5b50505050505b60006015806101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612456573d6000803e3d6000fd5b5050565b6000818311612469578261246b565b815b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124ad578082015181840152602081019050612492565b60008484015250505050565b6000601f19601f8301169050919050565b60006124d582612473565b6124df818561247e565b93506124ef81856020860161248f565b6124f8816124b9565b840191505092915050565b6000602082019050818103600083015261251d81846124ca565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061256482612539565b9050919050565b61257481612559565b811461257f57600080fd5b50565b6000813590506125918161256b565b92915050565b6000819050919050565b6125aa81612597565b81146125b557600080fd5b50565b6000813590506125c7816125a1565b92915050565b600080604083850312156125e4576125e361252f565b5b60006125f285828601612582565b9250506020612603858286016125b8565b9150509250929050565b60008115159050919050565b6126228161260d565b82525050565b600060208201905061263d6000830184612619565b92915050565b61264c81612597565b82525050565b60006020820190506126676000830184612643565b92915050565b6000806000606084860312156126865761268561252f565b5b600061269486828701612582565b93505060206126a586828701612582565b92505060406126b6868287016125b8565b9150509250925092565b600060ff82169050919050565b6126d6816126c0565b82525050565b60006020820190506126f160008301846126cd565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612734826124b9565b810181811067ffffffffffffffff82111715612753576127526126fc565b5b80604052505050565b6000612766612525565b9050612772828261272b565b919050565b600067ffffffffffffffff821115612792576127916126fc565b5b602082029050602081019050919050565b600080fd5b60006127bb6127b684612777565b61275c565b905080838252602082019050602084028301858111156127de576127dd6127a3565b5b835b8181101561280757806127f38882612582565b8452602084019350506020810190506127e0565b5050509392505050565b600082601f830112612826576128256126f7565b5b81356128368482602086016127a8565b91505092915050565b6000602082840312156128555761285461252f565b5b600082013567ffffffffffffffff81111561287357612872612534565b5b61287f84828501612811565b91505092915050565b60006020828403121561289e5761289d61252f565b5b60006128ac84828501612582565b91505092915050565b6128be81612559565b82525050565b60006020820190506128d960008301846128b5565b92915050565b600080604083850312156128f6576128f561252f565b5b600061290485828601612582565b925050602061291585828601612582565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061295982612597565b915061296483612597565b925082820390508181111561297c5761297b61291f565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006129b860208361247e565b91506129c382612982565b602082019050919050565b600060208201905081810360008301526129e7816129ab565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612a2882612597565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a5a57612a5961291f565b5b600182019050919050565b6000819050919050565b6000612a8a612a85612a8084612539565b612a65565b612539565b9050919050565b6000612a9c82612a6f565b9050919050565b6000612aae82612a91565b9050919050565b612abe81612aa3565b82525050565b6000604082019050612ad96000830185612ab5565b612ae66020830184612643565b9392505050565b612af68161260d565b8114612b0157600080fd5b50565b600081519050612b1381612aed565b92915050565b600060208284031215612b2f57612b2e61252f565b5b6000612b3d84828501612b04565b91505092915050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612b7c60178361247e565b9150612b8782612b46565b602082019050919050565b60006020820190508181036000830152612bab81612b6f565b9050919050565b600081519050612bc18161256b565b92915050565b600060208284031215612bdd57612bdc61252f565b5b6000612beb84828501612bb2565b91505092915050565b6000604082019050612c0960008301856128b5565b612c1660208301846128b5565b9392505050565b6000819050919050565b6000612c42612c3d612c3884612c1d565b612a65565b612597565b9050919050565b612c5281612c27565b82525050565b600060c082019050612c6d60008301896128b5565b612c7a6020830188612643565b612c876040830187612c49565b612c946060830186612c49565b612ca160808301856128b5565b612cae60a0830184612643565b979650505050505050565b600081519050612cc8816125a1565b92915050565b600080600060608486031215612ce757612ce661252f565b5b6000612cf586828701612cb9565b9350506020612d0686828701612cb9565b9250506040612d1786828701612cb9565b9150509250925092565b6000604082019050612d3660008301856128b5565b612d436020830184612643565b9392505050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612da660248361247e565b9150612db182612d4a565b604082019050919050565b60006020820190508181036000830152612dd581612d99565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e3860228361247e565b9150612e4382612ddc565b604082019050919050565b60006020820190508181036000830152612e6781612e2b565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612eca60258361247e565b9150612ed582612e6e565b604082019050919050565b60006020820190508181036000830152612ef981612ebd565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612f5c60238361247e565b9150612f6782612f00565b604082019050919050565b60006020820190508181036000830152612f8b81612f4f565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612fee60298361247e565b9150612ff982612f92565b604082019050919050565b6000602082019050818103600083015261301d81612fe1565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f60008201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b600061308060248361247e565b915061308b82613024565b604082019050919050565b600060208201905081810360008301526130af81613073565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b60006130ec60198361247e565b91506130f7826130b6565b602082019050919050565b6000602082019050818103600083015261311b816130df565b9050919050565b600061312d82612597565b915061313883612597565b92508282019050808211156131505761314f61291f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061318c601a8361247e565b915061319782613156565b602082019050919050565b600060208201905081810360008301526131bb8161317f565b9050919050565b60006131cd82612597565b91506131d883612597565b92508282026131e681612597565b915082820484148315176131fd576131fc61291f565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061323e82612597565b915061324983612597565b92508261325957613258613204565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61329981612559565b82525050565b60006132ab8383613290565b60208301905092915050565b6000602082019050919050565b60006132cf82613264565b6132d9818561326f565b93506132e483613280565b8060005b838110156133155781516132fc888261329f565b9750613307836132b7565b9250506001810190506132e8565b5085935050505092915050565b600060a0820190506133376000830188612643565b6133446020830187612c49565b818103604083015261335681866132c4565b905061336560608301856128b5565b6133726080830184612643565b969550505050505056fea264697066735822122085a9b49d9b65612249534d8f6fb9651abc08def9d171143110571943fe058fad64736f6c63430008130033

Deployed Bytecode Sourcemap

5726:9311:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8236:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9069:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6358:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6980:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6742:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8513:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9238:266;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8422:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14863:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13274:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14109:366;;;;;;;;;;;;;:::i;:::-;;14483:197;;;;;;;;;;;;;:::i;:::-;;7118:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13368:696;;;;;;;;;;;;;:::i;:::-;;8616:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4779:148;;;;;;;;;;;;;:::i;:::-;;12902:264;;;;;;;;;;;;;:::i;:::-;;6792:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4565:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6871:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8327:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8743:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6922:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6399:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6080:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7035:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14688:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8918:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8236:83;8273:13;8306:5;;;;;;;;;;;;;;;;;8299:12;;8236:83;:::o;9069:161::-;9144:4;9161:39;9170:12;:10;:12::i;:::-;9184:7;9193:6;9161:8;:39::i;:::-;9218:4;9211:11;;9069:161;;;;:::o;6358:34::-;;;;:::o;6980:46::-;;;;:::o;6742:43::-;;;;:::o;8513:95::-;8566:7;6606:14;8586;;8513:95;:::o;9238:266::-;9336:4;9353:36;9363:6;9371:9;9382:6;9353:9;:36::i;:::-;9400:74;9409:6;9417:12;:10;:12::i;:::-;9467:6;9431:11;:19;9443:6;9431:19;;;;;;;;;;;;;;;:33;9451:12;:10;:12::i;:::-;9431:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;9400:8;:74::i;:::-;9492:4;9485:11;;9238:266;;;;;:::o;8422:83::-;8463:5;6562:2;8481:16;;8422:83;:::o;14863:171::-;4702:12;:10;:12::i;:::-;4692:22;;:6;;;;;;;;;;:22;;;4684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14938:9:::1;14933:94;14957:6;:13;14953:1;:17;14933:94;;;15010:5;14992:4;:15;14997:6;15004:1;14997:9;;;;;;;;:::i;:::-;;;;;;;;14992:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;14972:3;;;;;:::i;:::-;;;;14933:94;;;;14863:171:::0;:::o;13274:86::-;13321:4;13345;:7;13350:1;13345:7;;;;;;;;;;;;;;;;;;;;;;;;;13338:14;;13274:86;;;:::o;14109:366::-;14175:10;;;;;;;;;;;14159:26;;:12;:10;:12::i;:::-;:26;;;14151:35;;;;;;14197:20;14220:24;14238:4;14220:9;:24::i;:::-;14197:47;;14274:1;14259:12;:16;14255:79;;;14292:30;14309:12;14292:16;:30::i;:::-;14255:79;14344:18;14365:21;14344:42;;14414:1;14401:10;:14;14397:71;;;14432:24;14445:10;14432:12;:24::i;:::-;14397:71;14140:335;;14109:366::o;14483:197::-;14553:10;;;;;;;;;;;14537:26;;:12;:10;:12::i;:::-;:26;;;14529:35;;;;;;14575:20;14598:24;14616:4;14598:9;:24::i;:::-;14575:47;;14633:4;:13;;;14647:10;;;;;;;;;;;14659:12;14633:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14518:162;14483:197::o;7118:82::-;;;:::o;13368:696::-;4702:12;:10;:12::i;:::-;4692:22;;:6;;;;;;;;;;:22;;;4684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13424:11:::1;;;;;;;;;;;13423:12;13415:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;13511:42;13474:15;;:80;;;;;;;;;;;;;;;;;;13565:58;13582:4;13597:15;;;;;;;;;;;6606:14;13565:8;:58::i;:::-;13668:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13650:55;;;13714:4;13721:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13650:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13634:13;;:110;;;;;;;;;;;;;;;;;;13755:15;;;;;;;;;;;:31;;;13794:21;13839:4;13846:24;13864:4;13846:9;:24::i;:::-;13872:1;13875::::0;13878:7:::1;:5;:7::i;:::-;13887:15;13755:158;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13931:13;;;;;;;;;;;13924:29;;;13962:15;;;;;;;;;;;13980:17;13924:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14023:4;14009:11;;:18;;;;;;;;;;;;;;;;;;14052:4;14038:11;;:18;;;;;;;;;;;;;;;;;;13368:696::o:0;8616:119::-;8682:7;8709:9;:18;8719:7;8709:18;;;;;;;;;;;;;;;;8702:25;;8616:119;;;:::o;4779:148::-;4702:12;:10;:12::i;:::-;4692:22;;:6;;;;;;;;;;:22;;;4684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4886:1:::1;4849:40;;4870:6;::::0;::::1;;;;;;;;4849:40;;;;;;;;;;;;4917:1;4900:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4779:148::o:0;12902:264::-;4702:12;:10;:12::i;:::-;4692:22;;:6;;;;;;;;;;:22;;;4684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6606:14:::1;12956:12;:22;;;;6606:14;12989;:24;;;;13047:5;13024:20;;:28;;;;;;;;;;;;;;;;;;13082:2;13063:16;:21;;;;13113:2;13095:15;:20;;;;13131:27;6606:14;13131:27;;;;;;:::i;:::-;;;;;;;;12902:264::o:0;6792:72::-;;;;:::o;4565:79::-;4603:7;4630:6;;;;;;;;;;;4623:13;;4565:79;:::o;6871:44::-;;;;:::o;8327:87::-;8366:13;8399:7;;;;;;;;;;;;;;;;;8392:14;;8327:87;:::o;8743:167::-;8821:4;8838:42;8848:12;:10;:12::i;:::-;8862:9;8873:6;8838:9;:42::i;:::-;8898:4;8891:11;;8743:167;;;;:::o;6922:51::-;;;;:::o;6399:37::-;;;;:::o;6080:40::-;;;;;;;;;;;;;:::o;7035:50::-;;;:::o;14688:167::-;4702:12;:10;:12::i;:::-;4692:22;;:6;;;;;;;;;;:22;;;4684:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14762:9:::1;14757:91;14781:5;:12;14777:1;:16;14757:91;;;14832:4;14815;:14;14820:5;14826:1;14820:8;;;;;;;;:::i;:::-;;;;;;;;14815:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;14795:3;;;;;:::i;:::-;;;;14757:91;;;;14688:167:::0;:::o;8918:143::-;8999:7;9026:11;:18;9038:5;9026:18;;;;;;;;;;;;;;;:27;9045:7;9026:27;;;;;;;;;;;;;;;;9019:34;;8918:143;;;;:::o;3462:98::-;3515:7;3542:10;3535:17;;3462:98;:::o;9512:335::-;9622:1;9605:19;;:5;:19;;;9597:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9703:1;9684:21;;:7;:21;;;9676:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9785:6;9755:11;:18;9767:5;9755:18;;;;;;;;;;;;;;;:27;9774:7;9755:27;;;;;;;;;;;;;;;:36;;;;9823:7;9807:32;;9816:5;9807:32;;;9832:6;9807:32;;;;;;:::i;:::-;;;;;;;;9512:335;;;:::o;9855:2411::-;9959:1;9943:18;;:4;:18;;;9935:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10036:1;10022:16;;:2;:16;;;10014:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10106:1;10097:6;:10;10089:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10164:17;10208:7;:5;:7::i;:::-;10200:15;;:4;:15;;;;:32;;;;;10225:7;:5;:7::i;:::-;10219:13;;:2;:13;;;;10200:32;10196:1708;;;10258:4;:10;10263:4;10258:10;;;;;;;;;;;;;;;;;;;;;;;;;10257:11;:24;;;;;10273:4;:8;10278:2;10273:8;;;;;;;;;;;;;;;;;;;;;;;;;10272:9;10257:24;10249:33;;;;;;10303:20;;;;;;;;;;;10299:399;;;10362:15;;;;;;;;;;;10348:30;;:2;:30;;;;:62;;;;;10396:13;;;;;;;;;;;10382:28;;:2;:28;;;;10348:62;10344:339;;;10511:12;10469:28;:39;10498:9;10469:39;;;;;;;;;;;;;;;;:54;10435:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;10651:12;10609:28;:39;10638:9;10609:39;;;;;;;;;;;;;;;:54;;;;10344:339;10299:399;10726:13;;;;;;;;;;;10718:21;;:4;:21;;;:55;;;;;10757:15;;;;;;;;;;;10743:30;;:2;:30;;;;10718:55;:82;;;;;10778:18;:22;10797:2;10778:22;;;;;;;;;;;;;;;;;;;;;;;;;10777:23;10718:82;10714:311;;;10839:12;;10829:6;:22;;10821:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10934:14;;10924:6;10908:13;10918:2;10908:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10900:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10998:9;;:11;;;;;;;;;:::i;:::-;;;;;;10714:311;11130:3;11077:15;;11065:9;;:27;11064:61;;11111:14;;11064:61;;;11096:12;;11064:61;11054:6;:72;;;;:::i;:::-;11053:80;;;;:::i;:::-;11041:92;;11158:13;;;;;;;;;;;11152:19;;:2;:19;;;:44;;;;;11191:4;11175:21;;:4;:21;;;;11152:44;11148:180;;;11307:5;11252:16;;11240:9;;:28;11239:64;;11288:15;;11239:64;;;11272:13;;11239:64;11229:6;:75;;;;:::i;:::-;:83;;;;:::i;:::-;11217:95;;11148:180;11344:28;11375:24;11393:4;11375:9;:24::i;:::-;11344:55;;11437:6;;;;;;;;;;11436:7;:30;;;;;11453:13;;;;;;;;;;;11447:19;;:2;:19;;;11436:30;:45;;;;;11470:11;;;;;;;;;;;11436:45;:89;;;;;11508:17;;11485:20;:40;11436:89;:144;;;;;11562:18;;11550:9;;:30;11436:144;11414:479;;;11615:69;11632:51;11636:6;11644:38;11648:20;11670:11;;11644:3;:38::i;:::-;11632:3;:51::i;:::-;11615:16;:69::i;:::-;11703:26;11732:21;11703:50;;11797:1;11776:18;:22;11772:106;;;11823:35;11836:21;11823:12;:35::i;:::-;11772:106;11596:297;11414:479;10234:1670;10196:1708;11932:1;11920:9;:13;11916:171;;;12005:9;11977;:24;11995:4;11977:24;;;;;;;;;;;;;;;;:38;;;;:::i;:::-;11950:9;:24;11968:4;11950:24;;;;;;;;;;;;;;;:65;;;;12058:4;12035:40;;12044:4;12035:40;;;12065:9;12035:40;;;;;;:::i;:::-;;;;;;;;11916:171;12134:6;12115:9;:15;12125:4;12115:15;;;;;;;;;;;;;;;;:26;;;;:::i;:::-;12097:9;:15;12107:4;12097:15;;;;;;;;;;;;;;;:44;;;;12194:9;12185:6;:18;;;;:::i;:::-;12168:9;:13;12178:2;12168:13;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;12152:9;:13;12162:2;12152:13;;;;;;;;;;;;;;;:52;;;;12235:2;12220:38;;12229:4;12220:38;;;12248:9;12239:6;:18;;;;:::i;:::-;12220:38;;;;;;:::i;:::-;;;;;;;;9924:2342;9855:2411;;;:::o;12389:505::-;7498:4;7489:6;;:13;;;;;;;;;;;;;;;;;;12486:1:::1;12471:11;:16:::0;12467:29;12489:7:::1;12467:29;12511:11;;;;;;;;;;;12506:25:::0;12524:7:::1;12506:25;12541:21;12579:1;12565:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12541:40;;12610:4;12592;12597:1;12592:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12636:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12626:4;12631:1;12626:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12669:62;12686:4;12701:15;;;;;;;;;;;12719:11;12669:8;:62::i;:::-;12742:15;;;;;;;;;;;:66;;;12823:11;12836:1;12839:4;12853;12860:15;12742:144;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12456:438;7513:1;7534:5:::0;7525:6;;:14;;;;;;;;;;;;;;;;;;12389:505;:::o;13174:92::-;13231:10;;;;;;;;;;;:19;;:27;13251:6;13231:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13174:92;:::o;12274:107::-;12331:7;12363:1;12359;:5;12358:15;;12372:1;12358:15;;;12368:1;12358:15;12351:22;;12274:107;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:180::-;8910:77;8907:1;8900:88;9007:4;9004:1;8997:15;9031:4;9028:1;9021:15;9048:194;9088:4;9108:20;9126:1;9108:20;:::i;:::-;9103:25;;9142:20;9160:1;9142:20;:::i;:::-;9137:25;;9186:1;9183;9179:9;9171:17;;9210:1;9204:4;9201:11;9198:37;;;9215:18;;:::i;:::-;9198:37;9048:194;;;;:::o;9248:182::-;9388:34;9384:1;9376:6;9372:14;9365:58;9248:182;:::o;9436:366::-;9578:3;9599:67;9663:2;9658:3;9599:67;:::i;:::-;9592:74;;9675:93;9764:3;9675:93;:::i;:::-;9793:2;9788:3;9784:12;9777:19;;9436:366;;;:::o;9808:419::-;9974:4;10012:2;10001:9;9997:18;9989:26;;10061:9;10055:4;10051:20;10047:1;10036:9;10032:17;10025:47;10089:131;10215:4;10089:131;:::i;:::-;10081:139;;9808:419;;;:::o;10233:180::-;10281:77;10278:1;10271:88;10378:4;10375:1;10368:15;10402:4;10399:1;10392:15;10419:233;10458:3;10481:24;10499:5;10481:24;:::i;:::-;10472:33;;10527:66;10520:5;10517:77;10514:103;;10597:18;;:::i;:::-;10514:103;10644:1;10637:5;10633:13;10626:20;;10419:233;;;:::o;10658:60::-;10686:3;10707:5;10700:12;;10658:60;;;:::o;10724:142::-;10774:9;10807:53;10825:34;10834:24;10852:5;10834:24;:::i;:::-;10825:34;:::i;:::-;10807:53;:::i;:::-;10794:66;;10724:142;;;:::o;10872:126::-;10922:9;10955:37;10986:5;10955:37;:::i;:::-;10942:50;;10872:126;;;:::o;11004:134::-;11062:9;11095:37;11126:5;11095:37;:::i;:::-;11082:50;;11004:134;;;:::o;11144:147::-;11239:45;11278:5;11239:45;:::i;:::-;11234:3;11227:58;11144:147;;:::o;11297:348::-;11426:4;11464:2;11453:9;11449:18;11441:26;;11477:79;11553:1;11542:9;11538:17;11529:6;11477:79;:::i;:::-;11566:72;11634:2;11623:9;11619:18;11610:6;11566:72;:::i;:::-;11297:348;;;;;:::o;11651:116::-;11721:21;11736:5;11721:21;:::i;:::-;11714:5;11711:32;11701:60;;11757:1;11754;11747:12;11701:60;11651:116;:::o;11773:137::-;11827:5;11858:6;11852:13;11843:22;;11874:30;11898:5;11874:30;:::i;:::-;11773:137;;;;:::o;11916:345::-;11983:6;12032:2;12020:9;12011:7;12007:23;12003:32;12000:119;;;12038:79;;:::i;:::-;12000:119;12158:1;12183:61;12236:7;12227:6;12216:9;12212:22;12183:61;:::i;:::-;12173:71;;12129:125;11916:345;;;;:::o;12267:173::-;12407:25;12403:1;12395:6;12391:14;12384:49;12267:173;:::o;12446:366::-;12588:3;12609:67;12673:2;12668:3;12609:67;:::i;:::-;12602:74;;12685:93;12774:3;12685:93;:::i;:::-;12803:2;12798:3;12794:12;12787:19;;12446:366;;;:::o;12818:419::-;12984:4;13022:2;13011:9;13007:18;12999:26;;13071:9;13065:4;13061:20;13057:1;13046:9;13042:17;13035:47;13099:131;13225:4;13099:131;:::i;:::-;13091:139;;12818:419;;;:::o;13243:143::-;13300:5;13331:6;13325:13;13316:22;;13347:33;13374:5;13347:33;:::i;:::-;13243:143;;;;:::o;13392:351::-;13462:6;13511:2;13499:9;13490:7;13486:23;13482:32;13479:119;;;13517:79;;:::i;:::-;13479:119;13637:1;13662:64;13718:7;13709:6;13698:9;13694:22;13662:64;:::i;:::-;13652:74;;13608:128;13392:351;;;;:::o;13749:332::-;13870:4;13908:2;13897:9;13893:18;13885:26;;13921:71;13989:1;13978:9;13974:17;13965:6;13921:71;:::i;:::-;14002:72;14070:2;14059:9;14055:18;14046:6;14002:72;:::i;:::-;13749:332;;;;;:::o;14087:85::-;14132:7;14161:5;14150:16;;14087:85;;;:::o;14178:158::-;14236:9;14269:61;14287:42;14296:32;14322:5;14296:32;:::i;:::-;14287:42;:::i;:::-;14269:61;:::i;:::-;14256:74;;14178:158;;;:::o;14342:147::-;14437:45;14476:5;14437:45;:::i;:::-;14432:3;14425:58;14342:147;;:::o;14495:807::-;14744:4;14782:3;14771:9;14767:19;14759:27;;14796:71;14864:1;14853:9;14849:17;14840:6;14796:71;:::i;:::-;14877:72;14945:2;14934:9;14930:18;14921:6;14877:72;:::i;:::-;14959:80;15035:2;15024:9;15020:18;15011:6;14959:80;:::i;:::-;15049;15125:2;15114:9;15110:18;15101:6;15049:80;:::i;:::-;15139:73;15207:3;15196:9;15192:19;15183:6;15139:73;:::i;:::-;15222;15290:3;15279:9;15275:19;15266:6;15222:73;:::i;:::-;14495:807;;;;;;;;;:::o;15308:143::-;15365:5;15396:6;15390:13;15381:22;;15412:33;15439:5;15412:33;:::i;:::-;15308:143;;;;:::o;15457:663::-;15545:6;15553;15561;15610:2;15598:9;15589:7;15585:23;15581:32;15578:119;;;15616:79;;:::i;:::-;15578:119;15736:1;15761:64;15817:7;15808:6;15797:9;15793:22;15761:64;:::i;:::-;15751:74;;15707:128;15874:2;15900:64;15956:7;15947:6;15936:9;15932:22;15900:64;:::i;:::-;15890:74;;15845:129;16013:2;16039:64;16095:7;16086:6;16075:9;16071:22;16039:64;:::i;:::-;16029:74;;15984:129;15457:663;;;;;:::o;16126:332::-;16247:4;16285:2;16274:9;16270:18;16262:26;;16298:71;16366:1;16355:9;16351:17;16342:6;16298:71;:::i;:::-;16379:72;16447:2;16436:9;16432:18;16423:6;16379:72;:::i;:::-;16126:332;;;;;:::o;16464:223::-;16604:34;16600:1;16592:6;16588:14;16581:58;16673:6;16668:2;16660:6;16656:15;16649:31;16464:223;:::o;16693:366::-;16835:3;16856:67;16920:2;16915:3;16856:67;:::i;:::-;16849:74;;16932:93;17021:3;16932:93;:::i;:::-;17050:2;17045:3;17041:12;17034:19;;16693:366;;;:::o;17065:419::-;17231:4;17269:2;17258:9;17254:18;17246:26;;17318:9;17312:4;17308:20;17304:1;17293:9;17289:17;17282:47;17346:131;17472:4;17346:131;:::i;:::-;17338:139;;17065:419;;;:::o;17490:221::-;17630:34;17626:1;17618:6;17614:14;17607:58;17699:4;17694:2;17686:6;17682:15;17675:29;17490:221;:::o;17717:366::-;17859:3;17880:67;17944:2;17939:3;17880:67;:::i;:::-;17873:74;;17956:93;18045:3;17956:93;:::i;:::-;18074:2;18069:3;18065:12;18058:19;;17717:366;;;:::o;18089:419::-;18255:4;18293:2;18282:9;18278:18;18270:26;;18342:9;18336:4;18332:20;18328:1;18317:9;18313:17;18306:47;18370:131;18496:4;18370:131;:::i;:::-;18362:139;;18089:419;;;:::o;18514:224::-;18654:34;18650:1;18642:6;18638:14;18631:58;18723:7;18718:2;18710:6;18706:15;18699:32;18514:224;:::o;18744:366::-;18886:3;18907:67;18971:2;18966:3;18907:67;:::i;:::-;18900:74;;18983:93;19072:3;18983:93;:::i;:::-;19101:2;19096:3;19092:12;19085:19;;18744:366;;;:::o;19116:419::-;19282:4;19320:2;19309:9;19305:18;19297:26;;19369:9;19363:4;19359:20;19355:1;19344:9;19340:17;19333:47;19397:131;19523:4;19397:131;:::i;:::-;19389:139;;19116:419;;;:::o;19541:222::-;19681:34;19677:1;19669:6;19665:14;19658:58;19750:5;19745:2;19737:6;19733:15;19726:30;19541:222;:::o;19769:366::-;19911:3;19932:67;19996:2;19991:3;19932:67;:::i;:::-;19925:74;;20008:93;20097:3;20008:93;:::i;:::-;20126:2;20121:3;20117:12;20110:19;;19769:366;;;:::o;20141:419::-;20307:4;20345:2;20334:9;20330:18;20322:26;;20394:9;20388:4;20384:20;20380:1;20369:9;20365:17;20358:47;20422:131;20548:4;20422:131;:::i;:::-;20414:139;;20141:419;;;:::o;20566:228::-;20706:34;20702:1;20694:6;20690:14;20683:58;20775:11;20770:2;20762:6;20758:15;20751:36;20566:228;:::o;20800:366::-;20942:3;20963:67;21027:2;21022:3;20963:67;:::i;:::-;20956:74;;21039:93;21128:3;21039:93;:::i;:::-;21157:2;21152:3;21148:12;21141:19;;20800:366;;;:::o;21172:419::-;21338:4;21376:2;21365:9;21361:18;21353:26;;21425:9;21419:4;21415:20;21411:1;21400:9;21396:17;21389:47;21453:131;21579:4;21453:131;:::i;:::-;21445:139;;21172:419;;;:::o;21597:223::-;21737:34;21733:1;21725:6;21721:14;21714:58;21806:6;21801:2;21793:6;21789:15;21782:31;21597:223;:::o;21826:366::-;21968:3;21989:67;22053:2;22048:3;21989:67;:::i;:::-;21982:74;;22065:93;22154:3;22065:93;:::i;:::-;22183:2;22178:3;22174:12;22167:19;;21826:366;;;:::o;22198:419::-;22364:4;22402:2;22391:9;22387:18;22379:26;;22451:9;22445:4;22441:20;22437:1;22426:9;22422:17;22415:47;22479:131;22605:4;22479:131;:::i;:::-;22471:139;;22198:419;;;:::o;22623:175::-;22763:27;22759:1;22751:6;22747:14;22740:51;22623:175;:::o;22804:366::-;22946:3;22967:67;23031:2;23026:3;22967:67;:::i;:::-;22960:74;;23043:93;23132:3;23043:93;:::i;:::-;23161:2;23156:3;23152:12;23145:19;;22804:366;;;:::o;23176:419::-;23342:4;23380:2;23369:9;23365:18;23357:26;;23429:9;23423:4;23419:20;23415:1;23404:9;23400:17;23393:47;23457:131;23583:4;23457:131;:::i;:::-;23449:139;;23176:419;;;:::o;23601:191::-;23641:3;23660:20;23678:1;23660:20;:::i;:::-;23655:25;;23694:20;23712:1;23694:20;:::i;:::-;23689:25;;23737:1;23734;23730:9;23723:16;;23758:3;23755:1;23752:10;23749:36;;;23765:18;;:::i;:::-;23749:36;23601:191;;;;:::o;23798:176::-;23938:28;23934:1;23926:6;23922:14;23915:52;23798:176;:::o;23980:366::-;24122:3;24143:67;24207:2;24202:3;24143:67;:::i;:::-;24136:74;;24219:93;24308:3;24219:93;:::i;:::-;24337:2;24332:3;24328:12;24321:19;;23980:366;;;:::o;24352:419::-;24518:4;24556:2;24545:9;24541:18;24533:26;;24605:9;24599:4;24595:20;24591:1;24580:9;24576:17;24569:47;24633:131;24759:4;24633:131;:::i;:::-;24625:139;;24352:419;;;:::o;24777:410::-;24817:7;24840:20;24858:1;24840:20;:::i;:::-;24835:25;;24874:20;24892:1;24874:20;:::i;:::-;24869:25;;24929:1;24926;24922:9;24951:30;24969:11;24951:30;:::i;:::-;24940:41;;25130:1;25121:7;25117:15;25114:1;25111:22;25091:1;25084:9;25064:83;25041:139;;25160:18;;:::i;:::-;25041:139;24825:362;24777:410;;;;:::o;25193:180::-;25241:77;25238:1;25231:88;25338:4;25335:1;25328:15;25362:4;25359:1;25352:15;25379:185;25419:1;25436:20;25454:1;25436:20;:::i;:::-;25431:25;;25470:20;25488:1;25470:20;:::i;:::-;25465:25;;25509:1;25499:35;;25514:18;;:::i;:::-;25499:35;25556:1;25553;25549:9;25544:14;;25379:185;;;;:::o;25570:114::-;25637:6;25671:5;25665:12;25655:22;;25570:114;;;:::o;25690:184::-;25789:11;25823:6;25818:3;25811:19;25863:4;25858:3;25854:14;25839:29;;25690:184;;;;:::o;25880:132::-;25947:4;25970:3;25962:11;;26000:4;25995:3;25991:14;25983:22;;25880:132;;;:::o;26018:108::-;26095:24;26113:5;26095:24;:::i;:::-;26090:3;26083:37;26018:108;;:::o;26132:179::-;26201:10;26222:46;26264:3;26256:6;26222:46;:::i;:::-;26300:4;26295:3;26291:14;26277:28;;26132:179;;;;:::o;26317:113::-;26387:4;26419;26414:3;26410:14;26402:22;;26317:113;;;:::o;26466:732::-;26585:3;26614:54;26662:5;26614:54;:::i;:::-;26684:86;26763:6;26758:3;26684:86;:::i;:::-;26677:93;;26794:56;26844:5;26794:56;:::i;:::-;26873:7;26904:1;26889:284;26914:6;26911:1;26908:13;26889:284;;;26990:6;26984:13;27017:63;27076:3;27061:13;27017:63;:::i;:::-;27010:70;;27103:60;27156:6;27103:60;:::i;:::-;27093:70;;26949:224;26936:1;26933;26929:9;26924:14;;26889:284;;;26893:14;27189:3;27182:10;;26590:608;;;26466:732;;;;:::o;27204:831::-;27467:4;27505:3;27494:9;27490:19;27482:27;;27519:71;27587:1;27576:9;27572:17;27563:6;27519:71;:::i;:::-;27600:80;27676:2;27665:9;27661:18;27652:6;27600:80;:::i;:::-;27727:9;27721:4;27717:20;27712:2;27701:9;27697:18;27690:48;27755:108;27858:4;27849:6;27755:108;:::i;:::-;27747:116;;27873:72;27941:2;27930:9;27926:18;27917:6;27873:72;:::i;:::-;27955:73;28023:3;28012:9;28008:19;27999:6;27955:73;:::i;:::-;27204:831;;;;;;;;:::o

Swarm Source

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