Overview
XDC Balance
XDC Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Transfer Ownersh... | 80918125 | 184 days ago | IN | 0 XDC | 0.00033294 |
Loading...
Loading
Contract Name:
StorxToken
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at xdcscan.com on 2025-03-27 */ // File: contracts/Token/Initializable.sol pragma solidity 0.4.24; /** * @title Initializable * * @dev Helper contract to support initializer functions. To use it, replace * the constructor with a function that has the `initializer` modifier. * WARNING: Unlike constructors, initializer functions must be manually * invoked. This applies both to deploying an Initializable contract, as well * as extending an Initializable contract via inheritance. * WARNING: When used with inheritance, manual care must be taken to not invoke * a parent initializer twice, or ensure that all initializers are idempotent, * because this is not dealt with automatically as with constructors. */ contract Initializable { /** * @dev Indicates that the contract has been initialized. */ bool private initialized; /** * @dev Indicates that the contract is in the process of being initialized. */ bool private initializing; /** * @dev Modifier to use in the initializer function of a contract. */ modifier initializer() { require( initializing || isConstructor() || !initialized, 'Contract instance has already been initialized' ); bool isTopLevelCall = !initializing; if (isTopLevelCall) { initializing = true; initialized = true; } _; if (isTopLevelCall) { initializing = false; } } /// @dev Returns true if and only if the function is running in the constructor function isConstructor() private view returns (bool) { // extcodesize checks the size of the code stored in an address, and // address returns the current address. Since the code is still not // deployed when running a constructor, any checks on its code size will // yield zero, making it an effective way to detect if a contract is // under construction or not. address self = address(this); uint256 cs; assembly { cs := extcodesize(self) } return cs == 0; } // Reserved storage space to allow for layout changes in the future. uint256[50] private ______gap; } // File: contracts/Token/Ownable.sol pragma solidity ^0.4.24; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable is Initializable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ function _initializeOwner() internal initializer { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } // File: contracts/Token/Operator.sol // SPDX-License-Identifier: MIT pragma solidity 0.4.24; contract Operator is Ownable { address private _operator; event OperatorTransferred(address indexed previousOperator, address indexed newOperator); function _initializeOperator() internal initializer { _operator = msg.sender; emit OperatorTransferred(address(0), _operator); } function operator() public view returns (address) { return _operator; } modifier onlyOperator() { require(_operator == msg.sender, 'operator: caller is not the operator'); _; } function isOperator() public view returns (bool) { return msg.sender == _operator; } function transferOperator(address newOperator_) public onlyOwner { _transferOperator(newOperator_); } function _transferOperator(address newOperator_) internal { require(newOperator_ != address(0), 'operator: zero address given for new operator'); emit OperatorTransferred(address(0), newOperator_); _operator = newOperator_; } } // File: contracts/Token/StandardToken.sol // File: contracts/token/ERC20/ERC20Basic.sol pragma solidity ^0.4.24; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface * See https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { function totalSupply() public view returns (uint256); function balanceOf(address _who) public view returns (uint256); function transfer(address _to, uint256 _value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } // File: contracts/math/SafeMath.sol pragma solidity ^0.4.24; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (_a == 0) { return 0; } c = _a * _b; assert(c / _a == _b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 _a, uint256 _b) internal pure returns (uint256) { // assert(_b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = _a / _b; // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold return _a / _b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { assert(_b <= _a); return _a - _b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) { c = _a + _b; assert(c >= _a); return c; } } // File: contracts/token/ERC20/BasicToken.sol pragma solidity ^0.4.24; /** * @title Basic token * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; mapping(address => uint256) internal balances; uint256 internal totalSupply_; /** * @dev Total number of tokens in existence */ function totalSupply() public view returns (uint256) { return totalSupply_; } /** * @dev Transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) public returns (bool) { require(_value <= balances[msg.sender]); require(_to != address(0)); balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); emit Transfer(msg.sender, _to, _value); return true; } /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) public view returns (uint256) { return balances[_owner]; } } // File: contracts/token/ERC20/ERC20.sol pragma solidity ^0.4.24; /** * @title ERC20 interface * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { function allowance(address _owner, address _spender) public view returns (uint256); function transferFrom( address _from, address _to, uint256 _value ) public returns (bool); function approve(address _spender, uint256 _value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } // File: contracts/token/ERC20/StandardToken.sol pragma solidity ^0.4.24; /** * @title Standard ERC20 token * * @dev Implementation of the basic standard token. * https://github.com/ethereum/EIPs/issues/20 * Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ contract StandardToken is ERC20, BasicToken { event Mint(address indexed to, uint256 amount); mapping(address => mapping(address => uint256)) internal allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ function transferFrom( address _from, address _to, uint256 _value ) public returns (bool) { require(_value <= balances[_from]); require(_value <= allowed[_from][msg.sender]); require(_to != address(0)); balances[_from] = balances[_from].sub(_value); balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); emit Transfer(_from, _to, _value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * Beware that changing an allowance with this method brings the risk that someone may use both the old * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ function approve(address _spender, uint256 _value) public returns (bool) { allowed[msg.sender][_spender] = _value; emit Approval(msg.sender, _spender, _value); return true; } /** * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) public view returns (uint256) { return allowed[_owner][_spender]; } /** * @dev Increase the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _addedValue The amount of tokens to increase the allowance by. */ function increaseApproval(address _spender, uint256 _addedValue) public returns (bool) { allowed[msg.sender][_spender] = (allowed[msg.sender][_spender].add(_addedValue)); emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Decrease the amount of tokens that an owner allowed to a spender. * approve should be called when allowed[_spender] == 0. To decrement * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol * @param _spender The address which will spend the funds. * @param _subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseApproval(address _spender, uint256 _subtractedValue) public returns (bool) { uint256 oldValue = allowed[msg.sender][_spender]; if (_subtractedValue >= oldValue) { allowed[msg.sender][_spender] = 0; } else { allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); } emit Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } /** * @dev Function to mint tokens * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ function _mint(address _to, uint256 _amount) internal returns (bool) { totalSupply_ = totalSupply_.add(_amount); balances[_to] = balances[_to].add(_amount); emit Mint(_to, _amount); emit Transfer(address(0), _to, _amount); return true; } } // File: contracts/Token/BurnableToken.sol pragma solidity ^0.4.24; /** * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ contract BurnableToken is StandardToken { event Burn(address indexed burner, uint256 value); /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ function burn(uint256 _value) public { _burn(msg.sender, _value); } function _burn(address _who, uint256 _value) internal { require(_value <= balances[_who]); // no need to require value <= totalSupply, since that would imply the // sender's balance is greater than the totalSupply, which *should* be an assertion failure balances[_who] = balances[_who].sub(_value); totalSupply_ = totalSupply_.sub(_value); emit Burn(_who, _value); emit Transfer(_who, address(0), _value); } } // File: contracts/Token/StorXToken.sol pragma solidity ^0.4.24; contract StorxToken is BurnableToken, Operator { string public name; string public symbol; uint8 public decimals; function initialize( string _name, string _symbol, uint8 _decimals, uint256 _totalSupply ) public initializer { name = _name; symbol = _symbol; decimals = _decimals; balances[msg.sender] = _totalSupply; totalSupply_ = _totalSupply; _initializeOwner(); _initializeOperator(); } /** * calls internal function _mint() */ function mint(address to, uint256 amount) public onlyOperator { _mint(to, amount); } function destroy() public onlyOwner { selfdestruct(owner); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","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":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_symbol","type":"string"},{"name":"_decimals","type":"uint8"},{"name":"_totalSupply","type":"uint256"}],"name":"initialize","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOperator_","type":"address"}],"name":"transferOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"amount","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"burn","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isOperator","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"operator","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"destroy","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":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOperator","type":"address"},{"indexed":true,"name":"newOperator","type":"address"}],"name":"OperatorTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]
Contract Creation Code
608060405234801561001057600080fd5b50612616806100206000396000f30060806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610122578063095ea7b3146101b257806318160ddd1461021757806323b872dd14610242578063253279ad146102c757806329605e771461038d578063313ce567146103d057806340c10f191461040157806342966c681461044e5780634456eda21461047b578063570ca735146104aa578063661884631461050157806370a0823114610566578063715018a6146105bd57806383197ef0146105d45780638da5cb5b146105eb57806395d89b4114610642578063a9059cbb146106d2578063d73dd62314610737578063dd62ed3e1461079c578063f2fde38b14610813575b600080fd5b34801561012e57600080fd5b50610137610856565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017757808201518184015260208101905061015c565b50505050905090810190601f1680156101a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101be57600080fd5b506101fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108f4565b604051808215151515815260200191505060405180910390f35b34801561022357600080fd5b5061022c6109e6565b6040518082815260200191505060405180910390f35b34801561024e57600080fd5b506102ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109f0565b604051808215151515815260200191505060405180910390f35b3480156102d357600080fd5b5061038b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610dab565b005b34801561039957600080fd5b506103ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f9a565b005b3480156103dc57600080fd5b506103e5611002565b604051808260ff1660ff16815260200191505060405180910390f35b34801561040d57600080fd5b5061044c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611015565b005b34801561045a57600080fd5b506104796004803603810190808035906020019092919050505061110f565b005b34801561048757600080fd5b5061049061111c565b604051808215151515815260200191505060405180910390f35b3480156104b657600080fd5b506104bf611174565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050d57600080fd5b5061054c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061119e565b604051808215151515815260200191505060405180910390f35b34801561057257600080fd5b506105a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611430565b6040518082815260200191505060405180910390f35b3480156105c957600080fd5b506105d2611478565b005b3480156105e057600080fd5b506105e961157d565b005b3480156105f757600080fd5b50610600611614565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064e57600080fd5b5061065761163a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069757808201518184015260208101905061067c565b50505050905090810190601f1680156106c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106de57600080fd5b5061071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116d8565b604051808215151515815260200191505060405180910390f35b34801561074357600080fd5b50610782600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118f8565b604051808215151515815260200191505060405180910390f35b3480156107a857600080fd5b506107fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af4565b6040518082815260200191505060405180910390f35b34801561081f57600080fd5b50610854600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b7b565b005b60388054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610a3f57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610aca57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b0657600080fd5b610b57826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be390919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bea826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cbb82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be390919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360019054906101000a900460ff1680610dcc5750610dcb611c18565b5b80610de45750600360009054906101000a900460ff16155b1515610e7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600360019054906101000a900460ff161590508015610ece576001600360016101000a81548160ff0219169083151502179055506001600360006101000a81548160ff0219169083151502179055505b8460389080519060200190610ee4929190612545565b508360399080519060200190610efb929190612545565b5082603a60006101000a81548160ff021916908360ff160217905550816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600181905550610f69611c2f565b610f71611db8565b8015610f93576000600360016101000a81548160ff0219169083151502179055505b5050505050565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ff657600080fd5b610fff81611fbe565b50565b603a60009054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16603760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f6f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657281526020017f61746f720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61110a8282612128565b505050565b6111193382612296565b50565b6000603760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000603760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831015156112b0576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611344565b6112c38382611be390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114d457600080fd5b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000603660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d957600080fd5b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60398054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116d05780601f106116a5576101008083540402835291602001916116d0565b820191906000526020600020905b8154815290600101906020018083116116b357829003601f168201915b505050505081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561172757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561176357600080fd5b6117b4826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be390919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611847826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061198982600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfc90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bd757600080fd5b611be081612449565b50565b6000828211151515611bf157fe5b818303905092915050565b60008183019050828110151515611c0f57fe5b80905092915050565b6000806000309150813b9050600081149250505090565b6000600360019054906101000a900460ff1680611c505750611c4f611c18565b5b80611c685750600360009054906101000a900460ff16155b1515611d02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600360019054906101000a900460ff161590508015611d52576001600360016101000a81548160ff0219169083151502179055506001600360006101000a81548160ff0219169083151502179055505b33603660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015611db5576000600360016101000a81548160ff0219169083151502179055505b50565b6000600360019054906101000a900460ff1680611dd95750611dd8611c18565b5b80611df15750600360009054906101000a900460ff16155b1515611e8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600360019054906101000a900460ff161590508015611edb576001600360016101000a81548160ff0219169083151502179055506001600360006101000a81548160ff0219169083151502179055505b33603760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550603760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a38015611fbb576000600360016101000a81548160ff0219169083151502179055505b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f6f70657261746f723a207a65726f206164647265737320676976656e20666f7281526020017f206e6577206f70657261746f720000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380603760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061213f82600154611bfc90919063ffffffff16565b600181905550612196826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156122e357600080fd5b612334816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061238b81600154611be390919063ffffffff16565b6001819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561248557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061258657805160ff19168380011785556125b4565b828001600101855582156125b4579182015b828111156125b3578251825591602001919060010190612598565b5b5090506125c191906125c5565b5090565b6125e791905b808211156125e35760008160009055506001016125cb565b5090565b905600a165627a7a7230582069ba868a6b6f73b5f43143941d744da2ffa53f228b3293de9ef3456a16dc0be00029
Deployed Bytecode
0x60806040526004361061011d576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806306fdde0314610122578063095ea7b3146101b257806318160ddd1461021757806323b872dd14610242578063253279ad146102c757806329605e771461038d578063313ce567146103d057806340c10f191461040157806342966c681461044e5780634456eda21461047b578063570ca735146104aa578063661884631461050157806370a0823114610566578063715018a6146105bd57806383197ef0146105d45780638da5cb5b146105eb57806395d89b4114610642578063a9059cbb146106d2578063d73dd62314610737578063dd62ed3e1461079c578063f2fde38b14610813575b600080fd5b34801561012e57600080fd5b50610137610856565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561017757808201518184015260208101905061015c565b50505050905090810190601f1680156101a45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101be57600080fd5b506101fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108f4565b604051808215151515815260200191505060405180910390f35b34801561022357600080fd5b5061022c6109e6565b6040518082815260200191505060405180910390f35b34801561024e57600080fd5b506102ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109f0565b604051808215151515815260200191505060405180910390f35b3480156102d357600080fd5b5061038b600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803560ff16906020019092919080359060200190929190505050610dab565b005b34801561039957600080fd5b506103ce600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f9a565b005b3480156103dc57600080fd5b506103e5611002565b604051808260ff1660ff16815260200191505060405180910390f35b34801561040d57600080fd5b5061044c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611015565b005b34801561045a57600080fd5b506104796004803603810190808035906020019092919050505061110f565b005b34801561048757600080fd5b5061049061111c565b604051808215151515815260200191505060405180910390f35b3480156104b657600080fd5b506104bf611174565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561050d57600080fd5b5061054c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061119e565b604051808215151515815260200191505060405180910390f35b34801561057257600080fd5b506105a7600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611430565b6040518082815260200191505060405180910390f35b3480156105c957600080fd5b506105d2611478565b005b3480156105e057600080fd5b506105e961157d565b005b3480156105f757600080fd5b50610600611614565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561064e57600080fd5b5061065761163a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561069757808201518184015260208101905061067c565b50505050905090810190601f1680156106c45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156106de57600080fd5b5061071d600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506116d8565b604051808215151515815260200191505060405180910390f35b34801561074357600080fd5b50610782600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118f8565b604051808215151515815260200191505060405180910390f35b3480156107a857600080fd5b506107fd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611af4565b6040518082815260200191505060405180910390f35b34801561081f57600080fd5b50610854600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b7b565b005b60388054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156108ec5780601f106108c1576101008083540402835291602001916108ec565b820191906000526020600020905b8154815290600101906020018083116108cf57829003601f168201915b505050505081565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600154905090565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610a3f57600080fd5b600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548211151515610aca57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b0657600080fd5b610b57826000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be390919063ffffffff16565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610bea826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610cbb82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be390919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b6000600360019054906101000a900460ff1680610dcc5750610dcb611c18565b5b80610de45750600360009054906101000a900460ff16155b1515610e7e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600360019054906101000a900460ff161590508015610ece576001600360016101000a81548160ff0219169083151502179055506001600360006101000a81548160ff0219169083151502179055505b8460389080519060200190610ee4929190612545565b508360399080519060200190610efb929190612545565b5082603a60006101000a81548160ff021916908360ff160217905550816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600181905550610f69611c2f565b610f71611db8565b8015610f93576000600360016101000a81548160ff0219169083151502179055505b5050505050565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610ff657600080fd5b610fff81611fbe565b50565b603a60009054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16603760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001807f6f70657261746f723a2063616c6c6572206973206e6f7420746865206f70657281526020017f61746f720000000000000000000000000000000000000000000000000000000081525060400191505060405180910390fd5b61110a8282612128565b505050565b6111193382612296565b50565b6000603760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6000603760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905080831015156112b0576000600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611344565b6112c38382611be390919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156114d457600080fd5b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000603660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156115d957600080fd5b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60398054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116d05780601f106116a5576101008083540402835291602001916116d0565b820191906000526020600020905b8154815290600101906020018083116116b357829003601f168201915b505050505081565b60008060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115151561172757600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415151561176357600080fd5b6117b4826000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be390919063ffffffff16565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611847826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600061198982600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfc90919063ffffffff16565b600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611bd757600080fd5b611be081612449565b50565b6000828211151515611bf157fe5b818303905092915050565b60008183019050828110151515611c0f57fe5b80905092915050565b6000806000309150813b9050600081149250505090565b6000600360019054906101000a900460ff1680611c505750611c4f611c18565b5b80611c685750600360009054906101000a900460ff16155b1515611d02576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600360019054906101000a900460ff161590508015611d52576001600360016101000a81548160ff0219169083151502179055506001600360006101000a81548160ff0219169083151502179055505b33603660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508015611db5576000600360016101000a81548160ff0219169083151502179055505b50565b6000600360019054906101000a900460ff1680611dd95750611dd8611c18565b5b80611df15750600360009054906101000a900460ff16155b1515611e8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001807f436f6e747261637420696e7374616e63652068617320616c726561647920626581526020017f656e20696e697469616c697a656400000000000000000000000000000000000081525060400191505060405180910390fd5b600360019054906101000a900460ff161590508015611edb576001600360016101000a81548160ff0219169083151502179055506001600360006101000a81548160ff0219169083151502179055505b33603760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550603760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a38015611fbb576000600360016101000a81548160ff0219169083151502179055505b50565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515612089576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d8152602001807f6f70657261746f723a207a65726f206164647265737320676976656e20666f7281526020017f206e6577206f70657261746f720000000000000000000000000000000000000081525060400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f74da04524d50c64947f5dd5381ef1a4dca5cba8ed1d816243f9e48aa0b5617ed60405160405180910390a380603760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600061213f82600154611bfc90919063ffffffff16565b600181905550612196826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611bfc90919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885836040518082815260200191505060405180910390a28273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b6000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481111515156122e357600080fd5b612334816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061238b81600154611be390919063ffffffff16565b6001819055508173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca5826040518082815260200191505060405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415151561248557600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16603660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380603660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061258657805160ff19168380011785556125b4565b828001600101855582156125b4579182015b828111156125b3578251825591602001919060010190612598565b5b5090506125c191906125c5565b5090565b6125e791905b808211156125e35760008160009055506001016125cb565b5090565b905600a165627a7a7230582069ba868a6b6f73b5f43143941d744da2ffa53f228b3293de9ef3456a16dc0be00029
Deployed Bytecode Sourcemap
15442:772:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15496:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15496:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;15496:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11449:206;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11449:206:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7916:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7916:91:0;;;;;;;;;;;;;;;;;;;;;;;10278:522;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10278:522:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15578:387;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15578:387:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4976:115;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4976:115:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15548:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15548:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;16031:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16031:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14794:81;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14794:81:0;;;;;;;;;;;;;;;;;;;;;;;;;;4870:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4870:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;4642:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4642:85:0;;;;;;;;;;;;;;;;;;;;;;;;;;;13386:457;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13386:457:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8764:107;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8764:107:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3451:124;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3451:124:0;;;;;;16137:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16137:74:0;;;;;;2595:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2595:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;15521;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15521:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;15521:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8184:355;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8184:355:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12613:285;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12613:285:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11996:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11996:134:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3753:111;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3753:111:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15496:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11449:206::-;11516:4;11565:6;11533:7;:19;11541:10;11533:19;;;;;;;;;;;;;;;:29;11553:8;11533:29;;;;;;;;;;;;;;;:38;;;;11608:8;11587:38;;11596:10;11587:38;;;11618:6;11587:38;;;;;;;;;;;;;;;;;;11643:4;11636:11;;11449:206;;;;:::o;7916:91::-;7960:7;7987:12;;7980:19;;7916:91;:::o;10278:522::-;10394:4;10429:8;:15;10438:5;10429:15;;;;;;;;;;;;;;;;10419:6;:25;;10411:34;;;;;;;;10474:7;:14;10482:5;10474:14;;;;;;;;;;;;;;;:26;10489:10;10474:26;;;;;;;;;;;;;;;;10464:6;:36;;10456:45;;;;;;;;10535:1;10520:17;;:3;:17;;;;10512:26;;;;;;;;10569:27;10589:6;10569:8;:15;10578:5;10569:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10551:8;:15;10560:5;10551:15;;;;;;;;;;;;;;;:45;;;;10623:25;10641:6;10623:8;:13;10632:3;10623:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;10607:8;:13;10616:3;10607:13;;;;;;;;;;;;;;;:41;;;;10688:38;10719:6;10688:7;:14;10696:5;10688:14;;;;;;;;;;;;;;;:26;10703:10;10688:26;;;;;;;;;;;;;;;;:30;;:38;;;;:::i;:::-;10659:7;:14;10667:5;10659:14;;;;;;;;;;;;;;;:26;10674:10;10659:26;;;;;;;;;;;;;;;:67;;;;10758:3;10742:28;;10751:5;10742:28;;;10763:6;10742:28;;;;;;;;;;;;;;;;;;10788:4;10781:11;;10278:522;;;;;:::o;15578:387::-;1264:19;1130:12;;;;;;;;;;;:31;;;;1146:15;:13;:15::i;:::-;1130:31;:47;;;;1166:11;;;;;;;;;;;1165:12;1130:47;1108:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1287:12;;;;;;;;;;;1286:13;1264:35;;1314:14;1310:99;;;1360:4;1345:12;;:19;;;;;;;;;;;;;;;;;;1393:4;1379:11;;:18;;;;;;;;;;;;;;;;;;1310:99;15747:5;15740:4;:12;;;;;;;;;;;;:::i;:::-;;15772:7;15763:6;:16;;;;;;;;;;;;:::i;:::-;;15801:9;15790:8;;:20;;;;;;;;;;;;;;;;;;15844:12;15821:8;:20;15830:10;15821:20;;;;;;;;;;;;;;;:35;;;;15882:12;15867;:27;;;;15907:18;:16;:18::i;:::-;15936:21;:19;:21::i;:::-;1439:14;1435:67;;;1485:5;1470:12;;:20;;;;;;;;;;;;;;;;;;1435:67;15578:387;;;;;:::o;4976:115::-;3139:5;;;;;;;;;;;3125:19;;:10;:19;;;3117:28;;;;;;;;5052:31;5070:12;5052:17;:31::i;:::-;4976:115;:::o;15548:21::-;;;;;;;;;;;;;:::o;16031:98::-;4791:10;4778:23;;:9;;;;;;;;;;;:23;;;4770:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16104:17;16110:2;16114:6;16104:5;:17::i;:::-;;16031:98;;:::o;14794:81::-;14842:25;14848:10;14860:6;14842:5;:25::i;:::-;14794:81;:::o;4870:98::-;4913:4;4951:9;;;;;;;;;;;4937:23;;:10;:23;;;4930:30;;4870:98;:::o;4642:85::-;4683:7;4710:9;;;;;;;;;;;4703:16;;4642:85;:::o;13386:457::-;13472:4;13489:16;13508:7;:19;13516:10;13508:19;;;;;;;;;;;;;;;:29;13528:8;13508:29;;;;;;;;;;;;;;;;13489:48;;13572:8;13552:16;:28;;13548:189;;;13629:1;13597:7;:19;13605:10;13597:19;;;;;;;;;;;;;;;:29;13617:8;13597:29;;;;;;;;;;;;;;;:33;;;;13548:189;;;13695:30;13708:16;13695:8;:12;;:30;;;;:::i;:::-;13663:7;:19;13671:10;13663:19;;;;;;;;;;;;;;;:29;13683:8;13663:29;;;;;;;;;;;;;;;:62;;;;13548:189;13773:8;13752:61;;13761:10;13752:61;;;13783:7;:19;13791:10;13783:19;;;;;;;;;;;;;;;:29;13803:8;13783:29;;;;;;;;;;;;;;;;13752:61;;;;;;;;;;;;;;;;;;13831:4;13824:11;;13386:457;;;;;:::o;8764:107::-;8820:7;8847:8;:16;8856:6;8847:16;;;;;;;;;;;;;;;;8840:23;;8764:107;;;:::o;3451:124::-;3139:5;;;;;;;;;;;3125:19;;:10;:19;;;3117:28;;;;;;;;3532:5;;;;;;;;;;;3513:25;;;;;;;;;;;;3565:1;3549:5;;:18;;;;;;;;;;;;;;;;;;3451:124::o;16137:74::-;3139:5;;;;;;;;;;;3125:19;;:10;:19;;;3117:28;;;;;;;;16197:5;;;;;;;;;;;16184:19;;;2595:20;;;;;;;;;;;;;:::o;15521:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8184:355::-;8247:4;8282:8;:20;8291:10;8282:20;;;;;;;;;;;;;;;;8272:6;:30;;8264:39;;;;;;;;8337:1;8322:17;;:3;:17;;;;8314:26;;;;;;;;8376:32;8401:6;8376:8;:20;8385:10;8376:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8353:8;:20;8362:10;8353:20;;;;;;;;;;;;;;;:55;;;;8435:25;8453:6;8435:8;:13;8444:3;8435:13;;;;;;;;;;;;;;;;:17;;:25;;;;:::i;:::-;8419:8;:13;8428:3;8419:13;;;;;;;;;;;;;;;:41;;;;8497:3;8476:33;;8485:10;8476:33;;;8502:6;8476:33;;;;;;;;;;;;;;;;;;8527:4;8520:11;;8184:355;;;;:::o;12613:285::-;12694:4;12744:46;12778:11;12744:7;:19;12752:10;12744:19;;;;;;;;;;;;;;;:29;12764:8;12744:29;;;;;;;;;;;;;;;;:33;;:46;;;;:::i;:::-;12711:7;:19;12719:10;12711:19;;;;;;;;;;;;;;;:29;12731:8;12711:29;;;;;;;;;;;;;;;:80;;;;12828:8;12807:61;;12816:10;12807:61;;;12838:7;:19;12846:10;12838:19;;;;;;;;;;;;;;;:29;12858:8;12838:29;;;;;;;;;;;;;;;;12807:61;;;;;;;;;;;;;;;;;;12886:4;12879:11;;12613:285;;;;:::o;11996:134::-;12070:7;12097;:15;12105:6;12097:15;;;;;;;;;;;;;;;:25;12113:8;12097:25;;;;;;;;;;;;;;;;12090:32;;11996:134;;;;:::o;3753:111::-;3139:5;;;;;;;;;;;3125:19;;:10;:19;;;3117:28;;;;;;;;3827:29;3846:9;3827:18;:29::i;:::-;3753:111;:::o;7151:129::-;7211:7;7244:2;7238;:8;;7231:16;;;;;;7270:2;7265;:7;7258:14;;7151:129;;;;:::o;7357:146::-;7417:9;7448:2;7443;:7;7439:11;;7473:2;7468:1;:7;;7461:15;;;;;;7494:1;7487:8;;7357:146;;;;:::o;1602:568::-;1649:4;2020:12;2059:10;2043:4;2020:28;;2122:4;2110:17;2104:23;;2161:1;2155:2;:7;2148:14;;1602:568;;;:::o;2906:86::-;1264:19;1130:12;;;;;;;;;;;:31;;;;1146:15;:13;:15::i;:::-;1130:31;:47;;;;1166:11;;;;;;;;;;;1165:12;1130:47;1108:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1287:12;;;;;;;;;;;1286:13;1264:35;;1314:14;1310:99;;;1360:4;1345:12;;:19;;;;;;;;;;;;;;;;;;1393:4;1379:11;;:18;;;;;;;;;;;;;;;;;;1310:99;2974:10;2966:5;;:18;;;;;;;;;;;;;;;;;;1439:14;1435:67;;;1485:5;1470:12;;:20;;;;;;;;;;;;;;;;;;1435:67;2906:86;:::o;4483:151::-;1264:19;1130:12;;;;;;;;;;;:31;;;;1146:15;:13;:15::i;:::-;1130:31;:47;;;;1166:11;;;;;;;;;;;1165:12;1130:47;1108:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1287:12;;;;;;;;;;;1286:13;1264:35;;1314:14;1310:99;;;1360:4;1345:12;;:19;;;;;;;;;;;;;;;;;;1393:4;1379:11;;:18;;;;;;;;;;;;;;;;;;1310:99;4558:10;4546:9;;:22;;;;;;;;;;;;;;;;;;4616:9;;;;;;;;;;;4584:42;;4612:1;4584:42;;;;;;;;;;;;1439:14;1435:67;;;1485:5;1470:12;;:20;;;;;;;;;;;;;;;;;;1435:67;4483:151;:::o;5099:257::-;5200:1;5176:26;;:12;:26;;;;5168:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5300:12;5268:45;;5296:1;5268:45;;;;;;;;;;;;5336:12;5324:9;;:24;;;;;;;;;;;;;;;;;;5099:257;:::o;14101:287::-;14164:4;14196:25;14213:7;14196:12;;:16;;:25;;;;:::i;:::-;14181:12;:40;;;;14248:26;14266:7;14248:8;:13;14257:3;14248:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;14232:8;:13;14241:3;14232:13;;;;;;;;;;;;;;;:42;;;;14295:3;14290:18;;;14300:7;14290:18;;;;;;;;;;;;;;;;;;14345:3;14324:34;;14341:1;14324:34;;;14350:7;14324:34;;;;;;;;;;;;;;;;;;14376:4;14369:11;;14101:287;;;;:::o;14883:477::-;14966:8;:14;14975:4;14966:14;;;;;;;;;;;;;;;;14956:6;:24;;14948:33;;;;;;;;15192:26;15211:6;15192:8;:14;15201:4;15192:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;15175:8;:14;15184:4;15175:14;;;;;;;;;;;;;;;:43;;;;15244:24;15261:6;15244:12;;:16;;:24;;;;:::i;:::-;15229:12;:39;;;;15289:4;15284:18;;;15295:6;15284:18;;;;;;;;;;;;;;;;;;15341:1;15318:34;;15327:4;15318:34;;;15345:6;15318:34;;;;;;;;;;;;;;;;;;14883:477;;:::o;4015:189::-;4111:1;4090:23;;:9;:23;;;;4082:32;;;;;;;;4158:9;4130:38;;4151:5;;;;;;;;;;;4130:38;;;;;;;;;;;;4187:9;4179:5;;:17;;;;;;;;;;;;;;;;;;4015:189;:::o;15442:772::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
bzzr://69ba868a6b6f73b5f43143941d744da2ffa53f228b3293de9ef3456a16dc0be0
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.