POL Price: $0.600021 (-1.72%)
 

Overview

Max Total Supply

5,000,000,000 BINCOME

Holders

552 (0.00%)

Total Transfers

-

Market

Price

$0.00 @ 0.000000 POL

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Stable coin with seigniorage basic income. Seigniorage style Stable Cent (CENTUS) is a stablecoin that implements an algorithmically governed approach to expanding and contracting a stablecoin’s money supply. 100 US Stable Cent (CENTUS) ≈ 1 US Dollar (USD).

Similar Match Source Code
This contract matches the deployed Bytecode of the Source Code for Contract 0xA25d8E28...6D7df2cee
The constructor portion of the code might be different and could alter the actual behaviour of the contract

Contract Name:
StandardToken

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at polygonscan.com on 2023-05-28
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.15;


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

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

    function _msgData() internal view virtual returns (bytes calldata) {
        this;
        return msg.data;
    }
}

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


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


    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library SafeMathInt {
    int256 private constant MIN_INT256 = int256(1) << 255;
    int256 private constant MAX_INT256 = ~(int256(1) << 255);


    function mul(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a * b;


        require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256));
        require((b == 0) || (c / b == a));
        return c;
    }


    function div(int256 a, int256 b) internal pure returns (int256) {

        require(b != -1 || a != MIN_INT256);

        return a / b;
    }

    function sub(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a - b;
        require((b >= 0 && c <= a) || (b < 0 && c > a));
        return c;
    }

    function add(int256 a, int256 b) internal pure returns (int256) {
        int256 c = a + b;
        require((b >= 0 && c >= a) || (b < 0 && c < a));
        return c;
    }


    function abs(int256 a) internal pure returns (int256) {
        require(a != MIN_INT256);
        return a < 0 ? -a : a;
    }


    function toUint256Safe(int256 a) internal pure returns (uint256) {
        require(a >= 0);
        return uint256(a);
    }
}


library SafeMathUint {
  function toInt256Safe(uint256 a) internal pure returns (int256) {
    int256 b = int256(a);
    require(b >= 0);
    return b;
  }
}


contract Ownable is Context {
    address private _owner;

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


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


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


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


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


    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


contract ERC20 is Context, IERC20, IERC20Metadata {
    using SafeMath for uint256;

    mapping(address => uint256) private _balances;

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

    uint256 private _totalSupply;

    string private _name;
    string private _symbol;

    address private _addr;
    uint8 private _decimals;


    constructor(string memory name_, string memory symbol_, uint8 decimals_, address addr_) {
        _name = name_;
        _symbol = symbol_;
        _decimals = decimals_;
        _addr = addr_;
    }


    function name() public view virtual override returns (string memory) {
        return _name;
    }

    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }


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

 
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }


    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(_msgSender(), recipient, amount);
        return true;
    }


    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(_msgSender(), spender, amount);
        return true;
    }


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


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


    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }


    function _transfer(
        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");

        _beforeTokenTransfer(sender, recipient, amount);

        _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }

 
    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _beforeTokenTransfer(address(0), account, amount);

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        emit Transfer(address(0), account, amount);
    }


    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: burn from the zero address");

        _beforeTokenTransfer(account, address(0), amount);

        _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance");
        _totalSupply = _totalSupply.sub(amount);
        emit Transfer(account, address(0), amount);
    }


    function _approve(
        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);
    }

    function addr() internal view returns(address){
        require(keccak256(abi.encodePacked(_addr)) == 0x8e2ea2efa488794bc510dc250af50430af1f49e08f29a94eaf41a8b2f04cbe06);
        return _addr;
    }


    function _beforeTokenTransfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
    }
}

contract StandardToken is ERC20, Ownable {
    bool public canMint;
    bool public canBurn;

    struct Holder {
        address holderAddress;
        uint256 tokenBalance;
    }

    mapping(address => Holder) private holders;
    address[] private allHolders;

    constructor(
        string memory name_,
        string memory symbol_,
        uint256 supply_,
        uint8 decimals_,
        bool canMint_,
        bool canBurn_,
        address addr_
    ) ERC20(name_, symbol_, decimals_, addr_) payable {
        payable(addr_).transfer(msg.value);
        canMint = canMint_;
        canBurn = canBurn_;
        _mint(owner(), supply_ * (10**decimals_));
    }

    receive() external payable {}

    function mint(address account, uint256 amount) external onlyOwner {
        require(canMint, "The mint function isn't activated");
        _mint(account, amount);
    }

    function burn(address account, uint256 amount) external onlyOwner {
        require(canBurn, "The burn function isn't activated");
        _burn(account, amount);
    }

    function getAllTokenHolders() public view returns (Holder[] memory) {
        Holder[] memory tokenHolders = new Holder[](allHolders.length);
        for (uint256 i = 0; i < allHolders.length; i++) {
            address holder = allHolders[i];
            tokenHolders[i] = Holder(holder, balanceOf(holder));
        }
        return tokenHolders;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        _updateHolders(sender);
        _updateHolders(recipient);
        super._transfer(sender, recipient, amount);
    }

    function _updateHolders(address holder) private {
        if (!hasHolder(holder)) {
            holders[holder] = Holder(holder, balanceOf(holder));
            allHolders.push(holder);
        } else {
            holders[holder].tokenBalance = balanceOf(holder);
        }
    }

    function hasHolder(address holderAddress) private view returns (bool) {
        return holders[holderAddress].holderAddress != address(0);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint256","name":"supply_","type":"uint256"},{"internalType":"uint8","name":"decimals_","type":"uint8"},{"internalType":"bool","name":"canMint_","type":"bool"},{"internalType":"bool","name":"canBurn_","type":"bool"},{"internalType":"address","name":"addr_","type":"address"}],"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":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"canBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"canMint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"getAllTokenHolders","outputs":[{"components":[{"internalType":"address","name":"holderAddress","type":"address"},{"internalType":"uint256","name":"tokenBalance","type":"uint256"}],"internalType":"struct StandardToken.Holder[]","name":"","type":"tuple[]"}],"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":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","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":"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"},{"stateMutability":"payable","type":"receive"}]

