ETH Price: $2,354.97 (+0.62%)

Token

Valhalla (VALHALLA)
 

Overview

Max Total Supply

100,000,000 VALHALLA

Holders

18

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
274,330.069176935 VALHALLA

Value
$0.00
0x8da3E12f6CDFd04A419b4a1168eb006d7B7264d9
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:
Valhalla

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-03
*/

// Join our Telegram!: https://t.me/valhallaeth

// Take a look at our website!: https://sendittovalhalla.xyz

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract Valhalla is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1 * 10**8 * 10**9;
    uint256 private fee1=90;
    uint256 private fee2=90;
    uint256 private feeMax=100;
    uint256 private percent1=40;
    uint256 private percent2=30;
    uint256 private percent3=30;
    string private constant _name = "Valhalla";
    string private constant _symbol = "VALHALLA";
    uint256 private _maxTxAmount = _tTotal.mul(35).div(1000);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    address payable private _feeAddrWallet3;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _feeAddrWallet1 = payable(msg.sender);
        _feeAddrWallet2 = payable(0xf81379823F968bBee9752c731DaD05f00EAf969f);
        _feeAddrWallet3 = payable(0xD48050E96b21CE911EF1f97AB952af63Bdbac0F9);
        _tOwned[address(this)] = _tTotal.div(100).mul(96);
        _tOwned[address(0xE899A38285b1EbFa3066bB32d7882815C0459C9e)] = _tTotal.div(100).mul(2);
        _tOwned[address(0xf81379823F968bBee9752c731DaD05f00EAf969f)] = _tTotal.div(100).mul(1);
        _tOwned[address(0x160188893f60E44612CE7Ad4fc60844595f04F4A)] = _tTotal.div(100).mul(1);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[address(0xE899A38285b1EbFa3066bB32d7882815C0459C9e)] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

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

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

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

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

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
   
    function changeFees(uint8 _fee1,uint8 _fee2) external {
        
        require(_msgSender() == _feeAddrWallet1);
        require(_fee1 <= feeMax && _fee2 <= feeMax,"Cannot set fees above maximum (12%)");
        fee1 = _fee1;
        fee2 = _fee2;
    }

    function changeFeeDist(uint8 _percent1,uint8 _percent2,uint8 _percent3) external {
        require(_msgSender() == _feeAddrWallet1);
        require((_percent1 + _percent2 + _percent3) == 100,"Total percentage has to be 100");
        percent1 = _percent1;
        percent2 = _percent2;
        percent3 = _percent3;
    }

    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _feeAddrWallet1);
        minBalance = newMin;

    }
   
    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");

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _tax = fee2;
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 5 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
		
        _transferStandard(from,to,amount);
    }

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

    function addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(100).mul(percent1));
        _feeAddrWallet2.transfer(amount.div(100).mul(percent2));
        if(percent3 > 0) {
            _feeAddrWallet3.transfer(amount.div(100).mul(percent3));
        }
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (5 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _feeAddrWallet1);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_feeAddrWallet1,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_percent1","type":"uint8"},{"internalType":"uint8","name":"_percent2","type":"uint8"},{"internalType":"uint8","name":"_percent3","type":"uint8"}],"name":"changeFeeDist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052605a600955605a600a556064600b556028600c55601e600d55601e600e55620000606103e86200004c602367016345785d8a00006200091f60201b6200108d1790919060201c565b620009a360201b620011081790919060201c565b600f55620000876103e867016345785d8a0000620009a360201b620011081790919060201c565b60105560006015806101000a81548160ff0219169083151502179055506000601560166101000a81548160ff0219169083151502179055506000620000d1620009f560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f81379823f968bbee9752c731dad05f00eaf969f601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d48050e96b21ce911ef1f97ab952af63bdbac0f9601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000297606062000283606467016345785d8a0000620009a360201b620011081790919060201c565b6200091f60201b6200108d1790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062000317600262000303606467016345785d8a0000620009a360201b620011081790919060201c565b6200091f60201b6200108d1790919060201c565b6002600073e899a38285b1ebfa3066bb32d7882815c0459c9e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003ab600162000397606467016345785d8a0000620009a360201b620011081790919060201c565b6200091f60201b6200108d1790919060201c565b6002600073f81379823f968bbee9752c731dad05f00eaf969f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200043f60016200042b606467016345785d8a0000620009a360201b620011081790919060201c565b6200091f60201b6200108d1790919060201c565b6002600073160188893f60e44612ce7ad4fc60844595f04f4a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160046000620004ac620009fd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016004600073e899a38285b1ebfa3066bb32d7882815c0459c9e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620006f957600080fd5b505afa1580156200070e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000734919062000aa5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620007b957600080fd5b505afa158015620007ce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620007f4919062000aa5565b6040518363ffffffff1660e01b81526004016200081392919062000b61565b602060405180830381600087803b1580156200082e57600080fd5b505af115801562000843573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000869919062000aa5565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a000060405162000911919062000bd4565b60405180910390a362000df7565b6000808314156200093457600090506200099d565b6000828462000944919062000c45565b905082848262000955919062000c0d565b1462000998576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200098f9062000bb2565b60405180910390fd5b809150505b92915050565b6000620009ed83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000a2660201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808311829062000a70576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a67919062000b8e565b60405180910390fd5b506000838562000a81919062000c0d565b9050809150509392505050565b60008151905062000a9f8162000ddd565b92915050565b60006020828403121562000abe5762000abd62000d78565b5b600062000ace8482850162000a8e565b91505092915050565b62000ae28162000ca6565b82525050565b600062000af58262000bf1565b62000b01818562000bfc565b935062000b1381856020860162000ce4565b62000b1e8162000d7d565b840191505092915050565b600062000b3860218362000bfc565b915062000b458262000d8e565b604082019050919050565b62000b5b8162000cda565b82525050565b600060408201905062000b78600083018562000ad7565b62000b87602083018462000ad7565b9392505050565b6000602082019050818103600083015262000baa818462000ae8565b905092915050565b6000602082019050818103600083015262000bcd8162000b29565b9050919050565b600060208201905062000beb600083018462000b50565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000c1a8262000cda565b915062000c278362000cda565b92508262000c3a5762000c3962000d49565b5b828204905092915050565b600062000c528262000cda565b915062000c5f8362000cda565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000c9b5762000c9a62000d1a565b5b828202905092915050565b600062000cb38262000cba565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000d0457808201518184015260208101905062000ce7565b8381111562000d14576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000de88162000ca6565b811462000df457600080fd5b50565b6134b98062000e076000396000f3fe6080604052600436106101235760003560e01c8063715018a6116100a0578063aae1c07411610064578063aae1c074146103cc578063b515566a146103f5578063c3c8cd801461041e578063c9567bf914610435578063dd62ed3e1461044c5761012a565b8063715018a6146102f95780638da5cb5b1461031057806395d89b411461033b5780639909979d14610366578063a9059cbb1461038f5761012a565b8063273123b7116100e7578063273123b714610228578063313ce567146102515780634ea18fab1461027c5780636fc3eaec146102a557806370a08231146102bc5761012a565b806306fdde031461012f578063095ea7b31461015a57806316114acd1461019757806318160ddd146101c057806323b872dd146101eb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610489565b6040516101519190612a94565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612522565b6104c6565b60405161018e9190612a79565b60405180910390f35b3480156101a357600080fd5b506101be60048036038101906101b99190612435565b6104e4565b005b3480156101cc57600080fd5b506101d5610686565b6040516101e29190612c36565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d91906124cf565b610696565b60405161021f9190612a79565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190612435565b61076f565b005b34801561025d57600080fd5b5061026661085f565b6040516102739190612cab565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e91906125d8565b610868565b005b3480156102b157600080fd5b506102ba6108d3565b005b3480156102c857600080fd5b506102e360048036038101906102de9190612435565b610945565b6040516102f09190612c36565b60405180910390f35b34801561030557600080fd5b5061030e61098e565b005b34801561031c57600080fd5b50610325610ae1565b60405161033291906129d4565b60405180910390f35b34801561034757600080fd5b50610350610b0a565b60405161035d9190612a94565b60405180910390f35b34801561037257600080fd5b5061038d600480360381019061038891906126c5565b610b47565b005b34801561039b57600080fd5b506103b660048036038101906103b19190612522565b610c27565b6040516103c39190612a79565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190612685565b610c45565b005b34801561040157600080fd5b5061041c60048036038101906104179190612562565b610d17565b005b34801561042a57600080fd5b50610433610e41565b005b34801561044157600080fd5b5061044a610ebb565b005b34801561045857600080fd5b50610473600480360381019061046e919061248f565b611006565b6040516104809190612c36565b60405180910390f35b60606040518060400160405280600881526020017f56616c68616c6c61000000000000000000000000000000000000000000000000815250905090565b60006104da6104d3611152565b848461115a565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610525611152565b73ffffffffffffffffffffffffffffffffffffffff161461054557600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105c291906129d4565b60206040518083038186803b1580156105da57600080fd5b505afa1580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190612605565b6040518363ffffffff1660e01b815260040161062f9291906129ef565b602060405180830381600087803b15801561064957600080fd5b505af115801561065d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068191906125ab565b505050565b600067016345785d8a0000905090565b60006106a3848484611325565b610764846106af611152565b61075f8560405180606001604052806028815260200161345c60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610715611152565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119b49092919063ffffffff16565b61115a565b600190509392505050565b610777611152565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90612b76565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a9611152565b73ffffffffffffffffffffffffffffffffffffffff16146108c957600080fd5b8060108190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610914611152565b73ffffffffffffffffffffffffffffffffffffffff161461093457600080fd5b600047905061094281611a18565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610996611152565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1a90612b76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f56414c48414c4c41000000000000000000000000000000000000000000000000815250905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b88611152565b73ffffffffffffffffffffffffffffffffffffffff1614610ba857600080fd5b6064818385610bb79190612dc2565b610bc19190612dc2565b60ff1614610c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfb90612bd6565b60405180910390fd5b8260ff16600c819055508160ff16600d819055508060ff16600e81905550505050565b6000610c3b610c34611152565b8484611325565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c86611152565b73ffffffffffffffffffffffffffffffffffffffff1614610ca657600080fd5b600b548260ff1611158015610cc05750600b548160ff1611155b610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf690612af6565b60405180910390fd5b8160ff166009819055508060ff16600a819055505050565b610d1f611152565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390612b76565b60405180910390fd5b60005b8151811015610e3d57600160056000848481518110610dd157610dd0613060565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e3590612fb9565b915050610daf565b5050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e82611152565b73ffffffffffffffffffffffffffffffffffffffff1614610ea257600080fd5b6000610ead30610945565b9050610eb881611bd7565b50565b610ec3611152565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790612b76565b60405180910390fd5b601560149054906101000a900460ff1615610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790612c16565b60405180910390fd5b610fba610fac30610945565b47610fb5610ae1565b611e5d565b6001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555061012c42610ffe9190612d6c565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808314156110a05760009050611102565b600082846110ae9190612e2a565b90508284826110bd9190612df9565b146110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f490612b56565b60405180910390fd5b809150505b92915050565b600061114a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f7f565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190612bf6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561123a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123190612b16565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113189190612c36565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90612bb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fc90612ad6565b60405180910390fd5b60008111611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f90612b96565b60405180910390fd5b600954600881905550611459610ae1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114c75750611497610ae1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119a457600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115705750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61157957600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116245750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561167a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611687575060075442105b1561173757600f5481111561169b57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106116e657600080fd5b601e426116f39190612d6c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117e25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118385750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561184757600a546008819055505b60158054906101000a900460ff161580156118b05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118c85750601560169054906101000a900460ff165b801561191e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119a3576007544211611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90612ab6565b60405180910390fd5b600061197230610945565b90506010548111156119a15761198781611bd7565b6000479050600081111561199f5761199e47611a18565b5b505b505b5b6119af838383611fe2565b505050565b60008383111582906119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f39190612a94565b60405180910390fd5b5060008385611a0b9190612e84565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a7c600c54611a6e60648661110890919063ffffffff16565b61108d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611aa7573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b0c600d54611afe60648661110890919063ffffffff16565b61108d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b37573d6000803e3d6000fd5b506000600e541115611bd457601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ba7600e54611b9960648661110890919063ffffffff16565b61108d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611bd2573d6000803e3d6000fd5b505b50565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c0e57611c0d61308f565b5b604051908082528060200260200182016040528015611c3c5781602001602082028036833780820191505090505b5090503081600081518110611c5457611c53613060565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611cf657600080fd5b505afa158015611d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2e9190612462565b81600181518110611d4257611d41613060565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611da930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461115a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e0d959493929190612c51565b600060405180830381600087803b158015611e2757600080fd5b505af1158015611e3b573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b60016015806101000a81548160ff021916908315150217905550611ea430601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561115a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611f0b96959493929190612a18565b6060604051808303818588803b158015611f2457600080fd5b505af1158015611f38573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f5d9190612632565b50505060006015806101000a81548160ff021916908315150217905550505050565b60008083118290611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd9190612a94565b60405180910390fd5b5060008385611fd59190612df9565b9050809150509392505050565b600080611fee8361221d565b9150915061204483600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227190919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120d982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122bb90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061216e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122bb90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161220e9190612c36565b60405180910390a35050505050565b600080600061224b6103e861223d6008548761108d90919063ffffffff16565b61110890919063ffffffff16565b90506000612262828661227190919063ffffffff16565b90508082935093505050915091565b60006122b383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119b4565b905092915050565b60008082846122ca9190612d6c565b90508381101561230f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230690612b36565b60405180910390fd5b8091505092915050565b600061232c61232784612ceb565b612cc6565b9050808382526020820190508285602086028201111561234f5761234e6130c3565b5b60005b8581101561237f57816123658882612389565b845260208401935060208301925050600181019050612352565b5050509392505050565b600081359050612398816133ff565b92915050565b6000815190506123ad816133ff565b92915050565b600082601f8301126123c8576123c76130be565b5b81356123d8848260208601612319565b91505092915050565b6000815190506123f081613416565b92915050565b6000813590506124058161342d565b92915050565b60008151905061241a8161342d565b92915050565b60008135905061242f81613444565b92915050565b60006020828403121561244b5761244a6130cd565b5b600061245984828501612389565b91505092915050565b600060208284031215612478576124776130cd565b5b60006124868482850161239e565b91505092915050565b600080604083850312156124a6576124a56130cd565b5b60006124b485828601612389565b92505060206124c585828601612389565b9150509250929050565b6000806000606084860312156124e8576124e76130cd565b5b60006124f686828701612389565b935050602061250786828701612389565b9250506040612518868287016123f6565b9150509250925092565b60008060408385031215612539576125386130cd565b5b600061254785828601612389565b9250506020612558858286016123f6565b9150509250929050565b600060208284031215612578576125776130cd565b5b600082013567ffffffffffffffff811115612596576125956130c8565b5b6125a2848285016123b3565b91505092915050565b6000602082840312156125c1576125c06130cd565b5b60006125cf848285016123e1565b91505092915050565b6000602082840312156125ee576125ed6130cd565b5b60006125fc848285016123f6565b91505092915050565b60006020828403121561261b5761261a6130cd565b5b60006126298482850161240b565b91505092915050565b60008060006060848603121561264b5761264a6130cd565b5b60006126598682870161240b565b935050602061266a8682870161240b565b925050604061267b8682870161240b565b9150509250925092565b6000806040838503121561269c5761269b6130cd565b5b60006126aa85828601612420565b92505060206126bb85828601612420565b9150509250929050565b6000806000606084860312156126de576126dd6130cd565b5b60006126ec86828701612420565b93505060206126fd86828701612420565b925050604061270e86828701612420565b9150509250925092565b6000612724838361273f565b60208301905092915050565b61273981612f0d565b82525050565b61274881612eb8565b82525050565b61275781612eb8565b82525050565b600061276882612d27565b6127728185612d4a565b935061277d83612d17565b8060005b838110156127ae5781516127958882612718565b97506127a083612d3d565b925050600181019050612781565b5085935050505092915050565b6127c481612eca565b82525050565b6127d381612f1f565b82525050565b60006127e482612d32565b6127ee8185612d5b565b93506127fe818560208601612f55565b612807816130d2565b840191505092915050565b600061281f602883612d5b565b915061282a826130e3565b604082019050919050565b6000612842602383612d5b565b915061284d82613132565b604082019050919050565b6000612865602383612d5b565b915061287082613181565b604082019050919050565b6000612888602283612d5b565b9150612893826131d0565b604082019050919050565b60006128ab601b83612d5b565b91506128b68261321f565b602082019050919050565b60006128ce602183612d5b565b91506128d982613248565b604082019050919050565b60006128f1602083612d5b565b91506128fc82613297565b602082019050919050565b6000612914602983612d5b565b915061291f826132c0565b604082019050919050565b6000612937602583612d5b565b91506129428261330f565b604082019050919050565b600061295a601e83612d5b565b91506129658261335e565b602082019050919050565b600061297d602483612d5b565b915061298882613387565b604082019050919050565b60006129a0601783612d5b565b91506129ab826133d6565b602082019050919050565b6129bf81612ef6565b82525050565b6129ce81612f00565b82525050565b60006020820190506129e9600083018461274e565b92915050565b6000604082019050612a046000830185612730565b612a1160208301846129b6565b9392505050565b600060c082019050612a2d600083018961274e565b612a3a60208301886129b6565b612a4760408301876127ca565b612a5460608301866127ca565b612a61608083018561274e565b612a6e60a08301846129b6565b979650505050505050565b6000602082019050612a8e60008301846127bb565b92915050565b60006020820190508181036000830152612aae81846127d9565b905092915050565b60006020820190508181036000830152612acf81612812565b9050919050565b60006020820190508181036000830152612aef81612835565b9050919050565b60006020820190508181036000830152612b0f81612858565b9050919050565b60006020820190508181036000830152612b2f8161287b565b9050919050565b60006020820190508181036000830152612b4f8161289e565b9050919050565b60006020820190508181036000830152612b6f816128c1565b9050919050565b60006020820190508181036000830152612b8f816128e4565b9050919050565b60006020820190508181036000830152612baf81612907565b9050919050565b60006020820190508181036000830152612bcf8161292a565b9050919050565b60006020820190508181036000830152612bef8161294d565b9050919050565b60006020820190508181036000830152612c0f81612970565b9050919050565b60006020820190508181036000830152612c2f81612993565b9050919050565b6000602082019050612c4b60008301846129b6565b92915050565b600060a082019050612c6660008301886129b6565b612c7360208301876127ca565b8181036040830152612c85818661275d565b9050612c94606083018561274e565b612ca160808301846129b6565b9695505050505050565b6000602082019050612cc060008301846129c5565b92915050565b6000612cd0612ce1565b9050612cdc8282612f88565b919050565b6000604051905090565b600067ffffffffffffffff821115612d0657612d0561308f565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d7782612ef6565b9150612d8283612ef6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612db757612db6613002565b5b828201905092915050565b6000612dcd82612f00565b9150612dd883612f00565b92508260ff03821115612dee57612ded613002565b5b828201905092915050565b6000612e0482612ef6565b9150612e0f83612ef6565b925082612e1f57612e1e613031565b5b828204905092915050565b6000612e3582612ef6565b9150612e4083612ef6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e7957612e78613002565b5b828202905092915050565b6000612e8f82612ef6565b9150612e9a83612ef6565b925082821015612ead57612eac613002565b5b828203905092915050565b6000612ec382612ed6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f1882612f31565b9050919050565b6000612f2a82612ef6565b9050919050565b6000612f3c82612f43565b9050919050565b6000612f4e82612ed6565b9050919050565b60005b83811015612f73578082015181840152602081019050612f58565b83811115612f82576000848401525b50505050565b612f91826130d2565b810181811067ffffffffffffffff82111715612fb057612faf61308f565b5b80604052505050565b6000612fc482612ef6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ff757612ff6613002565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d20283160008201527f3225290000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f546f74616c2070657263656e746167652068617320746f206265203130300000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61340881612eb8565b811461341357600080fd5b50565b61341f81612eca565b811461342a57600080fd5b50565b61343681612ef6565b811461344157600080fd5b50565b61344d81612f00565b811461345857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204ea3bc6000638158da4f1f581725d817f863863079550efa6f497fff4bebf13d64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063715018a6116100a0578063aae1c07411610064578063aae1c074146103cc578063b515566a146103f5578063c3c8cd801461041e578063c9567bf914610435578063dd62ed3e1461044c5761012a565b8063715018a6146102f95780638da5cb5b1461031057806395d89b411461033b5780639909979d14610366578063a9059cbb1461038f5761012a565b8063273123b7116100e7578063273123b714610228578063313ce567146102515780634ea18fab1461027c5780636fc3eaec146102a557806370a08231146102bc5761012a565b806306fdde031461012f578063095ea7b31461015a57806316114acd1461019757806318160ddd146101c057806323b872dd146101eb5761012a565b3661012a57005b600080fd5b34801561013b57600080fd5b50610144610489565b6040516101519190612a94565b60405180910390f35b34801561016657600080fd5b50610181600480360381019061017c9190612522565b6104c6565b60405161018e9190612a79565b60405180910390f35b3480156101a357600080fd5b506101be60048036038101906101b99190612435565b6104e4565b005b3480156101cc57600080fd5b506101d5610686565b6040516101e29190612c36565b60405180910390f35b3480156101f757600080fd5b50610212600480360381019061020d91906124cf565b610696565b60405161021f9190612a79565b60405180910390f35b34801561023457600080fd5b5061024f600480360381019061024a9190612435565b61076f565b005b34801561025d57600080fd5b5061026661085f565b6040516102739190612cab565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e91906125d8565b610868565b005b3480156102b157600080fd5b506102ba6108d3565b005b3480156102c857600080fd5b506102e360048036038101906102de9190612435565b610945565b6040516102f09190612c36565b60405180910390f35b34801561030557600080fd5b5061030e61098e565b005b34801561031c57600080fd5b50610325610ae1565b60405161033291906129d4565b60405180910390f35b34801561034757600080fd5b50610350610b0a565b60405161035d9190612a94565b60405180910390f35b34801561037257600080fd5b5061038d600480360381019061038891906126c5565b610b47565b005b34801561039b57600080fd5b506103b660048036038101906103b19190612522565b610c27565b6040516103c39190612a79565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190612685565b610c45565b005b34801561040157600080fd5b5061041c60048036038101906104179190612562565b610d17565b005b34801561042a57600080fd5b50610433610e41565b005b34801561044157600080fd5b5061044a610ebb565b005b34801561045857600080fd5b50610473600480360381019061046e919061248f565b611006565b6040516104809190612c36565b60405180910390f35b60606040518060400160405280600881526020017f56616c68616c6c61000000000000000000000000000000000000000000000000815250905090565b60006104da6104d3611152565b848461115a565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610525611152565b73ffffffffffffffffffffffffffffffffffffffff161461054557600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105c291906129d4565b60206040518083038186803b1580156105da57600080fd5b505afa1580156105ee573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106129190612605565b6040518363ffffffff1660e01b815260040161062f9291906129ef565b602060405180830381600087803b15801561064957600080fd5b505af115801561065d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061068191906125ab565b505050565b600067016345785d8a0000905090565b60006106a3848484611325565b610764846106af611152565b61075f8560405180606001604052806028815260200161345c60289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610715611152565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119b49092919063ffffffff16565b61115a565b600190509392505050565b610777611152565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610804576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107fb90612b76565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108a9611152565b73ffffffffffffffffffffffffffffffffffffffff16146108c957600080fd5b8060108190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610914611152565b73ffffffffffffffffffffffffffffffffffffffff161461093457600080fd5b600047905061094281611a18565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610996611152565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1a90612b76565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f56414c48414c4c41000000000000000000000000000000000000000000000000815250905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b88611152565b73ffffffffffffffffffffffffffffffffffffffff1614610ba857600080fd5b6064818385610bb79190612dc2565b610bc19190612dc2565b60ff1614610c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bfb90612bd6565b60405180910390fd5b8260ff16600c819055508160ff16600d819055508060ff16600e81905550505050565b6000610c3b610c34611152565b8484611325565b6001905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c86611152565b73ffffffffffffffffffffffffffffffffffffffff1614610ca657600080fd5b600b548260ff1611158015610cc05750600b548160ff1611155b610cff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf690612af6565b60405180910390fd5b8160ff166009819055508060ff16600a819055505050565b610d1f611152565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390612b76565b60405180910390fd5b60005b8151811015610e3d57600160056000848481518110610dd157610dd0613060565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e3590612fb9565b915050610daf565b5050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610e82611152565b73ffffffffffffffffffffffffffffffffffffffff1614610ea257600080fd5b6000610ead30610945565b9050610eb881611bd7565b50565b610ec3611152565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790612b76565b60405180910390fd5b601560149054906101000a900460ff1615610fa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9790612c16565b60405180910390fd5b610fba610fac30610945565b47610fb5610ae1565b611e5d565b6001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff02191690831515021790555061012c42610ffe9190612d6c565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808314156110a05760009050611102565b600082846110ae9190612e2a565b90508284826110bd9190612df9565b146110fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f490612b56565b60405180910390fd5b809150505b92915050565b600061114a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611f7f565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c190612bf6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561123a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123190612b16565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113189190612c36565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611395576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138c90612bb6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fc90612ad6565b60405180910390fd5b60008111611448576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143f90612b96565b60405180910390fd5b600954600881905550611459610ae1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114c75750611497610ae1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156119a457600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115705750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61157957600080fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156116245750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561167a5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611687575060075442105b1561173757600f5481111561169b57600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106116e657600080fd5b601e426116f39190612d6c565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117e25750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118385750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561184757600a546008819055505b60158054906101000a900460ff161580156118b05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118c85750601560169054906101000a900460ff165b801561191e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156119a3576007544211611967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195e90612ab6565b60405180910390fd5b600061197230610945565b90506010548111156119a15761198781611bd7565b6000479050600081111561199f5761199e47611a18565b5b505b505b5b6119af838383611fe2565b505050565b60008383111582906119fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f39190612a94565b60405180910390fd5b5060008385611a0b9190612e84565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611a7c600c54611a6e60648661110890919063ffffffff16565b61108d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611aa7573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611b0c600d54611afe60648661110890919063ffffffff16565b61108d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611b37573d6000803e3d6000fd5b506000600e541115611bd457601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611ba7600e54611b9960648661110890919063ffffffff16565b61108d90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611bd2573d6000803e3d6000fd5b505b50565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611c0e57611c0d61308f565b5b604051908082528060200260200182016040528015611c3c5781602001602082028036833780820191505090505b5090503081600081518110611c5457611c53613060565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611cf657600080fd5b505afa158015611d0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d2e9190612462565b81600181518110611d4257611d41613060565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611da930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461115a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611e0d959493929190612c51565b600060405180830381600087803b158015611e2757600080fd5b505af1158015611e3b573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b60016015806101000a81548160ff021916908315150217905550611ea430601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168561115a565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611f0b96959493929190612a18565b6060604051808303818588803b158015611f2457600080fd5b505af1158015611f38573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611f5d9190612632565b50505060006015806101000a81548160ff021916908315150217905550505050565b60008083118290611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd9190612a94565b60405180910390fd5b5060008385611fd59190612df9565b9050809150509392505050565b600080611fee8361221d565b9150915061204483600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227190919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120d982600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122bb90919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061216e81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122bb90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161220e9190612c36565b60405180910390a35050505050565b600080600061224b6103e861223d6008548761108d90919063ffffffff16565b61110890919063ffffffff16565b90506000612262828661227190919063ffffffff16565b90508082935093505050915091565b60006122b383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119b4565b905092915050565b60008082846122ca9190612d6c565b90508381101561230f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230690612b36565b60405180910390fd5b8091505092915050565b600061232c61232784612ceb565b612cc6565b9050808382526020820190508285602086028201111561234f5761234e6130c3565b5b60005b8581101561237f57816123658882612389565b845260208401935060208301925050600181019050612352565b5050509392505050565b600081359050612398816133ff565b92915050565b6000815190506123ad816133ff565b92915050565b600082601f8301126123c8576123c76130be565b5b81356123d8848260208601612319565b91505092915050565b6000815190506123f081613416565b92915050565b6000813590506124058161342d565b92915050565b60008151905061241a8161342d565b92915050565b60008135905061242f81613444565b92915050565b60006020828403121561244b5761244a6130cd565b5b600061245984828501612389565b91505092915050565b600060208284031215612478576124776130cd565b5b60006124868482850161239e565b91505092915050565b600080604083850312156124a6576124a56130cd565b5b60006124b485828601612389565b92505060206124c585828601612389565b9150509250929050565b6000806000606084860312156124e8576124e76130cd565b5b60006124f686828701612389565b935050602061250786828701612389565b9250506040612518868287016123f6565b9150509250925092565b60008060408385031215612539576125386130cd565b5b600061254785828601612389565b9250506020612558858286016123f6565b9150509250929050565b600060208284031215612578576125776130cd565b5b600082013567ffffffffffffffff811115612596576125956130c8565b5b6125a2848285016123b3565b91505092915050565b6000602082840312156125c1576125c06130cd565b5b60006125cf848285016123e1565b91505092915050565b6000602082840312156125ee576125ed6130cd565b5b60006125fc848285016123f6565b91505092915050565b60006020828403121561261b5761261a6130cd565b5b60006126298482850161240b565b91505092915050565b60008060006060848603121561264b5761264a6130cd565b5b60006126598682870161240b565b935050602061266a8682870161240b565b925050604061267b8682870161240b565b9150509250925092565b6000806040838503121561269c5761269b6130cd565b5b60006126aa85828601612420565b92505060206126bb85828601612420565b9150509250929050565b6000806000606084860312156126de576126dd6130cd565b5b60006126ec86828701612420565b93505060206126fd86828701612420565b925050604061270e86828701612420565b9150509250925092565b6000612724838361273f565b60208301905092915050565b61273981612f0d565b82525050565b61274881612eb8565b82525050565b61275781612eb8565b82525050565b600061276882612d27565b6127728185612d4a565b935061277d83612d17565b8060005b838110156127ae5781516127958882612718565b97506127a083612d3d565b925050600181019050612781565b5085935050505092915050565b6127c481612eca565b82525050565b6127d381612f1f565b82525050565b60006127e482612d32565b6127ee8185612d5b565b93506127fe818560208601612f55565b612807816130d2565b840191505092915050565b600061281f602883612d5b565b915061282a826130e3565b604082019050919050565b6000612842602383612d5b565b915061284d82613132565b604082019050919050565b6000612865602383612d5b565b915061287082613181565b604082019050919050565b6000612888602283612d5b565b9150612893826131d0565b604082019050919050565b60006128ab601b83612d5b565b91506128b68261321f565b602082019050919050565b60006128ce602183612d5b565b91506128d982613248565b604082019050919050565b60006128f1602083612d5b565b91506128fc82613297565b602082019050919050565b6000612914602983612d5b565b915061291f826132c0565b604082019050919050565b6000612937602583612d5b565b91506129428261330f565b604082019050919050565b600061295a601e83612d5b565b91506129658261335e565b602082019050919050565b600061297d602483612d5b565b915061298882613387565b604082019050919050565b60006129a0601783612d5b565b91506129ab826133d6565b602082019050919050565b6129bf81612ef6565b82525050565b6129ce81612f00565b82525050565b60006020820190506129e9600083018461274e565b92915050565b6000604082019050612a046000830185612730565b612a1160208301846129b6565b9392505050565b600060c082019050612a2d600083018961274e565b612a3a60208301886129b6565b612a4760408301876127ca565b612a5460608301866127ca565b612a61608083018561274e565b612a6e60a08301846129b6565b979650505050505050565b6000602082019050612a8e60008301846127bb565b92915050565b60006020820190508181036000830152612aae81846127d9565b905092915050565b60006020820190508181036000830152612acf81612812565b9050919050565b60006020820190508181036000830152612aef81612835565b9050919050565b60006020820190508181036000830152612b0f81612858565b9050919050565b60006020820190508181036000830152612b2f8161287b565b9050919050565b60006020820190508181036000830152612b4f8161289e565b9050919050565b60006020820190508181036000830152612b6f816128c1565b9050919050565b60006020820190508181036000830152612b8f816128e4565b9050919050565b60006020820190508181036000830152612baf81612907565b9050919050565b60006020820190508181036000830152612bcf8161292a565b9050919050565b60006020820190508181036000830152612bef8161294d565b9050919050565b60006020820190508181036000830152612c0f81612970565b9050919050565b60006020820190508181036000830152612c2f81612993565b9050919050565b6000602082019050612c4b60008301846129b6565b92915050565b600060a082019050612c6660008301886129b6565b612c7360208301876127ca565b8181036040830152612c85818661275d565b9050612c94606083018561274e565b612ca160808301846129b6565b9695505050505050565b6000602082019050612cc060008301846129c5565b92915050565b6000612cd0612ce1565b9050612cdc8282612f88565b919050565b6000604051905090565b600067ffffffffffffffff821115612d0657612d0561308f565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612d7782612ef6565b9150612d8283612ef6565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612db757612db6613002565b5b828201905092915050565b6000612dcd82612f00565b9150612dd883612f00565b92508260ff03821115612dee57612ded613002565b5b828201905092915050565b6000612e0482612ef6565b9150612e0f83612ef6565b925082612e1f57612e1e613031565b5b828204905092915050565b6000612e3582612ef6565b9150612e4083612ef6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612e7957612e78613002565b5b828202905092915050565b6000612e8f82612ef6565b9150612e9a83612ef6565b925082821015612ead57612eac613002565b5b828203905092915050565b6000612ec382612ed6565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612f1882612f31565b9050919050565b6000612f2a82612ef6565b9050919050565b6000612f3c82612f43565b9050919050565b6000612f4e82612ed6565b9050919050565b60005b83811015612f73578082015181840152602081019050612f58565b83811115612f82576000848401525b50505050565b612f91826130d2565b810181811067ffffffffffffffff82111715612fb057612faf61308f565b5b80604052505050565b6000612fc482612ef6565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ff757612ff6613002565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d20283160008201527f3225290000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f546f74616c2070657263656e746167652068617320746f206265203130300000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61340881612eb8565b811461341357600080fd5b50565b61341f81612eca565b811461342a57600080fd5b50565b61343681612ef6565b811461344157600080fd5b50565b61344d81612f00565b811461345857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212204ea3bc6000638158da4f1f581725d817f863863079550efa6f497fff4bebf13d64736f6c63430008070033

