ETH Price: $3,348.90 (-1.18%)

Token

Thopi Services (TOIS)
 

Overview

Max Total Supply

8,207,512,000.0000000000000001 TOIS

Holders

19,284

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
100,000 TOIS

Value
$0.00
0xaf312f28733e8ce2ba5b6176d73185f949120bce
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
thopi_token

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity Multiple files format)

File 8 of 10: thopi.sol
pragma solidity ^0.5.11;

import "./TokenRecipient.sol";

contract thopi_token is AccountFrozenBalances, Ownable, Whitelisted, Burnable, Pausable, Mintable, Meltable {
    using SafeMath for uint256;

    string public name;
    string public symbol;
    uint8 public decimals;


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


    modifier canTransfer() {
        if(paused()){
            require (isWhitelisted(msg.sender) == true, "can't perform an action");
        }
        _;
    }

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

    event Freeze(address indexed from, uint256 amount);
    event Melt(address indexed from, uint256 amount);
    event MintFrozen(address indexed to, uint256 amount);
    event FrozenTransfer(address indexed from, address indexed to, uint256 value);

    constructor (string memory _name, string memory _symbol, uint8 _decimals) public {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
        mint(msg.sender, 100);
    }

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

    function balanceOf(address account) public view returns (uint256) {
        return _balances[account].add(_frozen_balanceOf(account));
    }

    function transfer(address recipient, uint256 amount) public canTransfer returns (bool) {
        require(recipient != address(this), "can't transfer tokens to the contract address");

        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 value) public returns (bool) {
        _approve(msg.sender, spender, value);
        return true;
    }

    /* Approve and then communicate the approved contract in a single tx */
    function approveAndCall(address _spender, uint256 _value, bytes memory _extraData) public returns (bool) {
        TokenRecipient spender = TokenRecipient(_spender);
        if (approve(_spender, _value)) {
            spender.receiveApproval(msg.sender, _value, address(this), _extraData);
            return true;
        } else {
            return false;
        }
    }

    function transferFrom(address sender, address recipient, uint256 amount) public canTransfer returns (bool) {
        require(recipient != address(this), "can't transfer tokens to the contract address");

        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount));
        return true;
    }


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


    function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
        _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue));
        return true;
    }

    function mint(address account, uint256 amount) public onlyMinter returns (bool) {
        _mint(account, amount);
        return true;
    }

    function burn(uint256 amount) public whenBurn {
        _burn(msg.sender, amount);
    }

    function burnFrom(address account, uint256 amount) public whenBurn {
        _burnFrom(account, amount);
    }

    function destroy(address account, uint256 amount) public onlyOwner {
        _burn(account, amount);
    }

    function destroyFrozen(address account, uint256 amount) public onlyOwner {
        _burnFrozen(account, amount);
    }

    function mintBatchToken(address[] calldata accounts, uint256[] calldata amounts) external onlyMinter returns (bool) {
        require(accounts.length > 0, "mintBatchToken: transfer should be to at least one address");
        require(accounts.length == amounts.length, "mintBatchToken: recipients.length != amounts.length");
        for (uint256 i = 0; i < accounts.length; i++) {
            _mint(accounts[i], amounts[i]);
        }

        return true;
    }

    function transferFrozenToken(address from, address to, uint256 amount) public onlyOwner returns (bool) {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        _frozen_sub(from, amount);
        _frozen_add(to, amount);

        emit FrozenTransfer(from, to, amount);
        emit Transfer(from, to, amount);

        return true;
    }

    function freezeTokens(address account, uint256 amount) public onlyOwner returns (bool) {
        _freeze(account, amount);
        emit Transfer(account, address(this), amount);
        return true;
    }

    function meltTokens(address account, uint256 amount) public onlyMelter returns (bool) {
        _melt(account, amount);
        emit Transfer(address(this), account, amount);
        return true;
    }

    function mintFrozenTokens(address account, uint256 amount) public onlyMinter returns (bool) {
        _mintfrozen(account, amount);
        return true;
    }

    function mintBatchFrozenTokens(address[] calldata accounts, uint256[] calldata amounts) external onlyMinter returns (bool) {
        require(accounts.length > 0, "mintBatchFrozenTokens: transfer should be to at least one address");
        require(accounts.length == amounts.length, "mintBatchFrozenTokens: recipients.length != amounts.length");
        for (uint256 i = 0; i < accounts.length; i++) {
            _mintfrozen(accounts[i], amounts[i]);
        }

        return true;
    }

    function meltBatchTokens(address[] calldata accounts, uint256[] calldata amounts) external onlyMelter returns (bool) {
        require(accounts.length > 0, "mintBatchFrozenTokens: transfer should be to at least one address");
        require(accounts.length == amounts.length, "mintBatchFrozenTokens: recipients.length != amounts.length");
        for (uint256 i = 0; i < accounts.length; i++) {
            _melt(accounts[i], amounts[i]);
            emit Transfer(address(this), accounts[i], amounts[i]);
        }

        return true;
    }

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

        _balances[sender] = _balances[sender].sub(amount);
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
    }


    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");
        require(account != address(this), "ERC20: mint to the contract address");
        require(amount > 0, "ERC20: mint amount should be > 0");

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

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

        _totalSupply = _totalSupply.sub(value);
        _balances[account] = _balances[account].sub(value);
        emit Transfer(account, address(this), value);
    }

    function _approve(address _owner, address spender, uint256 value) internal {
        require(_owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[_owner][spender] = value;
        emit Approval(_owner, spender, value);
    }

    function _burnFrom(address account, uint256 amount) internal {
        _burn(account, amount);
        _approve(account, msg.sender, _allowances[account][msg.sender].sub(amount));
    }

    function _freeze(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: freeze from the zero address");
        require(amount > 0, "ERC20: freeze from the address: amount should be > 0");

        _balances[account] = _balances[account].sub(amount);
        _frozen_add(account, amount);

        emit Freeze(account, amount);
    }

    function _mintfrozen(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint frozen to the zero address");
        require(account != address(this), "ERC20: mint frozen to the contract address");
        require(amount > 0, "ERC20: mint frozen amount should be > 0");

        _totalSupply = _totalSupply.add(amount);

        emit Transfer(address(this), account, amount);

        _frozen_add(account, amount);

        emit MintFrozen(account, amount);
    }

    function _melt(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: melt from the zero address");
        require(amount > 0, "ERC20: melt from the address: value should be > 0");
        require(_frozen_balanceOf(account) >= amount, "ERC20: melt from the address: balance < amount");

        _frozen_sub(account, amount);
        _balances[account] = _balances[account].add(amount);

        emit Melt(account, amount);
    }

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

        _totalSupply = _totalSupply.sub(amount);
        _frozen_sub(account, amount);

        emit Transfer(account, address(this), amount);
    }
}

File 1 of 10: AccountFrozenBalances.sol
pragma solidity ^0.5.11;

import "./SafeMath.sol";

contract AccountFrozenBalances {
    using SafeMath for uint256;

    mapping (address => uint256) private frozen_balances;

    function _frozen_add(address _account, uint256 _amount) internal returns (bool) {
        frozen_balances[_account] = frozen_balances[_account].add(_amount);
        return true;
    }

    function _frozen_sub(address _account, uint256 _amount) internal returns (bool) {
        frozen_balances[_account] = frozen_balances[_account].sub(_amount);
        return true;
    }

    function _frozen_balanceOf(address _account) internal view returns (uint) {
        return frozen_balances[_account];
    }
}

File 2 of 10: Burnable.sol
pragma solidity ^0.5.11;

import "./Whitelisted.sol";

contract Burnable {
    bool private _burnallow;
    address private _burner;
    address public pendingBurner;

    modifier whenBurn() {
        require(_burnallow, "burnable: can't burn");
        _;
    }

    modifier onlyBurner() {
        require(msg.sender == _burner, "caller is not a burner");
        _;
    }

    modifier onlyPendingBurner() {
        require(msg.sender == pendingBurner);
        _;
    }

    event BurnerTransferred(address indexed previousBurner, address indexed newBurner);

    constructor () internal {
        _burnallow = true;
        _burner = msg.sender;
    }

    function burnallow() public view returns (bool) {
        return _burnallow;
    }

    function burner() public view returns (address) {
        return _burner;
    }

    function burnTrigger() public onlyBurner {
        _burnallow = !_burnallow;
    }

    function transferWhitelistAdmin(address newBurner) public onlyBurner {
        pendingBurner = newBurner;
    }

    function claimBurner() public onlyPendingBurner {
        emit BurnerTransferred(_burner, pendingBurner);
        _burner = pendingBurner;
        pendingBurner = address(0);
    }
}

File 3 of 10: Meltable.sol
pragma solidity ^0.5.11;

import "./Burnable.sol";