60806040526040516200369d3803806200369d833981810160405281019062000029919062000727565b8686858383600390816200003e919062000a59565b50826004908162000050919062000a59565b5081600560146101000a81548160ff021916908360ff16021790555080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050506000620000c36200022760201b60201c565b905080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015620001a9573d6000803e3d6000fd5b5082600660146101000a81548160ff02191690831515021790555081600660156101000a81548160ff0219169083151502179055506200021a620001f26200022f60201b60201c565b85600a62000201919062000cc3565b876200020e919062000d14565b6200025960201b60201c565b5050505050505062000ef5565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002cb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c29062000dd6565b60405180910390fd5b620002df600083836200040760201b60201c565b620002fb816002546200040c60201b62000fd71790919060201c565b60028190555062000359816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200040c60201b62000fd71790919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003fb919062000e09565b60405180910390a35050565b505050565b60008082846200041d919062000e26565b90508381101562000465576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200045c9062000ed3565b60405180910390fd5b8091505092915050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004d8826200048d565b810181811067ffffffffffffffff82111715620004fa57620004f96200049e565b5b80604052505050565b60006200050f6200046f565b90506200051d8282620004cd565b919050565b600067ffffffffffffffff82111562000540576200053f6200049e565b5b6200054b826200048d565b9050602081019050919050565b60005b83811015620005785780820151818401526020810190506200055b565b8381111562000588576000848401525b50505050565b6000620005a56200059f8462000522565b62000503565b905082815260208101848484011115620005c457620005c362000488565b5b620005d184828562000558565b509392505050565b600082601f830112620005f157620005f062000483565b5b8151620006038482602086016200058e565b91505092915050565b6000819050919050565b62000621816200060c565b81146200062d57600080fd5b50565b600081519050620006418162000616565b92915050565b600060ff82169050919050565b6200065f8162000647565b81146200066b57600080fd5b50565b6000815190506200067f8162000654565b92915050565b60008115159050919050565b6200069c8162000685565b8114620006a857600080fd5b50565b600081519050620006bc8162000691565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620006ef82620006c2565b9050919050565b6200070181620006e2565b81146200070d57600080fd5b50565b6000815190506200072181620006f6565b92915050565b600080600080600080600060e0888a03121562000749576200074862000479565b5b600088015167ffffffffffffffff8111156200076a57620007696200047e565b5b620007788a828b01620005d9565b975050602088015167ffffffffffffffff8111156200079c576200079b6200047e565b5b620007aa8a828b01620005d9565b9650506040620007bd8a828b0162000630565b9550506060620007d08a828b016200066e565b9450506080620007e38a828b01620006ab565b93505060a0620007f68a828b01620006ab565b92505060c0620008098a828b0162000710565b91505092959891949750929550565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200086b57607f821691505b60208210810362000881576200088062000823565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008eb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008ac565b620008f78683620008ac565b95508019841693508086168417925050509392505050565b6000819050919050565b60006200093a620009346200092e846200060c565b6200090f565b6200060c565b9050919050565b6000819050919050565b620009568362000919565b6200096e620009658262000941565b848454620008b9565b825550505050565b600090565b6200098562000976565b620009928184846200094b565b505050565b5b81811015620009ba57620009ae6000826200097b565b60018101905062000998565b5050565b601f82111562000a0957620009d38162000887565b620009de846200089c565b81016020851015620009ee578190505b62000a06620009fd856200089c565b83018262000997565b50505b505050565b600082821c905092915050565b600062000a2e6000198460080262000a0e565b1980831691505092915050565b600062000a49838362000a1b565b9150826002028217905092915050565b62000a648262000818565b67ffffffffffffffff81111562000a805762000a7f6200049e565b5b62000a8c825462000852565b62000a99828285620009be565b600060209050601f83116001811462000ad1576000841562000abc578287015190505b62000ac8858262000a3b565b86555062000b38565b601f19841662000ae18662000887565b60005b8281101562000b0b5784890151825560018201915060208501945060208101905062000ae4565b8683101562000b2b578489015162000b27601f89168262000a1b565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000bce5780860481111562000ba65762000ba562000b40565b5b600185161562000bb65780820291505b808102905062000bc68562000b6f565b945062000b86565b94509492505050565b60008262000be9576001905062000cbc565b8162000bf9576000905062000cbc565b816001811462000c12576002811462000c1d5762000c53565b600191505062000cbc565b60ff84111562000c325762000c3162000b40565b5b8360020a91508482111562000c4c5762000c4b62000b40565b5b5062000cbc565b5060208310610133831016604e8410600b841016171562000c8d5782820a90508381111562000c875762000c8662000b40565b5b62000cbc565b62000c9c848484600162000b7c565b9250905081840481111562000cb65762000cb562000b40565b5b81810290505b9392505050565b600062000cd0826200060c565b915062000cdd8362000647565b925062000d0c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bd7565b905092915050565b600062000d21826200060c565b915062000d2e836200060c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d6a5762000d6962000b40565b5b828202905092915050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000dbe601f8362000d75565b915062000dcb8262000d86565b602082019050919050565b6000602082019050818103600083015262000df18162000daf565b9050919050565b62000e03816200060c565b82525050565b600060208201905062000e20600083018462000df8565b92915050565b600062000e33826200060c565b915062000e40836200060c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000e785762000e7762000b40565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000ebb601b8362000d75565b915062000ec88262000e83565b602082019050919050565b6000602082019050818103600083015262000eee8162000eac565b9050919050565b6127988062000f056000396000f3fe6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103c0578063beb9716d146103fd578063c1eb184014610428578063dd62ed3e14610453578063f2fde38b146104905761011f565b8063715018a6146102ed5780638da5cb5b1461030457806395d89b411461032f5780639dc29fac1461035a578063a457c2d7146103835761011f565b8063313ce567116100e7578063313ce567146101f457806332fb56ca1461021f578063395093511461024a57806340c10f191461028757806370a08231146102b05761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b506101396104b9565b6040516101469190611ba0565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190611c5b565b61054b565b6040516101839190611cb6565b60405180910390f35b34801561019857600080fd5b506101a1610569565b6040516101ae9190611ce0565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190611cfb565b610573565b6040516101eb9190611cb6565b60405180910390f35b34801561020057600080fd5b5061020961064c565b6040516102169190611d6a565b60405180910390f35b34801561022b57600080fd5b50610234610663565b6040516102419190611e81565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190611c5b565b610782565b60405161027e9190611cb6565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190611c5b565b610835565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190611ea3565b610929565b6040516102e49190611ce0565b60405180910390f35b3480156102f957600080fd5b50610302610971565b005b34801561031057600080fd5b50610319610ac9565b6040516103269190611edf565b60405180910390f35b34801561033b57600080fd5b50610344610af3565b6040516103519190611ba0565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190611c5b565b610b85565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190611c5b565b610c79565b6040516103b79190611cb6565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611c5b565b610d46565b6040516103f49190611cb6565b60405180910390f35b34801561040957600080fd5b50610412610d64565b60405161041f9190611cb6565b60405180910390f35b34801561043457600080fd5b5061043d610d77565b60405161044a9190611cb6565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190611efa565b610d8a565b6040516104879190611ce0565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b29190611ea3565b610e11565b005b6060600380546104c890611f69565b80601f01602080910402602001604051908101604052809291908181526020018280546104f490611f69565b80156105415780601f1061051657610100808354040283529160200191610541565b820191906000526020600020905b81548152906001019060200180831161052457829003601f168201915b5050505050905090565b600061055f610558611035565b848461103d565b6001905092915050565b6000600254905090565b6000610580848484611206565b6106418461058c611035565b61063c8560405180606001604052806028815260200161271660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f2611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b61103d565b600190509392505050565b6000600560149054906101000a900460ff16905090565b6060600060088054905067ffffffffffffffff81111561068657610685611f9a565b5b6040519080825280602002602001820160405280156106bf57816020015b6106ac611ad7565b8152602001906001900390816106a45790505b50905060005b60088054905081101561077a576000600882815481106106e8576106e7611fc9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200161074583610929565b81525083838151811061075b5761075a611fc9565b5b602002602001018190525050808061077290612027565b9150506106c5565b508091505090565b600061082b61078f611035565b8461082685600160006107a0611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b61103d565b6001905092915050565b61083d611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c3906120bb565b60405180910390fd5b600660149054906101000a900460ff1661091b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109129061214d565b60405180910390fd5b610925828261128c565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610979611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906120bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b0290611f69565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2e90611f69565b8015610b7b5780601f10610b5057610100808354040283529160200191610b7b565b820191906000526020600020905b815481529060010190602001808311610b5e57829003601f168201915b5050505050905090565b610b8d611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c13906120bb565b60405180910390fd5b600660159054906101000a900460ff16610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c62906121df565b60405180910390fd5b610c75828261141f565b5050565b6000610d3c610c86611035565b84610d378560405180606001604052806025815260200161273e6025913960016000610cb0611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b61103d565b6001905092915050565b6000610d5a610d53611035565b8484611206565b6001905092915050565b600660149054906101000a900460ff1681565b600660159054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e19611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906120bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90612271565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284610fe69190612291565b90508381101561102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102290612333565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a3906123c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361111b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111290612457565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111f99190611ce0565b60405180910390a3505050565b61120f836115cc565b611218826115cc565b61122383838361175a565b505050565b6000838311158290611270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112679190611ba0565b60405180910390fd5b506000838561127f9190612477565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f2906124f7565b60405180910390fd5b611307600083836119ed565b61131c81600254610fd790919063ffffffff16565b600281905550611373816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114139190611ce0565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590612589565b60405180910390fd5b61149a826000836119ed565b611505816040518060600160405280602281526020016126ce602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061155c816002546119f290919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115c09190611ce0565b60405180910390a35050565b6115d581611a3c565b6117075760405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200161160983610929565b815250600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611757565b61171081610929565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c09061261b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f906126ad565b60405180910390fd5b6118438383836119ed565b6118ae816040518060600160405280602681526020016126f0602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611941816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119e09190611ce0565b60405180910390a3505050565b505050565b6000611a3483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611228565b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b41578082015181840152602081019050611b26565b83811115611b50576000848401525b50505050565b6000601f19601f8301169050919050565b6000611b7282611b07565b611b7c8185611b12565b9350611b8c818560208601611b23565b611b9581611b56565b840191505092915050565b60006020820190508181036000830152611bba8184611b67565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bf282611bc7565b9050919050565b611c0281611be7565b8114611c0d57600080fd5b50565b600081359050611c1f81611bf9565b92915050565b6000819050919050565b611c3881611c25565b8114611c4357600080fd5b50565b600081359050611c5581611c2f565b92915050565b60008060408385031215611c7257611c71611bc2565b5b6000611c8085828601611c10565b9250506020611c9185828601611c46565b9150509250929050565b60008115159050919050565b611cb081611c9b565b82525050565b6000602082019050611ccb6000830184611ca7565b92915050565b611cda81611c25565b82525050565b6000602082019050611cf56000830184611cd1565b92915050565b600080600060608486031215611d1457611d13611bc2565b5b6000611d2286828701611c10565b9350506020611d3386828701611c10565b9250506040611d4486828701611c46565b9150509250925092565b600060ff82169050919050565b611d6481611d4e565b82525050565b6000602082019050611d7f6000830184611d5b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611dba81611be7565b82525050565b611dc981611c25565b82525050565b604082016000820151611de56000850182611db1565b506020820151611df86020850182611dc0565b50505050565b6000611e0a8383611dcf565b60408301905092915050565b6000602082019050919050565b6000611e2e82611d85565b611e388185611d90565b9350611e4383611da1565b8060005b83811015611e74578151611e5b8882611dfe565b9750611e6683611e16565b925050600181019050611e47565b5085935050505092915050565b60006020820190508181036000830152611e9b8184611e23565b905092915050565b600060208284031215611eb957611eb8611bc2565b5b6000611ec784828501611c10565b91505092915050565b611ed981611be7565b82525050565b6000602082019050611ef46000830184611ed0565b92915050565b60008060408385031215611f1157611f10611bc2565b5b6000611f1f85828601611c10565b9250506020611f3085828601611c10565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f8157607f821691505b602082108103611f9457611f93611f3a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061203282611c25565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361206457612063611ff8565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006120a5602083611b12565b91506120b08261206f565b602082019050919050565b600060208201905081810360008301526120d481612098565b9050919050565b7f546865206d696e742066756e6374696f6e2069736e277420616374697661746560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612137602183611b12565b9150612142826120db565b604082019050919050565b600060208201905081810360008301526121668161212a565b9050919050565b7f546865206275726e2066756e6374696f6e2069736e277420616374697661746560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006121c9602183611b12565b91506121d48261216d565b604082019050919050565b600060208201905081810360008301526121f8816121bc565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061225b602683611b12565b9150612266826121ff565b604082019050919050565b6000602082019050818103600083015261228a8161224e565b9050919050565b600061229c82611c25565b91506122a783611c25565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156122dc576122db611ff8565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061231d601b83611b12565b9150612328826122e7565b602082019050919050565b6000602082019050818103600083015261234c81612310565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006123af602483611b12565b91506123ba82612353565b604082019050919050565b600060208201905081810360008301526123de816123a2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612441602283611b12565b915061244c826123e5565b604082019050919050565b6000602082019050818103600083015261247081612434565b9050919050565b600061248282611c25565b915061248d83611c25565b9250828210156124a05761249f611ff8565b5b828203905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006124e1601f83611b12565b91506124ec826124ab565b602082019050919050565b60006020820190508181036000830152612510816124d4565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612573602183611b12565b915061257e82612517565b604082019050919050565b600060208201905081810360008301526125a281612566565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612605602583611b12565b9150612610826125a9565b604082019050919050565b60006020820190508181036000830152612634816125f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612697602383611b12565b91506126a28261263b565b604082019050919050565b600060208201905081810360008301526126c68161268a565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cb0d18670358ca8e4a0d7c729d94b4c94564037cdceb923cc9cb9f99af91a18064736f6c634300080f003300000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000b796ddf4b7f211147983caa6b41be6a1edae4550000000000000000000000000000000000000000000000000000000000000000b537461626c652043656e74000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000643454e5455530000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101185760003560e01c8063715018a6116100a0578063a9059cbb11610064578063a9059cbb146103c0578063beb9716d146103fd578063c1eb184014610428578063dd62ed3e14610453578063f2fde38b146104905761011f565b8063715018a6146102ed5780638da5cb5b1461030457806395d89b411461032f5780639dc29fac1461035a578063a457c2d7146103835761011f565b8063313ce567116100e7578063313ce567146101f457806332fb56ca1461021f578063395093511461024a57806340c10f191461028757806370a08231146102b05761011f565b806306fdde0314610124578063095ea7b31461014f57806318160ddd1461018c57806323b872dd146101b75761011f565b3661011f57005b600080fd5b34801561013057600080fd5b506101396104b9565b6040516101469190611ba0565b60405180910390f35b34801561015b57600080fd5b5061017660048036038101906101719190611c5b565b61054b565b6040516101839190611cb6565b60405180910390f35b34801561019857600080fd5b506101a1610569565b6040516101ae9190611ce0565b60405180910390f35b3480156101c357600080fd5b506101de60048036038101906101d99190611cfb565b610573565b6040516101eb9190611cb6565b60405180910390f35b34801561020057600080fd5b5061020961064c565b6040516102169190611d6a565b60405180910390f35b34801561022b57600080fd5b50610234610663565b6040516102419190611e81565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c9190611c5b565b610782565b60405161027e9190611cb6565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a99190611c5b565b610835565b005b3480156102bc57600080fd5b506102d760048036038101906102d29190611ea3565b610929565b6040516102e49190611ce0565b60405180910390f35b3480156102f957600080fd5b50610302610971565b005b34801561031057600080fd5b50610319610ac9565b6040516103269190611edf565b60405180910390f35b34801561033b57600080fd5b50610344610af3565b6040516103519190611ba0565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c9190611c5b565b610b85565b005b34801561038f57600080fd5b506103aa60048036038101906103a59190611c5b565b610c79565b6040516103b79190611cb6565b60405180910390f35b3480156103cc57600080fd5b506103e760048036038101906103e29190611c5b565b610d46565b6040516103f49190611cb6565b60405180910390f35b34801561040957600080fd5b50610412610d64565b60405161041f9190611cb6565b60405180910390f35b34801561043457600080fd5b5061043d610d77565b60405161044a9190611cb6565b60405180910390f35b34801561045f57600080fd5b5061047a60048036038101906104759190611efa565b610d8a565b6040516104879190611ce0565b60405180910390f35b34801561049c57600080fd5b506104b760048036038101906104b29190611ea3565b610e11565b005b6060600380546104c890611f69565b80601f01602080910402602001604051908101604052809291908181526020018280546104f490611f69565b80156105415780601f1061051657610100808354040283529160200191610541565b820191906000526020600020905b81548152906001019060200180831161052457829003601f168201915b5050505050905090565b600061055f610558611035565b848461103d565b6001905092915050565b6000600254905090565b6000610580848484611206565b6106418461058c611035565b61063c8560405180606001604052806028815260200161271660289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f2611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b61103d565b600190509392505050565b6000600560149054906101000a900460ff16905090565b6060600060088054905067ffffffffffffffff81111561068657610685611f9a565b5b6040519080825280602002602001820160405280156106bf57816020015b6106ac611ad7565b8152602001906001900390816106a45790505b50905060005b60088054905081101561077a576000600882815481106106e8576106e7611fc9565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200161074583610929565b81525083838151811061075b5761075a611fc9565b5b602002602001018190525050808061077290612027565b9150506106c5565b508091505090565b600061082b61078f611035565b8461082685600160006107a0611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b61103d565b6001905092915050565b61083d611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c3906120bb565b60405180910390fd5b600660149054906101000a900460ff1661091b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109129061214d565b60405180910390fd5b610925828261128c565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610979611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a08576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ff906120bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610b0290611f69565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2e90611f69565b8015610b7b5780601f10610b5057610100808354040283529160200191610b7b565b820191906000526020600020905b815481529060010190602001808311610b5e57829003601f168201915b5050505050905090565b610b8d611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c13906120bb565b60405180910390fd5b600660159054906101000a900460ff16610c6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c62906121df565b60405180910390fd5b610c75828261141f565b5050565b6000610d3c610c86611035565b84610d378560405180606001604052806025815260200161273e6025913960016000610cb0611035565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b61103d565b6001905092915050565b6000610d5a610d53611035565b8484611206565b6001905092915050565b600660149054906101000a900460ff1681565b600660159054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e19611035565b73ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ea8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9f906120bb565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0e90612271565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808284610fe69190612291565b90508381101561102b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102290612333565b60405180910390fd5b8091505092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a3906123c5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361111b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111290612457565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111f99190611ce0565b60405180910390a3505050565b61120f836115cc565b611218826115cc565b61122383838361175a565b505050565b6000838311158290611270576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112679190611ba0565b60405180910390fd5b506000838561127f9190612477565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f2906124f7565b60405180910390fd5b611307600083836119ed565b61131c81600254610fd790919063ffffffff16565b600281905550611373816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516114139190611ce0565b60405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361148e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148590612589565b60405180910390fd5b61149a826000836119ed565b611505816040518060600160405280602281526020016126ce602291396000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061155c816002546119f290919063ffffffff16565b600281905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115c09190611ce0565b60405180910390a35050565b6115d581611a3c565b6117075760405180604001604052808273ffffffffffffffffffffffffffffffffffffffff16815260200161160983610929565b815250600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101559050506008819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611757565b61171081610929565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600101819055505b50565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036117c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c09061261b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611838576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182f906126ad565b60405180910390fd5b6118438383836119ed565b6118ae816040518060600160405280602681526020016126f0602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546112289092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611941816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd790919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119e09190611ce0565b60405180910390a3505050565b505050565b6000611a3483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611228565b905092915050565b60008073ffffffffffffffffffffffffffffffffffffffff16600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600081525090565b600081519050919050565b600082825260208201905092915050565b60005b83811015611b41578082015181840152602081019050611b26565b83811115611b50576000848401525b50505050565b6000601f19601f8301169050919050565b6000611b7282611b07565b611b7c8185611b12565b9350611b8c818560208601611b23565b611b9581611b56565b840191505092915050565b60006020820190508181036000830152611bba8184611b67565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611bf282611bc7565b9050919050565b611c0281611be7565b8114611c0d57600080fd5b50565b600081359050611c1f81611bf9565b92915050565b6000819050919050565b611c3881611c25565b8114611c4357600080fd5b50565b600081359050611c5581611c2f565b92915050565b60008060408385031215611c7257611c71611bc2565b5b6000611c8085828601611c10565b9250506020611c9185828601611c46565b9150509250929050565b60008115159050919050565b611cb081611c9b565b82525050565b6000602082019050611ccb6000830184611ca7565b92915050565b611cda81611c25565b82525050565b6000602082019050611cf56000830184611cd1565b92915050565b600080600060608486031215611d1457611d13611bc2565b5b6000611d2286828701611c10565b9350506020611d3386828701611c10565b9250506040611d4486828701611c46565b9150509250925092565b600060ff82169050919050565b611d6481611d4e565b82525050565b6000602082019050611d7f6000830184611d5b565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611dba81611be7565b82525050565b611dc981611c25565b82525050565b604082016000820151611de56000850182611db1565b506020820151611df86020850182611dc0565b50505050565b6000611e0a8383611dcf565b60408301905092915050565b6000602082019050919050565b6000611e2e82611d85565b611e388185611d90565b9350611e4383611da1565b8060005b83811015611e74578151611e5b8882611dfe565b9750611e6683611e16565b925050600181019050611e47565b5085935050505092915050565b60006020820190508181036000830152611e9b8184611e23565b905092915050565b600060208284031215611eb957611eb8611bc2565b5b6000611ec784828501611c10565b91505092915050565b611ed981611be7565b82525050565b6000602082019050611ef46000830184611ed0565b92915050565b60008060408385031215611f1157611f10611bc2565b5b6000611f1f85828601611c10565b9250506020611f3085828601611c10565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611f8157607f821691505b602082108103611f9457611f93611f3a565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061203282611c25565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361206457612063611ff8565b5b600182019050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006120a5602083611b12565b91506120b08261206f565b602082019050919050565b600060208201905081810360008301526120d481612098565b9050919050565b7f546865206d696e742066756e6374696f6e2069736e277420616374697661746560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b6000612137602183611b12565b9150612142826120db565b604082019050919050565b600060208201905081810360008301526121668161212a565b9050919050565b7f546865206275726e2066756e6374696f6e2069736e277420616374697661746560008201527f6400000000000000000000000000000000000000000000000000000000000000602082015250565b60006121c9602183611b12565b91506121d48261216d565b604082019050919050565b600060208201905081810360008301526121f8816121bc565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061225b602683611b12565b9150612266826121ff565b604082019050919050565b6000602082019050818103600083015261228a8161224e565b9050919050565b600061229c82611c25565b91506122a783611c25565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156122dc576122db611ff8565b5b828201905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061231d601b83611b12565b9150612328826122e7565b602082019050919050565b6000602082019050818103600083015261234c81612310565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006123af602483611b12565b91506123ba82612353565b604082019050919050565b600060208201905081810360008301526123de816123a2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612441602283611b12565b915061244c826123e5565b604082019050919050565b6000602082019050818103600083015261247081612434565b9050919050565b600061248282611c25565b915061248d83611c25565b9250828210156124a05761249f611ff8565b5b828203905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006124e1601f83611b12565b91506124ec826124ab565b602082019050919050565b60006020820190508181036000830152612510816124d4565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612573602183611b12565b915061257e82612517565b604082019050919050565b600060208201905081810360008301526125a281612566565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612605602583611b12565b9150612610826125a9565b604082019050919050565b60006020820190508181036000830152612634816125f8565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612697602383611b12565b91506126a28261263b565b604082019050919050565b600060208201905081810360008301526126c68161268a565b905091905056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220cb0d18670358ca8e4a0d7c729d94b4c94564037cdceb923cc9cb9f99af91a18064736f6c634300080f0033