Deployed Bytecode Sourcemap

3634:9611:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6104:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6935:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12986:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6381:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7104:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11766:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6290:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8033:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12539:194;;;;;;;;;;;;;:::i;:::-;;6484:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2713:148;;;;;;;;;;;;;:::i;:::-;;2499:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6195:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7697:328;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6609:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7428:261;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11590:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12332:195;;;;;;;;;;;;;:::i;:::-;;11284:294;;;;;;;;;;;;;:::i;:::-;;6784:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6104:83;6141:13;6174:5;;;;;;;;;;;;;;;;;6167:12;;6104:83;:::o;6935:161::-;7010:4;7027:39;7036:12;:10;:12::i;:::-;7050:7;7059:6;7027:8;:39::i;:::-;7084:4;7077:11;;6935:161;;;;:::o;12986:256::-;13075:15;;;;;;;;;;;13059:31;;:12;:10;:12::i;:::-;:31;;;13051:40;;;;;;13102:20;13132:12;13102:43;;13156:13;:22;;;13179:15;;;;;;;;;;;13195:13;:23;;;13227:4;13195:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13156:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13040:202;12986:256;:::o;6381:95::-;6434:7;4091:17;6454:14;;6381:95;:::o;7104:313::-;7202:4;7219:36;7229:6;7237:9;7248:6;7219:9;:36::i;:::-;7266:121;7275:6;7283:12;:10;:12::i;:::-;7297:89;7335:6;7297:89;;;;;;;;;;;;;;;;;:11;:19;7309:6;7297:19;;;;;;;;;;;;;;;:33;7317:12;:10;:12::i;:::-;7297:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7266:8;:121::i;:::-;7405:4;7398:11;;7104:313;;;;;:::o;11766:88::-;2636:12;:10;:12::i;:::-;2626:22;;:6;;;;;;;;;;:22;;;2618:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11841:5:::1;11826:4;:12;11831:6;11826:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11766:88:::0;:::o;6290:83::-;6331:5;4565:1;6349:16;;6290:83;:::o;8033:142::-;8119:15;;;;;;;;;;;8103:31;;:12;:10;:12::i;:::-;:31;;;8095:40;;;;;;8159:6;8146:10;:19;;;;8033:142;:::o;12539:194::-;12605:15;;;;;;;;;;;12589:31;;:12;:10;:12::i;:::-;:31;;;12581:40;;;;;;12632:26;12661:21;12632:50;;12693:32;12706:18;12693:12;:32::i;:::-;12570:163;12539:194::o;6484:117::-;6550:7;6577;:16;6585:7;6577:16;;;;;;;;;;;;;;;;6570:23;;6484:117;;;:::o;2713:148::-;2636:12;:10;:12::i;:::-;2626:22;;:6;;;;;;;;;;:22;;;2618:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2820:1:::1;2783:40;;2804:6;::::0;::::1;;;;;;;;2783:40;;;;;;;;;;;;2851:1;2834:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2713:148::o:0;2499:79::-;2537:7;2564:6;;;;;;;;;;;2557:13;;2499:79;:::o;6195:87::-;6234:13;6267:7;;;;;;;;;;;;;;;;;6260:14;;6195:87;:::o;7697:328::-;7813:15;;;;;;;;;;;7797:31;;:12;:10;:12::i;:::-;:31;;;7789:40;;;;;;7887:3;7873:9;7861;7849;:21;;;;:::i;:::-;:33;;;;:::i;:::-;7848:42;;;7840:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;7946:9;7935:20;;:8;:20;;;;7977:9;7966:20;;:8;:20;;;;8008:9;7997:20;;:8;:20;;;;7697:328;;;:::o;6609:167::-;6687:4;6704:42;6714:12;:10;:12::i;:::-;6728:9;6739:6;6704:9;:42::i;:::-;6764:4;6757:11;;6609:167;;;;:::o;7428:261::-;7527:15;;;;;;;;;;;7511:31;;:12;:10;:12::i;:::-;:31;;;7503:40;;;;;;7571:6;;7562:5;:15;;;;:34;;;;;7590:6;;7581:5;:15;;;;7562:34;7554:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;7653:5;7646:12;;:4;:12;;;;7676:5;7669:12;;:4;:12;;;;7428:261;;:::o;11590:164::-;2636:12;:10;:12::i;:::-;2626:22;;:6;;;;;;;;;;:22;;;2618:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11664:6:::1;11659:88;11680:5;:12;11676:1;:16;11659:88;;;11731:4;11714;:14;11719:5;11725:1;11719:8;;;;;;;;:::i;:::-;;;;;;;;11714:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11694:3;;;;;:::i;:::-;;;;11659:88;;;;11590:164:::0;:::o;12332:195::-;12398:15;;;;;;;;;;;12382:31;;:12;:10;:12::i;:::-;:31;;;12374:40;;;;;;12425:23;12451:24;12469:4;12451:9;:24::i;:::-;12425:50;;12486:33;12503:15;12486:16;:33::i;:::-;12363:164;12332:195::o;11284:294::-;2636:12;:10;:12::i;:::-;2626:22;;:6;;;;;;;;;;:22;;;2618:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11348:11:::1;;;;;;;;;;;11347:12;11339:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11397:68;11410:24;11428:4;11410:9;:24::i;:::-;11435:21;11457:7;:5;:7::i;:::-;11397:12;:68::i;:::-;11490:4;11476:11;;:18;;;;;;;;;;;;;;;;;;11519:4;11505:11;;:18;;;;;;;;;;;;;;;;;;11560:9;11541:15;:29;;;;:::i;:::-;11534:4;:36;;;;11284:294::o:0;6784:143::-;6865:7;6892:11;:18;6904:5;6892:18;;;;;;;;;;;;;;;:27;6911:7;6892:27;;;;;;;;;;;;;;;;6885:34;;6784:143;;;;:::o;1552:246::-;1610:7;1639:1;1634;:6;1630:47;;;1664:1;1657:8;;;;1630:47;1687:9;1703:1;1699;:5;;;;:::i;:::-;1687:17;;1732:1;1727;1723;:5;;;;:::i;:::-;:10;1715:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1789:1;1782:8;;;1552:246;;;;;:::o;1806:132::-;1864:7;1891:39;1895:1;1898;1891:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1884:46;;1806:132;;;;:::o;217:98::-;270:7;297:10;290:17;;217:98;:::o;8186:335::-;8296:1;8279:19;;:5;:19;;;;8271:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8377:1;8358:21;;:7;:21;;;;8350:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8459:6;8429:11;:18;8441:5;8429:18;;;;;;;;;;;;;;;:27;8448:7;8429:27;;;;;;;;;;;;;;;:36;;;;8497:7;8481:32;;8490:5;8481:32;;;8506:6;8481:32;;;;;;:::i;:::-;;;;;;;;8186:335;;;:::o;8529:1649::-;8633:1;8617:18;;:4;:18;;;;8609:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8710:1;8696:16;;:2;:16;;;;8688:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8780:1;8771:6;:10;8763:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8847:4;;8840;:11;;;;8874:7;:5;:7::i;:::-;8866:15;;:4;:15;;;;:32;;;;;8891:7;:5;:7::i;:::-;8885:13;;:2;:13;;;;8866:32;8862:1261;;;8924:4;:10;8929:4;8924:10;;;;;;;;;;;;;;;;;;;;;;;;;8923:11;:24;;;;;8939:4;:8;8944:2;8939:8;;;;;;;;;;;;;;;;;;;;;;;;;8938:9;8923:24;8915:33;;;;;;8975:13;;;;;;;;;;;8967:21;;:4;:21;;;:55;;;;;9006:15;;;;;;;;;;;8992:30;;:2;:30;;;;8967:55;:83;;;;;9028:18;:22;9047:2;9028:22;;;;;;;;;;;;;;;;;;;;;;;;;9026:24;8967:83;:111;;;;;9073:4;;9055:15;:22;8967:111;8963:333;;;9145:12;;9135:6;:22;;9127:31;;;;;;9200:15;9185:8;:12;9194:2;9185:12;;;;;;;;;;;;;;;;:30;9177:39;;;;;;9269:10;9250:15;:30;;;;:::i;:::-;9235:8;:12;9244:2;9235:12;;;;;;;;;;;;;;;:45;;;;8963:333;9348:13;;;;;;;;;;;9342:19;;:2;:19;;;:55;;;;;9381:15;;;;;;;;;;;9365:32;;:4;:32;;;;9342:55;:85;;;;;9403:18;:24;9422:4;9403:24;;;;;;;;;;;;;;;;;;;;;;;;;9401:26;9342:85;9338:137;;;9455:4;;9448;:11;;;;9338:137;9508:6;;;;;;;;;;9507:7;:32;;;;;9526:13;;;;;;;;;;;9518:21;;:4;:21;;;;9507:32;:47;;;;;9543:11;;;;;;;;;;;9507:47;:76;;;;;9559:18;:24;9578:4;9559:24;;;;;;;;;;;;;;;;;;;;;;;;;9558:25;9507:76;9503:609;;;9630:4;;9612:15;:22;9604:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9697:28;9728:24;9746:4;9728:9;:24::i;:::-;9697:55;;9797:10;;9774:20;:33;9771:326;;;9831:38;9848:20;9831:16;:38::i;:::-;9892:26;9921:21;9892:50;;9989:1;9968:18;:22;9965:113;;;10019:35;10032:21;10019:12;:35::i;:::-;9965:113;9808:289;9771:326;9585:527;9503:609;8862:1261;10137:33;10155:4;10160:2;10163:6;10137:17;:33::i;:::-;8529:1649;;;:::o;1354:190::-;1440:7;1473:1;1468;:6;;1476:12;1460:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1500:9;1516:1;1512;:5;;;;:::i;:::-;1500:17;;1535:1;1528:8;;;1354:190;;;;;:::o;10977:295::-;11034:15;;;;;;;;;;;:24;;:55;11059:29;11079:8;;11059:15;11070:3;11059:6;:10;;:15;;;;:::i;:::-;:19;;:29;;;;:::i;:::-;11034:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11100:15;;;;;;;;;;;:24;;:55;11125:29;11145:8;;11125:15;11136:3;11125:6;:10;;:15;;;;:::i;:::-;:19;;:29;;;;:::i;:::-;11100:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11180:1;11169:8;;:12;11166:99;;;11198:15;;;;;;;;;;;:24;;:55;11223:29;11243:8;;11223:15;11234:3;11223:6;:10;;:15;;;;:::i;:::-;:19;;:29;;;;:::i;:::-;11198:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11166:99;10977:295;:::o;10186:483::-;4941:4;4932:6;;:13;;;;;;;;;;;;;;;;;;10264:21:::1;10302:1;10288:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10264:40;;10333:4;10315;10320:1;10315:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10359:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10349:4;10354:1;10349:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10392:62;10409:4;10424:15;;;;;;;;;;;10442:11;10392:8;:62::i;:::-;10465:15;;;;;;;;;;;:66;;;10546:11;10572:1;10588:4;10615;10635:15;10465:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10253:416;4977:5:::0;4968:6;;:14;;;;;;;;;;;;;;;;;;10186:483;:::o;10683:288::-;4941:4;4932:6;;:13;;;;;;;;;;;;;;;;;;10789:60:::1;10806:4;10820:15;;;;;;;;;;;10837:11;10789:8;:60::i;:::-;10860:15;;;;;;;;;;;:31;;;10899:9;10918:4;10924:11;10936:1;10938::::0;10940:6:::1;10947:15;10860:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4977:5:::0;4968:6;;:14;;;;;;;;;;;;;;;;;;10683:288;;;:::o;1946:189::-;2032:7;2064:1;2060;:5;2067:12;2052:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2091:9;2107:1;2103;:5;;;;:::i;:::-;2091:17;;2126:1;2119:8;;;1946:189;;;;;:::o;11862:421::-;11961:22;11984:12;12000:20;12012:7;12000:11;:20::i;:::-;11960:60;;;;12049:28;12069:7;12049;:15;12057:6;12049:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12031:7;:15;12039:6;12031:15;;;;;;;;;;;;;;;:46;;;;12109:38;12132:14;12109:7;:18;12117:9;12109:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;12088:7;:18;12096:9;12088:18;;;;;;;;;;;;;;;:59;;;;12184:32;12211:4;12184:7;:22;12200:4;12184:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;12159:7;:22;12175:4;12159:22;;;;;;;;;;;;;;;:57;;;;12249:9;12232:43;;12241:6;12232:43;;;12260:14;12232:43;;;;;;:::i;:::-;;;;;;;;11949:334;;11862:421;;;:::o;12744:234::-;12804:7;12813;12833:12;12848:27;12870:4;12848:17;12860:4;;12848:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;12833:42;;12886:23;12912:17;12924:4;12912:7;:11;;:17;;;;:::i;:::-;12886:43;;12948:15;12965:4;12940:30;;;;;;12744:234;;;:::o;1210:136::-;1268:7;1295:43;1299:1;1302;1295:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1288:50;;1210:136;;;;:::o;1023:179::-;1081:7;1101:9;1117:1;1113;:5;;;;:::i;:::-;1101:17;;1142:1;1137;:6;;1129:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1193:1;1186:8;;;1023:179;;;;:::o;24:722:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:143;;;404:79;;:::i;:::-;350:143;517:1;502:238;527:6;524:1;521:13;502:238;;;595:3;624:37;657:3;645:10;624:37;:::i;:::-;619:3;612:50;691:4;686:3;682:14;675:21;;725:4;720:3;716:14;709:21;;562:178;549:1;546;542:9;537:14;;502:238;;;506:14;126:620;;24:722;;;;;:::o;752:139::-;798:5;836:6;823:20;814:29;;852:33;879:5;852:33;:::i;:::-;752:139;;;;:::o;897:143::-;954:5;985:6;979:13;970:22;;1001:33;1028:5;1001:33;:::i;:::-;897:143;;;;:::o;1063:370::-;1134:5;1183:3;1176:4;1168:6;1164:17;1160:27;1150:122;;1191:79;;:::i;:::-;1150:122;1308:6;1295:20;1333:94;1423:3;1415:6;1408:4;1400:6;1396:17;1333:94;:::i;:::-;1324:103;;1140:293;1063:370;;;;:::o;1439:137::-;1493:5;1524:6;1518:13;1509:22;;1540:30;1564:5;1540:30;:::i;:::-;1439:137;;;;:::o;1582:139::-;1628:5;1666:6;1653:20;1644:29;;1682:33;1709:5;1682:33;:::i;:::-;1582:139;;;;:::o;1727:143::-;1784:5;1815:6;1809:13;1800:22;;1831:33;1858:5;1831:33;:::i;:::-;1727:143;;;;:::o;1876:135::-;1920:5;1958:6;1945:20;1936:29;;1974:31;1999:5;1974:31;:::i;:::-;1876:135;;;;:::o;2017:329::-;2076:6;2125:2;2113:9;2104:7;2100:23;2096:32;2093:119;;;2131:79;;:::i;:::-;2093:119;2251:1;2276:53;2321:7;2312:6;2301:9;2297:22;2276:53;:::i;:::-;2266:63;;2222:117;2017:329;;;;:::o;2352:351::-;2422:6;2471:2;2459:9;2450:7;2446:23;2442:32;2439:119;;;2477:79;;:::i;:::-;2439:119;2597:1;2622:64;2678:7;2669:6;2658:9;2654:22;2622:64;:::i;:::-;2612:74;;2568:128;2352:351;;;;:::o;2709:474::-;2777:6;2785;2834:2;2822:9;2813:7;2809:23;2805:32;2802:119;;;2840:79;;:::i;:::-;2802:119;2960:1;2985:53;3030:7;3021:6;3010:9;3006:22;2985:53;:::i;:::-;2975:63;;2931:117;3087:2;3113:53;3158:7;3149:6;3138:9;3134:22;3113:53;:::i;:::-;3103:63;;3058:118;2709:474;;;;;:::o;3189:619::-;3266:6;3274;3282;3331:2;3319:9;3310:7;3306:23;3302:32;3299:119;;;3337:79;;:::i;:::-;3299:119;3457:1;3482:53;3527:7;3518:6;3507:9;3503:22;3482:53;:::i;:::-;3472:63;;3428:117;3584:2;3610:53;3655:7;3646:6;3635:9;3631:22;3610:53;:::i;:::-;3600:63;;3555:118;3712:2;3738:53;3783:7;3774:6;3763:9;3759:22;3738:53;:::i;:::-;3728:63;;3683:118;3189:619;;;;;:::o;3814:474::-;3882:6;3890;3939:2;3927:9;3918:7;3914:23;3910:32;3907:119;;;3945:79;;:::i;:::-;3907:119;4065:1;4090:53;4135:7;4126:6;4115:9;4111:22;4090:53;:::i;:::-;4080:63;;4036:117;4192:2;4218:53;4263:7;4254:6;4243:9;4239:22;4218:53;:::i;:::-;4208:63;;4163:118;3814:474;;;;;:::o;4294:539::-;4378:6;4427:2;4415:9;4406:7;4402:23;4398:32;4395:119;;;4433:79;;:::i;:::-;4395:119;4581:1;4570:9;4566:17;4553:31;4611:18;4603:6;4600:30;4597:117;;;4633:79;;:::i;:::-;4597:117;4738:78;4808:7;4799:6;4788:9;4784:22;4738:78;:::i;:::-;4728:88;;4524:302;4294:539;;;;:::o;4839:345::-;4906:6;4955:2;4943:9;4934:7;4930:23;4926:32;4923:119;;;4961:79;;:::i;:::-;4923:119;5081:1;5106:61;5159:7;5150:6;5139:9;5135:22;5106:61;:::i;:::-;5096:71;;5052:125;4839:345;;;;:::o;5190:329::-;5249:6;5298:2;5286:9;5277:7;5273:23;5269:32;5266:119;;;5304:79;;:::i;:::-;5266:119;5424:1;5449:53;5494:7;5485:6;5474:9;5470:22;5449:53;:::i;:::-;5439:63;;5395:117;5190:329;;;;:::o;5525:351::-;5595:6;5644:2;5632:9;5623:7;5619:23;5615:32;5612:119;;;5650:79;;:::i;:::-;5612:119;5770:1;5795:64;5851:7;5842:6;5831:9;5827:22;5795:64;:::i;:::-;5785:74;;5741:128;5525:351;;;;:::o;5882:663::-;5970:6;5978;5986;6035:2;6023:9;6014:7;6010:23;6006:32;6003:119;;;6041:79;;:::i;:::-;6003:119;6161:1;6186:64;6242:7;6233:6;6222:9;6218:22;6186:64;:::i;:::-;6176:74;;6132:128;6299:2;6325:64;6381:7;6372:6;6361:9;6357:22;6325:64;:::i;:::-;6315:74;;6270:129;6438:2;6464:64;6520:7;6511:6;6500:9;6496:22;6464:64;:::i;:::-;6454:74;;6409:129;5882:663;;;;;:::o;6551:466::-;6615:6;6623;6672:2;6660:9;6651:7;6647:23;6643:32;6640:119;;;6678:79;;:::i;:::-;6640:119;6798:1;6823:51;6866:7;6857:6;6846:9;6842:22;6823:51;:::i;:::-;6813:61;;6769:115;6923:2;6949:51;6992:7;6983:6;6972:9;6968:22;6949:51;:::i;:::-;6939:61;;6894:116;6551:466;;;;;:::o;7023:607::-;7094:6;7102;7110;7159:2;7147:9;7138:7;7134:23;7130:32;7127:119;;;7165:79;;:::i;:::-;7127:119;7285:1;7310:51;7353:7;7344:6;7333:9;7329:22;7310:51;:::i;:::-;7300:61;;7256:115;7410:2;7436:51;7479:7;7470:6;7459:9;7455:22;7436:51;:::i;:::-;7426:61;;7381:116;7536:2;7562:51;7605:7;7596:6;7585:9;7581:22;7562:51;:::i;:::-;7552:61;;7507:116;7023:607;;;;;:::o;7636:179::-;7705:10;7726:46;7768:3;7760:6;7726:46;:::i;:::-;7804:4;7799:3;7795:14;7781:28;;7636:179;;;;:::o;7821:147::-;7916:45;7955:5;7916:45;:::i;:::-;7911:3;7904:58;7821:147;;:::o;7974:108::-;8051:24;8069:5;8051:24;:::i;:::-;8046:3;8039:37;7974:108;;:::o;8088:118::-;8175:24;8193:5;8175:24;:::i;:::-;8170:3;8163:37;8088:118;;:::o;8242:732::-;8361:3;8390:54;8438:5;8390:54;:::i;:::-;8460:86;8539:6;8534:3;8460:86;:::i;:::-;8453:93;;8570:56;8620:5;8570:56;:::i;:::-;8649:7;8680:1;8665:284;8690:6;8687:1;8684:13;8665:284;;;8766:6;8760:13;8793:63;8852:3;8837:13;8793:63;:::i;:::-;8786:70;;8879:60;8932:6;8879:60;:::i;:::-;8869:70;;8725:224;8712:1;8709;8705:9;8700:14;;8665:284;;;8669:14;8965:3;8958:10;;8366:608;;;8242:732;;;;:::o;8980:109::-;9061:21;9076:5;9061:21;:::i;:::-;9056:3;9049:34;8980:109;;:::o;9095:147::-;9190:45;9229:5;9190:45;:::i;:::-;9185:3;9178:58;9095:147;;:::o;9248:364::-;9336:3;9364:39;9397:5;9364:39;:::i;:::-;9419:71;9483:6;9478:3;9419:71;:::i;:::-;9412:78;;9499:52;9544:6;9539:3;9532:4;9525:5;9521:16;9499:52;:::i;:::-;9576:29;9598:6;9576:29;:::i;:::-;9571:3;9567:39;9560:46;;9340:272;9248:364;;;;:::o;9618:366::-;9760:3;9781:67;9845:2;9840:3;9781:67;:::i;:::-;9774:74;;9857:93;9946:3;9857:93;:::i;:::-;9975:2;9970:3;9966:12;9959:19;;9618:366;;;:::o;9990:::-;10132:3;10153:67;10217:2;10212:3;10153:67;:::i;:::-;10146:74;;10229:93;10318:3;10229:93;:::i;:::-;10347:2;10342:3;10338:12;10331:19;;9990:366;;;:::o;10362:::-;10504:3;10525:67;10589:2;10584:3;10525:67;:::i;:::-;10518:74;;10601:93;10690:3;10601:93;:::i;:::-;10719:2;10714:3;10710:12;10703:19;;10362:366;;;:::o;10734:::-;10876:3;10897:67;10961:2;10956:3;10897:67;:::i;:::-;10890:74;;10973:93;11062:3;10973:93;:::i;:::-;11091:2;11086:3;11082:12;11075:19;;10734:366;;;:::o;11106:::-;11248:3;11269:67;11333:2;11328:3;11269:67;:::i;:::-;11262:74;;11345:93;11434:3;11345:93;:::i;:::-;11463:2;11458:3;11454:12;11447:19;;11106:366;;;:::o;11478:::-;11620:3;11641:67;11705:2;11700:3;11641:67;:::i;:::-;11634:74;;11717:93;11806:3;11717:93;:::i;:::-;11835:2;11830:3;11826:12;11819:19;;11478:366;;;:::o;11850:::-;11992:3;12013:67;12077:2;12072:3;12013:67;:::i;:::-;12006:74;;12089:93;12178:3;12089:93;:::i;:::-;12207:2;12202:3;12198:12;12191:19;;11850:366;;;:::o;12222:::-;12364:3;12385:67;12449:2;12444:3;12385:67;:::i;:::-;12378:74;;12461:93;12550:3;12461:93;:::i;:::-;12579:2;12574:3;12570:12;12563:19;;12222:366;;;:::o;12594:::-;12736:3;12757:67;12821:2;12816:3;12757:67;:::i;:::-;12750:74;;12833:93;12922:3;12833:93;:::i;:::-;12951:2;12946:3;12942:12;12935:19;;12594:366;;;:::o;12966:::-;13108:3;13129:67;13193:2;13188:3;13129:67;:::i;:::-;13122:74;;13205:93;13294:3;13205:93;:::i;:::-;13323:2;13318:3;13314:12;13307:19;;12966:366;;;:::o;13338:::-;13480:3;13501:67;13565:2;13560:3;13501:67;:::i;:::-;13494:74;;13577:93;13666:3;13577:93;:::i;:::-;13695:2;13690:3;13686:12;13679:19;;13338:366;;;:::o;13710:::-;13852:3;13873:67;13937:2;13932:3;13873:67;:::i;:::-;13866:74;;13949:93;14038:3;13949:93;:::i;:::-;14067:2;14062:3;14058:12;14051:19;;13710:366;;;:::o;14082:118::-;14169:24;14187:5;14169:24;:::i;:::-;14164:3;14157:37;14082:118;;:::o;14206:112::-;14289:22;14305:5;14289:22;:::i;:::-;14284:3;14277:35;14206:112;;:::o;14324:222::-;14417:4;14455:2;14444:9;14440:18;14432:26;;14468:71;14536:1;14525:9;14521:17;14512:6;14468:71;:::i;:::-;14324:222;;;;:::o;14552:348::-;14681:4;14719:2;14708:9;14704:18;14696:26;;14732:79;14808:1;14797:9;14793:17;14784:6;14732:79;:::i;:::-;14821:72;14889:2;14878:9;14874:18;14865:6;14821:72;:::i;:::-;14552:348;;;;;:::o;14906:807::-;15155:4;15193:3;15182:9;15178:19;15170:27;;15207:71;15275:1;15264:9;15260:17;15251:6;15207:71;:::i;:::-;15288:72;15356:2;15345:9;15341:18;15332:6;15288:72;:::i;:::-;15370:80;15446:2;15435:9;15431:18;15422:6;15370:80;:::i;:::-;15460;15536:2;15525:9;15521:18;15512:6;15460:80;:::i;:::-;15550:73;15618:3;15607:9;15603:19;15594:6;15550:73;:::i;:::-;15633;15701:3;15690:9;15686:19;15677:6;15633:73;:::i;:::-;14906:807;;;;;;;;;:::o;15719:210::-;15806:4;15844:2;15833:9;15829:18;15821:26;;15857:65;15919:1;15908:9;15904:17;15895:6;15857:65;:::i;:::-;15719:210;;;;:::o;15935:313::-;16048:4;16086:2;16075:9;16071:18;16063:26;;16135:9;16129:4;16125:20;16121:1;16110:9;16106:17;16099:47;16163:78;16236:4;16227:6;16163:78;:::i;:::-;16155:86;;15935:313;;;;:::o;16254:419::-;16420:4;16458:2;16447:9;16443:18;16435:26;;16507:9;16501:4;16497:20;16493:1;16482:9;16478:17;16471:47;16535:131;16661:4;16535:131;:::i;:::-;16527:139;;16254:419;;;:::o;16679:::-;16845:4;16883:2;16872:9;16868:18;16860:26;;16932:9;16926:4;16922:20;16918:1;16907:9;16903:17;16896:47;16960:131;17086:4;16960:131;:::i;:::-;16952:139;;16679:419;;;:::o;17104:::-;17270:4;17308:2;17297:9;17293:18;17285:26;;17357:9;17351:4;17347:20;17343:1;17332:9;17328:17;17321:47;17385:131;17511:4;17385:131;:::i;:::-;17377:139;;17104:419;;;:::o;17529:::-;17695:4;17733:2;17722:9;17718:18;17710:26;;17782:9;17776:4;17772:20;17768:1;17757:9;17753:17;17746:47;17810:131;17936:4;17810:131;:::i;:::-;17802:139;;17529:419;;;:::o;17954:::-;18120:4;18158:2;18147:9;18143:18;18135:26;;18207:9;18201:4;18197:20;18193:1;18182:9;18178:17;18171:47;18235:131;18361:4;18235:131;:::i;:::-;18227:139;;17954:419;;;:::o;18379:::-;18545:4;18583:2;18572:9;18568:18;18560:26;;18632:9;18626:4;18622:20;18618:1;18607:9;18603:17;18596:47;18660:131;18786:4;18660:131;:::i;:::-;18652:139;;18379:419;;;:::o;18804:::-;18970:4;19008:2;18997:9;18993:18;18985:26;;19057:9;19051:4;19047:20;19043:1;19032:9;19028:17;19021:47;19085:131;19211:4;19085:131;:::i;:::-;19077:139;;18804:419;;;:::o;19229:::-;19395:4;19433:2;19422:9;19418:18;19410:26;;19482:9;19476:4;19472:20;19468:1;19457:9;19453:17;19446:47;19510:131;19636:4;19510:131;:::i;:::-;19502:139;;19229:419;;;:::o;19654:::-;19820:4;19858:2;19847:9;19843:18;19835:26;;19907:9;19901:4;19897:20;19893:1;19882:9;19878:17;19871:47;19935:131;20061:4;19935:131;:::i;:::-;19927:139;;19654:419;;;:::o;20079:::-;20245:4;20283:2;20272:9;20268:18;20260:26;;20332:9;20326:4;20322:20;20318:1;20307:9;20303:17;20296:47;20360:131;20486:4;20360:131;:::i;:::-;20352:139;;20079:419;;;:::o;20504:::-;20670:4;20708:2;20697:9;20693:18;20685:26;;20757:9;20751:4;20747:20;20743:1;20732:9;20728:17;20721:47;20785:131;20911:4;20785:131;:::i;:::-;20777:139;;20504:419;;;:::o;20929:::-;21095:4;21133:2;21122:9;21118:18;21110:26;;21182:9;21176:4;21172:20;21168:1;21157:9;21153:17;21146:47;21210:131;21336:4;21210:131;:::i;:::-;21202:139;;20929:419;;;:::o;21354:222::-;21447:4;21485:2;21474:9;21470:18;21462:26;;21498:71;21566:1;21555:9;21551:17;21542:6;21498:71;:::i;:::-;21354:222;;;;:::o;21582:831::-;21845:4;21883:3;21872:9;21868:19;21860:27;;21897:71;21965:1;21954:9;21950:17;21941:6;21897:71;:::i;:::-;21978:80;22054:2;22043:9;22039:18;22030:6;21978:80;:::i;:::-;22105:9;22099:4;22095:20;22090:2;22079:9;22075:18;22068:48;22133:108;22236:4;22227:6;22133:108;:::i;:::-;22125:116;;22251:72;22319:2;22308:9;22304:18;22295:6;22251:72;:::i;:::-;22333:73;22401:3;22390:9;22386:19;22377:6;22333:73;:::i;:::-;21582:831;;;;;;;;:::o;22419:214::-;22508:4;22546:2;22535:9;22531:18;22523:26;;22559:67;22623:1;22612:9;22608:17;22599:6;22559:67;:::i;:::-;22419:214;;;;:::o;22639:129::-;22673:6;22700:20;;:::i;:::-;22690:30;;22729:33;22757:4;22749:6;22729:33;:::i;:::-;22639:129;;;:::o;22774:75::-;22807:6;22840:2;22834:9;22824:19;;22774:75;:::o;22855:311::-;22932:4;23022:18;23014:6;23011:30;23008:56;;;23044:18;;:::i;:::-;23008:56;23094:4;23086:6;23082:17;23074:25;;23154:4;23148;23144:15;23136:23;;22855:311;;;:::o;23172:132::-;23239:4;23262:3;23254:11;;23292:4;23287:3;23283:14;23275:22;;23172:132;;;:::o;23310:114::-;23377:6;23411:5;23405:12;23395:22;;23310:114;;;:::o;23430:99::-;23482:6;23516:5;23510:12;23500:22;;23430:99;;;:::o;23535:113::-;23605:4;23637;23632:3;23628:14;23620:22;;23535:113;;;:::o;23654:184::-;23753:11;23787:6;23782:3;23775:19;23827:4;23822:3;23818:14;23803:29;;23654:184;;;;:::o;23844:169::-;23928:11;23962:6;23957:3;23950:19;24002:4;23997:3;23993:14;23978:29;;23844:169;;;;:::o;24019:305::-;24059:3;24078:20;24096:1;24078:20;:::i;:::-;24073:25;;24112:20;24130:1;24112:20;:::i;:::-;24107:25;;24266:1;24198:66;24194:74;24191:1;24188:81;24185:107;;;24272:18;;:::i;:::-;24185:107;24316:1;24313;24309:9;24302:16;;24019:305;;;;:::o;24330:237::-;24368:3;24387:18;24403:1;24387:18;:::i;:::-;24382:23;;24419:18;24435:1;24419:18;:::i;:::-;24414:23;;24509:1;24503:4;24499:12;24496:1;24493:19;24490:45;;;24515:18;;:::i;:::-;24490:45;24559:1;24556;24552:9;24545:16;;24330:237;;;;:::o;24573:185::-;24613:1;24630:20;24648:1;24630:20;:::i;:::-;24625:25;;24664:20;24682:1;24664:20;:::i;:::-;24659:25;;24703:1;24693:35;;24708:18;;:::i;:::-;24693:35;24750:1;24747;24743:9;24738:14;;24573:185;;;;:::o;24764:348::-;24804:7;24827:20;24845:1;24827:20;:::i;:::-;24822:25;;24861:20;24879:1;24861:20;:::i;:::-;24856:25;;25049:1;24981:66;24977:74;24974:1;24971:81;24966:1;24959:9;24952:17;24948:105;24945:131;;;25056:18;;:::i;:::-;24945:131;25104:1;25101;25097:9;25086:20;;24764:348;;;;:::o;25118:191::-;25158:4;25178:20;25196:1;25178:20;:::i;:::-;25173:25;;25212:20;25230:1;25212:20;:::i;:::-;25207:25;;25251:1;25248;25245:8;25242:34;;;25256:18;;:::i;:::-;25242:34;25301:1;25298;25294:9;25286:17;;25118:191;;;;:::o;25315:96::-;25352:7;25381:24;25399:5;25381:24;:::i;:::-;25370:35;;25315:96;;;:::o;25417:90::-;25451:7;25494:5;25487:13;25480:21;25469:32;;25417:90;;;:::o;25513:126::-;25550:7;25590:42;25583:5;25579:54;25568:65;;25513:126;;;:::o;25645:77::-;25682:7;25711:5;25700:16;;25645:77;;;:::o;25728:86::-;25763:7;25803:4;25796:5;25792:16;25781:27;;25728:86;;;:::o;25820:134::-;25878:9;25911:37;25942:5;25911:37;:::i;:::-;25898:50;;25820:134;;;:::o;25960:121::-;26018:9;26051:24;26069:5;26051:24;:::i;:::-;26038:37;;25960:121;;;:::o;26087:126::-;26137:9;26170:37;26201:5;26170:37;:::i;:::-;26157:50;;26087:126;;;:::o;26219:113::-;26269:9;26302:24;26320:5;26302:24;:::i;:::-;26289:37;;26219:113;;;:::o;26338:307::-;26406:1;26416:113;26430:6;26427:1;26424:13;26416:113;;;26515:1;26510:3;26506:11;26500:18;26496:1;26491:3;26487:11;26480:39;26452:2;26449:1;26445:10;26440:15;;26416:113;;;26547:6;26544:1;26541:13;26538:101;;;26627:1;26618:6;26613:3;26609:16;26602:27;26538:101;26387:258;26338:307;;;:::o;26651:281::-;26734:27;26756:4;26734:27;:::i;:::-;26726:6;26722:40;26864:6;26852:10;26849:22;26828:18;26816:10;26813:34;26810:62;26807:88;;;26875:18;;:::i;:::-;26807:88;26915:10;26911:2;26904:22;26694:238;26651:281;;:::o;26938:233::-;26977:3;27000:24;27018:5;27000:24;:::i;:::-;26991:33;;27046:66;27039:5;27036:77;27033:103;;;27116:18;;:::i;:::-;27033:103;27163:1;27156:5;27152:13;27145:20;;26938:233;;;:::o;27177:180::-;27225:77;27222:1;27215:88;27322:4;27319:1;27312:15;27346:4;27343:1;27336:15;27363:180;27411:77;27408:1;27401:88;27508:4;27505:1;27498:15;27532:4;27529:1;27522:15;27549:180;27597:77;27594:1;27587:88;27694:4;27691:1;27684:15;27718:4;27715:1;27708:15;27735:180;27783:77;27780:1;27773:88;27880:4;27877:1;27870:15;27904:4;27901:1;27894:15;27921:117;28030:1;28027;28020:12;28044:117;28153:1;28150;28143:12;28167:117;28276:1;28273;28266:12;28290:117;28399:1;28396;28389:12;28413:102;28454:6;28505:2;28501:7;28496:2;28489:5;28485:14;28481:28;28471:38;;28413:102;;;:::o;28521:227::-;28661:34;28657:1;28649:6;28645:14;28638:58;28730:10;28725:2;28717:6;28713:15;28706:35;28521:227;:::o;28754:222::-;28894:34;28890:1;28882:6;28878:14;28871:58;28963:5;28958:2;28950:6;28946:15;28939:30;28754:222;:::o;28982:::-;29122:34;29118:1;29110:6;29106:14;29099:58;29191:5;29186:2;29178:6;29174:15;29167:30;28982:222;:::o;29210:221::-;29350:34;29346:1;29338:6;29334:14;29327:58;29419:4;29414:2;29406:6;29402:15;29395:29;29210:221;:::o;29437:177::-;29577:29;29573:1;29565:6;29561:14;29554:53;29437:177;:::o;29620:220::-;29760:34;29756:1;29748:6;29744:14;29737:58;29829:3;29824:2;29816:6;29812:15;29805:28;29620:220;:::o;29846:182::-;29986:34;29982:1;29974:6;29970:14;29963:58;29846:182;:::o;30034:228::-;30174:34;30170:1;30162:6;30158:14;30151:58;30243:11;30238:2;30230:6;30226:15;30219:36;30034:228;:::o;30268:224::-;30408:34;30404:1;30396:6;30392:14;30385:58;30477:7;30472:2;30464:6;30460:15;30453:32;30268:224;:::o;30498:180::-;30638:32;30634:1;30626:6;30622:14;30615:56;30498:180;:::o;30684:223::-;30824:34;30820:1;30812:6;30808:14;30801:58;30893:6;30888:2;30880:6;30876:15;30869:31;30684:223;:::o;30913:173::-;31053:25;31049:1;31041:6;31037:14;31030:49;30913:173;:::o;31092:122::-;31165:24;31183:5;31165:24;:::i;:::-;31158:5;31155:35;31145:63;;31204:1;31201;31194:12;31145:63;31092:122;:::o;31220:116::-;31290:21;31305:5;31290:21;:::i;:::-;31283:5;31280:32;31270:60;;31326:1;31323;31316:12;31270:60;31220:116;:::o;31342:122::-;31415:24;31433:5;31415:24;:::i;:::-;31408:5;31405:35;31395:63;;31454:1;31451;31444:12;31395:63;31342:122;:::o;31470:118::-;31541:22;31557:5;31541:22;:::i;:::-;31534:5;31531:33;31521:61;;31578:1;31575;31568:12;31521:61;31470:118;:::o

Swarm Source

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