Overview
Max Total Supply
11,055,517.75182218133175 CHAD
Holders
150 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$504.95
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,806,051.166803078750604807 CHADValue
$82.49 ( ~0.0308142449395287 Eth) [16.3362%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ChadToken
Compiler Version
v0.6.6+commit.6c089d02
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-10-04 */ /* .g8"""bgd `7MMF' `7MMF' db `7MM"""Yb. .dP' `M MM MM ;MM: MM `Yb. dM' ` MM MM ,V^MM. MM `Mb MM MMmmmmmmMM ,M `MM MM MM MM. MM MM AbmmmqMA MM ,MP `Mb. ,' MM MM A' VML MM ,dP' `"bmmmd' .JMML. .JMML..AMA. .AMMA..JMMmmmdP' `7MM"""YMM `7MMF'`7MN. `7MF' db `7MN. `7MF' .g8"""bgd `7MM"""YMM MM `7 MM MMN. M ;MM: MMN. M .dP' `M MM `7 MM d MM M YMb M ,V^MM. M YMb M dM' ` MM d MM""MM MM M `MN. M ,M `MM M `MN. M MM MMmmMM MM Y MM M `MM.M AbmmmqMA M `MM.M MM. MM Y , MM MM M YMM A' VML M YMM `Mb. ,' MM ,M .JMML. .JMML..JML. YM .AMA. .AMMA..JML. YM `"bmmmd' .JMMmmmmMMM */ // SPDX-License-Identifier: MIT // File: @openzeppelin/contracts/GSN/Context.sol pragma solidity ^0.6.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } // File: @openzeppelin/contracts/token/ERC20/IERC20.sol pragma solidity ^0.6.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: 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 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } // File: @openzeppelin/contracts/math/SafeMath.sol pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } // File: @openzeppelin/contracts/utils/Address.sol pragma solidity ^0.6.2; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== */ function isContract(address account) internal view returns (bool) { // This method relies in extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; // solhint-disable-next-line no-inline-assembly assembly { size := extcodesize(account) } return size > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain`call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); // solhint-disable-next-line avoid-low-level-calls (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly // solhint-disable-next-line no-inline-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } // File: @openzeppelin/contracts/token/ERC20/ERC20.sol pragma solidity ^0.6.0; /** * @dev Implementation of the {IERC20} interface. * * This implementation is agnostic to the way tokens are created. This means * that a supply mechanism has to be added in a derived contract using {_mint}. * For a generic mechanism see {ERC20PresetMinterPauser}. * * TIP: For a detailed writeup see our guide * https://forum.zeppelin.solutions/t/how-to-implement-erc20-supply-mechanisms/226[How * to implement supply mechanisms]. * * We have followed general OpenZeppelin guidelines: functions revert instead * of returning `false` on failure. This behavior is nonetheless conventional * and does not conflict with the expectations of ERC20 applications. * * Additionally, an {Approval} event is emitted on calls to {transferFrom}. * This allows applications to reconstruct the allowance for all accounts just * by listening to said events. Other implementations of the EIP may not emit * these events, as it isn't required by the specification. * * Finally, the non-standard {decreaseAllowance} and {increaseAllowance} * functions have been added to mitigate the well-known issues around setting * allowances. See {IERC20-approve}. */ contract ERC20 is Context, IERC20 { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint8 private _decimals; /** * @dev Sets the values for {name} and {symbol}, initializes {decimals} with * a default value of 18. * * To select a different value for {decimals}, use {_setupDecimals}. * * All three of these values are immutable: they can only be set once during * construction. */ constructor (string memory name, string memory symbol) public { _name = name; _symbol = symbol; _decimals = 18; } /** * @dev Returns the name of the token. */ function name() public view returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is * called. * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view returns (uint8) { return _decimals; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}; * * Requirements: * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); _balances[sender] = _balances[sender].sub(amount, "ERC20: transfer amount exceeds balance"); _balances[recipient] = _balances[recipient].add(amount); emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply = _totalSupply.add(amount); _balances[account] = _balances[account].add(amount); emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); _balances[account] = _balances[account].sub(amount, "ERC20: burn amount exceeds balance"); _totalSupply = _totalSupply.sub(amount); emit Transfer(account, address(0), amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } /** * @dev Sets {decimals} to a value other than the default one of 18. * * WARNING: This function should only be called from the constructor. Most * applications that interact with token contracts will not expect * {decimals} to ever change, and may work incorrectly if it does. */ function _setupDecimals(uint8 decimals_) internal { _decimals = decimals_; } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } // File: @openzeppelin/contracts/token/ERC20/SafeERC20.sol pragma solidity ^0.6.0; /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure (when the token * contract returns false). Tokens that return no value (and instead revert or * throw on failure) are also supported, non-reverting calls are assumed to be * successful. * To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { using SafeMath for uint256; using Address for address; function safeTransfer(IERC20 token, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transfer.selector, to, value)); } function safeTransferFrom(IERC20 token, address from, address to, uint256 value) internal { _callOptionalReturn(token, abi.encodeWithSelector(token.transferFrom.selector, from, to, value)); } /** * @dev Deprecated. This function has issues similar to the ones found in * {IERC20-approve}, and its usage is discouraged. * * Whenever possible, use {safeIncreaseAllowance} and * {safeDecreaseAllowance} instead. */ function safeApprove(IERC20 token, address spender, uint256 value) internal { // safeApprove should only be called when setting an initial allowance, // or when resetting it to zero. To increase and decrease it, use // 'safeIncreaseAllowance' and 'safeDecreaseAllowance' // solhint-disable-next-line max-line-length require((value == 0) || (token.allowance(address(this), spender) == 0), "SafeERC20: approve from non-zero to non-zero allowance" ); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, value)); } function safeIncreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).add(value); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } function safeDecreaseAllowance(IERC20 token, address spender, uint256 value) internal { uint256 newAllowance = token.allowance(address(this), spender).sub(value, "SafeERC20: decreased allowance below zero"); _callOptionalReturn(token, abi.encodeWithSelector(token.approve.selector, spender, newAllowance)); } /** * @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement * on the return value: the return value is optional (but if data is returned, it must not be false). * @param token The token targeted by the call. * @param data The call data (encoded using abi.encode or one of its variants). */ function _callOptionalReturn(IERC20 token, bytes memory data) private { // We need to perform a low level call here, to bypass Solidity's return data size checking mechanism, since // we're implementing it ourselves. We use {Address.functionCall} to perform this call, which verifies that // the target address contains contract code and also asserts for success in the low-level call. bytes memory returndata = address(token).functionCall(data, "SafeERC20: low-level call failed"); if (returndata.length > 0) { // Return data is optional // solhint-disable-next-line max-line-length require(abi.decode(returndata, (bool)), "SafeERC20: ERC20 operation did not succeed"); } } } // File: contracts/ChadToken.sol pragma solidity ^0.6.6; contract ChadToken is ERC20{ using SafeERC20 for IERC20; using SafeMath for uint256; struct stakeTracker { uint256 lastBlockChecked; uint256 rewards; uint256 mangasPoolTokens; uint256 chadPoolTokens; } mapping(address => stakeTracker) private stakedBalances; address private owner; address private devAddress; address private bossAddress; address private boss2Address; address public fundVotingAddress; bool public isSendingFunds = false; uint256 private lastBlockSent; uint256 public liquidityMultiplier = 70; uint256 public miningDifficulty = 40000; IERC20 private mangas; IERC20 private chad; IERC20 private mangasV2; address public mangasUniswapV2Pair; IERC20 private chadV2; address public chadUniswapV2Pair; uint256 public start_block; uint256 totalLiquidityStaked; modifier _onlyOwner() { require(msg.sender == owner); _; } modifier updateStakingReward(address _account) { uint256 liquidityBonus; if (block.number >= start_block && stakedBalances[_account].chadPoolTokens > 0) { liquidityBonus = stakedBalances[_account].chadPoolTokens.div(liquidityMultiplier); } if (block.number >= start_block && block.number > stakedBalances[_account].lastBlockChecked) { uint256 lastBlockChecked = stakedBalances[_account].lastBlockChecked; if(stakedBalances[_account].lastBlockChecked == 0) { lastBlockChecked = block.number < start_block ? block.number : start_block; } uint256 rewardBlocks = block.number.sub(lastBlockChecked); if (stakedBalances[_account].mangasPoolTokens > 0) { stakedBalances[_account].rewards = stakedBalances[_account].rewards.add((stakedBalances[_account].mangasPoolTokens.add(liquidityBonus)).mul(rewardBlocks).div(miningDifficulty)); stakedBalances[_account].lastBlockChecked = block.number; emit Rewards(_account, stakedBalances[_account].rewards); } } _; } event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event mangasUniStaked(address indexed user, uint256 amount, uint256 totalLiquidityStaked); event chadUniStaked(address indexed user, uint256 amount, uint256 totalLiquidityStaked); event mangasUniWithdrawn(address indexed user, uint256 amount, uint256 totalLiquidityStaked); event chadUniWithdrawn(address indexed user, uint256 amount, uint256 totalLiquidityStaked); event Rewards(address indexed user, uint256 reward); event FundsSentToFundingAddress(address indexed user, uint256 amount); event votingAddressChanged(address indexed user, address votingAddress); event mangasPairAddressChanged(address indexed user, address mangasPairAddress); event chadPairAddressChanged(address indexed user, address chadPairAddress); event difficultyChanged(address indexed user, uint256 difficulty); constructor(address _devAddress, address _bossAddress, address _boss2Address, address _mangasLP, uint256 _start_block) public payable ERC20("ChadToken", "CHAD") { owner = msg.sender; devAddress = _devAddress; bossAddress = _bossAddress; boss2Address = _boss2Address; setManGasPairAddress(_mangasLP); uint256 supply = 100; _mint(msg.sender, supply.mul(10 ** 18)); lastBlockSent = block.number; start_block = _start_block; } function transferOwnership(address newOwner) external _onlyOwner { assert(newOwner != address(0)/*, "Ownable: new owner is the zero address"*/); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } function setVotingAddress(address _account) public _onlyOwner { fundVotingAddress = _account; emit votingAddressChanged(msg.sender, fundVotingAddress); } function setManGasPairAddress(address _uniV2address) public _onlyOwner { mangasUniswapV2Pair = _uniV2address; mangasV2 = IERC20(mangasUniswapV2Pair); emit mangasPairAddressChanged(msg.sender, mangasUniswapV2Pair); } function setChadPairAddress(address _uniV2address) public _onlyOwner { chadUniswapV2Pair = _uniV2address; chadV2 = IERC20(chadUniswapV2Pair); emit chadPairAddressChanged(msg.sender, chadUniswapV2Pair); } function setMiningDifficulty(uint256 amount) public _onlyOwner { miningDifficulty = amount; emit difficultyChanged(msg.sender, miningDifficulty); } function stake(uint256 amount) public updateStakingReward(msg.sender) { mangasV2.safeTransferFrom(msg.sender, address(this), amount); stakedBalances[msg.sender].mangasPoolTokens = stakedBalances[msg.sender].mangasPoolTokens.add(amount); totalLiquidityStaked = totalLiquidityStaked.add(amount); emit mangasUniStaked(msg.sender, stakedBalances[msg.sender].mangasPoolTokens, totalLiquidityStaked); } function withdraw(uint256 amount) public updateStakingReward(msg.sender) { mangasV2.safeTransfer(msg.sender, amount); stakedBalances[msg.sender].mangasPoolTokens = stakedBalances[msg.sender].mangasPoolTokens.sub(amount); totalLiquidityStaked = totalLiquidityStaked.sub(amount); emit mangasUniWithdrawn(msg.sender, amount, totalLiquidityStaked); } function stakeChadUni(uint256 amount) public updateStakingReward(msg.sender) { chadV2.safeTransferFrom(msg.sender, address(this), amount); stakedBalances[msg.sender].chadPoolTokens = stakedBalances[msg.sender].chadPoolTokens.add(amount); totalLiquidityStaked = totalLiquidityStaked.add(amount); emit chadUniStaked(msg.sender, amount, totalLiquidityStaked); } function withdrawChadUni(uint256 amount) public updateStakingReward(msg.sender) { chadV2.safeTransfer(msg.sender, amount); stakedBalances[msg.sender].chadPoolTokens = stakedBalances[msg.sender].chadPoolTokens.sub(amount); totalLiquidityStaked = totalLiquidityStaked.sub(amount); emit chadUniWithdrawn(msg.sender, amount, totalLiquidityStaked); } function getAddressStakeAmount(address _account) public view returns (uint256) { return stakedBalances[_account].mangasPoolTokens; } function getAddressStakeAmountLP(address _account) public view returns (uint256) { return stakedBalances[_account].chadPoolTokens; } function myRewardsBalance(address _account) public view returns(uint256) { uint256 liquidityBonus; if (block.number >= start_block && stakedBalances[_account].chadPoolTokens > 0) { liquidityBonus = stakedBalances[_account].chadPoolTokens.div(liquidityMultiplier); } if (block.number >= start_block && block.number > stakedBalances[_account].lastBlockChecked) { uint256 lastBlockChecked = stakedBalances[_account].lastBlockChecked; if(stakedBalances[_account].lastBlockChecked == 0) { lastBlockChecked = block.number < start_block ? block.number : start_block; } uint256 rewardBlocks = block.number.sub(lastBlockChecked); if (stakedBalances[_account].mangasPoolTokens > 0) { return stakedBalances[_account].rewards.add((stakedBalances[_account].mangasPoolTokens.add(liquidityBonus)).mul(rewardBlocks).div(miningDifficulty)); } else { return 0; } } } function setDevAddress(address _devAddress) public _onlyOwner returns(uint256) { devAddress = _devAddress; } function setBossAddress(address _addr) public _onlyOwner returns(uint256) { bossAddress = _addr; } function setBoss2Address(address _addr) public _onlyOwner returns(uint256) { boss2Address = _addr; } function getReward() public updateStakingReward(msg.sender) { require(0 < stakedBalances[msg.sender].rewards, "More than 0"); uint256 reward = stakedBalances[msg.sender].rewards; stakedBalances[msg.sender].rewards = 0; // 75% to User _mint(msg.sender, reward.div(20).mul(15)); // 20% to Funding pool _mint(address(this), reward.div(20).mul(4)); // 5% to Dev address uint256 devfee = reward.div(20).mul(1); // Boss _mint(bossAddress, devfee.div(100).mul(35)); // CoWorker _mint(boss2Address, devfee.div(100).mul(35)); // Dev _mint(devAddress, devfee.div(100).mul(30)); emit Rewards(msg.sender, reward); } function toggleFundsTransfer() public _onlyOwner { isSendingFunds = !isSendingFunds; } function sendChadToFund(uint256 amount) public { if (!isSendingFunds) { return; } lastBlockSent = block.number; IERC20(address(this)).safeTransfer(fundVotingAddress, amount); emit FundsSentToFundingAddress(msg.sender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_devAddress","type":"address"},{"internalType":"address","name":"_bossAddress","type":"address"},{"internalType":"address","name":"_boss2Address","type":"address"},{"internalType":"address","name":"_mangasLP","type":"address"},{"internalType":"uint256","name":"_start_block","type":"uint256"}],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FundsSentToFundingAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Rewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"chadPairAddress","type":"address"}],"name":"chadPairAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalLiquidityStaked","type":"uint256"}],"name":"chadUniStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalLiquidityStaked","type":"uint256"}],"name":"chadUniWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"difficulty","type":"uint256"}],"name":"difficultyChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"mangasPairAddress","type":"address"}],"name":"mangasPairAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalLiquidityStaked","type":"uint256"}],"name":"mangasUniStaked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalLiquidityStaked","type":"uint256"}],"name":"mangasUniWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"address","name":"votingAddress","type":"address"}],"name":"votingAddressChanged","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"chadUniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fundVotingAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getAddressStakeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"getAddressStakeAmountLP","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isSendingFunds","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mangasUniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"miningDifficulty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"myRewardsBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"sendChadToFund","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setBoss2Address","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"setBossAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniV2address","type":"address"}],"name":"setChadPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_devAddress","type":"address"}],"name":"setDevAddress","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_uniV2address","type":"address"}],"name":"setManGasPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMiningDifficulty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"setVotingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stakeChadUni","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"start_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleFundsTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawChadUni","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040819052600b805460a060020a60ff02191690556046600d55619c40600e556200340a38819003908190833981810160405260a08110156200004357600080fd5b508051602080830151604080850151606086015160809096015182518084018452600981527f43686164546f6b656e00000000000000000000000000000000000000000000008187019081528451808601909552600485527f4348414400000000000000000000000000000000000000000000000000000000968501969096528051969794969295919390929091620000e091600391906200045c565b508051620000f69060049060208401906200045c565b505060058054601260ff19909116179055506007805433600160a060020a031991821617909155600880548216600160a060020a0388811691909117909155600980548316878316179055600a80549092169085161790556200016282640100000000620001ad810204565b60646200019a336200018b83670de0b6b3a7640000640100000000620023616200022b82021704565b640100000000620002ac810204565b5043600c55601555506200050192505050565b600754600160a060020a03163314620001c557600080fd5b60128054600160a060020a03808416600160a060020a031992831617928390556011805490921692169182179055604080519182525133917fad65e488ba1f64138d88583d41aa5e765f2e3769ae5f59646dd9a9889b3858a1919081900360200190a250565b6000826200023c57506000620002a6565b828202828482816200024a57fe5b0414620002a3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180620033e96021913960400191505060405180910390fd5b90505b92915050565b600160a060020a0382166200032257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6200033960008383640100000000620003e2810204565b600254620003569082640100000000620022ed620003e782021704565b600255600160a060020a0382166000908152602081905260409020546200038c9082640100000000620022ed620003e782021704565b600160a060020a0383166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b505050565b600082820183811015620002a357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200049f57805160ff1916838001178555620004cf565b82800160010185558215620004cf579182015b82811115620004cf578251825591602001919060010190620004b2565b50620004dd929150620004e1565b5090565b620004fe91905b80821115620004dd5760008155600101620004e8565b90565b612ed880620005116000396000f3fe608060405234801561001057600080fd5b5060043610610279576000357c010000000000000000000000000000000000000000000000000000000090048063740f737c11610162578063b40b9bb6116100da578063c59fd923116100a9578063dd62ed3e1161008e578063dd62ed3e1461078d578063ee02b3c7146107c8578063f2fde38b146107d057610279565b8063c59fd9231461073d578063d0d41fe11461075a57610279565b8063b40b9bb6146106f2578063b6541945146106fa578063b87fb3db14610702578063be35ef141461070a57610279565b806395d89b4111610131578063a57306dc11610116578063a57306dc14610669578063a694fc3a1461069c578063a9059cbb146106b957610279565b806395d89b4114610628578063a457c2d71461063057610279565b8063740f737c146105875780637490403a146105ba578063780fa434146105c25780637a6cfcab146105f557610279565b80632a1072b3116101f55780633d18b912116101c45780634f620536116101a95780634f620536146105195780635a666d251461054c57806370a082311461055457610279565b80633d18b912146104de5780634a1528f8146104e657610279565b80632a1072b3146104375780632e1a7d4d1461046a578063313ce5671461048757806339509351146104a557610279565b8063095ea7b31161024c57806315b239011161023157806315b23901146103a957806318160ddd146103da57806323b872dd146103f457610279565b8063095ea7b3146103535780630a4cb9391461038c57610279565b806303acf1591461027e57806304f0ca551461029d578063069c8a04146102ba57806306fdde03146102d6575b600080fd5b61029b6004803603602081101561029457600080fd5b5035610803565b005b61029b600480360360208110156102b357600080fd5b5035610afc565b6102c2610da9565b604080519115158252519081900360200190f35b6102de610dca565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c26004803603604081101561036957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e7e565b61029b600480360360208110156103a257600080fd5b5035610e9c565b6103b1610efe565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103e2610f1a565b60408051918252519081900360200190f35b6102c26004803603606081101561040a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f20565b61029b6004803603602081101561044d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fc7565b61029b6004803603602081101561048057600080fd5b5035611076565b61048f611322565b6040805160ff9092168252519081900360200190f35b6102c2600480360360408110156104bb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561132b565b61029b61138c565b61029b600480360360208110156104fc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661173e565b6103e26004803603602081101561052f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166117ed565b6103b161185d565b6103e26004803603602081101561056a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611879565b6103e26004803603602081101561059d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118a5565b6103b1611915565b6103e2600480360360208110156105d857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611931565b61029b6004803603602081101561060b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661195c565b6102de611a03565b6102c26004803603604081101561064657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611a82565b6103e26004803603602081101561067f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611afd565b61029b600480360360208110156106b257600080fd5b5035611cd6565b6102c2600480360360408110156106cf57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611f99565b6103e2611fad565b6103e2611fb3565b6103e2611fb9565b6103e26004803603602081101561072057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611fbf565b61029b6004803603602081101561075357600080fd5b5035611fea565b6103e26004803603602081101561077057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661207a565b6103e2600480360360408110156107a357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166120ea565b61029b612122565b61029b600480360360208110156107e657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612193565b336000601554431015801561083f575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090206003015415155b1561088257600d5473ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604090206003015461087f9163ffffffff61226216565b90505b60155443101580156108b8575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205443115b15610a435773ffffffffffffffffffffffffffffffffffffffff8216600090815260066020526040902054806108fe5760155443106108f9576015546108fb565b435b90505b6000610910438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602052604090206002015490915015610a4057600e5473ffffffffffffffffffffffffffffffffffffffff85166000908152600660205260409020600201546109d8916109a39161099790859061098b908963ffffffff6122ed16565b9063ffffffff61236116565b9063ffffffff61226216565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600660205260409020600101549063ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260066020908152604091829020600181018590554390558151938452905191927fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a929081900390910190a25b50505b601354610a6d9073ffffffffffffffffffffffffffffffffffffffff16338563ffffffff6123d416565b33600090815260066020526040902060030154610a90908463ffffffff6122ab16565b33600090815260066020526040902060030155601654610ab6908463ffffffff6122ab16565b6016819055604080518581526020810192909252805133927f911571e5bafde6a5c622b035056841d863214cc3fed5f14d864905a63917e84e92908290030190a2505050565b3360006015544310158015610b38575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090206003015415155b15610b7b57600d5473ffffffffffffffffffffffffffffffffffffffff8316600090815260066020526040902060030154610b789163ffffffff61226216565b90505b6015544310158015610bb1575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205443115b15610cef5773ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205480610bf7576015544310610bf257601554610bf4565b435b90505b6000610c09438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602052604090206002015490915015610cec57600e5473ffffffffffffffffffffffffffffffffffffffff8516600090815260066020526040902060020154610c84916109a39161099790859061098b908963ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260066020908152604091829020600181018590554390558151938452905191927fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a929081900390910190a25b50505b601354610d1a9073ffffffffffffffffffffffffffffffffffffffff1633308663ffffffff61246616565b33600090815260066020526040902060030154610d3d908463ffffffff6122ed16565b33600090815260066020526040902060030155601654610d63908463ffffffff6122ed16565b6016819055604080518581526020810192909252805133927fb60b1ca45624277f380a49eddfe74b0203ab3918920f31eba50a15b88fe50ae192908290030190a2505050565b600b5474010000000000000000000000000000000000000000900460ff1681565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b6000610e92610e8b612501565b8484612505565b5060015b92915050565b60075473ffffffffffffffffffffffffffffffffffffffff163314610ec057600080fd5b600e81905560408051828152905133917f694487741fda3a05899e5ccf8286720c2e1152708453a1a35c016249befc5fcd919081900360200190a250565b600b5473ffffffffffffffffffffffffffffffffffffffff1681565b60025490565b6000610f2d84848461264c565b610fbd84610f39612501565b610fb885604051806060016040528060288152602001612de36028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260016020526040812090610f84612501565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002054919063ffffffff61282816565b612505565b5060019392505050565b60075473ffffffffffffffffffffffffffffffffffffffff163314610feb57600080fd5b6012805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617928390556011805490921692169182179055604080519182525133917fad65e488ba1f64138d88583d41aa5e765f2e3769ae5f59646dd9a9889b3858a1919081900360200190a250565b33600060155443101580156110b2575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090206003015415155b156110f557600d5473ffffffffffffffffffffffffffffffffffffffff83166000908152600660205260409020600301546110f29163ffffffff61226216565b90505b601554431015801561112b575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205443115b156112695773ffffffffffffffffffffffffffffffffffffffff82166000908152600660205260409020548061117157601554431061116c5760155461116e565b435b90505b6000611183438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600660205260409020600201549091501561126657600e5473ffffffffffffffffffffffffffffffffffffffff85166000908152600660205260409020600201546111fe916109a39161099790859061098b908963ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260066020908152604091829020600181018590554390558151938452905191927fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a929081900390910190a25b50505b6011546112939073ffffffffffffffffffffffffffffffffffffffff16338563ffffffff6123d416565b336000908152600660205260409020600201546112b6908463ffffffff6122ab16565b336000908152600660205260409020600201556016546112dc908463ffffffff6122ab16565b6016819055604080518581526020810192909252805133927f095ebebac70e70c3c2866beb969e3e682d89048dc038878b78c57101e802a0a192908290030190a2505050565b60055460ff1690565b6000610e92611338612501565b84610fb88560016000611349612501565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6122ed16565b33600060155443101580156113c8575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090206003015415155b1561140b57600d5473ffffffffffffffffffffffffffffffffffffffff83166000908152600660205260409020600301546114089163ffffffff61226216565b90505b6015544310158015611441575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205443115b1561157f5773ffffffffffffffffffffffffffffffffffffffff82166000908152600660205260409020548061148757601554431061148257601554611484565b435b90505b6000611499438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600660205260409020600201549091501561157c57600e5473ffffffffffffffffffffffffffffffffffffffff8516600090815260066020526040902060020154611514916109a39161099790859061098b908963ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260066020908152604091829020600181018590554390558151938452905191927fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a929081900390910190a25b50505b336000908152600660205260409020600101546115fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4d6f7265207468616e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b3360008181526006602052604081206001018054919055906116349061162f600f61098b85601463ffffffff61226216565b6128d9565b61164e3061162f600461098b85601463ffffffff61226216565b6000611666600161098b84601463ffffffff61226216565b60095490915061169c9073ffffffffffffffffffffffffffffffffffffffff1661162f602361098b85606463ffffffff61226216565b600a546116cf9073ffffffffffffffffffffffffffffffffffffffff1661162f602361098b85606463ffffffff61226216565b6008546117029073ffffffffffffffffffffffffffffffffffffffff1661162f601e61098b85606463ffffffff61226216565b60408051838152905133917fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a919081900360200190a250505050565b60075473ffffffffffffffffffffffffffffffffffffffff16331461176257600080fd5b6014805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617928390556013805490921692169182179055604080519182525133917f6503dcbc3f180d80ed1bba05a71a7f1a1a2ab1b2ebfadec7d5e750e1812809b2919081900360200190a250565b60075460009073ffffffffffffffffffffffffffffffffffffffff16331461181457600080fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff939093169290921790915590565b60145473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60075460009073ffffffffffffffffffffffffffffffffffffffff1633146118cc57600080fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff939093169290921790915590565b60125473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526006602052604090206003015490565b60075473ffffffffffffffffffffffffffffffffffffffff16331461198057600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911791829055604080519290911682525133917f62a51664e003fa1af643b4857cc1abcee4cd6b54791027e0fbe33bc924e41eac919081900360200190a250565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e745780601f10610e4957610100808354040283529160200191610e74565b6000610e92611a8f612501565b84610fb885604051806060016040528060258152602001612e7e6025913960016000611ab9612501565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61282816565b6000806015544310158015611b39575073ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604090206003015415155b15611b7c57600d5473ffffffffffffffffffffffffffffffffffffffff8416600090815260066020526040902060030154611b799163ffffffff61226216565b90505b6015544310158015611bb2575073ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604090205443115b15611cd05773ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604090205480611bf8576015544310611bf357601554611bf5565b435b90505b6000611c0a438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff861660009081526006602052604090206002015490915015611cc457600e5473ffffffffffffffffffffffffffffffffffffffff8616600090815260066020526040902060020154611cba91611c859161099790859061098b908963ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600660205260409020600101549063ffffffff6122ed16565b93505050506118a0565b600093505050506118a0565b50919050565b3360006015544310158015611d12575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090206003015415155b15611d5557600d5473ffffffffffffffffffffffffffffffffffffffff8316600090815260066020526040902060030154611d529163ffffffff61226216565b90505b6015544310158015611d8b575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205443115b15611ec95773ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205480611dd1576015544310611dcc57601554611dce565b435b90505b6000611de3438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602052604090206002015490915015611ec657600e5473ffffffffffffffffffffffffffffffffffffffff8516600090815260066020526040902060020154611e5e916109a39161099790859061098b908963ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260066020908152604091829020600181018590554390558151938452905191927fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a929081900390910190a25b50505b601154611ef49073ffffffffffffffffffffffffffffffffffffffff1633308663ffffffff61246616565b33600090815260066020526040902060020154611f17908463ffffffff6122ed16565b33600090815260066020526040902060020155601654611f3d908463ffffffff6122ed16565b60168190553360008181526006602090815260409182902060020154825190815290810193909352805191927f4c9e6061bb5935938c69f8a57540f7f70cf2189b884727665b84eebdecaee7b9929081900390910190a2505050565b6000610e92611fa6612501565b848461264c565b600e5481565b600d5481565b60155481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526006602052604090206002015490565b600b5474010000000000000000000000000000000000000000900460ff1661201157612077565b43600c55600b5461204090309073ffffffffffffffffffffffffffffffffffffffff168363ffffffff6123d416565b60408051828152905133917f9d7222da2cc210705445b483f242802ea957473cdd2257aacf02466f2e663482919081900360200190a25b50565b60075460009073ffffffffffffffffffffffffffffffffffffffff1633146120a157600080fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff939093169290921790915590565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60075473ffffffffffffffffffffffffffffffffffffffff16331461214657600080fd5b600b80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8116740100000000000000000000000000000000000000009182900460ff1615909102179055565b60075473ffffffffffffffffffffffffffffffffffffffff1633146121b757600080fd5b73ffffffffffffffffffffffffffffffffffffffff81166121d457fe5b60075460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006122a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a16565b9392505050565b60006122a483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612828565b6000828201838110156122a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261237057506000610e96565b8282028284828161237d57fe5b04146122a4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dc26021913960400191505060405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052612461908490612a95565b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff80861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526124fb908590612a95565b50505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316612571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612e306024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166125dd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612d7a6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166126b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612e0b6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216612724576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612d576023913960400191505060405180910390fd5b61272f838383612461565b61277f81604051806060016040528060268152602001612d9c6026913973ffffffffffffffffffffffffffffffffffffffff8616600090815260208190526040902054919063ffffffff61282816565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526020819052604080822093909355908416815220546127c1908263ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156128d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561289657818101518382015260200161287e565b50505050905090810190601f1680156128c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b73ffffffffffffffffffffffffffffffffffffffff821661295b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61296760008383612461565b60025461297a908263ffffffff6122ed16565b60025573ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020546129b3908263ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183612a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831561289657818101518382015260200161287e565b506000838581612a8b57fe5b0495945050505050565b6060612af7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612b6d9092919063ffffffff16565b80519091501561246157808060200190516020811015612b1657600080fd5b5051612461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612e54602a913960400191505060405180910390fd5b6060612b7c8484600085612b84565b949350505050565b6060612b8f85612d50565b612bfa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310612c6457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612c27565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612cc6576040519150601f19603f3d011682016040523d82523d6000602084013e612ccb565b606091505b50915091508115612cdf579150612b7c9050565b805115612cef5780518082602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815286516024840152865187939192839260440191908501908083836000831561289657818101518382015260200161287e565b3b15159056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220eb1ff342366966c81b827b8e51b79f5c99070edef90d947dee71c87ba39b854864736f6c63430006060033536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77000000000000000000000000deccf98e9ac979595eb59947e060ebd2665a48bc0000000000000000000000009cdecbbe94e37f4dd52f1577be15959c0c45758e0000000000000000000000006b147ade06b13cb6d13cd18e5f61959ad64615e40000000000000000000000005602b452f691143e7029a100c2889bf6d533c12a0000000000000000000000000000000000000000000000000000000000a7cd08
Deployed Bytecode
0x608060405234801561001057600080fd5b5060043610610279576000357c010000000000000000000000000000000000000000000000000000000090048063740f737c11610162578063b40b9bb6116100da578063c59fd923116100a9578063dd62ed3e1161008e578063dd62ed3e1461078d578063ee02b3c7146107c8578063f2fde38b146107d057610279565b8063c59fd9231461073d578063d0d41fe11461075a57610279565b8063b40b9bb6146106f2578063b6541945146106fa578063b87fb3db14610702578063be35ef141461070a57610279565b806395d89b4111610131578063a57306dc11610116578063a57306dc14610669578063a694fc3a1461069c578063a9059cbb146106b957610279565b806395d89b4114610628578063a457c2d71461063057610279565b8063740f737c146105875780637490403a146105ba578063780fa434146105c25780637a6cfcab146105f557610279565b80632a1072b3116101f55780633d18b912116101c45780634f620536116101a95780634f620536146105195780635a666d251461054c57806370a082311461055457610279565b80633d18b912146104de5780634a1528f8146104e657610279565b80632a1072b3146104375780632e1a7d4d1461046a578063313ce5671461048757806339509351146104a557610279565b8063095ea7b31161024c57806315b239011161023157806315b23901146103a957806318160ddd146103da57806323b872dd146103f457610279565b8063095ea7b3146103535780630a4cb9391461038c57610279565b806303acf1591461027e57806304f0ca551461029d578063069c8a04146102ba57806306fdde03146102d6575b600080fd5b61029b6004803603602081101561029457600080fd5b5035610803565b005b61029b600480360360208110156102b357600080fd5b5035610afc565b6102c2610da9565b604080519115158252519081900360200190f35b6102de610dca565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610318578181015183820152602001610300565b50505050905090810190601f1680156103455780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c26004803603604081101561036957600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135610e7e565b61029b600480360360208110156103a257600080fd5b5035610e9c565b6103b1610efe565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b6103e2610f1a565b60408051918252519081900360200190f35b6102c26004803603606081101561040a57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160208101359091169060400135610f20565b61029b6004803603602081101561044d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610fc7565b61029b6004803603602081101561048057600080fd5b5035611076565b61048f611322565b6040805160ff9092168252519081900360200190f35b6102c2600480360360408110156104bb57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813516906020013561132b565b61029b61138c565b61029b600480360360208110156104fc57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661173e565b6103e26004803603602081101561052f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166117ed565b6103b161185d565b6103e26004803603602081101561056a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611879565b6103e26004803603602081101561059d57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff166118a5565b6103b1611915565b6103e2600480360360208110156105d857600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611931565b61029b6004803603602081101561060b57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661195c565b6102de611a03565b6102c26004803603604081101561064657600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611a82565b6103e26004803603602081101561067f57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611afd565b61029b600480360360208110156106b257600080fd5b5035611cd6565b6102c2600480360360408110156106cf57600080fd5b5073ffffffffffffffffffffffffffffffffffffffff8135169060200135611f99565b6103e2611fad565b6103e2611fb3565b6103e2611fb9565b6103e26004803603602081101561072057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16611fbf565b61029b6004803603602081101561075357600080fd5b5035611fea565b6103e26004803603602081101561077057600080fd5b503573ffffffffffffffffffffffffffffffffffffffff1661207a565b6103e2600480360360408110156107a357600080fd5b5073ffffffffffffffffffffffffffffffffffffffff813581169160200135166120ea565b61029b612122565b61029b600480360360208110156107e657600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16612193565b336000601554431015801561083f575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090206003015415155b1561088257600d5473ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604090206003015461087f9163ffffffff61226216565b90505b60155443101580156108b8575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205443115b15610a435773ffffffffffffffffffffffffffffffffffffffff8216600090815260066020526040902054806108fe5760155443106108f9576015546108fb565b435b90505b6000610910438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602052604090206002015490915015610a4057600e5473ffffffffffffffffffffffffffffffffffffffff85166000908152600660205260409020600201546109d8916109a39161099790859061098b908963ffffffff6122ed16565b9063ffffffff61236116565b9063ffffffff61226216565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600660205260409020600101549063ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260066020908152604091829020600181018590554390558151938452905191927fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a929081900390910190a25b50505b601354610a6d9073ffffffffffffffffffffffffffffffffffffffff16338563ffffffff6123d416565b33600090815260066020526040902060030154610a90908463ffffffff6122ab16565b33600090815260066020526040902060030155601654610ab6908463ffffffff6122ab16565b6016819055604080518581526020810192909252805133927f911571e5bafde6a5c622b035056841d863214cc3fed5f14d864905a63917e84e92908290030190a2505050565b3360006015544310158015610b38575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090206003015415155b15610b7b57600d5473ffffffffffffffffffffffffffffffffffffffff8316600090815260066020526040902060030154610b789163ffffffff61226216565b90505b6015544310158015610bb1575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205443115b15610cef5773ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205480610bf7576015544310610bf257601554610bf4565b435b90505b6000610c09438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602052604090206002015490915015610cec57600e5473ffffffffffffffffffffffffffffffffffffffff8516600090815260066020526040902060020154610c84916109a39161099790859061098b908963ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260066020908152604091829020600181018590554390558151938452905191927fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a929081900390910190a25b50505b601354610d1a9073ffffffffffffffffffffffffffffffffffffffff1633308663ffffffff61246616565b33600090815260066020526040902060030154610d3d908463ffffffff6122ed16565b33600090815260066020526040902060030155601654610d63908463ffffffff6122ed16565b6016819055604080518581526020810192909252805133927fb60b1ca45624277f380a49eddfe74b0203ab3918920f31eba50a15b88fe50ae192908290030190a2505050565b600b5474010000000000000000000000000000000000000000900460ff1681565b60038054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e745780601f10610e4957610100808354040283529160200191610e74565b820191906000526020600020905b815481529060010190602001808311610e5757829003601f168201915b5050505050905090565b6000610e92610e8b612501565b8484612505565b5060015b92915050565b60075473ffffffffffffffffffffffffffffffffffffffff163314610ec057600080fd5b600e81905560408051828152905133917f694487741fda3a05899e5ccf8286720c2e1152708453a1a35c016249befc5fcd919081900360200190a250565b600b5473ffffffffffffffffffffffffffffffffffffffff1681565b60025490565b6000610f2d84848461264c565b610fbd84610f39612501565b610fb885604051806060016040528060288152602001612de36028913973ffffffffffffffffffffffffffffffffffffffff8a16600090815260016020526040812090610f84612501565b73ffffffffffffffffffffffffffffffffffffffff168152602081019190915260400160002054919063ffffffff61282816565b612505565b5060019392505050565b60075473ffffffffffffffffffffffffffffffffffffffff163314610feb57600080fd5b6012805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617928390556011805490921692169182179055604080519182525133917fad65e488ba1f64138d88583d41aa5e765f2e3769ae5f59646dd9a9889b3858a1919081900360200190a250565b33600060155443101580156110b2575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090206003015415155b156110f557600d5473ffffffffffffffffffffffffffffffffffffffff83166000908152600660205260409020600301546110f29163ffffffff61226216565b90505b601554431015801561112b575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205443115b156112695773ffffffffffffffffffffffffffffffffffffffff82166000908152600660205260409020548061117157601554431061116c5760155461116e565b435b90505b6000611183438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600660205260409020600201549091501561126657600e5473ffffffffffffffffffffffffffffffffffffffff85166000908152600660205260409020600201546111fe916109a39161099790859061098b908963ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260066020908152604091829020600181018590554390558151938452905191927fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a929081900390910190a25b50505b6011546112939073ffffffffffffffffffffffffffffffffffffffff16338563ffffffff6123d416565b336000908152600660205260409020600201546112b6908463ffffffff6122ab16565b336000908152600660205260409020600201556016546112dc908463ffffffff6122ab16565b6016819055604080518581526020810192909252805133927f095ebebac70e70c3c2866beb969e3e682d89048dc038878b78c57101e802a0a192908290030190a2505050565b60055460ff1690565b6000610e92611338612501565b84610fb88560016000611349612501565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918c16815292529020549063ffffffff6122ed16565b33600060155443101580156113c8575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090206003015415155b1561140b57600d5473ffffffffffffffffffffffffffffffffffffffff83166000908152600660205260409020600301546114089163ffffffff61226216565b90505b6015544310158015611441575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205443115b1561157f5773ffffffffffffffffffffffffffffffffffffffff82166000908152600660205260409020548061148757601554431061148257601554611484565b435b90505b6000611499438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600660205260409020600201549091501561157c57600e5473ffffffffffffffffffffffffffffffffffffffff8516600090815260066020526040902060020154611514916109a39161099790859061098b908963ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260066020908152604091829020600181018590554390558151938452905191927fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a929081900390910190a25b50505b336000908152600660205260409020600101546115fd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f4d6f7265207468616e2030000000000000000000000000000000000000000000604482015290519081900360640190fd5b3360008181526006602052604081206001018054919055906116349061162f600f61098b85601463ffffffff61226216565b6128d9565b61164e3061162f600461098b85601463ffffffff61226216565b6000611666600161098b84601463ffffffff61226216565b60095490915061169c9073ffffffffffffffffffffffffffffffffffffffff1661162f602361098b85606463ffffffff61226216565b600a546116cf9073ffffffffffffffffffffffffffffffffffffffff1661162f602361098b85606463ffffffff61226216565b6008546117029073ffffffffffffffffffffffffffffffffffffffff1661162f601e61098b85606463ffffffff61226216565b60408051838152905133917fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a919081900360200190a250505050565b60075473ffffffffffffffffffffffffffffffffffffffff16331461176257600080fd5b6014805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff000000000000000000000000000000000000000092831617928390556013805490921692169182179055604080519182525133917f6503dcbc3f180d80ed1bba05a71a7f1a1a2ab1b2ebfadec7d5e750e1812809b2919081900360200190a250565b60075460009073ffffffffffffffffffffffffffffffffffffffff16331461181457600080fd5b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff939093169290921790915590565b60145473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff81166000908152602081905260409020545b919050565b60075460009073ffffffffffffffffffffffffffffffffffffffff1633146118cc57600080fd5b600980547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff939093169290921790915590565b60125473ffffffffffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff1660009081526006602052604090206003015490565b60075473ffffffffffffffffffffffffffffffffffffffff16331461198057600080fd5b600b805473ffffffffffffffffffffffffffffffffffffffff8084167fffffffffffffffffffffffff00000000000000000000000000000000000000009092169190911791829055604080519290911682525133917f62a51664e003fa1af643b4857cc1abcee4cd6b54791027e0fbe33bc924e41eac919081900360200190a250565b60048054604080516020601f60027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610100600188161502019095169490940493840181900481028201810190925282815260609390929091830182828015610e745780601f10610e4957610100808354040283529160200191610e74565b6000610e92611a8f612501565b84610fb885604051806060016040528060258152602001612e7e6025913960016000611ab9612501565b73ffffffffffffffffffffffffffffffffffffffff908116825260208083019390935260409182016000908120918d1681529252902054919063ffffffff61282816565b6000806015544310158015611b39575073ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604090206003015415155b15611b7c57600d5473ffffffffffffffffffffffffffffffffffffffff8416600090815260066020526040902060030154611b799163ffffffff61226216565b90505b6015544310158015611bb2575073ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604090205443115b15611cd05773ffffffffffffffffffffffffffffffffffffffff831660009081526006602052604090205480611bf8576015544310611bf357601554611bf5565b435b90505b6000611c0a438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff861660009081526006602052604090206002015490915015611cc457600e5473ffffffffffffffffffffffffffffffffffffffff8616600090815260066020526040902060020154611cba91611c859161099790859061098b908963ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff87166000908152600660205260409020600101549063ffffffff6122ed16565b93505050506118a0565b600093505050506118a0565b50919050565b3360006015544310158015611d12575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090206003015415155b15611d5557600d5473ffffffffffffffffffffffffffffffffffffffff8316600090815260066020526040902060030154611d529163ffffffff61226216565b90505b6015544310158015611d8b575073ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205443115b15611ec95773ffffffffffffffffffffffffffffffffffffffff821660009081526006602052604090205480611dd1576015544310611dcc57601554611dce565b435b90505b6000611de3438363ffffffff6122ab16565b73ffffffffffffffffffffffffffffffffffffffff851660009081526006602052604090206002015490915015611ec657600e5473ffffffffffffffffffffffffffffffffffffffff8516600090815260066020526040902060020154611e5e916109a39161099790859061098b908963ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260066020908152604091829020600181018590554390558151938452905191927fc083a1647e3ee591bf42b82564ffb4d16fdbb26068f0080da911c8d8300fd84a929081900390910190a25b50505b601154611ef49073ffffffffffffffffffffffffffffffffffffffff1633308663ffffffff61246616565b33600090815260066020526040902060020154611f17908463ffffffff6122ed16565b33600090815260066020526040902060020155601654611f3d908463ffffffff6122ed16565b60168190553360008181526006602090815260409182902060020154825190815290810193909352805191927f4c9e6061bb5935938c69f8a57540f7f70cf2189b884727665b84eebdecaee7b9929081900390910190a2505050565b6000610e92611fa6612501565b848461264c565b600e5481565b600d5481565b60155481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526006602052604090206002015490565b600b5474010000000000000000000000000000000000000000900460ff1661201157612077565b43600c55600b5461204090309073ffffffffffffffffffffffffffffffffffffffff168363ffffffff6123d416565b60408051828152905133917f9d7222da2cc210705445b483f242802ea957473cdd2257aacf02466f2e663482919081900360200190a25b50565b60075460009073ffffffffffffffffffffffffffffffffffffffff1633146120a157600080fd5b600880547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff939093169290921790915590565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b60075473ffffffffffffffffffffffffffffffffffffffff16331461214657600080fd5b600b80547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff8116740100000000000000000000000000000000000000009182900460ff1615909102179055565b60075473ffffffffffffffffffffffffffffffffffffffff1633146121b757600080fd5b73ffffffffffffffffffffffffffffffffffffffff81166121d457fe5b60075460405173ffffffffffffffffffffffffffffffffffffffff8084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b60006122a483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a16565b9392505050565b60006122a483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612828565b6000828201838110156122a457604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b60008261237057506000610e96565b8282028284828161237d57fe5b04146122a4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180612dc26021913960400191505060405180910390fd5b6040805173ffffffffffffffffffffffffffffffffffffffff8416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fa9059cbb00000000000000000000000000000000000000000000000000000000179052612461908490612a95565b505050565b6040805173ffffffffffffffffffffffffffffffffffffffff80861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f23b872dd000000000000000000000000000000000000000000000000000000001790526124fb908590612a95565b50505050565b3390565b73ffffffffffffffffffffffffffffffffffffffff8316612571576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180612e306024913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff82166125dd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180612d7a6022913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff808416600081815260016020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b73ffffffffffffffffffffffffffffffffffffffff83166126b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180612e0b6025913960400191505060405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8216612724576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526023815260200180612d576023913960400191505060405180910390fd5b61272f838383612461565b61277f81604051806060016040528060268152602001612d9c6026913973ffffffffffffffffffffffffffffffffffffffff8616600090815260208190526040902054919063ffffffff61282816565b73ffffffffffffffffffffffffffffffffffffffff80851660009081526020819052604080822093909355908416815220546127c1908263ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff8084166000818152602081815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156128d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561289657818101518382015260200161287e565b50505050905090810190601f1680156128c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b73ffffffffffffffffffffffffffffffffffffffff821661295b57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b61296760008383612461565b60025461297a908263ffffffff6122ed16565b60025573ffffffffffffffffffffffffffffffffffffffff82166000908152602081905260409020546129b3908263ffffffff6122ed16565b73ffffffffffffffffffffffffffffffffffffffff83166000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b60008183612a7f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815283516024840152835190928392604490910191908501908083836000831561289657818101518382015260200161287e565b506000838581612a8b57fe5b0495945050505050565b6060612af7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612b6d9092919063ffffffff16565b80519091501561246157808060200190516020811015612b1657600080fd5b5051612461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180612e54602a913960400191505060405180910390fd5b6060612b7c8484600085612b84565b949350505050565b6060612b8f85612d50565b612bfa57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b600060608673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310612c6457805182527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe09092019160209182019101612c27565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114612cc6576040519150601f19603f3d011682016040523d82523d6000602084013e612ccb565b606091505b50915091508115612cdf579150612b7c9050565b805115612cef5780518082602001fd5b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181815286516024840152865187939192839260440191908501908083836000831561289657818101518382015260200161287e565b3b15159056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573735361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656445524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220eb1ff342366966c81b827b8e51b79f5c99070edef90d947dee71c87ba39b854864736f6c63430006060033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000deccf98e9ac979595eb59947e060ebd2665a48bc0000000000000000000000009cdecbbe94e37f4dd52f1577be15959c0c45758e0000000000000000000000006b147ade06b13cb6d13cd18e5f61959ad64615e40000000000000000000000005602b452f691143e7029a100c2889bf6d533c12a0000000000000000000000000000000000000000000000000000000000a7cd08
-----Decoded View---------------
Arg [0] : _devAddress (address): 0xDEcCf98e9AC979595EB59947E060EBd2665a48bc
Arg [1] : _bossAddress (address): 0x9CdeCBBE94e37F4dD52f1577be15959c0c45758E
Arg [2] : _boss2Address (address): 0x6B147ade06b13Cb6D13CD18e5F61959AD64615e4
Arg [3] : _mangasLP (address): 0x5602B452F691143e7029a100c2889bf6d533C12A
Arg [4] : _start_block (uint256): 10997000
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 000000000000000000000000deccf98e9ac979595eb59947e060ebd2665a48bc
Arg [1] : 0000000000000000000000009cdecbbe94e37f4dd52f1577be15959c0c45758e
Arg [2] : 0000000000000000000000006b147ade06b13cb6d13cd18e5f61959ad64615e4
Arg [3] : 0000000000000000000000005602b452f691143e7029a100c2889bf6d533c12a
Arg [4] : 0000000000000000000000000000000000000000000000000000000000a7cd08
Deployed Bytecode Sourcemap
31316:9891:0:-:0;;;;5:9:-1;2:2;;;27:1;24;17:12;2:2;31316:9891:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;9;2:12;37790:464:0;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;37790:464:0;;:::i;:::-;;37301:477;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;37301:477:0;;:::i;31836:34::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;18701:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;18701:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20807:169;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20807:169:0;;;;;;;;;:::i;36106:167::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;36106:167:0;;:::i;31791:32::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19776:100;;;:::i;:::-;;;;;;;;;;;;;;;;21450:321;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;21450:321:0;;;;;;;;;;;;;;;;;;:::i;35603:247::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;35603:247:0;;;;:::i;36812:465::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;36812:465:0;;:::i;19628:83::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22180:218;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;22180:218:0;;;;;;;;;:::i;40023:762::-;;;:::i;35858:235::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;35858:235:0;;;;:::i;39901:114::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;39901:114:0;;;;:::i;32188:32::-;;;:::i;19939:119::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;19939:119:0;;;;:::i;39781:112::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;39781:112:0;;;;:::i;32113:34::-;;;:::i;38424:146::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;38424:146:0;;;;:::i;35415:176::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;35415:176:0;;;;:::i;18903:87::-;;;:::i;22901:269::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;22901:269:0;;;;;;;;;:::i;38582:1057::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;38582:1057:0;;;;:::i;36285:515::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;36285:515:0;;:::i;20271:175::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20271:175:0;;;;;;;;;:::i;31971:39::-;;;:::i;31925:::-;;;:::i;32227:26::-;;;:::i;38266:146::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;38266:146:0;;;;:::i;40909:291::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;40909:291:0;;:::i;39651:122::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;39651:122:0;;;;:::i;20509:151::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;20509:151:0;;;;;;;;;;;:::i;40797:100::-;;;:::i;35163:240::-;;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;35163:240:0;;;;:::i;37790:464::-;37858:10;32458:22;32511:11;;32495:12;:27;;:74;;;;-1:-1:-1;32526:24:0;;;32568:1;32526:24;;;:14;:24;;;;;:39;;;:43;;32495:74;32491:188;;;32647:19;;32603:24;;;;;;;:14;:24;;;;;:39;;;:64;;;:43;:64;:::i;:::-;32586:81;;32491:188;32709:11;;32693:12;:27;;:87;;;;-1:-1:-1;32739:24:0;;;;;;;:14;:24;;;;;:41;32724:12;:56;32693:87;32689:917;;;32826:24;;;32799;32826;;;:14;:24;;;;;:41;32885:46;32882:160;;32986:11;;32971:12;:26;:55;;33015:11;;32971:55;;;33000:12;32971:55;32952:74;;32882:160;33056:20;33079:34;:12;33096:16;33079:34;:16;:34;:::i;:::-;33134:24;;;33178:1;33134:24;;;:14;:24;;;;;:41;;;33056:57;;-1:-1:-1;33134:45:0;33130:465;;33358:16;;33273:24;;;;;;;:14;:24;;;;;:41;;;33235:141;;33272:103;;:81;;33340:12;;33273:61;;33319:14;33273:61;:45;:61;:::i;:::-;33272:67;:81;:67;:81;:::i;:::-;:85;:103;:85;:103;:::i;:::-;33235:24;;;;;;;:14;:24;;;;;:32;;;;:141;:36;:141;:::i;:::-;33200:24;;;;;;;:14;:24;;;;;;;;;:32;;;:176;;;33439:12;33395:56;;33475:51;;;;;;;33200:24;;33475:51;;;;;;;;;;;33130:465;32689:917;;;37881:6:::1;::::0;:39:::1;::::0;:6:::1;;37901:10;37913:6:::0;37881:39:::1;:19;:39;:::i;:::-;37990:10;37975:26;::::0;;;:14:::1;:26;::::0;;;;:41:::1;;::::0;:53:::1;::::0;38021:6;37975:53:::1;:45;:53;:::i;:::-;37946:10;37931:26;::::0;;;:14:::1;:26;::::0;;;;:41:::1;;:97:::0;38062:20:::1;::::0;:32:::1;::::0;38087:6;38062:32:::1;:24;:32;:::i;:::-;38039:20;:55:::0;;;38188:58:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;38205:10:::1;::::0;38188:58:::1;::::0;;;;;;;::::1;37790:464:::0;;;:::o;37301:477::-;37366:10;32458:22;32511:11;;32495:12;:27;;:74;;;;-1:-1:-1;32526:24:0;;;32568:1;32526:24;;;:14;:24;;;;;:39;;;:43;;32495:74;32491:188;;;32647:19;;32603:24;;;;;;;:14;:24;;;;;:39;;;:64;;;:43;:64;:::i;:::-;32586:81;;32491:188;32709:11;;32693:12;:27;;:87;;;;-1:-1:-1;32739:24:0;;;;;;;:14;:24;;;;;:41;32724:12;:56;32693:87;32689:917;;;32826:24;;;32799;32826;;;:14;:24;;;;;:41;32885:46;32882:160;;32986:11;;32971:12;:26;:55;;33015:11;;32971:55;;;33000:12;32971:55;32952:74;;32882:160;33056:20;33079:34;:12;33096:16;33079:34;:16;:34;:::i;:::-;33134:24;;;33178:1;33134:24;;;:14;:24;;;;;:41;;;33056:57;;-1:-1:-1;33134:45:0;33130:465;;33358:16;;33273:24;;;;;;;:14;:24;;;;;:41;;;33235:141;;33272:103;;:81;;33340:12;;33273:61;;33319:14;33273:61;:45;:61;:::i;33235:141::-;33200:24;;;;;;;:14;:24;;;;;;;;;:32;;;:176;;;33439:12;33395:56;;33475:51;;;;;;;33200:24;;33475:51;;;;;;;;;;;33130:465;32689:917;;;37389:6:::1;::::0;:58:::1;::::0;:6:::1;;37413:10;37433:4;37440:6:::0;37389:58:::1;:23;:58;:::i;:::-;37517:10;37502:26;::::0;;;:14:::1;:26;::::0;;;;:41:::1;;::::0;:53:::1;::::0;37548:6;37502:53:::1;:45;:53;:::i;:::-;37473:10;37458:26;::::0;;;:14:::1;:26;::::0;;;;:41:::1;;:97:::0;37589:20:::1;::::0;:32:::1;::::0;37614:6;37589:32:::1;:24;:32;:::i;:::-;37566:20;:55:::0;;;37715::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;37729:10:::1;::::0;37715:55:::1;::::0;;;;;;;::::1;37301:477:::0;;;:::o;31836:34::-;;;;;;;;;:::o;18701:83::-;18771:5;18764:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18738:13;;18764:12;;18771:5;;18764:12;;18771:5;18764:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18701:83;:::o;20807:169::-;20890:4;20907:39;20916:12;:10;:12::i;:::-;20930:7;20939:6;20907:8;:39::i;:::-;-1:-1:-1;20964:4:0;20807:169;;;;;:::o;36106:167::-;32356:5;;;;32342:10;:19;32334:28;;12:1:-1;9;2:12;32334:28:0;36179:16:::1;:25:::0;;;36219:47:::1;::::0;;;;;;;36237:10:::1;::::0;36219:47:::1;::::0;;;;;::::1;::::0;;::::1;36106:167:::0;:::o;31791:32::-;;;;;;:::o;19776:100::-;19856:12;;19776:100;:::o;21450:321::-;21556:4;21573:36;21583:6;21591:9;21602:6;21573:9;:36::i;:::-;21620:121;21629:6;21637:12;:10;:12::i;:::-;21651:89;21689:6;21651:89;;;;;;;;;;;;;;;;;:19;;;;;;;:11;:19;;;;;;21671:12;:10;:12::i;:::-;21651:33;;;;;;;;;;;;;-1:-1:-1;21651:33:0;;;:89;;:37;:89;:::i;:::-;21620:8;:121::i;:::-;-1:-1:-1;21759:4:0;21450:321;;;;;:::o;35603:247::-;32356:5;;;;32342:10;:19;32334:28;;12:1:-1;9;2:12;32334:28:0;35685:19:::1;:35:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;;35731:8:::1;:38:::0;;;;::::1;35749:19:::0;::::1;35731:38:::0;;::::1;::::0;;35785:57:::1;::::0;;;;;;35810:10:::1;::::0;35785:57:::1;::::0;;;;;::::1;::::0;;::::1;35603:247:::0;:::o;36812:465::-;36873:10;32458:22;32511:11;;32495:12;:27;;:74;;;;-1:-1:-1;32526:24:0;;;32568:1;32526:24;;;:14;:24;;;;;:39;;;:43;;32495:74;32491:188;;;32647:19;;32603:24;;;;;;;:14;:24;;;;;:39;;;:64;;;:43;:64;:::i;:::-;32586:81;;32491:188;32709:11;;32693:12;:27;;:87;;;;-1:-1:-1;32739:24:0;;;;;;;:14;:24;;;;;:41;32724:12;:56;32693:87;32689:917;;;32826:24;;;32799;32826;;;:14;:24;;;;;:41;32885:46;32882:160;;32986:11;;32971:12;:26;:55;;33015:11;;32971:55;;;33000:12;32971:55;32952:74;;32882:160;33056:20;33079:34;:12;33096:16;33079:34;:16;:34;:::i;:::-;33134:24;;;33178:1;33134:24;;;:14;:24;;;;;:41;;;33056:57;;-1:-1:-1;33134:45:0;33130:465;;33358:16;;33273:24;;;;;;;:14;:24;;;;;:41;;;33235:141;;33272:103;;:81;;33340:12;;33273:61;;33319:14;33273:61;:45;:61;:::i;33235:141::-;33200:24;;;;;;;:14;:24;;;;;;;;;:32;;;:176;;;33439:12;33395:56;;33475:51;;;;;;;33200:24;;33475:51;;;;;;;;;;;33130:465;32689:917;;;36896:8:::1;::::0;:41:::1;::::0;:8:::1;;36918:10;36930:6:::0;36896:41:::1;:21;:41;:::i;:::-;37009:10;36994:26;::::0;;;:14:::1;:26;::::0;;;;:43:::1;;::::0;:55:::1;::::0;37042:6;36994:55:::1;:47;:55;:::i;:::-;36963:10;36948:26;::::0;;;:14:::1;:26;::::0;;;;:43:::1;;:101:::0;37083:20:::1;::::0;:32:::1;::::0;37108:6;37083:32:::1;:24;:32;:::i;:::-;37060:20;:55:::0;;;37209:60:::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;37228:10:::1;::::0;37209:60:::1;::::0;;;;;;;::::1;36812:465:::0;;;:::o;19628:83::-;19694:9;;;;19628:83;:::o;22180:218::-;22268:4;22285:83;22294:12;:10;:12::i;:::-;22308:7;22317:50;22356:10;22317:11;:25;22329:12;:10;:12::i;:::-;22317:25;;;;;;;;;;;;;;;;;;-1:-1:-1;22317:25:0;;;:34;;;;;;;;;;;:50;:38;:50;:::i;40023:762::-;40071:10;32458:22;32511:11;;32495:12;:27;;:74;;;;-1:-1:-1;32526:24:0;;;32568:1;32526:24;;;:14;:24;;;;;:39;;;:43;;32495:74;32491:188;;;32647:19;;32603:24;;;;;;;:14;:24;;;;;:39;;;:64;;;:43;:64;:::i;:::-;32586:81;;32491:188;32709:11;;32693:12;:27;;:87;;;;-1:-1:-1;32739:24:0;;;;;;;:14;:24;;;;;:41;32724:12;:56;32693:87;32689:917;;;32826:24;;;32799;32826;;;:14;:24;;;;;:41;32885:46;32882:160;;32986:11;;32971:12;:26;:55;;33015:11;;32971:55;;;33000:12;32971:55;32952:74;;32882:160;33056:20;33079:34;:12;33096:16;33079:34;:16;:34;:::i;:::-;33134:24;;;33178:1;33134:24;;;:14;:24;;;;;:41;;;33056:57;;-1:-1:-1;33134:45:0;33130:465;;33358:16;;33273:24;;;;;;;:14;:24;;;;;:41;;;33235:141;;33272:103;;:81;;33340:12;;33273:61;;33319:14;33273:61;:45;:61;:::i;33235:141::-;33200:24;;;;;;;:14;:24;;;;;;;;;:32;;;:176;;;33439:12;33395:56;;33475:51;;;;;;;33200:24;;33475:51;;;;;;;;;;;33130:465;32689:917;;;40121:10:::1;40106:26;::::0;;;:14:::1;:26;::::0;;;;:34:::1;;::::0;40094:62:::1;;;::::0;;::::1;::::0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;::::1;::::0;;;;;;;;;;;;;::::1;;40199:10;40167:14;40184:26:::0;;;:14:::1;:26;::::0;;;;:34:::1;;::::0;;40231:38;;;40184:34;40307:41:::1;::::0;40325:22:::1;40344:2;40325:14;40184:34:::0;40336:2:::1;40325:14;:10;:14;:::i;:22::-;40307:5;:41::i;:::-;40393:43;40407:4;40414:21;40433:1;40414:14;:6:::0;40425:2:::1;40414:14;:10;:14;:::i;40393:43::-;40479:14;40496:21;40515:1;40496:14;:6:::0;40507:2:::1;40496:14;:10;:14;:::i;:21::-;40552:11;::::0;40479:38;;-1:-1:-1;40546:43:0::1;::::0;40552:11:::1;;40565:23;40585:2;40565:15;40479:38:::0;40576:3:::1;40565:15;:10;:15;:::i;40546:43::-;40626:12;::::0;40620:44:::1;::::0;40626:12:::1;;40640:23;40660:2;40640:15;:6:::0;40651:3:::1;40640:15;:10;:15;:::i;40620:44::-;40696:10;::::0;40690:42:::1;::::0;40696:10:::1;;40708:23;40728:2;40708:15;:6:::0;40719:3:::1;40708:15;:10;:15;:::i;40690:42::-;40750:27;::::0;;;;;;;40758:10:::1;::::0;40750:27:::1;::::0;;;;;::::1;::::0;;::::1;33616:1;;40023:762:::0;;:::o;35858:235::-;32356:5;;;;32342:10;:19;32334:28;;12:1:-1;9;2:12;32334:28:0;35938:17:::1;:33:::0;;::::1;::::0;;::::1;::::0;;;::::1;;::::0;;;;35982:6:::1;:34:::0;;;;::::1;35998:17:::0;::::1;35982:34:::0;;::::1;::::0;;36032:53:::1;::::0;;;;;;36055:10:::1;::::0;36032:53:::1;::::0;;;;;::::1;::::0;;::::1;35858:235:::0;:::o;39901:114::-;32356:5;;39967:7;;32356:5;;32342:10;:19;32334:28;;12:1:-1;9;2:12;32334:28:0;39987:12:::1;:20:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;;39901:114::o;32188:32::-;;;;;;:::o;19939:119::-;20032:18;;;20005:7;20032:18;;;;;;;;;;;19939:119;;;;:::o;39781:112::-;32356:5;;39846:7;;32356:5;;32342:10;:19;32334:28;;12:1:-1;9;2:12;32334:28:0;39866:11:::1;:19:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;;39781:112::o;32113:34::-;;;;;;:::o;38424:146::-;38523:24;;38496:7;38523:24;;;:14;:24;;;;;:39;;;;38424:146::o;35415:176::-;32356:5;;;;32342:10;:19;32334:28;;12:1:-1;9;2:12;32334:28:0;35488:17:::1;:28:::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;;;35532:51:::1;::::0;;35565:17;;;::::1;35532:51:::0;;;35553:10:::1;::::0;35532:51:::1;::::0;;;;;::::1;::::0;;::::1;35415:176:::0;:::o;18903:87::-;18975:7;18968:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18942:13;;18968:14;;18975:7;;18968:14;;18975:7;18968:14;;;;;;;;;;;;;;;;;;;;;;;;22901:269;22994:4;23011:129;23020:12;:10;:12::i;:::-;23034:7;23043:96;23082:15;23043:96;;;;;;;;;;;;;;;;;:11;:25;23055:12;:10;:12::i;:::-;23043:25;;;;;;;;;;;;;;;;;;-1:-1:-1;23043:25:0;;;:34;;;;;;;;;;;:96;;:38;:96;:::i;38582:1057::-;38646:7;38666:22;38719:11;;38703:12;:27;;:74;;;;-1:-1:-1;38734:24:0;;;38776:1;38734:24;;;:14;:24;;;;;:39;;;:43;;38703:74;38699:188;;;38855:19;;38811:24;;;;;;;:14;:24;;;;;:39;;;:64;;;:43;:64;:::i;:::-;38794:81;;38699:188;38917:11;;38901:12;:27;;:87;;;;-1:-1:-1;38947:24:0;;;;;;;:14;:24;;;;;:41;38932:12;:56;38901:87;38897:735;;;39034:24;;;39007;39034;;;:14;:24;;;;;:41;39093:46;39090:160;;39194:11;;39179:12;:26;:55;;39223:11;;39179:55;;;39208:12;39179:55;39160:74;;39090:160;39264:20;39287:34;:12;39304:16;39287:34;:16;:34;:::i;:::-;39342:24;;;39386:1;39342:24;;;:14;:24;;;;;:41;;;39264:57;;-1:-1:-1;39342:45:0;39338:283;;39538:16;;39453:24;;;;;;;:14;:24;;;;;:41;;;39415:141;;39452:103;;:81;;39520:12;;39453:61;;39499:14;39453:61;:45;:61;:::i;39452:103::-;39415:24;;;;;;;:14;:24;;;;;:32;;;;:141;:36;:141;:::i;:::-;39408:148;;;;;;;39338:283;39604:1;39597:8;;;;;;;38897:735;38582:1057;;;;:::o;36285:515::-;36343:10;32458:22;32511:11;;32495:12;:27;;:74;;;;-1:-1:-1;32526:24:0;;;32568:1;32526:24;;;:14;:24;;;;;:39;;;:43;;32495:74;32491:188;;;32647:19;;32603:24;;;;;;;:14;:24;;;;;:39;;;:64;;;:43;:64;:::i;:::-;32586:81;;32491:188;32709:11;;32693:12;:27;;:87;;;;-1:-1:-1;32739:24:0;;;;;;;:14;:24;;;;;:41;32724:12;:56;32693:87;32689:917;;;32826:24;;;32799;32826;;;:14;:24;;;;;:41;32885:46;32882:160;;32986:11;;32971:12;:26;:55;;33015:11;;32971:55;;;33000:12;32971:55;32952:74;;32882:160;33056:20;33079:34;:12;33096:16;33079:34;:16;:34;:::i;:::-;33134:24;;;33178:1;33134:24;;;:14;:24;;;;;:41;;;33056:57;;-1:-1:-1;33134:45:0;33130:465;;33358:16;;33273:24;;;;;;;:14;:24;;;;;:41;;;33235:141;;33272:103;;:81;;33340:12;;33273:61;;33319:14;33273:61;:45;:61;:::i;33235:141::-;33200:24;;;;;;;:14;:24;;;;;;;;;:32;;;:176;;;33439:12;33395:56;;33475:51;;;;;;;33200:24;;33475:51;;;;;;;;;;;33130:465;32689:917;;;36366:8:::1;::::0;:60:::1;::::0;:8:::1;;36392:10;36412:4;36419:6:::0;36366:60:::1;:25;:60;:::i;:::-;36498:10;36483:26;::::0;;;:14:::1;:26;::::0;;;;:43:::1;;::::0;:55:::1;::::0;36531:6;36483:55:::1;:47;:55;:::i;:::-;36452:10;36437:26;::::0;;;:14:::1;:26;::::0;;;;:43:::1;;:101:::0;36572:20:::1;::::0;:32:::1;::::0;36597:6;36572:32:::1;:24;:32;:::i;:::-;36549:20;:55:::0;;;36714:10:::1;36726:26;::::0;;;:14:::1;:26;::::0;;;;;;;;:43:::1;;::::0;36698:94;;;;;;;::::1;::::0;;;;;;36714:10;;36698:94:::1;::::0;;;;;;;;;::::1;36285:515:::0;;;:::o;20271:175::-;20357:4;20374:42;20384:12;:10;:12::i;:::-;20398:9;20409:6;20374:9;:42::i;31971:39::-;;;;:::o;31925:::-;;;;:::o;32227:26::-;;;;:::o;38266:146::-;38363:24;;38336:7;38363:24;;;:14;:24;;;;;:41;;;;38266:146::o;40909:291::-;40972:14;;;;;;;40967:54;;41003:7;;40967:54;41047:12;41031:13;:28;41105:17;;41070:61;;41085:4;;41105:17;;41124:6;41070:61;:34;:61;:::i;:::-;41147:45;;;;;;;;41173:10;;41147:45;;;;;;;;;;40909:291;;:::o;39651:122::-;32356:5;;39721:7;;32356:5;;32342:10;:19;32334:28;;12:1:-1;9;2:12;32334:28:0;39741:10:::1;:24:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;;;39651:122::o;20509:151::-;20625:18;;;;20598:7;20625:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;20509:151::o;40797:100::-;32356:5;;;;32342:10;:19;32334:28;;12:1:-1;9;2:12;32334:28:0;40875:14:::1;::::0;;40857:32;;::::1;40875:14:::0;;;;::::1;;;40874:15;40857:32:::0;;::::1;;::::0;;40797:100::o;35163:240::-;32356:5;;;;32342:10;:19;32334:28;;12:1:-1;9;2:12;32334:28:0;35246:22:::1;::::0;::::1;35239:76;;;;35352:5;::::0;35331:37:::1;::::0;::::1;::::0;;::::1;::::0;35352:5:::1;::::0;35331:37:::1;::::0;35352:5:::1;::::0;35331:37:::1;35379:5;:16:::0;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;35163:240::o;8305:132::-;8363:7;8390:39;8394:1;8397;8390:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;8383:46;8305:132;-1:-1:-1;;;8305:132:0:o;6468:136::-;6526:7;6553:43;6557:1;6560;6553:43;;;;;;;;;;;;;;;;;:3;:43::i;6004:181::-;6062:7;6094:5;;;6118:6;;;;6110:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7358:471;7416:7;7661:6;7657:47;;-1:-1:-1;7691:1:0;7684:8;;7657:47;7728:5;;;7732:1;7728;:5;:1;7752:5;;;;;:10;7744:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28174:177;28284:58;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;28284:58:0;;;;;;;;25:18:-1;;61:17;;28284:58:0;182:15:-1;28307:23:0;179:29:-1;160:49;;28257:86:0;;28277:5;;28257:19;:86::i;:::-;28174:177;;;:::o;28359:205::-;28487:68;;;;;;;;;;;;;;;;;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;28487:68:0;;;;;;;;25:18:-1;;61:17;;28487:68:0;182:15:-1;28510:27:0;179:29:-1;160:49;;28460:96:0;;28480:5;;28460:19;:96::i;:::-;28359:205;;;;:::o;1922:106::-;2010:10;1922:106;:::o;26046:346::-;26148:19;;;26140:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26227:21;;;26219:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26300:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;26352:32;;;;;;;;;;;;;;;;;26046:346;;;:::o;23660:539::-;23766:20;;;23758:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23847:23;;;23839:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23923:47;23944:6;23952:9;23963:6;23923:20;:47::i;:::-;24003:71;24025:6;24003:71;;;;;;;;;;;;;;;;;:17;;;:9;:17;;;;;;;;;;;;:71;;:21;:71;:::i;:::-;23983:17;;;;:9;:17;;;;;;;;;;;:91;;;;24108:20;;;;;;;:32;;24133:6;24108:32;:24;:32;:::i;:::-;24085:20;;;;:9;:20;;;;;;;;;;;;:55;;;;24156:35;;;;;;;24085:20;;24156:35;;;;;;;;;;;;;23660:539;;;:::o;6907:192::-;6993:7;7029:12;7021:6;;;;7013:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;7013:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7065:5:0;;;6907:192::o;24480:378::-;24564:21;;;24556:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24634:49;24663:1;24667:7;24676:6;24634:20;:49::i;:::-;24711:12;;:24;;24728:6;24711:24;:16;:24;:::i;:::-;24696:12;:39;24767:18;;;:9;:18;;;;;;;;;;;:30;;24790:6;24767:30;:22;:30;:::i;:::-;24746:18;;;:9;:18;;;;;;;;;;;:51;;;;24813:37;;;;;;;24746:18;;:9;;24813:37;;;;;;;;;;24480:378;;:::o;8933:278::-;9019:7;9054:12;9047:5;9039:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;9039:28:0;;9078:9;9094:1;9090;:5;;;;;;;8933:278;-1:-1:-1;;;;;8933:278:0:o;30479:761::-;30903:23;30929:69;30957:4;30929:69;;;;;;;;;;;;;;;;;30937:5;30929:27;;;;:69;;;;;:::i;:::-;31013:17;;30903:95;;-1:-1:-1;31013:21:0;31009:224;;31155:10;31144:30;;;;;15:2:-1;10:3;7:11;4:2;;;31:1;28;21:12;4:2;-1:-1;31144:30:0;31136:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14148:196;14251:12;14283:53;14306:6;14314:4;14320:1;14323:12;14283:22;:53::i;:::-;14276:60;14148:196;-1:-1:-1;;;;14148:196:0:o;15525:979::-;15655:12;15688:18;15699:6;15688:10;:18::i;:::-;15680:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15814:12;15828:23;15855:6;:11;;15875:8;15886:4;15855:36;;;;;;;;;;;;;36:153:-1;66:2;61:3;58:11;36:153;;176:10;;164:23;;139:12;;;;;98:2;89:12;;;;114;36:153;;;274:1;267:3;263:2;259:12;254:3;250:22;246:30;315:4;311:9;305:3;299:10;295:26;356:4;350:3;344:10;340:21;389:7;380;377:20;372:3;365:33;3:399;;;15855:36:0;;;;;;;;;;;;;;;;;;;;;;;;;12:1:-1;19;14:27;;;;67:4;61:11;56:16;;134:4;130:9;123:4;105:16;101:27;97:43;94:1;90:51;84:4;77:65;157:16;154:1;147:27;211:16;208:1;201:4;198:1;194:12;179:49;5:228;;14:27;32:4;27:9;;5:228;;15813:78:0;;;;15906:7;15902:595;;;15937:10;-1:-1:-1;15930:17:0;;-1:-1:-1;15930:17:0;15902:595;16051:17;;:21;16047:439;;16314:10;16308:17;16375:15;16362:10;16358:2;16354:19;16347:44;16262:148;16450:20;;;;;;;;;;;;;;;;;;;;16457:12;;16450:20;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;11230:422:0;11597:20;11636:8;;;11230:422::o
Swarm Source
ipfs://eb1ff342366966c81b827b8e51b79f5c99070edef90d947dee71c87ba39b8548
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.