contract Meltable {
    mapping (address => bool) private _melters;
    address private _melteradmin;
    address public pendingMelterAdmin;

    modifier onlyMelterAdmin() {
        require (msg.sender == _melteradmin, "caller not a melter admin");
        _;
    }

    modifier onlyMelter() {
        require (_melters[msg.sender] == true, "can't perform melt");
        _;
    }

    modifier onlyPendingMelterAdmin() {
        require(msg.sender == pendingMelterAdmin);
        _;
    }

    event MelterTransferred(address indexed previousMelter, address indexed newMelter);

    constructor () internal {
        _melteradmin = msg.sender;
        _melters[msg.sender] = true;
    }

    function melteradmin() public view returns (address) {
        return _melteradmin;
    }

    function addToMelters(address account) public onlyMelterAdmin {
        _melters[account] = true;
    }

    function removeFromMelters(address account) public onlyMelterAdmin {
        _melters[account] = false;
    }

    function transferMelterAdmin(address newMelter) public onlyMelterAdmin {
        pendingMelterAdmin = newMelter;
    }

    function claimMelterAdmin() public onlyPendingMelterAdmin {
        emit MelterTransferred(_melteradmin, pendingMelterAdmin);
        _melteradmin = pendingMelterAdmin;
        pendingMelterAdmin = address(0);
    }
}

File 4 of 10: Mintable.sol
pragma solidity ^0.5.11;

import "./Meltable.sol";

contract Mintable {
    mapping (address => bool) private _minters;
    address private _minteradmin;
    address public pendingMinterAdmin;


    modifier onlyMinterAdmin() {
        require (msg.sender == _minteradmin, "caller not a minter admin");
        _;
    }

    modifier onlyMinter() {
        require (_minters[msg.sender] == true, "can't perform mint");
        _;
    }

    modifier onlyPendingMinterAdmin() {
        require(msg.sender == pendingMinterAdmin);
        _;
    }

    event MinterTransferred(address indexed previousMinter, address indexed newMinter);

    constructor () internal {
        _minteradmin = msg.sender;
        _minters[msg.sender] = true;
    }

    function minteradmin() public view returns (address) {
        return _minteradmin;
    }

    function addToMinters(address account) public onlyMinterAdmin {
        _minters[account] = true;
    }

    function removeFromMinters(address account) public onlyMinterAdmin {
        _minters[account] = false;
    }

    function transferMinterAdmin(address newMinter) public onlyMinterAdmin {
        pendingMinterAdmin = newMinter;
    }

    function claimMinterAdmin() public onlyPendingMinterAdmin {
        emit MinterTransferred(_minteradmin, pendingMinterAdmin);
        _minteradmin = pendingMinterAdmin;
        pendingMinterAdmin = address(0);
    }
}

File 5 of 10: Ownable.sol
pragma solidity ^0.5.11;

import "./AccountFrozenBalances.sol";

contract Ownable {
    address private _owner;
    address public pendingOwner;

    modifier onlyOwner() {
        require(msg.sender == _owner, "caller is not the owner");
        _;
    }

    modifier onlyPendingOwner() {
        require(msg.sender == pendingOwner);
        _;
    }

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

    constructor () internal {
        _owner = msg.sender;
    }

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

    function transferOwnership(address newOwner) public onlyOwner {
        pendingOwner = newOwner;
    }

    function claimOwnership() public onlyPendingOwner {
        emit OwnershipTransferred(_owner, pendingOwner);
        _owner = pendingOwner;
        pendingOwner = address(0);
    }
}

File 6 of 10: Pausable.sol
pragma solidity ^0.5.11;

import "./Mintable.sol";

contract Pausable {
    bool private _paused;
    address private _pauser;
    address public pendingPauser;

    modifier onlyPauser() {
        require(msg.sender == _pauser, "caller is not a pauser");
        _;
    }

    modifier onlyPendingPauser() {
        require(msg.sender == pendingPauser);
        _;
    }

    event PauserTransferred(address indexed previousPauser, address indexed newPauser);


    constructor () internal {
        _paused = false;
        _pauser = msg.sender;
    }

    function paused() public view returns (bool) {
        return _paused;
    }

    function pauser() public view returns (address) {
        return _pauser;
    }

    function pauseTrigger() public onlyPauser {
        _paused = !_paused;
    }

    function transferPauser(address newPauser) public onlyPauser {
        pendingPauser = newPauser;
    }

    function claimPauser() public onlyPendingPauser {
        emit PauserTransferred(_pauser, pendingPauser);
        _pauser = pendingPauser;
        pendingPauser = address(0);
    }
}

File 7 of 10: SafeMath.sol
pragma solidity ^0.5.11;

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) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }
}

File 9 of 10: TokenRecipient.sol
pragma solidity ^0.5.11;

import "./Pausable.sol";

contract TokenRecipient {
    function receiveApproval(address _from, uint256 _value, address _token, bytes memory _extraData) public;
}

File 10 of 10: Whitelisted.sol
pragma solidity ^0.5.11;

import "./Ownable.sol";

contract Whitelisted {
    address private _whitelistadmin;
    address public pendingWhiteListAdmin;

    mapping (address => bool) private _whitelisted;

    modifier onlyWhitelistAdmin() {
        require(msg.sender == _whitelistadmin, "caller is not admin of whitelist");
        _;
    }

    modifier onlyPendingWhitelistAdmin() {
        require(msg.sender == pendingWhiteListAdmin);
        _;
    }

    event WhitelistAdminTransferred(address indexed previousAdmin, address indexed newAdmin);

    constructor () internal {
        _whitelistadmin = msg.sender;
        _whitelisted[msg.sender] = true;
    }

    function whitelistadmin() public view returns (address){
        return _whitelistadmin;
    }
    function addWhitelisted(address account) public onlyWhitelistAdmin {
        _whitelisted[account] = true;
    }

    function removeWhitelisted(address account) public onlyWhitelistAdmin {
        _whitelisted[account] = false;
    }

    function isWhitelisted(address account) public view returns (bool) {
        return _whitelisted[account];
    }

    function transferWhitelistAdmin(address newAdmin) public onlyWhitelistAdmin {
        pendingWhiteListAdmin = newAdmin;
    }

    function claimWhitelistAdmin() public onlyPendingWhitelistAdmin {
        emit WhitelistAdminTransferred(_whitelistadmin, pendingWhiteListAdmin);
        _whitelistadmin = pendingWhiteListAdmin;
        pendingWhiteListAdmin = address(0);
    }
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minteradmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pauseTrigger","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"meltTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burnallow","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addWhitelisted","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"destroyFrozen","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimMinterAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimMelterAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromMelters","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"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"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"burner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeWhitelisted","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"melteradmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"meltBatchTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newPauser","type":"address"}],"name":"transferPauser","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newMelter","type":"address"}],"name":"transferMelterAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"mintBatchToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"mintBatchFrozenTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"whitelistadmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"removeFromMinters","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingMelterAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newBurner","type":"address"}],"name":"transferWhitelistAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingPauser","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pauser","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToMinters","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"destroy","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"freezeTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mintFrozenTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"bytes","name":"_extraData","type":"bytes"}],"name":"approveAndCall","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingMinterAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"addToMelters","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"claimBurner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newMinter","type":"address"}],"name":"transferMinterAdmin","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingWhiteListAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrozenToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"burnTrigger","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingBurner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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"},{"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":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Freeze","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Melt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MintFrozen","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":"FrozenTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousMelter","type":"address"},{"indexed":true,"internalType":"address","name":"newMelter","type":"address"}],"name":"MelterTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousMinter","type":"address"},{"indexed":true,"internalType":"address","name":"newMinter","type":"address"}],"name":"MinterTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousPauser","type":"address"},{"indexed":true,"internalType":"address","name":"newPauser","type":"address"}],"name":"PauserTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousBurner","type":"address"},{"indexed":true,"internalType":"address","name":"newBurner","type":"address"}],"name":"BurnerTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"WhitelistAdminTransferred","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"}]

