Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
314,740,292,271,503.912164251439122548 MAU
Holders
218
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
461,408,130,786.504289911284688513 MAUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MAU
Compiler Version
v0.5.17+commit.d19bba13
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-30 */ pragma solidity ^0.5.17; // SPDX-License-Identifier: MIT OR GPL-3.0 /** * https://mau.money * https://t.me/maumoneyeth * https://x.com/maumoneyeth **/ contract Context { function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @title SafeMath * @dev Math operations with safety checks that revert on error */ library SafeMath { /** * @dev Multiplies two numbers, reverts on 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-solidity/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b); return c; } /** * @dev Integer division of two numbers truncating the quotient, reverts on division by zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { require(b > 0); // Solidity only automatically asserts when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Subtracts two numbers, reverts on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { require(b <= a); uint256 c = a - b; return c; } /** * @dev Adds two numbers, reverts on overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a); return c; } /** * @dev Divides two numbers and returns the remainder (unsigned integer modulo), * reverts when dividing by zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { require(b != 0); return a % b; } } interface ILP { function sync() external; } interface IERC20 { /** * @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); /** * @dev Returns the value of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the value of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves a `value` amount of tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 value) 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 a `value` amount of tokens 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 value) external returns (bool); /** * @dev Moves a `value` amount of tokens from `from` to `to` using the * allowance mechanism. `value` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 value) external returns (bool); } contract ERC20Detailed is IERC20 { string private _name; string private _symbol; uint8 private _decimals; /** * @dev Sets the values for `name`, `symbol`, and `decimals`. All three of * these values are immutable: they can only be set once during * construction. */ constructor (string memory name, string memory symbol, uint8 decimals) public { _name = name; _symbol = symbol; _decimals = decimals; } /** * @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. * * 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; } } /** * @title SafeMathInt * @dev Math operations for int256 with overflow safety checks. */ library SafeMathInt { int256 private constant MIN_INT256 = int256(1) << 255; int256 private constant MAX_INT256 = ~(int256(1) << 255); /** * @dev Multiplies two int256 variables and fails on overflow. */ function mul(int256 a, int256 b) internal pure returns (int256) { int256 c = a * b; // Detect overflow when multiplying MIN_INT256 with -1 require(c != MIN_INT256 || (a & MIN_INT256) != (b & MIN_INT256)); require((b == 0) || (c / b == a)); return c; } /** * @dev Division of two int256 variables and fails on overflow. */ function div(int256 a, int256 b) internal pure returns (int256) { // Prevent overflow when dividing MIN_INT256 by -1 require(b != -1 || a != MIN_INT256); // Solidity already throws when dividing by 0. return a / b; } /** * @dev Subtracts two int256 variables and fails on overflow. */ function sub(int256 a, int256 b) internal pure returns (int256) { int256 c = a - b; require((b >= 0 && c <= a) || (b < 0 && c > a)); return c; } /** * @dev Adds two int256 variables and fails on overflow. */ function add(int256 a, int256 b) internal pure returns (int256) { int256 c = a + b; require((b >= 0 && c >= a) || (b < 0 && c < a)); return c; } /** * @dev Converts to absolute value, and fails on overflow. */ function abs(int256 a) internal pure returns (int256) { require(a != MIN_INT256); return a < 0 ? -a : a; } } /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public _owner; address public _previousOwner; uint256 public _lockTime; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { _owner = msg.sender; } /** * @return the address of the owner. */ function owner() public view returns(address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner()); _; } /** * @return true if `msg.sender` is the owner of the contract. */ function isOwner() public view returns(bool) { return msg.sender == _owner; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(_owner); _owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ function _transferOwnership(address newOwner) internal { emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } function getUnlockTime() public view returns (uint256) {return _lockTime;} function lock(uint256 time) public onlyOwner { _previousOwner = _owner; _owner = address(0); _lockTime = block.timestamp + time; emit OwnershipTransferred(_owner, address(0)); } function unlock() public { require(_previousOwner == msg.sender, "You don't have permission to unlock"); require(block.timestamp > _lockTime , "Contract is locked"); emit OwnershipTransferred(_owner, _previousOwner); _owner = _previousOwner; } } /** * @title MAU ERC20 token * @dev * The goal of MAU is to be meme money. * Based on the Ampleforth protocol. */ contract MAU is Context, ERC20Detailed, Ownable { using SafeMath for uint256; using SafeMathInt for int256; address BURN_ADDRESS = 0x0000000000000000000000000000000000000000; event SetLPEvent(address lpAddress); event LogRebase(uint256 indexed epoch, uint256 totalSupply); // Used for authentication address public master; // LP atomic sync address public lp; ILP public lpContract; modifier onlyMaster() { require(msg.sender == master); _; } // Only the owner can transfer tokens in the initial phase. // This is allow the AMM listing to happen in an orderly fashion. bool public initialDistributionFinished; mapping (address => bool) allowTransfer; modifier initialDistributionLock { require(initialDistributionFinished || isOwner() || allowTransfer[msg.sender]); _; } modifier validRecipient(address to) { require(to != address(0x0)); require(to != address(this)); _; } uint256 private constant DECIMALS = 18; uint256 private constant MAX_UINT256 = ~uint256(0); uint256 private constant INITIAL_FRAGMENTS_SUPPLY = 10**14 * 10**DECIMALS; // TOTAL_GONS is a multiple of INITIAL_FRAGMENTS_SUPPLY so that _gonsPerFragment is an integer. // Use the highest value that fits in a uint256 for max granularity. uint256 private constant TOTAL_GONS = MAX_UINT256 - (MAX_UINT256 % INITIAL_FRAGMENTS_SUPPLY); // MAX_SUPPLY = maximum integer < (sqrt(4*TOTAL_GONS + 1) - 1) / 2 uint256 private constant MAX_SUPPLY = ~uint128(0); // (2^128) - 1 uint256 public _totalSupply; uint256 public _gonsPerFragment; mapping(address => uint256) private _gonBalances; // This is denominated in Fragments, because the gons-fragments conversion might change before // it's fully paid. mapping (address => mapping (address => uint256)) private _allowedFragments; /** * @dev Notifies Fragments contract about a new rebase cycle. * @param supplyDelta The number of new fragment tokens to add into circulation via expansion. * @return The total number of fragments after the supply adjustment. */ function rebase(uint256 epoch, int256 supplyDelta) external onlyMaster returns (uint256) { if (supplyDelta == 0) { emit LogRebase(epoch, _totalSupply); return _totalSupply; } if (supplyDelta < 0) { _totalSupply = _totalSupply.sub(uint256(-supplyDelta)); } else { _totalSupply = _totalSupply.add(uint256(supplyDelta)); } if (_totalSupply > MAX_SUPPLY) { _totalSupply = MAX_SUPPLY; } _gonsPerFragment = TOTAL_GONS.div(_totalSupply); lpContract.sync(); emit LogRebase(epoch, _totalSupply); return _totalSupply; } constructor() ERC20Detailed("Mau Money", "MAU", uint8(DECIMALS)) public { _totalSupply = INITIAL_FRAGMENTS_SUPPLY; _gonBalances[msg.sender] = TOTAL_GONS; _gonsPerFragment = TOTAL_GONS.div(_totalSupply); initialDistributionFinished = false; emit Transfer(address(0x0), msg.sender, _totalSupply); } /** * @notice Sets a new master */ function setMaster(address masterAddress) external onlyOwner { master = masterAddress; } /** * @notice Sets contract LP address */ function setLP(address lpAddress) external onlyOwner { lp = lpAddress; lpContract = ILP(lp); emit SetLPEvent(lp); } /** * @return The total number of fragments. */ function totalSupply() public view returns (uint256) { return _totalSupply; } /** * @param who The address to query. * @return The balance of the specified address. */ function balanceOf(address who) external view returns (uint256) { return _gonBalances[who].div(_gonsPerFragment); } /** * @dev Transfer tokens to a specified address. * @param to The address to transfer to. * @param value The amount to be transferred. * @return True on success, false otherwise. */ function transfer(address to, uint256 value) external validRecipient(to) initialDistributionLock returns (bool) { uint256 gonValue = value.mul(_gonsPerFragment); _gonBalances[msg.sender] = _gonBalances[msg.sender].sub(gonValue); _gonBalances[to] = _gonBalances[to].add(gonValue); emit Transfer(msg.sender, to, value); return true; } /** * @dev Function to check the amount of tokens that an owner has allowed to a spender. * @param owner_ The address which owns the funds. * @param spender The address which will spend the funds. * @return The number of tokens still available for the spender. */ function allowance(address owner_, address spender) external view returns (uint256) { return _allowedFragments[owner_][spender]; } /** * @dev Transfer tokens from one address to another. * @param from The address you want to send tokens from. * @param to The address you want to transfer to. * @param value The amount of tokens to be transferred. */ function transferFrom(address from, address to, uint256 value) external validRecipient(to) returns (bool) { _allowedFragments[from][msg.sender] = _allowedFragments[from][msg.sender].sub(value); uint256 gonValue = value.mul(_gonsPerFragment); _gonBalances[from] = _gonBalances[from].sub(gonValue); _gonBalances[to] = _gonBalances[to].add(gonValue); emit Transfer(from, to, value); return true; } /** * @dev Approve the passed address to spend the specified amount of tokens on behalf of * msg.sender. This method is included for ERC20 compatibility. * increaseAllowance and decreaseAllowance should be used instead. * Changing an allowance with this method brings the risk that someone may transfer both * the old and the new allowance - if they are both greater than zero - if a transfer * transaction is mined before the later approve() call is mined. * * @param spender The address which will spend the funds. * @param value The amount of tokens to be spent. */ function approve(address spender, uint256 value) external initialDistributionLock returns (bool) { _allowedFragments[msg.sender][spender] = value; emit Approval(msg.sender, spender, value); return true; } /** * @dev Increase the amount of tokens that an owner has allowed to a spender. * This method should be used instead of approve() to avoid the double approval vulnerability * described above. * @param spender The address which will spend the funds. * @param addedValue The amount of tokens to increase the allowance by. */ function increaseAllowance(address spender, uint256 addedValue) external initialDistributionLock returns (bool) { _allowedFragments[msg.sender][spender] = _allowedFragments[msg.sender][spender].add(addedValue); emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]); return true; } /** * @dev Decrease the amount of tokens that an owner has allowed to a spender. * * @param spender The address which will spend the funds. * @param subtractedValue The amount of tokens to decrease the allowance by. */ function decreaseAllowance(address spender, uint256 subtractedValue) external initialDistributionLock returns (bool) { uint256 oldValue = _allowedFragments[msg.sender][spender]; if (subtractedValue >= oldValue) { _allowedFragments[msg.sender][spender] = 0; } else { _allowedFragments[msg.sender][spender] = oldValue.sub(subtractedValue); } emit Approval(msg.sender, spender, _allowedFragments[msg.sender][spender]); return true; } function setInitialDistributionFinished() external onlyOwner { initialDistributionFinished = true; } function enableTransfer(address _addr) external onlyOwner { allowTransfer[_addr] = true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","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":"uint256","name":"epoch","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"LogRebase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","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":false,"internalType":"address","name":"lpAddress","type":"address"}],"name":"SetLPEvent","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"},{"constant":true,"inputs":[],"name":"_gonsPerFragment","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_lockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_previousOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_addr","type":"address"}],"name":"enableTransfer","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"initialDistributionFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lp","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"lpContract","outputs":[{"internalType":"contract ILP","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"master","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"epoch","type":"uint256"},{"internalType":"int256","name":"supplyDelta","type":"int256"}],"name":"rebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"setInitialDistributionFinished","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"lpAddress","type":"address"}],"name":"setLP","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"masterAddress","type":"address"}],"name":"setMaster","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unlock","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200005357600080fd5b506040518060400160405280600981526020017f4d6175204d6f6e657900000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4d4155000000000000000000000000000000000000000000000000000000000081525060128260009080519060200190620000da929190620002b5565b508160019080519060200190620000f3929190620002b5565b5080600260006101000a81548160ff021916908360ff16021790555050505033600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a0a655af3107a400002600a819055506012600a0a655af3107a400002600019816200017e57fe5b0660001903600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001fe600a546012600a0a655af3107a40000260001981620001e557fe5b06600019036200028d60201b620023da1790919060201c565b600b819055506000600860146101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040518082815260200191505060405180910390a362000364565b60008082116200029c57600080fd5b6000828481620002a857fe5b0490508091505092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002f857805160ff191683800117855562000329565b8280016001018555821562000329579182015b82811115620003285782518255916020019190600101906200030b565b5b5090506200033891906200033c565b5090565b6200036191905b808211156200035d57600081600090555060010162000343565b5090565b90565b61251880620003746000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c80637a43e23f1161010f578063b2bdfa7b116100a2578063dd46706411610071578063dd46706414610917578063dd62ed3e14610945578063ee97f7f3146109bd578063f2fde38b14610a07576101f0565b8063b2bdfa7b14610849578063c4996f5114610893578063d1fce264146108b1578063d5938aac146108d3576101f0565b806395d89b41116100de57806395d89b41146106f0578063a457c2d714610773578063a69df4b5146107d9578063a9059cbb146107e3576101f0565b80637a43e23f146105ee5780638acee3cf1461063a5780638da5cb5b146106845780638f32d59b146106ce576101f0565b8063313ce567116101875780636e63cd96116101565780636e63cd961461052457806370a082311461056e578063715018a6146105c657806379af25a6146105d0576101f0565b8063313ce5671461045e57806339509351146104825780633eaaf86b146104e8578063602bc62b14610506576101f0565b806326fae0d3116101c357806326fae0d3146103825780632be6937d146103c65780632f34d282146103d0578063313c06a014610414576101f0565b806306fdde03146101f5578063095ea7b31461027857806318160ddd146102de57806323b872dd146102fc575b600080fd5b6101fd610a4b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023d578082015181840152602081019050610222565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c46004803603604081101561028e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aed565b604051808215151515815260200191505060405180910390f35b6102e6610c5b565b6040518082815260200191505060405180910390f35b6103686004803603606081101561031257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c65565b604051808215151515815260200191505060405180910390f35b6103c46004803603602081101561039857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f9f565b005b6103ce610ff4565b005b610412600480360360208110156103e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611022565b005b61041c61115f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610466611185565b604051808260ff1660ff16815260200191505060405180910390f35b6104ce6004803603604081101561049857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061119c565b604051808215151515815260200191505060405180910390f35b6104f0611414565b6040518082815260200191505060405180910390f35b61050e61141a565b6040518082815260200191505060405180910390f35b61052c611424565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105b06004803603602081101561058457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061144a565b6040518082815260200191505060405180910390f35b6105ce6114a7565b005b6105d8611561565b6040518082815260200191505060405180910390f35b6106246004803603604081101561060457600080fd5b810190808035906020019092919080359060200190929190505050611567565b6040518082815260200191505060405180910390f35b610642611790565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61068c6117b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106d66117e0565b604051808215151515815260200191505060405180910390f35b6106f8611838565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073857808201518184015260208101905061071d565b50505050905090810190601f1680156107655780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107bf6004803603604081101561078957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118da565b604051808215151515815260200191505060405180910390f35b6107e1611be7565b005b61082f600480360360408110156107f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e07565b604051808215151515815260200191505060405180910390f35b6108516120ad565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61089b6120d3565b6040518082815260200191505060405180910390f35b6108b96120d9565b604051808215151515815260200191505060405180910390f35b610915600480360360208110156108e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120ec565b005b6109436004803603602081101561092d57600080fd5b8101908080359060200190929190505050612158565b005b6109a76004803603604081101561095b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612297565b6040518082815260200191505060405180910390f35b6109c561231e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a4960048036036020811015610a1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612344565b005b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae35780601f10610ab857610100808354040283529160200191610ae3565b820191906000526020600020905b815481529060010190602001808311610ac657829003601f168201915b5050505050905090565b6000600860149054906101000a900460ff1680610b0e5750610b0d6117e0565b5b80610b625750600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610b6b57600080fd5b81600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600a54905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ca257600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdb57600080fd5b610d6a83600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236190919063ffffffff16565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610e01600b548561238190919063ffffffff16565b9050610e5581600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236190919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610eea81600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bb90919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36001925050509392505050565b610fa76117e0565b610fb057600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ffc6117e0565b61100557600080fd5b6001600860146101000a81548160ff021916908315150217905550565b61102a6117e0565b61103357600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2722d97be5760964e10a9f98000da5b4e69c3841d8fd5b4d8398a87ac02fe3f2600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900460ff16905090565b6000600860149054906101000a900460ff16806111bd57506111bc6117e0565b5b806112115750600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61121a57600080fd5b6112a982600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bb90919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600a5481565b6000600454905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114a0600b54600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123da90919063ffffffff16565b9050919050565b6114af6117e0565b6114b857600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60045481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115c357600080fd5b600082141561161057827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600a546040518082815260200191505060405180910390a2600a54905061178a565b600082121561163c5761163182600003600a5461236190919063ffffffff16565b600a81905550611658565b61165182600a546123bb90919063ffffffff16565b600a819055505b6000196fffffffffffffffffffffffffffffffff16600a541115611692576000196fffffffffffffffffffffffffffffffff16600a819055505b6116c2600a546012600a0a655af3107a400002600019816116af57fe5b06600019036123da90919063ffffffff16565b600b81905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561173257600080fd5b505af1158015611746573d6000803e3d6000fd5b50505050827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600a546040518082815260200191505060405180910390a2600a5490505b92915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118d05780601f106118a5576101008083540402835291602001916118d0565b820191906000526020600020905b8154815290600101906020018083116118b357829003601f168201915b5050505050905090565b6000600860149054906101000a900460ff16806118fb57506118fa6117e0565b5b8061194f5750600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61195857600080fd5b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310611a67576000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611afb565b611a7a838261236190919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806124c16023913960400191505060405180910390fd5b6004544211611d04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e7472616374206973206c6f636b6564000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e4457600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e7d57600080fd5b600860149054906101000a900460ff1680611e9c5750611e9b6117e0565b5b80611ef05750600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611ef957600080fd5b6000611f10600b548561238190919063ffffffff16565b9050611f6481600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236190919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff981600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bb90919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600860149054906101000a900460ff1681565b6120f46117e0565b6120fd57600080fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6121606117e0565b61216957600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600481905550600073ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61234c6117e0565b61235557600080fd5b61235e81612400565b50565b60008282111561237057600080fd5b600082840390508091505092915050565b60008083141561239457600090506123b5565b60008284029050828482816123a557fe5b04146123b057600080fd5b809150505b92915050565b6000808284019050838110156123d057600080fd5b8091505092915050565b60008082116123e857600080fd5b60008284816123f357fe5b0490508091505092915050565b8073ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636ba265627a7a72315820a1f5b6569802203f19dea61680a240d3d6f5da867545df2ceaa4d5a9401d411364736f6c63430005110032
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c80637a43e23f1161010f578063b2bdfa7b116100a2578063dd46706411610071578063dd46706414610917578063dd62ed3e14610945578063ee97f7f3146109bd578063f2fde38b14610a07576101f0565b8063b2bdfa7b14610849578063c4996f5114610893578063d1fce264146108b1578063d5938aac146108d3576101f0565b806395d89b41116100de57806395d89b41146106f0578063a457c2d714610773578063a69df4b5146107d9578063a9059cbb146107e3576101f0565b80637a43e23f146105ee5780638acee3cf1461063a5780638da5cb5b146106845780638f32d59b146106ce576101f0565b8063313ce567116101875780636e63cd96116101565780636e63cd961461052457806370a082311461056e578063715018a6146105c657806379af25a6146105d0576101f0565b8063313ce5671461045e57806339509351146104825780633eaaf86b146104e8578063602bc62b14610506576101f0565b806326fae0d3116101c357806326fae0d3146103825780632be6937d146103c65780632f34d282146103d0578063313c06a014610414576101f0565b806306fdde03146101f5578063095ea7b31461027857806318160ddd146102de57806323b872dd146102fc575b600080fd5b6101fd610a4b565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561023d578082015181840152602081019050610222565b50505050905090810190601f16801561026a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102c46004803603604081101561028e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610aed565b604051808215151515815260200191505060405180910390f35b6102e6610c5b565b6040518082815260200191505060405180910390f35b6103686004803603606081101561031257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c65565b604051808215151515815260200191505060405180910390f35b6103c46004803603602081101561039857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f9f565b005b6103ce610ff4565b005b610412600480360360208110156103e657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611022565b005b61041c61115f565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610466611185565b604051808260ff1660ff16815260200191505060405180910390f35b6104ce6004803603604081101561049857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061119c565b604051808215151515815260200191505060405180910390f35b6104f0611414565b6040518082815260200191505060405180910390f35b61050e61141a565b6040518082815260200191505060405180910390f35b61052c611424565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6105b06004803603602081101561058457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061144a565b6040518082815260200191505060405180910390f35b6105ce6114a7565b005b6105d8611561565b6040518082815260200191505060405180910390f35b6106246004803603604081101561060457600080fd5b810190808035906020019092919080359060200190929190505050611567565b6040518082815260200191505060405180910390f35b610642611790565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61068c6117b6565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106d66117e0565b604051808215151515815260200191505060405180910390f35b6106f8611838565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561073857808201518184015260208101905061071d565b50505050905090810190601f1680156107655780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107bf6004803603604081101561078957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506118da565b604051808215151515815260200191505060405180910390f35b6107e1611be7565b005b61082f600480360360408110156107f957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e07565b604051808215151515815260200191505060405180910390f35b6108516120ad565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61089b6120d3565b6040518082815260200191505060405180910390f35b6108b96120d9565b604051808215151515815260200191505060405180910390f35b610915600480360360208110156108e957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506120ec565b005b6109436004803603602081101561092d57600080fd5b8101908080359060200190929190505050612158565b005b6109a76004803603604081101561095b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612297565b6040518082815260200191505060405180910390f35b6109c561231e565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610a4960048036036020811015610a1d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612344565b005b606060008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610ae35780601f10610ab857610100808354040283529160200191610ae3565b820191906000526020600020905b815481529060010190602001808311610ac657829003601f168201915b5050505050905090565b6000600860149054906101000a900460ff1680610b0e5750610b0d6117e0565b5b80610b625750600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b610b6b57600080fd5b81600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000600a54905090565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ca257600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cdb57600080fd5b610d6a83600d60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236190919063ffffffff16565b600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000610e01600b548561238190919063ffffffff16565b9050610e5581600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236190919063ffffffff16565b600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610eea81600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bb90919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a36001925050509392505050565b610fa76117e0565b610fb057600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610ffc6117e0565b61100557600080fd5b6001600860146101000a81548160ff021916908315150217905550565b61102a6117e0565b61103357600080fd5b80600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f2722d97be5760964e10a9f98000da5b4e69c3841d8fd5b4d8398a87ac02fe3f2600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260009054906101000a900460ff16905090565b6000600860149054906101000a900460ff16806111bd57506111bc6117e0565b5b806112115750600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61121a57600080fd5b6112a982600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bb90919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36001905092915050565b600a5481565b6000600454905090565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006114a0600b54600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123da90919063ffffffff16565b9050919050565b6114af6117e0565b6114b857600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60045481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115c357600080fd5b600082141561161057827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600a546040518082815260200191505060405180910390a2600a54905061178a565b600082121561163c5761163182600003600a5461236190919063ffffffff16565b600a81905550611658565b61165182600a546123bb90919063ffffffff16565b600a819055505b6000196fffffffffffffffffffffffffffffffff16600a541115611692576000196fffffffffffffffffffffffffffffffff16600a819055505b6116c2600a546012600a0a655af3107a400002600019816116af57fe5b06600019036123da90919063ffffffff16565b600b81905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561173257600080fd5b505af1158015611746573d6000803e3d6000fd5b50505050827f72725a3b1e5bd622d6bcd1339bb31279c351abe8f541ac7fd320f24e1b1641f2600a546040518082815260200191505060405180910390a2600a5490505b92915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b606060018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156118d05780601f106118a5576101008083540402835291602001916118d0565b820191906000526020600020905b8154815290600101906020018083116118b357829003601f168201915b5050505050905090565b6000600860149054906101000a900460ff16806118fb57506118fa6117e0565b5b8061194f5750600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61195857600080fd5b6000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050808310611a67576000600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611afb565b611a7a838261236190919063ffffffff16565b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c8d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806124c16023913960400191505060405180910390fd5b6004544211611d04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f436f6e7472616374206973206c6f636b6564000000000000000000000000000081525060200191505060405180910390fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600082600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e4457600080fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611e7d57600080fd5b600860149054906101000a900460ff1680611e9c5750611e9b6117e0565b5b80611ef05750600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611ef957600080fd5b6000611f10600b548561238190919063ffffffff16565b9050611f6481600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461236190919063ffffffff16565b600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ff981600c60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123bb90919063ffffffff16565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040518082815260200191505060405180910390a360019250505092915050565b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b600860149054906101000a900460ff1681565b6120f46117e0565b6120fd57600080fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6121606117e0565b61216957600080fd5b600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550804201600481905550600073ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61234c6117e0565b61235557600080fd5b61235e81612400565b50565b60008282111561237057600080fd5b600082840390508091505092915050565b60008083141561239457600090506123b5565b60008284029050828482816123a557fe5b04146123b057600080fd5b809150505b92915050565b6000808284019050838110156123d057600080fd5b8091505092915050565b60008082116123e857600080fd5b60008284816123f357fe5b0490508091505092915050565b8073ffffffffffffffffffffffffffffffffffffffff16600260019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600260016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505056fe596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6f636ba265627a7a72315820a1f5b6569802203f19dea61680a240d3d6f5da867545df2ceaa4d5a9401d411364736f6c63430005110032
Deployed Bytecode Sourcemap
11039:8956:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11039:8956:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5471:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17870:268;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17870:268:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14941:123;;;:::i;:::-;;;;;;;;;;;;;;;;;;;16739:489;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16739:489:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;14498:125;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14498:125:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;19710:139;;;:::i;:::-;;14694:170;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14694:170:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;11445:17;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;6323:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;18511:378;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18511:378:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12736:27;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10365:74;;;:::i;:::-;;;;;;;;;;;;;;;;;;;8570:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15184:161;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15184:161:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9696:116;;;:::i;:::-;;8604:24;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13334:726;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13334:726:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11469:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9037:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9339:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;5673:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5673:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19151:547;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19151:547:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10642:253;;;:::i;:::-;;15571:423;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15571:423:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8544:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;12770:31;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11729:39;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19861:129;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19861:129:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10448:187;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10448:187:0;;;;;;;;;;;;;;;;;:::i;:::-;;16301:176;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16301:176:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11388:21;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9979:103;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9979:103:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;5471:83;5508:13;5541:5;5534:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5471:83;:::o;17870:268::-;17988:4;11885:27;;;;;;;;;;;:40;;;;11916:9;:7;:9::i;:::-;11885:40;:69;;;;11929:13;:25;11943:10;11929:25;;;;;;;;;;;;;;;;;;;;;;;;;11885:69;11877:78;;;;;;18051:5;18010:17;:29;18028:10;18010:29;;;;;;;;;;;;;;;:38;18040:7;18010:38;;;;;;;;;;;;;;;:46;;;;18093:7;18072:36;;18081:10;18072:36;;;18102:5;18072:36;;;;;;;;;;;;;;;;;;18126:4;18119:11;;17870:268;;;;:::o;14941:123::-;15012:7;15044:12;;15037:19;;14941:123;:::o;16739:489::-;16866:4;16844:2;12052:3;12038:18;;:2;:18;;;;12030:27;;;;;;12090:4;12076:19;;:2;:19;;;;12068:28;;;;;;16926:46;16966:5;16926:17;:23;16944:4;16926:23;;;;;;;;;;;;;;;:35;16950:10;16926:35;;;;;;;;;;;;;;;;:39;;:46;;;;:::i;:::-;16888:17;:23;16906:4;16888:23;;;;;;;;;;;;;;;:35;16912:10;16888:35;;;;;;;;;;;;;;;:84;;;;16985:16;17004:27;17014:16;;17004:5;:9;;:27;;;;:::i;:::-;16985:46;;17063:32;17086:8;17063:12;:18;17076:4;17063:18;;;;;;;;;;;;;;;;:22;;:32;;;;:::i;:::-;17042:12;:18;17055:4;17042:18;;;;;;;;;;;;;;;:53;;;;17125:30;17146:8;17125:12;:16;17138:2;17125:16;;;;;;;;;;;;;;;;:20;;:30;;;;:::i;:::-;17106:12;:16;17119:2;17106:16;;;;;;;;;;;;;;;:49;;;;17186:2;17171:25;;17180:4;17171:25;;;17190:5;17171:25;;;;;;;;;;;;;;;;;;17216:4;17209:11;;;16739:489;;;;;;:::o;14498:125::-;9230:9;:7;:9::i;:::-;9222:18;;;;;;14602:13;14593:6;;:22;;;;;;;;;;;;;;;;;;14498:125;:::o;19710:139::-;9230:9;:7;:9::i;:::-;9222:18;;;;;;19837:4;19807:27;;:34;;;;;;;;;;;;;;;;;;19710:139::o;14694:170::-;9230:9;:7;:9::i;:::-;9222:18;;;;;;14786:9;14781:2;;:14;;;;;;;;;;;;;;;;;;14823:2;;;;;;;;;;;14806:10;;:20;;;;;;;;;;;;;;;;;;14842:14;14853:2;;;;;;;;;;;14842:14;;;;;;;;;;;;;;;;;;;;;;14694:170;:::o;11445:17::-;;;;;;;;;;;;;:::o;6323:83::-;6364:5;6389:9;;;;;;;;;;;6382:16;;6323:83;:::o;18511:378::-;18644:4;11885:27;;;;;;;;;;;:40;;;;11916:9;:7;:9::i;:::-;11885:40;:69;;;;11929:13;:25;11943:10;11929:25;;;;;;;;;;;;;;;;;;;;;;;;;11885:69;11877:78;;;;;;18720:54;18763:10;18720:17;:29;18738:10;18720:29;;;;;;;;;;;;;;;:38;18750:7;18720:38;;;;;;;;;;;;;;;;:42;;:54;;;;:::i;:::-;18666:17;:29;18684:10;18666:29;;;;;;;;;;;;;;;:38;18696:7;18666:38;;;;;;;;;;;;;;;:108;;;;18811:7;18790:69;;18799:10;18790:69;;;18820:17;:29;18838:10;18820:29;;;;;;;;;;;;;;;:38;18850:7;18820:38;;;;;;;;;;;;;;;;18790:69;;;;;;;;;;;;;;;;;;18877:4;18870:11;;18511:378;;;;:::o;12736:27::-;;;;:::o;10365:74::-;10411:7;10428:9;;10421:16;;10365:74;:::o;8570:29::-;;;;;;;;;;;;;:::o;15184:161::-;15266:7;15298:39;15320:16;;15298:12;:17;15311:3;15298:17;;;;;;;;;;;;;;;;:21;;:39;;;;:::i;:::-;15291:46;;15184:161;;;:::o;9696:116::-;9230:9;:7;:9::i;:::-;9222:18;;;;;;9773:6;;;;;;;;;;;9754:26;;;;;;;;;;;;9804:1;9787:6;;:19;;;;;;;;;;;;;;;;;;9696:116::o;8604:24::-;;;;:::o;13334:726::-;13441:7;11554:6;;;;;;;;;;;11540:20;;:10;:20;;;11532:29;;;;;;13485:1;13470:11;:16;13466:118;;;13518:5;13508:30;13525:12;;13508:30;;;;;;;;;;;;;;;;;;13560:12;;13553:19;;;;13466:118;13614:1;13600:11;:15;13596:188;;;13647:39;13673:11;13672:12;;13647;;:16;;:39;;;;:::i;:::-;13632:12;:54;;;;13596:188;;;13734:38;13759:11;13734:12;;:16;;:38;;;;:::i;:::-;13719:12;:53;;;;13596:188;12709:1;12700:11;13815:10;;13800:12;;:25;13796:83;;;12709:1;12700:11;13857:10;;13842:12;:25;;;;13796:83;13918:28;13933:12;;12160:2;12293;:12;12284:6;:21;12217:1;12208:11;12542:38;;;;;;12217:1;12208:11;12527:54;13918:14;;:28;;;;:::i;:::-;13899:16;:47;;;;13957:10;;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13957:17:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13957:17:0;;;;14002:5;13992:30;14009:12;;13992:30;;;;;;;;;;;;;;;;;;14040:12;;14033:19;;11572:1;13334:726;;;;:::o;11469:21::-;;;;;;;;;;;;;:::o;9037:72::-;9074:7;9097:6;;;;;;;;;;;9090:13;;9037:72;:::o;9339:85::-;9378:4;9412:6;;;;;;;;;;;9398:20;;:10;:20;;;9391:27;;9339:85;:::o;5673:87::-;5712:13;5745:7;5738:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5673:87;:::o;19151:547::-;19289:4;11885:27;;;;;;;;;;;:40;;;;11916:9;:7;:9::i;:::-;11885:40;:69;;;;11929:13;:25;11943:10;11929:25;;;;;;;;;;;;;;;;;;;;;;;;;11885:69;11877:78;;;;;;19311:16;19330:17;:29;19348:10;19330:29;;;;;;;;;;;;;;;:38;19360:7;19330:38;;;;;;;;;;;;;;;;19311:57;;19402:8;19383:15;:27;19379:205;;19468:1;19427:17;:29;19445:10;19427:29;;;;;;;;;;;;;;;:38;19457:7;19427:38;;;;;;;;;;;;;;;:42;;;;19379:205;;;19543:29;19556:15;19543:8;:12;;:29;;;;:::i;:::-;19502:17;:29;19520:10;19502:29;;;;;;;;;;;;;;;:38;19532:7;19502:38;;;;;;;;;;;;;;;:70;;;;19379:205;19620:7;19599:69;;19608:10;19599:69;;;19629:17;:29;19647:10;19629:29;;;;;;;;;;;;;;;:38;19659:7;19629:38;;;;;;;;;;;;;;;;19599:69;;;;;;;;;;;;;;;;;;19686:4;19679:11;;;19151:547;;;;:::o;10642:253::-;10697:10;10679:28;;:14;;;;;;;;;;;:28;;;10671:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10777:9;;10759:15;:27;10751:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10848:14;;;;;;;;;;;10819:44;;10840:6;;;;;;;;;;;10819:44;;;;;;;;;;;;10876:14;;;;;;;;;;;10867:6;;:23;;;;;;;;;;;;;;;;;;10642:253::o;15571:423::-;15713:4;15658:2;12052:3;12038:18;;:2;:18;;;;12030:27;;;;;;12090:4;12076:19;;:2;:19;;;;12068:28;;;;;;11885:27;;;;;;;;;;;:40;;;;11916:9;:7;:9::i;:::-;11885:40;:69;;;;11929:13;:25;11943:10;11929:25;;;;;;;;;;;;;;;;;;;;;;;;;11885:69;11877:78;;;;;;15735:16;15754:27;15764:16;;15754:5;:9;;:27;;;;:::i;:::-;15735:46;;15819:38;15848:8;15819:12;:24;15832:10;15819:24;;;;;;;;;;;;;;;;:28;;:38;;;;:::i;:::-;15792:12;:24;15805:10;15792:24;;;;;;;;;;;;;;;:65;;;;15887:30;15908:8;15887:12;:16;15900:2;15887:16;;;;;;;;;;;;;;;;:20;;:30;;;;:::i;:::-;15868:12;:16;15881:2;15868:16;;;;;;;;;;;;;;;:49;;;;15954:2;15933:31;;15942:10;15933:31;;;15958:5;15933:31;;;;;;;;;;;;;;;;;;15982:4;15975:11;;;15571:423;;;;;:::o;8544:21::-;;;;;;;;;;;;;:::o;12770:31::-;;;;:::o;11729:39::-;;;;;;;;;;;;;:::o;19861:129::-;9230:9;:7;:9::i;:::-;9222:18;;;;;;19978:4;19955:13;:20;19969:5;19955:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;19861:129;:::o;10448:187::-;9230:9;:7;:9::i;:::-;9222:18;;;;;;10514:6;;;;;;;;;;;10497:14;;:23;;;;;;;;;;;;;;;;;;10541:1;10524:6;;:19;;;;;;;;;;;;;;;;;;10577:4;10559:15;:22;10547:9;:34;;;;10627:1;10590:40;;10611:6;;;;;;;;;;;10590:40;;;;;;;;;;;;10448:187;:::o;16301:176::-;16403:7;16435:17;:25;16453:6;16435:25;;;;;;;;;;;;;;;:34;16461:7;16435:34;;;;;;;;;;;;;;;;16428:41;;16301:176;;;;:::o;11388:21::-;;;;;;;;;;;;;:::o;9979:103::-;9230:9;:7;:9::i;:::-;9222:18;;;;;;10048:28;10067:8;10048:18;:28::i;:::-;9979:103;:::o;1615:136::-;1673:7;1702:1;1697;:6;;1689:15;;;;;;1711:9;1727:1;1723;:5;1711:17;;1744:1;1737:8;;;1615:136;;;;:::o;713:393::-;771:7;1004:1;999;:6;995:37;;;1023:1;1016:8;;;;995:37;1040:9;1056:1;1052;:5;1040:17;;1081:1;1076;1072;:5;;;;;;:10;1064:19;;;;;;1099:1;1092:8;;;713:393;;;;;:::o;1819:136::-;1877:7;1893:9;1909:1;1905;:5;1893:17;;1930:1;1925;:6;;1917:15;;;;;;1948:1;1941:8;;;1819:136;;;;:::o;1221:276::-;1279:7;1307:1;1303;:5;1295:14;;;;;;1374:9;1390:1;1386;:5;;;;;;1374:17;;1490:1;1483:8;;;1221:276;;;;:::o;10222:135::-;10318:8;10289:38;;10310:6;;;;;;;;;;;10289:38;;;;;;;;;;;;10343:8;10334:6;;:17;;;;;;;;;;;;;;;;;;10222:135;:::o
Swarm Source
bzzr://a1f5b6569802203f19dea61680a240d3d6f5da867545df2ceaa4d5a9401d4113
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.