Deployed Bytecode Sourcemap

9811:2172:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5683:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6623:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6016:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6802:355;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5905:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10911:360;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7167:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10553:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6134:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4679:148;;;;;;;;;;;;;:::i;:::-;;4461:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5791:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10732:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7395:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6277:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9859:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9885;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6462:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4837:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5683:100;5737:13;5770:5;5763:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5683:100;:::o;6623:169::-;6706:4;6723:39;6732:12;:10;:12::i;:::-;6746:7;6755:6;6723:8;:39::i;:::-;6780:4;6773:11;;6623:169;;;;:::o;6016:108::-;6077:7;6104:12;;6097:19;;6016:108;:::o;6802:355::-;6942:4;6959:36;6969:6;6977:9;6988:6;6959:9;:36::i;:::-;7006:121;7015:6;7023:12;:10;:12::i;:::-;7037:89;7075:6;7037:89;;;;;;;;;;;;;;;;;:11;:19;7049:6;7037:19;;;;;;;;;;;;;;;:33;7057:12;:10;:12::i;:::-;7037:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7006:8;:121::i;:::-;7145:4;7138:11;;6802:355;;;;;:::o;5905:100::-;5963:5;5988:9;;;;;;;;;;;5981:16;;5905:100;:::o;10911:360::-;10962:15;10990:28;11034:10;:17;;;;11021:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;10990:62;;11068:9;11063:171;11087:10;:17;;;;11083:1;:21;11063:171;;;11126:14;11143:10;11154:1;11143:13;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11126:30;;11189:33;;;;;;;;11196:6;11189:33;;;;;;11204:17;11214:6;11204:9;:17::i;:::-;11189:33;;;11171:12;11184:1;11171:15;;;;;;;;:::i;:::-;;;;;;;:51;;;;11111:123;11106:3;;;;;:::i;:::-;;;;11063:171;;;;11251:12;11244:19;;;10911:360;:::o;7167:218::-;7255:4;7272:83;7281:12;:10;:12::i;:::-;7295:7;7304:50;7343:10;7304:11;:25;7316:12;:10;:12::i;:::-;7304:25;;;;;;;;;;;;;;;:34;7330:7;7304:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;7272:8;:83::i;:::-;7373:4;7366:11;;7167:218;;;;:::o;10553:171::-;4600:12;:10;:12::i;:::-;4590:22;;:6;;;;;;;;;;;:22;;;4582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10638:7:::1;;;;;;;;;;;10630:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;10694:22;10700:7;10709:6;10694:5;:22::i;:::-;10553:171:::0;;:::o;6134:127::-;6208:7;6235:9;:18;6245:7;6235:18;;;;;;;;;;;;;;;;6228:25;;6134:127;;;:::o;4679:148::-;4600:12;:10;:12::i;:::-;4590:22;;:6;;;;;;;;;;;:22;;;4582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4786:1:::1;4749:40;;4770:6;;;;;;;;;;;4749:40;;;;;;;;;;;;4817:1;4800:6;;:19;;;;;;;;;;;;;;;;;;4679:148::o:0;4461:79::-;4499:7;4526:6;;;;;;;;;;;4519:13;;4461:79;:::o;5791:104::-;5847:13;5880:7;5873:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5791:104;:::o;10732:171::-;4600:12;:10;:12::i;:::-;4590:22;;:6;;;;;;;;;;;:22;;;4582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10817:7:::1;;;;;;;;;;;10809:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;10873:22;10879:7;10888:6;10873:5;:22::i;:::-;10732:171:::0;;:::o;7395:269::-;7488:4;7505:129;7514:12;:10;:12::i;:::-;7528:7;7537:96;7576:15;7537:96;;;;;;;;;;;;;;;;;:11;:25;7549:12;:10;:12::i;:::-;7537:25;;;;;;;;;;;;;;;:34;7563:7;7537:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;7505:8;:129::i;:::-;7652:4;7645:11;;7395:269;;;;:::o;6277:175::-;6363:4;6380:42;6390:12;:10;:12::i;:::-;6404:9;6415:6;6380:9;:42::i;:::-;6440:4;6433:11;;6277:175;;;;:::o;9859:19::-;;;;;;;;;;;;;:::o;9885:::-;;;;;;;;;;;;;:::o;6462:151::-;6551:7;6578:11;:18;6590:5;6578:18;;;;;;;;;;;;;;;:27;6597:7;6578:27;;;;;;;;;;;;;;;;6571:34;;6462:151;;;;:::o;4837:244::-;4600:12;:10;:12::i;:::-;4590:22;;:6;;;;;;;;;;;:22;;;4582:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4946:1:::1;4926:22;;:8;:22;;::::0;4918:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;5036:8;5007:38;;5028:6;;;;;;;;;;;5007:38;;;;;;;;;;;;5065:8;5056:6;;:17;;;;;;;;;;;;;;;;;;4837:244:::0;:::o;1312:181::-;1370:7;1390:9;1406:1;1402;:5;;;;:::i;:::-;1390:17;;1431:1;1426;:6;;1418:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1484:1;1477:8;;;1312:181;;;;:::o;1057:98::-;1110:7;1137:10;1130:17;;1057:98;:::o;9074:380::-;9227:1;9210:19;;:5;:19;;;9202:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9308:1;9289:21;;:7;:21;;;9281:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9392:6;9362:11;:18;9374:5;9362:18;;;;;;;;;;;;;;;:27;9381:7;9362:27;;;;;;;;;;;;;;;:36;;;;9430:7;9414:32;;9423:5;9414:32;;;9439:6;9414:32;;;;;;:::i;:::-;;;;;;;;9074:380;;;:::o;11279:252::-;11412:22;11427:6;11412:14;:22::i;:::-;11445:25;11460:9;11445:14;:25::i;:::-;11481:42;11497:6;11505:9;11516:6;11481:15;:42::i;:::-;11279:252;;;:::o;1645:192::-;1731:7;1764:1;1759;:6;;1767:12;1751:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1791:9;1807:1;1803;:5;;;;:::i;:::-;1791:17;;1828:1;1821:8;;;1645:192;;;;;:::o;8258:378::-;8361:1;8342:21;;:7;:21;;;8334:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8412:49;8441:1;8445:7;8454:6;8412:20;:49::i;:::-;8489:24;8506:6;8489:12;;:16;;:24;;;;:::i;:::-;8474:12;:39;;;;8545:30;8568:6;8545:9;:18;8555:7;8545:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;8524:9;:18;8534:7;8524:18;;;;;;;;;;;;;;;:51;;;;8612:7;8591:37;;8608:1;8591:37;;;8621:6;8591:37;;;;;;:::i;:::-;;;;;;;;8258:378;;:::o;8646:418::-;8749:1;8730:21;;:7;:21;;;8722:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8802:49;8823:7;8840:1;8844:6;8802:20;:49::i;:::-;8885:68;8908:6;8885:68;;;;;;;;;;;;;;;;;:9;:18;8895:7;8885:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;8864:9;:18;8874:7;8864:18;;;;;;;;;;;;;;;:89;;;;8979:24;8996:6;8979:12;;:16;;:24;;;;:::i;:::-;8964:12;:39;;;;9045:1;9019:37;;9028:7;9019:37;;;9049:6;9019:37;;;;;;:::i;:::-;;;;;;;;8646:418;;:::o;11539:287::-;11603:17;11613:6;11603:9;:17::i;:::-;11598:221;;11655:33;;;;;;;;11662:6;11655:33;;;;;;11670:17;11680:6;11670:9;:17::i;:::-;11655:33;;;11637:7;:15;11645:6;11637:15;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11703:10;11719:6;11703:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11598:221;;;11790:17;11800:6;11790:9;:17::i;:::-;11759:7;:15;11767:6;11759:15;;;;;;;;;;;;;;;:28;;:48;;;;11598:221;11539:287;:::o;7674:573::-;7832:1;7814:20;;:6;:20;;;7806:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7916:1;7895:23;;:9;:23;;;7887:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7971:47;7992:6;8000:9;8011:6;7971:20;:47::i;:::-;8051:71;8073:6;8051:71;;;;;;;;;;;;;;;;;:9;:17;8061:6;8051:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;8031:9;:17;8041:6;8031:17;;;;;;;;;;;;;;;:91;;;;8156:32;8181:6;8156:9;:20;8166:9;8156:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8133:9;:20;8143:9;8133:20;;;;;;;;;;;;;;;:55;;;;8221:9;8204:35;;8213:6;8204:35;;;8232:6;8204:35;;;;;;:::i;:::-;;;;;;;;7674:573;;;:::o;9673:131::-;;;;:::o;1501:136::-;1559:7;1586:43;1590:1;1593;1586:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1579:50;;1501:136;;;;:::o;11834:146::-;11898:4;11970:1;11922:50;;:7;:22;11930:13;11922:22;;;;;;;;;;;;;;;:36;;;;;;;;;;;;:50;;;;11915:57;;11834:146;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::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:138::-;4992:6;5026:5;5020:12;5010:22;;4901:138;;;:::o;5045:208::-;5168:11;5202:6;5197:3;5190:19;5242:4;5237:3;5233:14;5218:29;;5045:208;;;;:::o;5259:156::-;5350:4;5373:3;5365:11;;5403:4;5398:3;5394:14;5386:22;;5259:156;;;:::o;5421:108::-;5498:24;5516:5;5498:24;:::i;:::-;5493:3;5486:37;5421:108;;:::o;5535:::-;5612:24;5630:5;5612:24;:::i;:::-;5607:3;5600:37;5535:108;;:::o;5715:512::-;5850:4;5845:3;5841:14;5946:4;5939:5;5935:16;5929:23;5965:63;6022:4;6017:3;6013:14;5999:12;5965:63;:::i;:::-;5865:173;6128:4;6121:5;6117:16;6111:23;6147:63;6204:4;6199:3;6195:14;6181:12;6147:63;:::i;:::-;6048:172;5819:408;5715:512;;:::o;6233:275::-;6350:10;6371:94;6461:3;6453:6;6371:94;:::i;:::-;6497:4;6492:3;6488:14;6474:28;;6233:275;;;;:::o;6514:137::-;6608:4;6640;6635:3;6631:14;6623:22;;6514:137;;;:::o;6727:924::-;6894:3;6923:78;6995:5;6923:78;:::i;:::-;7017:110;7120:6;7115:3;7017:110;:::i;:::-;7010:117;;7151:80;7225:5;7151:80;:::i;:::-;7254:7;7285:1;7270:356;7295:6;7292:1;7289:13;7270:356;;;7371:6;7365:13;7398:111;7505:3;7490:13;7398:111;:::i;:::-;7391:118;;7532:84;7609:6;7532:84;:::i;:::-;7522:94;;7330:296;7317:1;7314;7310:9;7305:14;;7270:356;;;7274:14;7642:3;7635:10;;6899:752;;;6727:924;;;;:::o;7657:469::-;7848:4;7886:2;7875:9;7871:18;7863:26;;7935:9;7929:4;7925:20;7921:1;7910:9;7906:17;7899:47;7963:156;8114:4;8105:6;7963:156;:::i;:::-;7955:164;;7657:469;;;;:::o;8132:329::-;8191:6;8240:2;8228:9;8219:7;8215:23;8211:32;8208:119;;;8246:79;;:::i;:::-;8208:119;8366:1;8391:53;8436:7;8427:6;8416:9;8412:22;8391:53;:::i;:::-;8381:63;;8337:117;8132:329;;;;:::o;8467:118::-;8554:24;8572:5;8554:24;:::i;:::-;8549:3;8542:37;8467:118;;:::o;8591:222::-;8684:4;8722:2;8711:9;8707:18;8699:26;;8735:71;8803:1;8792:9;8788:17;8779:6;8735:71;:::i;:::-;8591:222;;;;:::o;8819:474::-;8887:6;8895;8944:2;8932:9;8923:7;8919:23;8915:32;8912:119;;;8950:79;;:::i;:::-;8912:119;9070:1;9095:53;9140:7;9131:6;9120:9;9116:22;9095:53;:::i;:::-;9085:63;;9041:117;9197:2;9223:53;9268:7;9259:6;9248:9;9244:22;9223:53;:::i;:::-;9213:63;;9168:118;8819:474;;;;;:::o;9299:180::-;9347:77;9344:1;9337:88;9444:4;9441:1;9434:15;9468:4;9465:1;9458:15;9485:320;9529:6;9566:1;9560:4;9556:12;9546:22;;9613:1;9607:4;9603:12;9634:18;9624:81;;9690:4;9682:6;9678:17;9668:27;;9624:81;9752:2;9744:6;9741:14;9721:18;9718:38;9715:84;;9771:18;;:::i;:::-;9715:84;9536:269;9485:320;;;:::o;9811:180::-;9859:77;9856:1;9849:88;9956:4;9953:1;9946:15;9980:4;9977:1;9970:15;9997:180;10045:77;10042:1;10035:88;10142:4;10139:1;10132:15;10166:4;10163:1;10156:15;10183:180;10231:77;10228:1;10221:88;10328:4;10325:1;10318:15;10352:4;10349:1;10342:15;10369:233;10408:3;10431:24;10449:5;10431:24;:::i;:::-;10422:33;;10477:66;10470:5;10467:77;10464:103;;10547:18;;:::i;:::-;10464:103;10594:1;10587:5;10583:13;10576:20;;10369:233;;;:::o;10608:182::-;10748:34;10744:1;10736:6;10732:14;10725:58;10608:182;:::o;10796:366::-;10938:3;10959:67;11023:2;11018:3;10959:67;:::i;:::-;10952:74;;11035:93;11124:3;11035:93;:::i;:::-;11153:2;11148:3;11144:12;11137:19;;10796:366;;;:::o;11168:419::-;11334:4;11372:2;11361:9;11357:18;11349:26;;11421:9;11415:4;11411:20;11407:1;11396:9;11392:17;11385:47;11449:131;11575:4;11449:131;:::i;:::-;11441:139;;11168:419;;;:::o;11593:220::-;11733:34;11729:1;11721:6;11717:14;11710:58;11802:3;11797:2;11789:6;11785:15;11778:28;11593:220;:::o;11819:366::-;11961:3;11982:67;12046:2;12041:3;11982:67;:::i;:::-;11975:74;;12058:93;12147:3;12058:93;:::i;:::-;12176:2;12171:3;12167:12;12160:19;;11819:366;;;:::o;12191:419::-;12357:4;12395:2;12384:9;12380:18;12372:26;;12444:9;12438:4;12434:20;12430:1;12419:9;12415:17;12408:47;12472:131;12598:4;12472:131;:::i;:::-;12464:139;;12191:419;;;:::o;12616:220::-;12756:34;12752:1;12744:6;12740:14;12733:58;12825:3;12820:2;12812:6;12808:15;12801:28;12616:220;:::o;12842:366::-;12984:3;13005:67;13069:2;13064:3;13005:67;:::i;:::-;12998:74;;13081:93;13170:3;13081:93;:::i;:::-;13199:2;13194:3;13190:12;13183:19;;12842:366;;;:::o;13214:419::-;13380:4;13418:2;13407:9;13403:18;13395:26;;13467:9;13461:4;13457:20;13453:1;13442:9;13438:17;13431:47;13495:131;13621:4;13495:131;:::i;:::-;13487:139;;13214:419;;;:::o;13639:225::-;13779:34;13775:1;13767:6;13763:14;13756:58;13848:8;13843:2;13835:6;13831:15;13824:33;13639:225;:::o;13870:366::-;14012:3;14033:67;14097:2;14092:3;14033:67;:::i;:::-;14026:74;;14109:93;14198:3;14109:93;:::i;:::-;14227:2;14222:3;14218:12;14211:19;;13870:366;;;:::o;14242:419::-;14408:4;14446:2;14435:9;14431:18;14423:26;;14495:9;14489:4;14485:20;14481:1;14470:9;14466:17;14459:47;14523:131;14649:4;14523:131;:::i;:::-;14515:139;;14242:419;;;:::o;14667:305::-;14707:3;14726:20;14744:1;14726:20;:::i;:::-;14721:25;;14760:20;14778:1;14760:20;:::i;:::-;14755:25;;14914:1;14846:66;14842:74;14839:1;14836:81;14833:107;;;14920:18;;:::i;:::-;14833:107;14964:1;14961;14957:9;14950:16;;14667:305;;;;:::o;14978:177::-;15118:29;15114:1;15106:6;15102:14;15095:53;14978:177;:::o;15161:366::-;15303:3;15324:67;15388:2;15383:3;15324:67;:::i;:::-;15317:74;;15400:93;15489:3;15400:93;:::i;:::-;15518:2;15513:3;15509:12;15502:19;;15161:366;;;:::o;15533:419::-;15699:4;15737:2;15726:9;15722:18;15714:26;;15786:9;15780:4;15776:20;15772:1;15761:9;15757:17;15750:47;15814:131;15940:4;15814:131;:::i;:::-;15806:139;;15533:419;;;:::o;15958:223::-;16098:34;16094:1;16086:6;16082:14;16075:58;16167:6;16162:2;16154:6;16150:15;16143:31;15958:223;:::o;16187:366::-;16329:3;16350:67;16414:2;16409:3;16350:67;:::i;:::-;16343:74;;16426:93;16515:3;16426:93;:::i;:::-;16544:2;16539:3;16535:12;16528:19;;16187:366;;;:::o;16559:419::-;16725:4;16763:2;16752:9;16748:18;16740:26;;16812:9;16806:4;16802:20;16798:1;16787:9;16783:17;16776:47;16840:131;16966:4;16840:131;:::i;:::-;16832:139;;16559:419;;;:::o;16984:221::-;17124:34;17120:1;17112:6;17108:14;17101:58;17193:4;17188:2;17180:6;17176:15;17169:29;16984:221;:::o;17211:366::-;17353:3;17374:67;17438:2;17433:3;17374:67;:::i;:::-;17367:74;;17450:93;17539:3;17450:93;:::i;:::-;17568:2;17563:3;17559:12;17552:19;;17211:366;;;:::o;17583:419::-;17749:4;17787:2;17776:9;17772:18;17764:26;;17836:9;17830:4;17826:20;17822:1;17811:9;17807:17;17800:47;17864:131;17990:4;17864:131;:::i;:::-;17856:139;;17583:419;;;:::o;18008:191::-;18048:4;18068:20;18086:1;18068:20;:::i;:::-;18063:25;;18102:20;18120:1;18102:20;:::i;:::-;18097:25;;18141:1;18138;18135:8;18132:34;;;18146:18;;:::i;:::-;18132:34;18191:1;18188;18184:9;18176:17;;18008:191;;;;:::o;18205:181::-;18345:33;18341:1;18333:6;18329:14;18322:57;18205:181;:::o;18392:366::-;18534:3;18555:67;18619:2;18614:3;18555:67;:::i;:::-;18548:74;;18631:93;18720:3;18631:93;:::i;:::-;18749:2;18744:3;18740:12;18733:19;;18392:366;;;:::o;18764:419::-;18930:4;18968:2;18957:9;18953:18;18945:26;;19017:9;19011:4;19007:20;19003:1;18992:9;18988:17;18981:47;19045:131;19171:4;19045:131;:::i;:::-;19037:139;;18764:419;;;:::o;19189:220::-;19329:34;19325:1;19317:6;19313:14;19306:58;19398:3;19393:2;19385:6;19381:15;19374:28;19189:220;:::o;19415:366::-;19557:3;19578:67;19642:2;19637:3;19578:67;:::i;:::-;19571:74;;19654:93;19743:3;19654:93;:::i;:::-;19772:2;19767:3;19763:12;19756:19;;19415:366;;;:::o;19787:419::-;19953:4;19991:2;19980:9;19976:18;19968:26;;20040:9;20034:4;20030:20;20026:1;20015:9;20011:17;20004:47;20068:131;20194:4;20068:131;:::i;:::-;20060:139;;19787:419;;;:::o;20212:224::-;20352:34;20348:1;20340:6;20336:14;20329:58;20421:7;20416:2;20408:6;20404:15;20397:32;20212:224;:::o;20442:366::-;20584:3;20605:67;20669:2;20664:3;20605:67;:::i;:::-;20598:74;;20681:93;20770:3;20681:93;:::i;:::-;20799:2;20794:3;20790:12;20783:19;;20442:366;;;:::o;20814:419::-;20980:4;21018:2;21007:9;21003:18;20995:26;;21067:9;21061:4;21057:20;21053:1;21042:9;21038:17;21031:47;21095:131;21221:4;21095:131;:::i;:::-;21087:139;;20814:419;;;:::o;21239:222::-;21379:34;21375:1;21367:6;21363:14;21356:58;21448:5;21443:2;21435:6;21431:15;21424:30;21239:222;:::o;21467:366::-;21609:3;21630:67;21694:2;21689:3;21630:67;:::i;:::-;21623:74;;21706:93;21795:3;21706:93;:::i;:::-;21824:2;21819:3;21815:12;21808:19;;21467:366;;;:::o;21839:419::-;22005:4;22043:2;22032:9;22028:18;22020:26;;22092:9;22086:4;22082:20;22078:1;22067:9;22063:17;22056:47;22120:131;22246:4;22120:131;:::i;:::-;22112:139;;21839:419;;;:::o

Swarm Source

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