60806040523480156200001157600080fd5b506040516200691c3803806200691c833981810160405260608110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b506040526020018051906020019092919050505033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660006101000a81548160ff02191690831515021790555033600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760146101000a81548160ff02191690831515021790555033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082601090805190602001906200049e92919062000927565b508160119080519060200190620004b792919062000927565b5080601260006101000a81548160ff021916908360ff160217905550620004e6336064620004f060201b60201c565b50505050620009d6565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514620005b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d696e74000000000000000000000000000081525060200191505060405180910390fd5b620005cb8383620005d560201b60201c565b6001905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000679576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000700576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180620068f96023913960400191505060405180910390fd5b6000811162000777576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f45524332303a206d696e7420616d6f756e742073686f756c64206265203e203081525060200191505060405180910390fd5b62000793816015546200089e60201b620050641790919060201c565b601581905550620007f281601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546200089e60201b620050641790919060201c565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000808284019050838110156200091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200096a57805160ff19168380011785556200099b565b828001600101855582156200099b579182015b828111156200099a5782518255916020019190600101906200097d565b5b509050620009aa9190620009ae565b5090565b620009d391905b80821115620009cf576000816000905550600101620009b5565b5090565b90565b615f1380620009e66000396000f3fe608060405234801561001057600080fd5b506004361061038e5760003560e01c806355e6ef34116101de578063a4df6c6a1161010f578063dba03d81116100ad578063e50d31801161007c578063e50d3180146114e4578063eeada4341461156a578063f2fbce9914611574578063f2fde38b146115be5761038e565b8063dba03d8114611394578063dd62ed3e146113d8578063e020455c14611450578063e30c39781461149a5761038e565b8063cae9ca51116100e9578063cae9ca51146111ff578063ce1d82f5146112fc578063d8da5ce914611346578063d9489aa21461138a5761038e565b8063a4df6c6a146110cd578063a9059cbb14611133578063c4157b29146111995761038e565b80638da5cb5b1161017c5780639fd0506d116101565780639fd0506d14610f8b578063a15c15af14610fd5578063a24835d114611019578063a457c2d7146110675761038e565b80638da5cb5b14610e7457806395d89b4114610ebe5780639a7165e414610f415761038e565b806370766280116101b85780637076628014610d4057806370a0823114610d8a57806373cfffa014610de257806379cc679014610e265761038e565b806355e6ef3414610c905780635c975abb14610cda5780636e72292014610cfc5761038e565b806327810b6e116102c357806340c10f1911610261578063483a8df911610230578063483a8df914610a765780634c80890414610aba5780634e71e0c814610ba057806354b2b17614610baa5761038e565b806340c10f191461099457806342966c68146109fa578063434450e814610a285780634421ea2114610a325761038e565b806335cde1ce1161029d57806335cde1ce146107a257806339509351146107ec5780633af32abf146108525780633d7cd488146108ae5761038e565b806327810b6e146106f0578063291d95491461073a578063313ce5671461077e5761038e565b806313d71f6e116103305780631d2c0b3d1161030a5780631d2c0b3d146106125780631e57a2b21461061c578063238fd7311461062657806323b872dd1461066a5761038e565b806313d71f6e1461059c578063171177b3146105a657806318160ddd146105f45761038e565b8063096a2e321161036c578063096a2e32146104c65780630c15f601146104d05780630dc6f69c1461053657806310154bad146105585761038e565b806306fdde031461039357806308c985bf14610416578063095ea7b314610460575b600080fd5b61039b611602565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103db5780820151818401526020810190506103c0565b50505050905090810190601f1680156104085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61041e6116a0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ac6004803603604081101561047657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116ca565b604051808215151515815260200191505060405180910390f35b6104ce6116e1565b005b61051c600480360360408110156104e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117d0565b604051808215151515815260200191505060405180910390f35b61053e611911565b604051808215151515815260200191505060405180910390f35b61059a6004803603602081101561056e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611928565b005b6105a4611a46565b005b6105f2600480360360408110156105bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611be5565b005b6105fc611cb6565b6040518082815260200191505060405180910390f35b61061a611cc0565b005b610624611e5f565b005b6106686004803603602081101561063c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ffe565b005b6106d66004803603606081101561068057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061211c565b604051808215151515815260200191505060405180910390f35b6106f86122e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61077c6004803603602081101561075057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061230c565b005b61078661242a565b604051808260ff1660ff16815260200191505060405180910390f35b6107aa61243d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108386004803603604081101561080257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612467565b604051808215151515815260200191505060405180910390f35b6108946004803603602081101561086857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061250c565b604051808215151515815260200191505060405180910390f35b61097a600480360360408110156108c457600080fd5b81019080803590602001906401000000008111156108e157600080fd5b8201836020820111156108f357600080fd5b8035906020019184602083028401116401000000008311171561091557600080fd5b90919293919293908035906020019064010000000081111561093657600080fd5b82018360208201111561094857600080fd5b8035906020019184602083028401116401000000008311171561096a57600080fd5b9091929391929390505050612562565b604051808215151515815260200191505060405180910390f35b6109e0600480360360408110156109aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127f2565b604051808215151515815260200191505060405180910390f35b610a2660048036036020811015610a1057600080fd5b81019080803590602001909291905050506128ce565b005b610a3061295d565b005b610a7460048036036020811015610a4857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612afc565b005b610ab860048036036020811015610a8c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c03565b005b610b8660048036036040811015610ad057600080fd5b8101908080359060200190640100000000811115610aed57600080fd5b820183602082011115610aff57600080fd5b80359060200191846020830284011164010000000083111715610b2157600080fd5b909192939192939080359060200190640100000000811115610b4257600080fd5b820183602082011115610b5457600080fd5b80359060200191846020830284011164010000000083111715610b7657600080fd5b9091929391929390505050612d0a565b604051808215151515815260200191505060405180910390f35b610ba8612efb565b005b610c7660048036036040811015610bc057600080fd5b8101908080359060200190640100000000811115610bdd57600080fd5b820183602082011115610bef57600080fd5b80359060200191846020830284011164010000000083111715610c1157600080fd5b909192939192939080359060200190640100000000811115610c3257600080fd5b820183602082011115610c4457600080fd5b80359060200191846020830284011164010000000083111715610c6657600080fd5b909192939192939050505061309a565b604051808215151515815260200191505060405180910390f35b610c9861328b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ce26132b5565b604051808215151515815260200191505060405180910390f35b610d3e60048036036020811015610d1257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132cc565b005b610d486133ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610dcc60048036036020811015610da057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613410565b6040518082815260200191505060405180910390f35b610e2460048036036020811015610df857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613473565b005b610e7260048036036040811015610e3c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061357a565b005b610e7c61360a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ec6613634565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f06578082015181840152602081019050610eeb565b50505050905090810190601f168015610f335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f496136d2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610f936136f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61101760048036036020811015610feb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613722565b005b6110656004803603604081101561102f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613840565b005b6110b36004803603604081101561107d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613911565b604051808215151515815260200191505060405180910390f35b611119600480360360408110156110e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506139b6565b604051808215151515815260200191505060405180910390f35b61117f6004803603604081101561114957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613af4565b604051808215151515815260200191505060405180910390f35b6111e5600480360360408110156111af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613c20565b604051808215151515815260200191505060405180910390f35b6112e26004803603606081101561121557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561125c57600080fd5b82018360208201111561126e57600080fd5b8035906020019184600183028401116401000000008311171561129057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613cfc565b604051808215151515815260200191505060405180910390f35b611304613e68565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6113886004803603602081101561135c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613e8e565b005b611392613fac565b005b6113d6600480360360208110156113aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061414b565b005b61143a600480360360408110156113ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614252565b6040518082815260200191505060405180910390f35b6114586142d9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6114a26142ff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611550600480360360608110156114fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614325565b604051808215151515815260200191505060405180910390f35b6115726145e1565b005b61157c6146d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611600600480360360208110156115d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506146f6565b005b60108054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116985780601f1061166d57610100808354040283529160200191611698565b820191906000526020600020905b81548152906001019060200180831161167b57829003601f168201915b505050505081565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006116d73384846147fd565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f63616c6c6572206973206e6f742061207061757365720000000000000000000081525060200191505060405180910390fd5b600760149054906101000a900460ff1615600760146101000a81548160ff021916908315150217905550565b600060011515600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611898576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d656c74000000000000000000000000000081525060200191505060405180910390fd5b6118a283836149f4565b8273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600660009054906101000a900460ff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f63616c6c6572206973206e6f742061646d696e206f662077686974656c69737481525060200191505060405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611aa057600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef660405160405180910390a3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b611cb28282614c26565b5050565b6000601554905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d1a57600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f02ad39e5173f89bdd5497202bd74024b5da045106c3163ddb078d2e89ff6d6de60405160405180910390a3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611eb957600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e564b778e0bd386914daff857c4db4480f555c393032a2f0ab2d62de42c297760405160405180910390a3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d656c7465722061646d696e0000000000000081525060200191505060405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006121266132b5565b156121ae57600115156121383361250c565b1515146121ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616e277420706572666f726d20616e20616374696f6e00000000000000000081525060200191505060405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180615eb2602d913960400191505060405180910390fd5b61223e848484614d3b565b6122d784336122d285601460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b6147fd565b600190509392505050565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f63616c6c6572206973206e6f742061646d696e206f662077686974656c69737481525060200191505060405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900460ff1681565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061250233846124fd85601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b6147fd565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060011515600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461262a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d656c74000000000000000000000000000081525060200191505060405180910390fd5b60008585905011612686576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526041815260200180615bd36041913960600191505060405180910390fd5b8282905085859050146126e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180615d4c603a913960400191505060405180910390fd5b60008090505b858590508110156127e55761273986868381811061270457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1685858481811061272d57fe5b905060200201356149f4565b85858281811061274557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8686858181106127bc57fe5b905060200201356040518082815260200191505060405180910390a380806001019150506126ea565b5060019050949350505050565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146128ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d696e74000000000000000000000000000081525060200191505060405180910390fd5b6128c483836150ec565b6001905092915050565b600660009054906101000a900460ff16612950576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6275726e61626c653a2063616e2774206275726e00000000000000000000000081525060200191505060405180910390fd5b61295a33826153a3565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146129b757600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f780008ae49c9be745883f9a2ca6d2e68e9063350aaa0782ee3f00316965d251560405160405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612bbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f63616c6c6572206973206e6f742061207061757365720000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612cc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d656c7465722061646d696e0000000000000081525060200191505060405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514612dd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d696e74000000000000000000000000000081525060200191505060405180910390fd5b60008585905011612e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180615c86603a913960400191505060405180910390fd5b828290508585905014612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180615d866033913960400191505060405180910390fd5b60008090505b85859050811015612eee57612ee1868683818110612eac57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858584818110612ed557fe5b905060200201356150ec565b8080600101915050612e92565b5060019050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f5557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514613162576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d696e74000000000000000000000000000081525060200191505060405180910390fd5b600085859050116131be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526041815260200180615bd36041913960600191505060405180910390fd5b82829050858590501461321c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180615d4c603a913960400191505060405180910390fd5b60008090505b8585905081101561327e5761327186868381811061323c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1685858481811061326557fe5b90506020020135615542565b8080600101915050613222565b5060019050949350505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600760149054906101000a900460ff16905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461338f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d696e7465722061646d696e0000000000000081525060200191505060405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061346c61341e83615783565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b9050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613536576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f63616c6c6572206973206e6f742061206275726e65720000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900460ff166135fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6275726e61626c653a2063616e2774206275726e00000000000000000000000081525060200191505060405180910390fd5b61360682826157cb565b5050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60118054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156136ca5780601f1061369f576101008083540402835291602001916136ca565b820191906000526020600020905b8154815290600101906020018083116136ad57829003601f168201915b505050505081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146137e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d696e7465722061646d696e0000000000000081525060200191505060405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b61390d82826153a3565b5050565b60006139ac33846139a785601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b6147fd565b6001905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613a7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b613a858383615872565b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000613afe6132b5565b15613b865760011515613b103361250c565b151514613b85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616e277420706572666f726d20616e20616374696f6e00000000000000000081525060200191505060405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180615eb2602d913960400191505060405180910390fd5b613c16338484614d3b565b6001905092915050565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514613ce8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d696e74000000000000000000000000000081525060200191505060405180910390fd5b613cf28383615542565b6001905092915050565b600080849050613d0c85856116ca565b15613e5b578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613dea578082015181840152602081019050613dcf565b50505050905090810190601f168015613e175780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613e3957600080fd5b505af1158015613e4d573d6000803e3d6000fd5b505050506001915050613e61565b60009150505b9392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613f51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d656c7465722061646d696e0000000000000081525060200191505060405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461400657600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167feee90df09f0bc4f2408d904f2b5c22873e54185001290d225b5b2ced5212814960405160405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461420e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d696e7465722061646d696e0000000000000081525060200191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146143ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614470576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615e466025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156144f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615b826023913960400191505060405180910390fd5b6145008483615a43565b5061450b8383615ae2565b508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9958976925baa403abf86afa44976a9effff3e01931eafd0ea2689f40852fd59846040518082815260200191505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146146a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f63616c6c6572206973206e6f742061206275726e65720000000000000000000081525060200191505060405180910390fd5b600660009054906101000a900460ff1615600660006101000a81548160ff021916908315150217905550565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146147b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614883576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615e6b6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614909576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615c3a6022913960400191505060405180910390fd5b80601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615db96021913960400191505060405180910390fd5b60008111614ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615cf46031913960400191505060405180910390fd5b80614add83615783565b1015614b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615ba5602e913960400191505060405180910390fd5b614b3e8282615a43565b50614b9181601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f0bb0b52882b12b41cdf6b733954f1133183ca85efebcda11b4506bc6926d326b826040518082815260200191505060405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615e1e6028913960400191505060405180910390fd5b614cc181601554614fdb90919063ffffffff16565b601581905550614cd18282615a43565b503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615e466025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615b826023913960400191505060405180910390fd5b614e9981601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614f2e81601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600082821115615053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000808284019050838110156150e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561518f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415615214576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615e8f6023913960400191505060405180910390fd5b6000811161528a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f45524332303a206d696e7420616d6f756e742073686f756c64206265203e203081525060200191505060405180910390fd5b61529f8160155461506490919063ffffffff16565b6015819055506152f781601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415615429576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615dfd6021913960400191505060405180910390fd5b61543e81601554614fdb90919063ffffffff16565b60158190555061549681601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156155c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c146026913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561564d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615c5c602a913960400191505060405180910390fd5b600081116156a6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180615d256027913960400191505060405180910390fd5b6156bb8160155461506490919063ffffffff16565b6015819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36157308282615ae2565b508173ffffffffffffffffffffffffffffffffffffffff167fba89ad6709373f454c31524e8c39cef3cdd4b0e8cfde0ccddbd419a2e488be6b826040518082815260200191505060405180910390a25050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6157d582826153a3565b61586e823361586984601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b6147fd565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156158f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615dda6023913960400191505060405180910390fd5b60008111615951576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180615cc06034913960400191505060405180910390fd5b6159a381601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506159f08282615ae2565b508173ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0826040518082815260200191505060405180910390a25050565b6000615a96826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000615b35826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206d656c742066726f6d2074686520616464726573733a2062616c616e6365203c20616d6f756e746d696e74426174636846726f7a656e546f6b656e733a207472616e736665722073686f756c6420626520746f206174206c65617374206f6e65206164647265737345524332303a206d696e742066726f7a656e20746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206d696e742066726f7a656e20746f2074686520636f6e747261637420616464726573736d696e744261746368546f6b656e3a207472616e736665722073686f756c6420626520746f206174206c65617374206f6e65206164647265737345524332303a20667265657a652066726f6d2074686520616464726573733a20616d6f756e742073686f756c64206265203e203045524332303a206d656c742066726f6d2074686520616464726573733a2076616c75652073686f756c64206265203e203045524332303a206d696e742066726f7a656e20616d6f756e742073686f756c64206265203e20306d696e74426174636846726f7a656e546f6b656e733a20726563697069656e74732e6c656e67746820213d20616d6f756e74732e6c656e6774686d696e744261746368546f6b656e3a20726563697069656e74732e6c656e67746820213d20616d6f756e74732e6c656e67746845524332303a206d656c742066726f6d20746865207a65726f206164647265737345524332303a20667265657a652066726f6d20746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a2066726f7a656e206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a206d696e7420746f2074686520636f6e7472616374206164647265737363616e2774207472616e7366657220746f6b656e7320746f2074686520636f6e74726163742061646472657373a265627a7a723158200634adc6c54dc3ebdf937cc868b726614b81f217d512bc72263cf513625e2e7464736f6c634300050b003245524332303a206d696e7420746f2074686520636f6e74726163742061646472657373000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000e54686f70692053657276696365730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004544f495300000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061038e5760003560e01c806355e6ef34116101de578063a4df6c6a1161010f578063dba03d81116100ad578063e50d31801161007c578063e50d3180146114e4578063eeada4341461156a578063f2fbce9914611574578063f2fde38b146115be5761038e565b8063dba03d8114611394578063dd62ed3e146113d8578063e020455c14611450578063e30c39781461149a5761038e565b8063cae9ca51116100e9578063cae9ca51146111ff578063ce1d82f5146112fc578063d8da5ce914611346578063d9489aa21461138a5761038e565b8063a4df6c6a146110cd578063a9059cbb14611133578063c4157b29146111995761038e565b80638da5cb5b1161017c5780639fd0506d116101565780639fd0506d14610f8b578063a15c15af14610fd5578063a24835d114611019578063a457c2d7146110675761038e565b80638da5cb5b14610e7457806395d89b4114610ebe5780639a7165e414610f415761038e565b806370766280116101b85780637076628014610d4057806370a0823114610d8a57806373cfffa014610de257806379cc679014610e265761038e565b806355e6ef3414610c905780635c975abb14610cda5780636e72292014610cfc5761038e565b806327810b6e116102c357806340c10f1911610261578063483a8df911610230578063483a8df914610a765780634c80890414610aba5780634e71e0c814610ba057806354b2b17614610baa5761038e565b806340c10f191461099457806342966c68146109fa578063434450e814610a285780634421ea2114610a325761038e565b806335cde1ce1161029d57806335cde1ce146107a257806339509351146107ec5780633af32abf146108525780633d7cd488146108ae5761038e565b806327810b6e146106f0578063291d95491461073a578063313ce5671461077e5761038e565b806313d71f6e116103305780631d2c0b3d1161030a5780631d2c0b3d146106125780631e57a2b21461061c578063238fd7311461062657806323b872dd1461066a5761038e565b806313d71f6e1461059c578063171177b3146105a657806318160ddd146105f45761038e565b8063096a2e321161036c578063096a2e32146104c65780630c15f601146104d05780630dc6f69c1461053657806310154bad146105585761038e565b806306fdde031461039357806308c985bf14610416578063095ea7b314610460575b600080fd5b61039b611602565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103db5780820151818401526020810190506103c0565b50505050905090810190601f1680156104085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61041e6116a0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104ac6004803603604081101561047657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116ca565b604051808215151515815260200191505060405180910390f35b6104ce6116e1565b005b61051c600480360360408110156104e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506117d0565b604051808215151515815260200191505060405180910390f35b61053e611911565b604051808215151515815260200191505060405180910390f35b61059a6004803603602081101561056e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611928565b005b6105a4611a46565b005b6105f2600480360360408110156105bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611be5565b005b6105fc611cb6565b6040518082815260200191505060405180910390f35b61061a611cc0565b005b610624611e5f565b005b6106686004803603602081101561063c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ffe565b005b6106d66004803603606081101561068057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061211c565b604051808215151515815260200191505060405180910390f35b6106f86122e2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61077c6004803603602081101561075057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061230c565b005b61078661242a565b604051808260ff1660ff16815260200191505060405180910390f35b6107aa61243d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6108386004803603604081101561080257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612467565b604051808215151515815260200191505060405180910390f35b6108946004803603602081101561086857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061250c565b604051808215151515815260200191505060405180910390f35b61097a600480360360408110156108c457600080fd5b81019080803590602001906401000000008111156108e157600080fd5b8201836020820111156108f357600080fd5b8035906020019184602083028401116401000000008311171561091557600080fd5b90919293919293908035906020019064010000000081111561093657600080fd5b82018360208201111561094857600080fd5b8035906020019184602083028401116401000000008311171561096a57600080fd5b9091929391929390505050612562565b604051808215151515815260200191505060405180910390f35b6109e0600480360360408110156109aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506127f2565b604051808215151515815260200191505060405180910390f35b610a2660048036036020811015610a1057600080fd5b81019080803590602001909291905050506128ce565b005b610a3061295d565b005b610a7460048036036020811015610a4857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612afc565b005b610ab860048036036020811015610a8c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c03565b005b610b8660048036036040811015610ad057600080fd5b8101908080359060200190640100000000811115610aed57600080fd5b820183602082011115610aff57600080fd5b80359060200191846020830284011164010000000083111715610b2157600080fd5b909192939192939080359060200190640100000000811115610b4257600080fd5b820183602082011115610b5457600080fd5b80359060200191846020830284011164010000000083111715610b7657600080fd5b9091929391929390505050612d0a565b604051808215151515815260200191505060405180910390f35b610ba8612efb565b005b610c7660048036036040811015610bc057600080fd5b8101908080359060200190640100000000811115610bdd57600080fd5b820183602082011115610bef57600080fd5b80359060200191846020830284011164010000000083111715610c1157600080fd5b909192939192939080359060200190640100000000811115610c3257600080fd5b820183602082011115610c4457600080fd5b80359060200191846020830284011164010000000083111715610c6657600080fd5b909192939192939050505061309a565b604051808215151515815260200191505060405180910390f35b610c9861328b565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ce26132b5565b604051808215151515815260200191505060405180910390f35b610d3e60048036036020811015610d1257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506132cc565b005b610d486133ea565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610dcc60048036036020811015610da057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613410565b6040518082815260200191505060405180910390f35b610e2460048036036020811015610df857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613473565b005b610e7260048036036040811015610e3c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061357a565b005b610e7c61360a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610ec6613634565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f06578082015181840152602081019050610eeb565b50505050905090810190601f168015610f335780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b610f496136d2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610f936136f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61101760048036036020811015610feb57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613722565b005b6110656004803603604081101561102f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613840565b005b6110b36004803603604081101561107d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613911565b604051808215151515815260200191505060405180910390f35b611119600480360360408110156110e357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506139b6565b604051808215151515815260200191505060405180910390f35b61117f6004803603604081101561114957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613af4565b604051808215151515815260200191505060405180910390f35b6111e5600480360360408110156111af57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613c20565b604051808215151515815260200191505060405180910390f35b6112e26004803603606081101561121557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561125c57600080fd5b82018360208201111561126e57600080fd5b8035906020019184600183028401116401000000008311171561129057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050613cfc565b604051808215151515815260200191505060405180910390f35b611304613e68565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6113886004803603602081101561135c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613e8e565b005b611392613fac565b005b6113d6600480360360208110156113aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061414b565b005b61143a600480360360408110156113ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050614252565b6040518082815260200191505060405180910390f35b6114586142d9565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6114a26142ff565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611550600480360360608110156114fa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050614325565b604051808215151515815260200191505060405180910390f35b6115726145e1565b005b61157c6146d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b611600600480360360208110156115d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506146f6565b005b60108054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116985780601f1061166d57610100808354040283529160200191611698565b820191906000526020600020905b81548152906001019060200180831161167b57829003601f168201915b505050505081565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006116d73384846147fd565b6001905092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f63616c6c6572206973206e6f742061207061757365720000000000000000000081525060200191505060405180910390fd5b600760149054906101000a900460ff1615600760146101000a81548160ff021916908315150217905550565b600060011515600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611898576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d656c74000000000000000000000000000081525060200191505060405180910390fd5b6118a283836149f4565b8273ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000600660009054906101000a900460ff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f63616c6c6572206973206e6f742061646d696e206f662077686974656c69737481525060200191505060405180910390fd5b6001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611aa057600080fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f51c4874e0f23f262e04a38c51751336dde72126d67f53eb672aaff02996b3ef660405160405180910390a3600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611ca8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b611cb28282614c26565b5050565b6000601554905090565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d1a57600080fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f02ad39e5173f89bdd5497202bd74024b5da045106c3163ddb078d2e89ff6d6de60405160405180910390a3600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611eb957600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f2e564b778e0bd386914daff857c4db4480f555c393032a2f0ab2d62de42c297760405160405180910390a3600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d656c7465722061646d696e0000000000000081525060200191505060405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006121266132b5565b156121ae57600115156121383361250c565b1515146121ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616e277420706572666f726d20616e20616374696f6e00000000000000000081525060200191505060405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612233576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180615eb2602d913960400191505060405180910390fd5b61223e848484614d3b565b6122d784336122d285601460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b6147fd565b600190509392505050565b6000600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f63616c6c6572206973206e6f742061646d696e206f662077686974656c69737481525060200191505060405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601260009054906101000a900460ff1681565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061250233846124fd85601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b6147fd565b6001905092915050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600060011515600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461262a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d656c74000000000000000000000000000081525060200191505060405180910390fd5b60008585905011612686576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526041815260200180615bd36041913960600191505060405180910390fd5b8282905085859050146126e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180615d4c603a913960400191505060405180910390fd5b60008090505b858590508110156127e55761273986868381811061270457fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1685858481811061272d57fe5b905060200201356149f4565b85858281811061274557fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8686858181106127bc57fe5b905060200201356040518082815260200191505060405180910390a380806001019150506126ea565b5060019050949350505050565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146128ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d696e74000000000000000000000000000081525060200191505060405180910390fd5b6128c483836150ec565b6001905092915050565b600660009054906101000a900460ff16612950576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6275726e61626c653a2063616e2774206275726e00000000000000000000000081525060200191505060405180910390fd5b61295a33826153a3565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146129b757600080fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f780008ae49c9be745883f9a2ca6d2e68e9063350aaa0782ee3f00316965d251560405160405180910390a3600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612bbf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f63616c6c6572206973206e6f742061207061757365720000000000000000000081525060200191505060405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612cc6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d656c7465722061646d696e0000000000000081525060200191505060405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514612dd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d696e74000000000000000000000000000081525060200191505060405180910390fd5b60008585905011612e2e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180615c86603a913960400191505060405180910390fd5b828290508585905014612e8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526033815260200180615d866033913960400191505060405180910390fd5b60008090505b85859050811015612eee57612ee1868683818110612eac57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff16858584818110612ed557fe5b905060200201356150ec565b8080600101915050612e92565b5060019050949350505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f5557600080fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514613162576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d696e74000000000000000000000000000081525060200191505060405180910390fd5b600085859050116131be576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526041815260200180615bd36041913960600191505060405180910390fd5b82829050858590501461321c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180615d4c603a913960400191505060405180910390fd5b60008090505b8585905081101561327e5761327186868381811061323c57fe5b9050602002013573ffffffffffffffffffffffffffffffffffffffff1685858481811061326557fe5b90506020020135615542565b8080600101915050613222565b5060019050949350505050565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600760149054906101000a900460ff16905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461338f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d696e7465722061646d696e0000000000000081525060200191505060405180910390fd5b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061346c61341e83615783565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b9050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613536576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f63616c6c6572206973206e6f742061206275726e65720000000000000000000081525060200191505060405180910390fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900460ff166135fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f6275726e61626c653a2063616e2774206275726e00000000000000000000000081525060200191505060405180910390fd5b61360682826157cb565b5050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60118054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156136ca5780601f1061369f576101008083540402835291602001916136ca565b820191906000526020600020905b8154815290600101906020018083116136ad57829003601f168201915b505050505081565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146137e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d696e7465722061646d696e0000000000000081525060200191505060405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b61390d82826153a3565b5050565b60006139ac33846139a785601460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b6147fd565b6001905092915050565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613a7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b613a858383615872565b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000613afe6132b5565b15613b865760011515613b103361250c565b151514613b85576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616e277420706572666f726d20616e20616374696f6e00000000000000000081525060200191505060405180910390fd5b5b3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415613c0b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180615eb2602d913960400191505060405180910390fd5b613c16338484614d3b565b6001905092915050565b600060011515600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514613ce8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f63616e277420706572666f726d206d696e74000000000000000000000000000081525060200191505060405180910390fd5b613cf28383615542565b6001905092915050565b600080849050613d0c85856116ca565b15613e5b578073ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338630876040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613dea578082015181840152602081019050613dcf565b50505050905090810190601f168015613e175780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b158015613e3957600080fd5b505af1158015613e4d573d6000803e3d6000fd5b505050506001915050613e61565b60009150505b9392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613f51576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d656c7465722061646d696e0000000000000081525060200191505060405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461400657600080fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167feee90df09f0bc4f2408d904f2b5c22873e54185001290d225b5b2ced5212814960405160405180910390a3600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461420e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f63616c6c6572206e6f742061206d696e7465722061646d696e0000000000000081525060200191505060405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146143ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415614470576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615e466025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156144f6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615b826023913960400191505060405180910390fd5b6145008483615a43565b5061450b8383615ae2565b508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f9958976925baa403abf86afa44976a9effff3e01931eafd0ea2689f40852fd59846040518082815260200191505060405180910390a38273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146146a4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f63616c6c6572206973206e6f742061206275726e65720000000000000000000081525060200191505060405180910390fd5b600660009054906101000a900460ff1615600660006101000a81548160ff021916908315150217905550565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146147b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f63616c6c6572206973206e6f7420746865206f776e657200000000000000000081525060200191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614883576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180615e6b6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614909576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180615c3a6022913960400191505060405180910390fd5b80601460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614a7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615db96021913960400191505060405180910390fd5b60008111614ad3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180615cf46031913960400191505060405180910390fd5b80614add83615783565b1015614b34576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e815260200180615ba5602e913960400191505060405180910390fd5b614b3e8282615a43565b50614b9181601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f0bb0b52882b12b41cdf6b733954f1133183ca85efebcda11b4506bc6926d326b826040518082815260200191505060405180910390a25050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614cac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180615e1e6028913960400191505060405180910390fd5b614cc181601554614fdb90919063ffffffff16565b601581905550614cd18282615a43565b503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415614dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180615e466025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614e47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615b826023913960400191505060405180910390fd5b614e9981601360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550614f2e81601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600082821115615053576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525060200191505060405180910390fd5b600082840390508091505092915050565b6000808284019050838110156150e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561518f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415615214576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615e8f6023913960400191505060405180910390fd5b6000811161528a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f45524332303a206d696e7420616d6f756e742073686f756c64206265203e203081525060200191505060405180910390fd5b61529f8160155461506490919063ffffffff16565b6015819055506152f781601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415615429576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180615dfd6021913960400191505060405180910390fd5b61543e81601554614fdb90919063ffffffff16565b60158190555061549681601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156155c8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180615c146026913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561564d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180615c5c602a913960400191505060405180910390fd5b600081116156a6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526027815260200180615d256027913960400191505060405180910390fd5b6156bb8160155461506490919063ffffffff16565b6015819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a36157308282615ae2565b508173ffffffffffffffffffffffffffffffffffffffff167fba89ad6709373f454c31524e8c39cef3cdd4b0e8cfde0ccddbd419a2e488be6b826040518082815260200191505060405180910390a25050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6157d582826153a3565b61586e823361586984601460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b6147fd565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156158f8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180615dda6023913960400191505060405180910390fd5b60008111615951576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526034815260200180615cc06034913960400191505060405180910390fd5b6159a381601360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506159f08282615ae2565b508173ffffffffffffffffffffffffffffffffffffffff167ff97a274face0b5517365ad396b1fdba6f68bd3135ef603e44272adba3af5a1e0826040518082815260200191505060405180910390a25050565b6000615a96826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054614fdb90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000615b35826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461506490919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600190509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206d656c742066726f6d2074686520616464726573733a2062616c616e6365203c20616d6f756e746d696e74426174636846726f7a656e546f6b656e733a207472616e736665722073686f756c6420626520746f206174206c65617374206f6e65206164647265737345524332303a206d696e742066726f7a656e20746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a206d696e742066726f7a656e20746f2074686520636f6e747261637420616464726573736d696e744261746368546f6b656e3a207472616e736665722073686f756c6420626520746f206174206c65617374206f6e65206164647265737345524332303a20667265657a652066726f6d2074686520616464726573733a20616d6f756e742073686f756c64206265203e203045524332303a206d656c742066726f6d2074686520616464726573733a2076616c75652073686f756c64206265203e203045524332303a206d696e742066726f7a656e20616d6f756e742073686f756c64206265203e20306d696e74426174636846726f7a656e546f6b656e733a20726563697069656e74732e6c656e67746820213d20616d6f756e74732e6c656e6774686d696e744261746368546f6b656e3a20726563697069656e74732e6c656e67746820213d20616d6f756e74732e6c656e67746845524332303a206d656c742066726f6d20746865207a65726f206164647265737345524332303a20667265657a652066726f6d20746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a2066726f7a656e206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a206d696e7420746f2074686520636f6e7472616374206164647265737363616e2774207472616e7366657220746f6b656e7320746f2074686520636f6e74726163742061646472657373a265627a7a723158200634adc6c54dc3ebdf937cc868b726614b81f217d512bc72263cf513625e2e7464736f6c634300050b0032

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

000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000e54686f70692053657276696365730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004544f495300000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : _name (string): Thopi Services
Arg [1] : _symbol (string): TOIS
Arg [2] : _decimals (uint8): 18

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [1] : 00000000000000000000000000000000000000000000000000000000000000a0
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000012
Arg [3] : 000000000000000000000000000000000000000000000000000000000000000e
Arg [4] : 54686f7069205365727669636573000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000004
Arg [6] : 544f495300000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

62:9986:9:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;62:9986:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;212:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;212:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;780:91:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1931:148:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1931:148:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;761:79:5;;;:::i;:::-;;5137:205:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5137:205:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;694:84:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;804:114:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;804:114:8;;;;;;;;;;;;;;;;;;;:::i;:::-;;961:184:5;;;:::i;:::-;;3854:120:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3854:120:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1265:91;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1239:219:3;;;:::i;:::-;;1237::2;;;:::i;:::-;;990:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;990:111:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;2554:365:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2554:365:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;786:81:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;926:118:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;926:118:8;;;;;;;;;;;;;;;;;;;:::i;:::-;;264:21:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;778:91:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2929:206:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2929:206:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1052:114:8;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1052:114:8;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6024:553:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;6024:553:9;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6024:553:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6024:553:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6024:553:9;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;6024:553:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;6024:553:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;6024:553:9;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3369:143;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3369:143:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3520:90;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3520:90:9;;;;;;;;;;;;;;;;;:::i;:::-;;1309:248:8;;;:::i;:::-;;848:105:5;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;848:105:5;;;;;;;;;;;;;;;;;;;:::i;:::-;;1109:120:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1109:120:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;3982:470:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3982:470:9;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3982:470:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3982:470:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3982:470:9;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;3982:470:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3982:470:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;3982:470:9;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;737:184:4;;;:::i;:::-;;5519:497:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5519:497:9;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5519:497:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5519:497:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5519:497:9;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;5519:497:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;5519:497:9;;;;;;101:9:-1;95:2;81:12;77:21;67:8;63:36;60:51;39:11;25:12;22:29;11:108;8:2;;;132:1;129;122:12;8:2;5519:497:9;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;702:96:8;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;586:78:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;992:111:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;992:111:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;165:33:2;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1364:142:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1364:142:9;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;967:113:1;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;967:113:1;;;;;;;;;;;;;;;;;;;:::i;:::-;;3618:112:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3618:112:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;538:79:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;237:20:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;237:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;138:28:5;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;672:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;879:105:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;879:105:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;3738:108:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3738:108:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3145:216;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3145:216:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4921:208;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4921:208:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1514:265;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1514:265:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5350:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5350:161:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2164:382;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2164:382:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;2164:382:9;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;2164:382:9;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;2164:382:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;93:3;85:6;81:16;74:27;137:4;133:9;126:4;121:3;117:14;113:30;106:37;;169:3;161:6;157:16;147:26;;2164:382:9;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;165:33:3;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;877:105:2;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;877:105:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;1088:184:1;;;:::i;:::-;;1111:120:3;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1111:120:3;;;;;;;;;;;;;;;;;;;:::i;:::-;;1787:136:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1787:136:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;121:36:8;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;122:27:4;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4460:453:9;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4460:453:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;875:84:1;;;:::i;:::-;;144:28;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;625:104:4;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;625:104:4;;;;;;;;;;;;;;;;;;;:::i;:::-;;212:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;780:91:3:-;824:7;851:12;;;;;;;;;;;844:19;;780:91;:::o;1931:148:9:-;1996:4;2013:36;2022:10;2034:7;2043:5;2013:8;:36::i;:::-;2067:4;2060:11;;1931:148;;;;:::o;761:79:5:-;230:7;;;;;;;;;;;216:21;;:10;:21;;;208:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;825:7;;;;;;;;;;;824:8;814:7;;:18;;;;;;;;;;;;;;;;;;761:79::o;5137:205:9:-;5217:4;404::2;380:28;;:8;:20;389:10;380:20;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;371:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5234:22:9;5240:7;5249:6;5234:5;:22::i;:::-;5296:7;5272:40;;5289:4;5272:40;;;5305:6;5272:40;;;;;;;;;;;;;;;;;;5330:4;5323:11;;5137:205;;;;:::o;694:84:1:-;736:4;760:10;;;;;;;;;;;753:17;;694:84;:::o;804:114:8:-;284:15;;;;;;;;;;;270:29;;:10;:29;;;262:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;906:4;882:12;:21;895:7;882:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;804:114;:::o;961:184:5:-;354:13;;;;;;;;;;;340:27;;:10;:27;;;332:36;;;;;;1052:13;;;;;;;;;;;1025:41;;1043:7;;;;;;;;;;;1025:41;;;;;;;;;;;;1087:13;;;;;;;;;;;1077:7;;:23;;;;;;;;;;;;;;;;;;1135:1;1111:13;;:26;;;;;;;;;;;;;;;;;;961:184::o;3854:120:9:-;212:6:4;;;;;;;;;;;198:20;;:10;:20;;;190:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3938:28:9;3950:7;3959:6;3938:11;:28::i;:::-;3854:120;;:::o;1265:91::-;1309:7;1336:12;;1329:19;;1265:91;:::o;1239:219:3:-;528:18;;;;;;;;;;;514:32;;:10;:32;;;506:41;;;;;;1345:18;;;;;;;;;;;1313:51;;1331:12;;;;;;;;;;;1313:51;;;;;;;;;;;;1390:18;;;;;;;;;;;1375:12;;:33;;;;;;;;;;;;;;;;;;1448:1;1419:18;;:31;;;;;;;;;;;;;;;;;;1239:219::o;1237::2:-;526:18;;;;;;;;;;;512:32;;:10;:32;;;504:41;;;;;;1343:18;;;;;;;;;;;1311:51;;1329:12;;;;;;;;;;;1311:51;;;;;;;;;;;;1388:18;;;;;;;;;;;1373:12;;:33;;;;;;;;;;;;;;;;;;1446:1;1417:18;;:31;;;;;;;;;;;;;;;;;;1237:219::o;990:111::-;268:12;;;;;;;;;;;254:26;;:10;:26;;;245:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1088:5;1068:8;:17;1077:7;1068:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;990:111;:::o;2554:365:9:-;2655:4;501:8;:6;:8::i;:::-;498:109;;;563:4;534:33;;:25;548:10;534:13;:25::i;:::-;:33;;;525:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:109;2701:4;2680:26;;:9;:26;;;;2672:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2769:36;2779:6;2787:9;2798:6;2769:9;:36::i;:::-;2816:73;2825:6;2833:10;2845:43;2881:6;2845:11;:19;2857:6;2845:19;;;;;;;;;;;;;;;:31;2865:10;2845:31;;;;;;;;;;;;;;;;:35;;:43;;;;:::i;:::-;2816:8;:73::i;:::-;2907:4;2900:11;;2554:365;;;;;:::o;786:81:1:-;825:7;852;;;;;;;;;;;845:14;;786:81;:::o;926:118:8:-;284:15;;;;;;;;;;;270:29;;:10;:29;;;262:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1031:5;1007:12;:21;1020:7;1007:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;926:118;:::o;264:21:9:-;;;;;;;;;;;;;:::o;778:91:2:-;822:7;849:12;;;;;;;;;;;842:19;;778:91;:::o;2929:206:9:-;3009:4;3026:79;3035:10;3047:7;3056:48;3093:10;3056:11;:23;3068:10;3056:23;;;;;;;;;;;;;;;:32;3080:7;3056:32;;;;;;;;;;;;;;;;:36;;:48;;;;:::i;:::-;3026:8;:79::i;:::-;3123:4;3116:11;;2929:206;;;;:::o;1052:114:8:-;1113:4;1137:12;:21;1150:7;1137:21;;;;;;;;;;;;;;;;;;;;;;;;;1130:28;;1052:114;;;:::o;6024:553:9:-;6135:4;404::2;380:28;;:8;:20;389:10;380:20;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;371:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6178:1:9;6160:8;;:15;;:19;6152:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6287:7;;:14;;6268:8;;:15;;:33;6260:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6380:9;6392:1;6380:13;;6375:171;6399:8;;:15;;6395:1;:19;6375:171;;;6436:30;6442:8;;6451:1;6442:11;;;;;;;;;;;;;;;6455:7;;6463:1;6455:10;;;;;;;;;;;;;6436:5;:30::i;:::-;6510:8;;6519:1;6510:11;;;;;;;;;;;;;;;6486:48;;6503:4;6486:48;;;6523:7;;6531:1;6523:10;;;;;;;;;;;;;6486:48;;;;;;;;;;;;;;;;;;6416:3;;;;;;;6375:171;;;;6565:4;6558:11;;6024:553;;;;;;:::o;3369:143::-;3443:4;406::3;382:28;;:8;:20;391:10;382:20;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;373:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3460:22:9;3466:7;3475:6;3460:5;:22::i;:::-;3500:4;3493:11;;3369:143;;;;:::o;3520:90::-;220:10:1;;;;;;;;;;;212:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3577:25:9;3583:10;3595:6;3577:5;:25::i;:::-;3520:90;:::o;1309:248:8:-;434:21;;;;;;;;;;;420:35;;:10;:35;;;412:44;;;;;;1432:21;;;;;;;;;;;1389:65;;1415:15;;;;;;;;;;;1389:65;;;;;;;;;;;;1483:21;;;;;;;;;;;1465:15;;:39;;;;;;;;;;;;;;;;;;1547:1;1515:21;;:34;;;;;;;;;;;;;;;;;;1309:248::o;848:105:5:-;230:7;;;;;;;;;;;216:21;;:10;:21;;;208:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;936:9;920:13;;:25;;;;;;;;;;;;;;;;;;848:105;:::o;1109:120:2:-;268:12;;;;;;;;;;;254:26;;:10;:26;;;245:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1212:9;1191:18;;:30;;;;;;;;;;;;;;;;;;1109:120;:::o;3982:470:9:-;4092:4;406::3;382:28;;:8;:20;391:10;382:20;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;373:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4135:1:9;4117:8;;:15;;:19;4109:90;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4237:7;;:14;;4218:8;;:15;;:33;4210:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4323:9;4335:1;4323:13;;4318:103;4342:8;;:15;;4338:1;:19;4318:103;;;4379:30;4385:8;;4394:1;4385:11;;;;;;;;;;;;;;;4398:7;;4406:1;4398:10;;;;;;;;;;;;;4379:5;:30::i;:::-;4359:3;;;;;;;4318:103;;;;4440:4;4433:11;;3982:470;;;;;;:::o;737:184:4:-;335:12;;;;;;;;;;;321:26;;:10;:26;;;313:35;;;;;;832:12;;;;;;;;;;;803:42;;824:6;;;;;;;;;;;803:42;;;;;;;;;;;;865:12;;;;;;;;;;;856:6;;:21;;;;;;;;;;;;;;;;;;911:1;888:12;;:25;;;;;;;;;;;;;;;;;;737:184::o;5519:497:9:-;5636:4;406::3;382:28;;:8;:20;391:10;382:20;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;373:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5679:1:9;5661:8;;:15;;:19;5653:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5788:7;;:14;;5769:8;;:15;;:33;5761:104;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5881:9;5893:1;5881:13;;5876:109;5900:8;;:15;;5896:1;:19;5876:109;;;5937:36;5949:8;;5958:1;5949:11;;;;;;;;;;;;;;;5962:7;;5970:1;5962:10;;;;;;;;;;;;;5937:11;:36::i;:::-;5917:3;;;;;;;5876:109;;;;6004:4;5997:11;;5519:497;;;;;;:::o;702:96:8:-;749:7;775:15;;;;;;;;;;;768:22;;702:96;:::o;586:78:5:-;625:4;649:7;;;;;;;;;;;642:14;;586:78;:::o;992:111:3:-;270:12;;;;;;;;;;;256:26;;:10;:26;;;247:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1090:5;1070:8;:17;1079:7;1070:17;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;992:111;:::o;165:33:2:-;;;;;;;;;;;;;:::o;1364:142:9:-;1421:7;1448:50;1471:26;1489:7;1471:17;:26::i;:::-;1448:9;:18;1458:7;1448:18;;;;;;;;;;;;;;;;:22;;:50;;;;:::i;:::-;1441:57;;1364:142;;;:::o;967:113:1:-;338:7;;;;;;;;;;;324:21;;:10;:21;;;316:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1063:9;1047:13;;:25;;;;;;;;;;;;;;;;;;967:113;:::o;3618:112:9:-;220:10:1;;;;;;;;;;;212:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3696:26:9;3706:7;3715:6;3696:9;:26::i;:::-;3618:112;;:::o;538:79:4:-;576:7;603:6;;;;;;;;;;;596:13;;538:79;:::o;237:20:9:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;138:28:5:-;;;;;;;;;;;;;:::o;672:81::-;711:7;738;;;;;;;;;;;731:14;;672:81;:::o;879:105:3:-;270:12;;;;;;;;;;;256:26;;:10;:26;;;247:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;972:4;952:8;:17;961:7;952:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;879:105;:::o;3738:108:9:-;212:6:4;;;;;;;;;;;198:20;;:10;:20;;;190:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3816:22:9;3822:7;3831:6;3816:5;:22::i;:::-;3738:108;;:::o;3145:216::-;3230:4;3247:84;3256:10;3268:7;3277:53;3314:15;3277:11;:23;3289:10;3277:23;;;;;;;;;;;;;;;:32;3301:7;3277:32;;;;;;;;;;;;;;;;:36;;:53;;;;:::i;:::-;3247:8;:84::i;:::-;3349:4;3342:11;;3145:216;;;;:::o;4921:208::-;5002:4;212:6:4;;;;;;;;;;;198:20;;:10;:20;;;190:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5019:24:9;5027:7;5036:6;5019:7;:24::i;:::-;5085:4;5059:40;;5068:7;5059:40;;;5092:6;5059:40;;;;;;;;;;;;;;;;;;5117:4;5110:11;;4921:208;;;;:::o;1514:265::-;1595:4;501:8;:6;:8::i;:::-;498:109;;;563:4;534:33;;:25;548:10;534:13;:25::i;:::-;:33;;;525:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;498:109;1641:4;1620:26;;:9;:26;;;;1612:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1709:40;1719:10;1731:9;1742:6;1709:9;:40::i;:::-;1767:4;1760:11;;1514:265;;;;:::o;5350:161::-;5436:4;406::3;382:28;;:8;:20;391:10;382:20;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;373:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5453:28:9;5465:7;5474:6;5453:11;:28::i;:::-;5499:4;5492:11;;5350:161;;;;:::o;2164:382::-;2263:4;2280:22;2320:8;2280:49;;2344:25;2352:8;2362:6;2344:7;:25::i;:::-;2340:199;;;2386:7;:23;;;2410:10;2422:6;2438:4;2445:10;2386:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2386:70:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2386:70:9;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2386:70:9;;;;2478:4;2471:11;;;;;2340:199;2522:5;2515:12;;;2164:382;;;;;;:::o;165:33:3:-;;;;;;;;;;;;;:::o;877:105:2:-;268:12;;;;;;;;;;;254:26;;:10;:26;;;245:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;970:4;950:8;:17;959:7;950:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;877:105;:::o;1088:184:1:-;462:13;;;;;;;;;;;448:27;;:10;:27;;;440:36;;;;;;1179:13;;;;;;;;;;;1152:41;;1170:7;;;;;;;;;;;1152:41;;;;;;;;;;;;1214:13;;;;;;;;;;;1204:7;;:23;;;;;;;;;;;;;;;;;;1262:1;1238:13;;:26;;;;;;;;;;;;;;;;;;1088:184::o;1111:120:3:-;270:12;;;;;;;;;;;256:26;;:10;:26;;;247:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1214:9;1193:18;;:30;;;;;;;;;;;;;;;;;;1111:120;:::o;1787:136:9:-;1860:7;1887:11;:19;1899:6;1887:19;;;;;;;;;;;;;;;:28;1907:7;1887:28;;;;;;;;;;;;;;;;1880:35;;1787:136;;;;:::o;121:36:8:-;;;;;;;;;;;;;:::o;122:27:4:-;;;;;;;;;;;;;:::o;4460:453:9:-;4557:4;212:6:4;;;;;;;;;;;198:20;;:10;:20;;;190:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4598:1:9;4582:18;;:4;:18;;;;4574:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4675:1;4661:16;;:2;:16;;;;4653:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4730:25;4742:4;4748:6;4730:11;:25::i;:::-;;4766:23;4778:2;4782:6;4766:11;:23::i;:::-;;4828:2;4807:32;;4822:4;4807:32;;;4832:6;4807:32;;;;;;;;;;;;;;;;;;4870:2;4855:26;;4864:4;4855:26;;;4874:6;4855:26;;;;;;;;;;;;;;;;;;4901:4;4894:11;;4460:453;;;;;:::o;875:84:1:-;338:7;;;;;;;;;;;324:21;;:10;:21;;;316:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;941:10;;;;;;;;;;;940:11;927:10;;:24;;;;;;;;;;;;;;;;;;875:84::o;144:28::-;;;;;;;;;;;;;:::o;625:104:4:-;212:6;;;;;;;;;;;198:20;;:10;:20;;;190:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;713:8;698:12;;:23;;;;;;;;;;;;;;;;;;625:104;:::o;7809:339:9:-;7921:1;7903:20;;:6;:20;;;;7895:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8002:1;7983:21;;:7;:21;;;;7975:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8087:5;8056:11;:19;8068:6;8056:19;;;;;;;;;;;;;;;:28;8076:7;8056:28;;;;;;;;;;;;;;;:36;;;;8125:7;8108:32;;8117:6;8108:32;;;8134:5;8108:32;;;;;;;;;;;;;;;;;;7809:339;;;:::o;9258:474::-;9353:1;9334:21;;:7;:21;;;;9326:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9421:1;9412:6;:10;9404:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9525:6;9495:26;9513:7;9495:17;:26::i;:::-;:36;;9487:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9595:28;9607:7;9616:6;9595:11;:28::i;:::-;;9655:30;9678:6;9655:9;:18;9665:7;9655:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;9634:9;:18;9644:7;9634:18;;;;;;;;;;;;;;;:51;;;;9708:7;9703:21;;;9717:6;9703:21;;;;;;;;;;;;;;;;;;9258:474;;:::o;9740:305::-;9841:1;9822:21;;:7;:21;;;;9814:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9916:24;9933:6;9916:12;;:16;;:24;;;;:::i;:::-;9901:12;:39;;;;9951:28;9963:7;9972:6;9951:11;:28::i;:::-;;10023:4;9997:40;;10006:7;9997:40;;;10030:6;9997:40;;;;;;;;;;;;;;;;;;9740:305;;:::o;6585:429::-;6701:1;6683:20;;:6;:20;;;;6675:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6785:1;6764:23;;:9;:23;;;;6756:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6860:29;6882:6;6860:9;:17;6870:6;6860:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;6840:9;:17;6850:6;6840:17;;;;;;;;;;;;;;;:49;;;;6923:32;6948:6;6923:9;:20;6933:9;6923:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;6900:9;:20;6910:9;6900:20;;;;;;;;;;;;;;;:55;;;;6988:9;6971:35;;6980:6;6971:35;;;6999:6;6971:35;;;;;;;;;;;;;;;;;;6585:429;;;:::o;243:184:6:-;301:7;334:1;329;:6;;321:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;381:9;397:1;393;:5;381:17;;418:1;411:8;;;243:184;;;;:::o;54:181::-;112:7;132:9;148:1;144;:5;132:17;;173:1;168;:6;;160:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;226:1;219:8;;;54:181;;;;:::o;7024:460:9:-;7119:1;7100:21;;:7;:21;;;;7092:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7195:4;7176:24;;:7;:24;;;;7168:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7268:1;7259:6;:10;7251:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7334:24;7351:6;7334:12;;:16;;:24;;;;:::i;:::-;7319:12;:39;;;;7390:30;7413:6;7390:9;:18;7400:7;7390:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;7369:9;:18;7379:7;7369:18;;;;;;;;;;;;;;;:51;;;;7460:7;7436:40;;7453:4;7436:40;;;7469:6;7436:40;;;;;;;;;;;;;;;;;;7024:460;;:::o;7492:309::-;7586:1;7567:21;;:7;:21;;;;7559:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7654:23;7671:5;7654:12;;:16;;:23;;;;:::i;:::-;7639:12;:38;;;;7709:29;7732:5;7709:9;:18;7719:7;7709:18;;;;;;;;;;;;;;;;:22;;:29;;;;:::i;:::-;7688:9;:18;7698:7;7688:18;;;;;;;;;;;;;;;:50;;;;7780:4;7754:39;;7763:7;7754:39;;;7787:5;7754:39;;;;;;;;;;;;;;;;;;7492:309;;:::o;8737:513::-;8838:1;8819:21;;:7;:21;;;;8811:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8921:4;8902:24;;:7;:24;;;;8894:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9001:1;8992:6;:10;8984:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9074:24;9091:6;9074:12;;:16;;:24;;;;:::i;:::-;9059:12;:39;;;;9140:7;9116:40;;9133:4;9116:40;;;9149:6;9116:40;;;;;;;;;;;;;;;;;;9169:28;9181:7;9190:6;9169:11;:28::i;:::-;;9226:7;9215:27;;;9235:6;9215:27;;;;;;;;;;;;;;;;;;8737:513;;:::o;580:125:0:-;648:4;672:15;:25;688:8;672:25;;;;;;;;;;;;;;;;665:32;;580:125;;;:::o;8156:188:9:-;8228:22;8234:7;8243:6;8228:5;:22::i;:::-;8261:75;8270:7;8279:10;8291:44;8328:6;8291:11;:20;8303:7;8291:20;;;;;;;;;;;;;;;:32;8312:10;8291:32;;;;;;;;;;;;;;;;:36;;:44;;;;:::i;:::-;8261:8;:75::i;:::-;8156:188;;:::o;8352:377::-;8449:1;8430:21;;:7;:21;;;;8422:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8519:1;8510:6;:10;8502:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8611:30;8634:6;8611:9;:18;8621:7;8611:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;8590:9;:18;8600:7;8590:18;;;;;;;;;;;;;;;:51;;;;8652:28;8664:7;8673:6;8652:11;:28::i;:::-;;8705:7;8698:23;;;8714:6;8698:23;;;;;;;;;;;;;;;;;;8352:377;;:::o;385:187:0:-;459:4;504:38;534:7;504:15;:25;520:8;504:25;;;;;;;;;;;;;;;;:29;;:38;;;;:::i;:::-;476:15;:25;492:8;476:25;;;;;;;;;;;;;;;:66;;;;560:4;553:11;;385:187;;;;:::o;190:::-;264:4;309:38;339:7;309:15;:25;325:8;309:25;;;;;;;;;;;;;;;;:29;;:38;;;;:::i;:::-;281:15;:25;297:8;281:25;;;;;;;;;;;;;;;:66;;;;365:4;358:11;;190:187;;;;:::o

Swarm Source

bzzr://0634adc6c54dc3ebdf937cc868b726614b81f217d512bc72263cf513625e2e74
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.