ERC-721
Overview
Max Total Supply
425 BABES
Holders
194
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
5 BABESLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
BoredBabes
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2021-11-10 */ pragma solidity ^0.8.0; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } pragma solidity ^0.8.0; interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } pragma solidity ^0.8.0; abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } pragma solidity ^0.8.0; library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; function toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } } pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } pragma solidity ^0.8.0; library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } 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"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } 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"); } 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); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } 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); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } 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 { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } pragma solidity ^0.8.0; interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom( address from, address to, uint256 tokenId ) external; function transferFrom( address from, address to, uint256 tokenId ) external; function approve(address to, uint256 tokenId) external; function getApproved(uint256 tokenId) external view returns (address operator); function setApprovalForAll(address operator, bool _approved) external; function isApprovedForAll(address owner, address operator) external view returns (bool); function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; } pragma solidity ^0.8.0; interface IERC721Enumerable is IERC721 { function totalSupply() external view returns (uint256); function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); function tokenByIndex(uint256 index) external view returns (uint256); } pragma solidity ^0.8.0; interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } pragma solidity ^0.8.0; interface IERC721Metadata is IERC721 { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256 tokenId) external view returns (string memory); } pragma solidity ^0.8.0; abstract contract Pausable is Context { event Paused(address account); event Unpaused(address account); bool private _paused; constructor() { _paused = false; } function paused() public view virtual returns (bool) { return _paused; } modifier whenNotPaused() { require(!paused(), "Pausable: paused"); _; } modifier whenPaused() { require(paused(), "Pausable: not paused"); _; } function _pause() internal virtual whenNotPaused { _paused = true; emit Paused(_msgSender()); } function _unpause() internal virtual whenPaused { _paused = false; emit Unpaused(_msgSender()); } } pragma solidity ^0.8.0; abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } pragma solidity ^0.8.0; contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; string private _name; string private _symbol; mapping(uint256 => address) private _owners; mapping(address => uint256) private _balances; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; } function _baseURI() internal view virtual returns (string memory) { return ""; } function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public virtual override { require(operator != _msgSender(), "ERC721: approve to caller"); _operatorApprovals[_msgSender()][operator] = approved; emit ApprovalForAll(_msgSender(), operator, approved); } function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } function transferFrom( address from, address to, uint256 tokenId ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender)); } function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ""); } function _safeMint( address to, uint256 tokenId, bytes memory _data ) internal virtual { _mint(to, tokenId); require( _checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer" ); } function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); } function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver(to).onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} } pragma solidity ^0.8.0; abstract contract ERC721Enumerable is ERC721, IERC721Enumerable { mapping(address => mapping(uint256 => uint256)) private _ownedTokens; mapping(uint256 => uint256) private _ownedTokensIndex; uint256[] private _allTokens; mapping(uint256 => uint256) private _allTokensIndex; function supportsInterface(bytes4 interfaceId) public view virtual override(IERC165, ERC721) returns (bool) { return interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); } function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) { require(index < ERC721.balanceOf(owner), "ERC721Enumerable: owner index out of bounds"); return _ownedTokens[owner][index]; } function totalSupply() public view virtual override returns (uint256) { return _allTokens.length; } function tokenByIndex(uint256 index) public view virtual override returns (uint256) { require(index < ERC721Enumerable.totalSupply(), "ERC721Enumerable: global index out of bounds"); return _allTokens[index]; } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual override { super._beforeTokenTransfer(from, to, tokenId); if (from == address(0)) { _addTokenToAllTokensEnumeration(tokenId); } else if (from != to) { _removeTokenFromOwnerEnumeration(from, tokenId); } if (to == address(0)) { _removeTokenFromAllTokensEnumeration(tokenId); } else if (to != from) { _addTokenToOwnerEnumeration(to, tokenId); } } function _addTokenToOwnerEnumeration(address to, uint256 tokenId) private { uint256 length = ERC721.balanceOf(to); _ownedTokens[to][length] = tokenId; _ownedTokensIndex[tokenId] = length; } function _addTokenToAllTokensEnumeration(uint256 tokenId) private { _allTokensIndex[tokenId] = _allTokens.length; _allTokens.push(tokenId); } function _removeTokenFromOwnerEnumeration(address from, uint256 tokenId) private { uint256 lastTokenIndex = ERC721.balanceOf(from) - 1; uint256 tokenIndex = _ownedTokensIndex[tokenId]; if (tokenIndex != lastTokenIndex) { uint256 lastTokenId = _ownedTokens[from][lastTokenIndex]; _ownedTokens[from][tokenIndex] = lastTokenId; _ownedTokensIndex[lastTokenId] = tokenIndex; } delete _ownedTokensIndex[tokenId]; delete _ownedTokens[from][lastTokenIndex]; } function _removeTokenFromAllTokensEnumeration(uint256 tokenId) private { uint256 lastTokenIndex = _allTokens.length - 1; uint256 tokenIndex = _allTokensIndex[tokenId]; uint256 lastTokenId = _allTokens[lastTokenIndex]; _allTokens[tokenIndex] = lastTokenId; _allTokensIndex[lastTokenId] = tokenIndex; delete _allTokensIndex[tokenId]; _allTokens.pop(); } } pragma solidity ^0.8.0; abstract contract ERC721Pausable is ERC721, Ownable, Pausable { function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual override { super._beforeTokenTransfer(from, to, tokenId); if (_msgSender() != owner()) { require(!paused(), "ERC721Pausable: token transfer while paused"); } } } pragma solidity ^0.8.0; abstract contract ERC721Burnable is Context, ERC721 { function burn(uint256 tokenId) public virtual { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721Burnable: caller is not owner nor approved"); _burn(tokenId); } } pragma solidity ^0.8.0; contract BoredBabes is ERC721Enumerable, Ownable, ERC721Burnable, ERC721Pausable { using SafeMath for uint256; uint256 public MAX_ELEMENTS = 10010; uint256 public PRICE = 7 * 10**16; uint256 public MAX_BY_MINT = 5; uint256 public babes = 85; uint256 public giveAways = 1; string public baseTokenURI = "https://api.boredbabes.com/babe/"; bool public presale = true; address public creatorAddress = 0x176bEFEF16ee262AD7AfeA8702d82736AfC7df27; mapping(address => uint256) public userBalance; constructor() ERC721("Bored Babes", "BABES") { } function mint(uint256 _count) public payable { if(presale == true){ require(userBalance[msg.sender] + _count <= MAX_BY_MINT, "max NFT per address exceeded"); userBalance[msg.sender] = userBalance[msg.sender] + _count; } require(babes + _count <= MAX_ELEMENTS, "Max limit"); require(_count <= MAX_BY_MINT, "Exceeds number"); require(msg.value == price(_count), "Incorrect value"); for (uint256 i = 0; i < _count; i++) { _mintAnElement(msg.sender); } } function activatePresale(bool status) public onlyOwner { presale = status; } function setMaxMint(uint256 limit) public onlyOwner { MAX_BY_MINT = limit; } function _mintAnElement(address _to) private { babes = babes + 1; _safeMint(_to, babes); } function price(uint256 _count) public view returns (uint256) { return PRICE.mul(_count); } function _baseURI() internal view virtual override returns (string memory) { return baseTokenURI; } function setBaseURI(string memory baseURI) public onlyOwner { baseTokenURI = baseURI; } function setPrice(uint256 _price) public onlyOwner { PRICE = _price; } function giveAway(address to) public onlyOwner { require(giveAways <= 85, "max 85 allowed"); _safeMint(to, giveAways); giveAways ++; } function walletOfOwner(address _owner) external view returns (uint256[] memory) { uint256 tokenCount = balanceOf(_owner); uint256[] memory tokensId = new uint256[](tokenCount); for (uint256 i = 0; i < tokenCount; i++) { tokensId[i] = tokenOfOwnerByIndex(_owner, i); } return tokensId; } function pause(bool val) public onlyOwner { if (val == true) { _pause(); return; } _unpause(); } function withdrawAll() public onlyOwner { _widthdraw(creatorAddress, address(this).balance); } function _widthdraw(address _address, uint256 _amount) private { (bool success, ) = _address.call{value: _amount}(""); require(success, "Transfer failed."); } function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual override(ERC721, ERC721Enumerable, ERC721Pausable) { super._beforeTokenTransfer(from, to, tokenId); } function changeComapnyWallet(address target) public onlyOwner { creatorAddress = target; } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721, ERC721Enumerable) returns (bool) { return super.supportsInterface(interfaceId); } }
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":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","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":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"MAX_BY_MINT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ELEMENTS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRICE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"activatePresale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"babes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"changeComapnyWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"creatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"giveAway","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"giveAways","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"val","type":"bool"}],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presale","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_count","type":"uint256"}],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"setMaxMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_price","type":"uint256"}],"name":"setPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"userBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"walletOfOwner","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAll","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
61271a600b5566f8b0a10e470000600c556005600d556055600e556001600f5560c0604052602060808190527f68747470733a2f2f6170692e626f72656462616265732e636f6d2f626162652f60a09081526200006091601091906200018c565b5060118054600160ff1990911617610100600160a81b03191674176befef16ee262ad7afea8702d82736afc7df27001790553480156200009f57600080fd5b50604080518082018252600b81526a426f72656420426162657360a81b602080830191825283518085019094526005845264424142455360d81b908401528151919291620000f0916000916200018c565b508051620001069060019060208401906200018c565b505050620001236200011d6200013660201b60201c565b6200013a565b600a805460ff60a01b191690556200026f565b3390565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8280546200019a9062000232565b90600052602060002090601f016020900481019282620001be576000855562000209565b82601f10620001d957805160ff191683800117855562000209565b8280016001018555821562000209579182015b8281111562000209578251825591602001919060010190620001ec565b50620002179291506200021b565b5090565b5b808211156200021757600081556001016200021c565b6002810460018216806200024757607f821691505b602082108114156200026957634e487b7160e01b600052602260045260246000fd5b50919050565b612afc806200027f6000396000f3fe6080604052600436106102465760003560e01c80635c975abb1161013957806395d89b41116100b6578063c87b56dd1161007a578063c87b56dd14610666578063d547cfb714610686578063e927fc5c1461069b578063e985e9c5146106b0578063f2fde38b146106d0578063fdea8e0b146106f057610246565b806395d89b41146105de5780639e240785146105f3578063a0712d6814610613578063a22cb46514610626578063b88d4fde1461064657610246565b8063853828b6116100fd578063853828b61461056a5780638ad5de281461057f5780638d859f3e146105945780638da5cb5b146105a957806391b7f5ed146105be57610246565b80635c975abb146104e05780636352211e146104f557806370a0823114610515578063715018a61461053557806373ddc1f01461054a57610246565b806323b872dd116101c757806342966c681161018b57806342966c6814610433578063438b6300146104535780634f6ccce714610480578063547520fe146104a057806355f804b3146104c057610246565b806323b872dd1461039e57806326a49e37146103be5780632f745c59146103de5780633502a716146103fe57806342842e0e1461041357610246565b8063095ea7b31161020e578063095ea7b31461031f578063095eb8c91461033f578063118ff7281461035f57806314a369ab1461037457806318160ddd1461038957610246565b80630103c92b1461024b57806301ffc9a71461028157806302329a29146102ae57806306fdde03146102d0578063081812fc146102f2575b600080fd5b34801561025757600080fd5b5061026b610266366004611f6d565b610705565b604051610278919061296d565b60405180910390f35b34801561028d57600080fd5b506102a161029c3660046120d9565b610717565b6040516102789190612262565b3480156102ba57600080fd5b506102ce6102c93660046120bf565b61072a565b005b3480156102dc57600080fd5b506102e5610795565b604051610278919061226d565b3480156102fe57600080fd5b5061031261030d366004612157565b610827565b60405161027891906121cd565b34801561032b57600080fd5b506102ce61033a366004612096565b61086a565b34801561034b57600080fd5b506102ce61035a366004611f6d565b610902565b34801561036b57600080fd5b5061026b610969565b34801561038057600080fd5b5061026b61096f565b34801561039557600080fd5b5061026b610975565b3480156103aa57600080fd5b506102ce6103b9366004611fb9565b61097b565b3480156103ca57600080fd5b5061026b6103d9366004612157565b6109b3565b3480156103ea57600080fd5b5061026b6103f9366004612096565b6109c3565b34801561040a57600080fd5b5061026b610a15565b34801561041f57600080fd5b506102ce61042e366004611fb9565b610a1b565b34801561043f57600080fd5b506102ce61044e366004612157565b610a36565b34801561045f57600080fd5b5061047361046e366004611f6d565b610a66565b604051610278919061221e565b34801561048c57600080fd5b5061026b61049b366004612157565b610b24565b3480156104ac57600080fd5b506102ce6104bb366004612157565b610b7f565b3480156104cc57600080fd5b506102ce6104db366004612111565b610bc3565b3480156104ec57600080fd5b506102a1610c19565b34801561050157600080fd5b50610312610510366004612157565b610c29565b34801561052157600080fd5b5061026b610530366004611f6d565b610c5e565b34801561054157600080fd5b506102ce610ca2565b34801561055657600080fd5b506102ce6105653660046120bf565b610ced565b34801561057657600080fd5b506102ce610d3f565b34801561058b57600080fd5b5061026b610d99565b3480156105a057600080fd5b5061026b610d9f565b3480156105b557600080fd5b50610312610da5565b3480156105ca57600080fd5b506102ce6105d9366004612157565b610db4565b3480156105ea57600080fd5b506102e5610df8565b3480156105ff57600080fd5b506102ce61060e366004611f6d565b610e07565b6102ce610621366004612157565b610e8d565b34801561063257600080fd5b506102ce61064136600461206d565b610fa3565b34801561065257600080fd5b506102ce610661366004611ff4565b611071565b34801561067257600080fd5b506102e5610681366004612157565b6110b0565b34801561069257600080fd5b506102e5611133565b3480156106a757600080fd5b506103126111c1565b3480156106bc57600080fd5b506102a16106cb366004611f87565b6111d5565b3480156106dc57600080fd5b506102ce6106eb366004611f6d565b611203565b3480156106fc57600080fd5b506102a1611271565b60126020526000908152604090205481565b60006107228261127a565b90505b919050565b61073261129f565b6001600160a01b0316610743610da5565b6001600160a01b0316146107725760405162461bcd60e51b815260040161076990612748565b60405180910390fd5b6001811515141561078a576107856112a3565b610792565b61079261131b565b50565b6060600080546107a490612a04565b80601f01602080910402602001604051908101604052809291908181526020018280546107d090612a04565b801561081d5780601f106107f25761010080835404028352916020019161081d565b820191906000526020600020905b81548152906001019060200180831161080057829003601f168201915b5050505050905090565b600061083282611375565b61084e5760405162461bcd60e51b8152600401610769906126d3565b506000908152600460205260409020546001600160a01b031690565b600061087582610c29565b9050806001600160a01b0316836001600160a01b031614156108a95760405162461bcd60e51b815260040161076990612815565b806001600160a01b03166108bb61129f565b6001600160a01b031614806108d757506108d7816106cb61129f565b6108f35760405162461bcd60e51b8152600401610769906125ae565b6108fd8383611392565b505050565b61090a61129f565b6001600160a01b031661091b610da5565b6001600160a01b0316146109415760405162461bcd60e51b815260040161076990612748565b601180546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600e5481565b600f5481565b60085490565b61098c61098661129f565b82611400565b6109a85760405162461bcd60e51b815260040161076990612880565b6108fd838383611485565b600c5460009061072290836115b2565b60006109ce83610c5e565b82106109ec5760405162461bcd60e51b815260040161076990612349565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600b5481565b6108fd83838360405180602001604052806000815250611071565b610a4161098661129f565b610a5d5760405162461bcd60e51b81526004016107699061291d565b610792816115be565b60606000610a7383610c5e565b905060008167ffffffffffffffff811115610a9e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac7578160200160208202803683370190505b50905060005b82811015610b1c57610adf85826109c3565b828281518110610aff57634e487b7160e01b600052603260045260246000fd5b602090810291909101015280610b1481612a3f565b915050610acd565b509392505050565b6000610b2e610975565b8210610b4c5760405162461bcd60e51b8152600401610769906128d1565b60088281548110610b6d57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610b8761129f565b6001600160a01b0316610b98610da5565b6001600160a01b031614610bbe5760405162461bcd60e51b815260040161076990612748565b600d55565b610bcb61129f565b6001600160a01b0316610bdc610da5565b6001600160a01b031614610c025760405162461bcd60e51b815260040161076990612748565b8051610c15906010906020840190611e3d565b5050565b600a54600160a01b900460ff1690565b6000818152600260205260408120546001600160a01b0316806107225760405162461bcd60e51b815260040161076990612655565b60006001600160a01b038216610c865760405162461bcd60e51b81526004016107699061260b565b506001600160a01b031660009081526003602052604090205490565b610caa61129f565b6001600160a01b0316610cbb610da5565b6001600160a01b031614610ce15760405162461bcd60e51b815260040161076990612748565b610ceb6000611665565b565b610cf561129f565b6001600160a01b0316610d06610da5565b6001600160a01b031614610d2c5760405162461bcd60e51b815260040161076990612748565b6011805460ff1916911515919091179055565b610d4761129f565b6001600160a01b0316610d58610da5565b6001600160a01b031614610d7e5760405162461bcd60e51b815260040161076990612748565b601154610ceb9061010090046001600160a01b0316476116b7565b600d5481565b600c5481565b600a546001600160a01b031690565b610dbc61129f565b6001600160a01b0316610dcd610da5565b6001600160a01b031614610df35760405162461bcd60e51b815260040161076990612748565b600c55565b6060600180546107a490612a04565b610e0f61129f565b6001600160a01b0316610e20610da5565b6001600160a01b031614610e465760405162461bcd60e51b815260040161076990612748565b6055600f541115610e695760405162461bcd60e51b815260040161076990612321565b610e7581600f54611733565b600f8054906000610e8583612a3f565b919050555050565b60115460ff16151560011415610f0557600d5433600090815260126020526040902054610ebb908390612976565b1115610ed95760405162461bcd60e51b815260040161076990612463565b33600090815260126020526040902054610ef4908290612976565b336000908152601260205260409020555b600b5481600e54610f169190612976565b1115610f345760405162461bcd60e51b815260040161076990612515565b600d54811115610f565760405162461bcd60e51b8152600401610769906122f9565b610f5f816109b3565b3414610f7d5760405162461bcd60e51b81526004016107699061271f565b60005b81811015610c1557610f913361174d565b80610f9b81612a3f565b915050610f80565b610fab61129f565b6001600160a01b0316826001600160a01b03161415610fdc5760405162461bcd60e51b8152600401610769906124de565b8060056000610fe961129f565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff19169215159290921790915561102d61129f565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110659190612262565b60405180910390a35050565b61108261107c61129f565b83611400565b61109e5760405162461bcd60e51b815260040161076990612880565b6110aa8484848461176b565b50505050565b60606110bb82611375565b6110d75760405162461bcd60e51b8152600401610769906127c6565b60006110e161179e565b90506000815111611101576040518060200160405280600081525061112c565b8061110b846117ad565b60405160200161111c92919061219b565b6040516020818303038152906040525b9392505050565b6010805461114090612a04565b80601f016020809104026020016040519081016040528092919081815260200182805461116c90612a04565b80156111b95780601f1061118e576101008083540402835291602001916111b9565b820191906000526020600020905b81548152906001019060200180831161119c57829003601f168201915b505050505081565b60115461010090046001600160a01b031681565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61120b61129f565b6001600160a01b031661121c610da5565b6001600160a01b0316146112425760405162461bcd60e51b815260040161076990612748565b6001600160a01b0381166112685760405162461bcd60e51b8152600401610769906123e6565b61079281611665565b60115460ff1681565b60006001600160e01b0319821663780e9d6360e01b14806107225750610722826118c8565b3390565b6112ab610c19565b156112c85760405162461bcd60e51b815260040161076990612584565b600a805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861130461129f565b60405161131191906121cd565b60405180910390a1565b611323610c19565b61133f5760405162461bcd60e51b8152600401610769906122cb565b600a805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61130461129f565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906113c782610c29565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061140b82611375565b6114275760405162461bcd60e51b815260040161076990612538565b600061143283610c29565b9050806001600160a01b0316846001600160a01b0316148061146d5750836001600160a01b031661146284610827565b6001600160a01b0316145b8061147d575061147d81856111d5565b949350505050565b826001600160a01b031661149882610c29565b6001600160a01b0316146114be5760405162461bcd60e51b81526004016107699061277d565b6001600160a01b0382166114e45760405162461bcd60e51b81526004016107699061249a565b6114ef838383611908565b6114fa600082611392565b6001600160a01b03831660009081526003602052604081208054600192906115239084906129c1565b90915550506001600160a01b0382166000908152600360205260408120805460019290611551908490612976565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061112c82846129a2565b60006115c982610c29565b90506115d781600084611908565b6115e2600083611392565b6001600160a01b038116600090815260036020526040812080546001929061160b9084906129c1565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000826001600160a01b0316826040516116d0906121ca565b60006040518083038185875af1925050503d806000811461170d576040519150601f19603f3d011682016040523d82523d6000602084013e611712565b606091505b50509050806108fd5760405162461bcd60e51b815260040161076990612856565b610c15828260405180602001604052806000815250611913565b600e5461175b906001612976565b600e819055610792908290611733565b611776848484611485565b61178284848484611946565b6110aa5760405162461bcd60e51b815260040161076990612394565b6060601080546107a490612a04565b6060816117d257506040805180820190915260018152600360fc1b6020820152610725565b8160005b81156117fc57806117e681612a3f565b91506117f59050600a8361298e565b91506117d6565b60008167ffffffffffffffff81111561182557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561184f576020820181803683370190505b5090505b841561147d576118646001836129c1565b9150611871600a86612a5a565b61187c906030612976565b60f81b81838151811061189f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506118c1600a8661298e565b9450611853565b60006001600160e01b031982166380ac58cd60e01b14806118f957506001600160e01b03198216635b5e139f60e01b145b80610722575061072282611a61565b6108fd838383611a7a565b61191d8383611ad1565b61192a6000848484611946565b6108fd5760405162461bcd60e51b815260040161076990612394565b600061195a846001600160a01b0316611bb0565b15611a5657836001600160a01b031663150b7a0261197661129f565b8786866040518563ffffffff1660e01b815260040161199894939291906121e1565b602060405180830381600087803b1580156119b257600080fd5b505af19250505080156119e2575060408051601f3d908101601f191682019092526119df918101906120f5565b60015b611a3c573d808015611a10576040519150601f19603f3d011682016040523d82523d6000602084013e611a15565b606091505b508051611a345760405162461bcd60e51b815260040161076990612394565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061147d565b506001949350505050565b6001600160e01b031981166301ffc9a760e01b14919050565b611a85838383611bb6565b611a8d610da5565b6001600160a01b0316611a9e61129f565b6001600160a01b0316146108fd57611ab4610c19565b156108fd5760405162461bcd60e51b815260040161076990612280565b6001600160a01b038216611af75760405162461bcd60e51b81526004016107699061269e565b611b0081611375565b15611b1d5760405162461bcd60e51b81526004016107699061242c565b611b2960008383611908565b6001600160a01b0382166000908152600360205260408120805460019290611b52908490612976565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b3b151590565b611bc18383836108fd565b6001600160a01b038316611bdd57611bd881611c3f565b611c00565b816001600160a01b0316836001600160a01b031614611c0057611c008382611c83565b6001600160a01b038216611c1c57611c1781611d20565b6108fd565b826001600160a01b0316826001600160a01b0316146108fd576108fd8282611df9565b600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b60006001611c9084610c5e565b611c9a91906129c1565b600083815260076020526040902054909150808214611ced576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611d32906001906129c1565b60008381526009602052604081205460088054939450909284908110611d6857634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060088381548110611d9757634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611ddd57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000611e0483610c5e565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b828054611e4990612a04565b90600052602060002090601f016020900481019282611e6b5760008555611eb1565b82601f10611e8457805160ff1916838001178555611eb1565b82800160010185558215611eb1579182015b82811115611eb1578251825591602001919060010190611e96565b50611ebd929150611ec1565b5090565b5b80821115611ebd5760008155600101611ec2565b600067ffffffffffffffff80841115611ef157611ef1612a9a565b604051601f8501601f191681016020018281118282101715611f1557611f15612a9a565b604052848152915081838501861015611f2d57600080fd5b8484602083013760006020868301015250509392505050565b80356001600160a01b038116811461072557600080fd5b8035801515811461072557600080fd5b600060208284031215611f7e578081fd5b61112c82611f46565b60008060408385031215611f99578081fd5b611fa283611f46565b9150611fb060208401611f46565b90509250929050565b600080600060608486031215611fcd578081fd5b611fd684611f46565b9250611fe460208501611f46565b9150604084013590509250925092565b60008060008060808587031215612009578081fd5b61201285611f46565b935061202060208601611f46565b925060408501359150606085013567ffffffffffffffff811115612042578182fd5b8501601f81018713612052578182fd5b61206187823560208401611ed6565b91505092959194509250565b6000806040838503121561207f578182fd5b61208883611f46565b9150611fb060208401611f5d565b600080604083850312156120a8578182fd5b6120b183611f46565b946020939093013593505050565b6000602082840312156120d0578081fd5b61112c82611f5d565b6000602082840312156120ea578081fd5b813561112c81612ab0565b600060208284031215612106578081fd5b815161112c81612ab0565b600060208284031215612122578081fd5b813567ffffffffffffffff811115612138578182fd5b8201601f81018413612148578182fd5b61147d84823560208401611ed6565b600060208284031215612168578081fd5b5035919050565b600081518084526121878160208601602086016129d8565b601f01601f19169290920160200192915050565b600083516121ad8184602088016129d8565b8351908301906121c18183602088016129d8565b01949350505050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906122149083018461216f565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156122565783518352928401929184019160010161223a565b50909695505050505050565b901515815260200190565b60006020825261112c602083018461216f565b6020808252602b908201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760408201526a1a1a5b19481c185d5cd95960aa1b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252600e908201526d22bc31b2b2b23990373ab6b132b960911b604082015260600190565b6020808252600e908201526d1b585e080e0d48185b1b1bddd95960921b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b6020808252601c908201527f6d6178204e465420706572206164647265737320657863656564656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b60208082526009908201526813585e081b1a5b5a5d60ba1b604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252600f908201526e496e636f72726563742076616c756560881b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526010908201526f2a3930b739b332b9103330b4b632b21760811b604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b60208082526030908201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760408201526f1b995c881b9bdc88185c1c1c9bdd995960821b606082015260800190565b90815260200190565b6000821982111561298957612989612a6e565b500190565b60008261299d5761299d612a84565b500490565b60008160001904831182151516156129bc576129bc612a6e565b500290565b6000828210156129d3576129d3612a6e565b500390565b60005b838110156129f35781810151838201526020016129db565b838111156110aa5750506000910152565b600281046001821680612a1857607f821691505b60208210811415612a3957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612a5357612a53612a6e565b5060010190565b600082612a6957612a69612a84565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461079257600080fdfea2646970667358221220f45d68aabd3af25434e03d19b4e28d600e352a6a8a15f64243bc7c0fc4917dde64736f6c63430008000033
Deployed Bytecode
0x6080604052600436106102465760003560e01c80635c975abb1161013957806395d89b41116100b6578063c87b56dd1161007a578063c87b56dd14610666578063d547cfb714610686578063e927fc5c1461069b578063e985e9c5146106b0578063f2fde38b146106d0578063fdea8e0b146106f057610246565b806395d89b41146105de5780639e240785146105f3578063a0712d6814610613578063a22cb46514610626578063b88d4fde1461064657610246565b8063853828b6116100fd578063853828b61461056a5780638ad5de281461057f5780638d859f3e146105945780638da5cb5b146105a957806391b7f5ed146105be57610246565b80635c975abb146104e05780636352211e146104f557806370a0823114610515578063715018a61461053557806373ddc1f01461054a57610246565b806323b872dd116101c757806342966c681161018b57806342966c6814610433578063438b6300146104535780634f6ccce714610480578063547520fe146104a057806355f804b3146104c057610246565b806323b872dd1461039e57806326a49e37146103be5780632f745c59146103de5780633502a716146103fe57806342842e0e1461041357610246565b8063095ea7b31161020e578063095ea7b31461031f578063095eb8c91461033f578063118ff7281461035f57806314a369ab1461037457806318160ddd1461038957610246565b80630103c92b1461024b57806301ffc9a71461028157806302329a29146102ae57806306fdde03146102d0578063081812fc146102f2575b600080fd5b34801561025757600080fd5b5061026b610266366004611f6d565b610705565b604051610278919061296d565b60405180910390f35b34801561028d57600080fd5b506102a161029c3660046120d9565b610717565b6040516102789190612262565b3480156102ba57600080fd5b506102ce6102c93660046120bf565b61072a565b005b3480156102dc57600080fd5b506102e5610795565b604051610278919061226d565b3480156102fe57600080fd5b5061031261030d366004612157565b610827565b60405161027891906121cd565b34801561032b57600080fd5b506102ce61033a366004612096565b61086a565b34801561034b57600080fd5b506102ce61035a366004611f6d565b610902565b34801561036b57600080fd5b5061026b610969565b34801561038057600080fd5b5061026b61096f565b34801561039557600080fd5b5061026b610975565b3480156103aa57600080fd5b506102ce6103b9366004611fb9565b61097b565b3480156103ca57600080fd5b5061026b6103d9366004612157565b6109b3565b3480156103ea57600080fd5b5061026b6103f9366004612096565b6109c3565b34801561040a57600080fd5b5061026b610a15565b34801561041f57600080fd5b506102ce61042e366004611fb9565b610a1b565b34801561043f57600080fd5b506102ce61044e366004612157565b610a36565b34801561045f57600080fd5b5061047361046e366004611f6d565b610a66565b604051610278919061221e565b34801561048c57600080fd5b5061026b61049b366004612157565b610b24565b3480156104ac57600080fd5b506102ce6104bb366004612157565b610b7f565b3480156104cc57600080fd5b506102ce6104db366004612111565b610bc3565b3480156104ec57600080fd5b506102a1610c19565b34801561050157600080fd5b50610312610510366004612157565b610c29565b34801561052157600080fd5b5061026b610530366004611f6d565b610c5e565b34801561054157600080fd5b506102ce610ca2565b34801561055657600080fd5b506102ce6105653660046120bf565b610ced565b34801561057657600080fd5b506102ce610d3f565b34801561058b57600080fd5b5061026b610d99565b3480156105a057600080fd5b5061026b610d9f565b3480156105b557600080fd5b50610312610da5565b3480156105ca57600080fd5b506102ce6105d9366004612157565b610db4565b3480156105ea57600080fd5b506102e5610df8565b3480156105ff57600080fd5b506102ce61060e366004611f6d565b610e07565b6102ce610621366004612157565b610e8d565b34801561063257600080fd5b506102ce61064136600461206d565b610fa3565b34801561065257600080fd5b506102ce610661366004611ff4565b611071565b34801561067257600080fd5b506102e5610681366004612157565b6110b0565b34801561069257600080fd5b506102e5611133565b3480156106a757600080fd5b506103126111c1565b3480156106bc57600080fd5b506102a16106cb366004611f87565b6111d5565b3480156106dc57600080fd5b506102ce6106eb366004611f6d565b611203565b3480156106fc57600080fd5b506102a1611271565b60126020526000908152604090205481565b60006107228261127a565b90505b919050565b61073261129f565b6001600160a01b0316610743610da5565b6001600160a01b0316146107725760405162461bcd60e51b815260040161076990612748565b60405180910390fd5b6001811515141561078a576107856112a3565b610792565b61079261131b565b50565b6060600080546107a490612a04565b80601f01602080910402602001604051908101604052809291908181526020018280546107d090612a04565b801561081d5780601f106107f25761010080835404028352916020019161081d565b820191906000526020600020905b81548152906001019060200180831161080057829003601f168201915b5050505050905090565b600061083282611375565b61084e5760405162461bcd60e51b8152600401610769906126d3565b506000908152600460205260409020546001600160a01b031690565b600061087582610c29565b9050806001600160a01b0316836001600160a01b031614156108a95760405162461bcd60e51b815260040161076990612815565b806001600160a01b03166108bb61129f565b6001600160a01b031614806108d757506108d7816106cb61129f565b6108f35760405162461bcd60e51b8152600401610769906125ae565b6108fd8383611392565b505050565b61090a61129f565b6001600160a01b031661091b610da5565b6001600160a01b0316146109415760405162461bcd60e51b815260040161076990612748565b601180546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600e5481565b600f5481565b60085490565b61098c61098661129f565b82611400565b6109a85760405162461bcd60e51b815260040161076990612880565b6108fd838383611485565b600c5460009061072290836115b2565b60006109ce83610c5e565b82106109ec5760405162461bcd60e51b815260040161076990612349565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b600b5481565b6108fd83838360405180602001604052806000815250611071565b610a4161098661129f565b610a5d5760405162461bcd60e51b81526004016107699061291d565b610792816115be565b60606000610a7383610c5e565b905060008167ffffffffffffffff811115610a9e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac7578160200160208202803683370190505b50905060005b82811015610b1c57610adf85826109c3565b828281518110610aff57634e487b7160e01b600052603260045260246000fd5b602090810291909101015280610b1481612a3f565b915050610acd565b509392505050565b6000610b2e610975565b8210610b4c5760405162461bcd60e51b8152600401610769906128d1565b60088281548110610b6d57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050919050565b610b8761129f565b6001600160a01b0316610b98610da5565b6001600160a01b031614610bbe5760405162461bcd60e51b815260040161076990612748565b600d55565b610bcb61129f565b6001600160a01b0316610bdc610da5565b6001600160a01b031614610c025760405162461bcd60e51b815260040161076990612748565b8051610c15906010906020840190611e3d565b5050565b600a54600160a01b900460ff1690565b6000818152600260205260408120546001600160a01b0316806107225760405162461bcd60e51b815260040161076990612655565b60006001600160a01b038216610c865760405162461bcd60e51b81526004016107699061260b565b506001600160a01b031660009081526003602052604090205490565b610caa61129f565b6001600160a01b0316610cbb610da5565b6001600160a01b031614610ce15760405162461bcd60e51b815260040161076990612748565b610ceb6000611665565b565b610cf561129f565b6001600160a01b0316610d06610da5565b6001600160a01b031614610d2c5760405162461bcd60e51b815260040161076990612748565b6011805460ff1916911515919091179055565b610d4761129f565b6001600160a01b0316610d58610da5565b6001600160a01b031614610d7e5760405162461bcd60e51b815260040161076990612748565b601154610ceb9061010090046001600160a01b0316476116b7565b600d5481565b600c5481565b600a546001600160a01b031690565b610dbc61129f565b6001600160a01b0316610dcd610da5565b6001600160a01b031614610df35760405162461bcd60e51b815260040161076990612748565b600c55565b6060600180546107a490612a04565b610e0f61129f565b6001600160a01b0316610e20610da5565b6001600160a01b031614610e465760405162461bcd60e51b815260040161076990612748565b6055600f541115610e695760405162461bcd60e51b815260040161076990612321565b610e7581600f54611733565b600f8054906000610e8583612a3f565b919050555050565b60115460ff16151560011415610f0557600d5433600090815260126020526040902054610ebb908390612976565b1115610ed95760405162461bcd60e51b815260040161076990612463565b33600090815260126020526040902054610ef4908290612976565b336000908152601260205260409020555b600b5481600e54610f169190612976565b1115610f345760405162461bcd60e51b815260040161076990612515565b600d54811115610f565760405162461bcd60e51b8152600401610769906122f9565b610f5f816109b3565b3414610f7d5760405162461bcd60e51b81526004016107699061271f565b60005b81811015610c1557610f913361174d565b80610f9b81612a3f565b915050610f80565b610fab61129f565b6001600160a01b0316826001600160a01b03161415610fdc5760405162461bcd60e51b8152600401610769906124de565b8060056000610fe961129f565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff19169215159290921790915561102d61129f565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516110659190612262565b60405180910390a35050565b61108261107c61129f565b83611400565b61109e5760405162461bcd60e51b815260040161076990612880565b6110aa8484848461176b565b50505050565b60606110bb82611375565b6110d75760405162461bcd60e51b8152600401610769906127c6565b60006110e161179e565b90506000815111611101576040518060200160405280600081525061112c565b8061110b846117ad565b60405160200161111c92919061219b565b6040516020818303038152906040525b9392505050565b6010805461114090612a04565b80601f016020809104026020016040519081016040528092919081815260200182805461116c90612a04565b80156111b95780601f1061118e576101008083540402835291602001916111b9565b820191906000526020600020905b81548152906001019060200180831161119c57829003601f168201915b505050505081565b60115461010090046001600160a01b031681565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b61120b61129f565b6001600160a01b031661121c610da5565b6001600160a01b0316146112425760405162461bcd60e51b815260040161076990612748565b6001600160a01b0381166112685760405162461bcd60e51b8152600401610769906123e6565b61079281611665565b60115460ff1681565b60006001600160e01b0319821663780e9d6360e01b14806107225750610722826118c8565b3390565b6112ab610c19565b156112c85760405162461bcd60e51b815260040161076990612584565b600a805460ff60a01b1916600160a01b1790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861130461129f565b60405161131191906121cd565b60405180910390a1565b611323610c19565b61133f5760405162461bcd60e51b8152600401610769906122cb565b600a805460ff60a01b191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa61130461129f565b6000908152600260205260409020546001600160a01b0316151590565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906113c782610c29565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061140b82611375565b6114275760405162461bcd60e51b815260040161076990612538565b600061143283610c29565b9050806001600160a01b0316846001600160a01b0316148061146d5750836001600160a01b031661146284610827565b6001600160a01b0316145b8061147d575061147d81856111d5565b949350505050565b826001600160a01b031661149882610c29565b6001600160a01b0316146114be5760405162461bcd60e51b81526004016107699061277d565b6001600160a01b0382166114e45760405162461bcd60e51b81526004016107699061249a565b6114ef838383611908565b6114fa600082611392565b6001600160a01b03831660009081526003602052604081208054600192906115239084906129c1565b90915550506001600160a01b0382166000908152600360205260408120805460019290611551908490612976565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061112c82846129a2565b60006115c982610c29565b90506115d781600084611908565b6115e2600083611392565b6001600160a01b038116600090815260036020526040812080546001929061160b9084906129c1565b909155505060008281526002602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000826001600160a01b0316826040516116d0906121ca565b60006040518083038185875af1925050503d806000811461170d576040519150601f19603f3d011682016040523d82523d6000602084013e611712565b606091505b50509050806108fd5760405162461bcd60e51b815260040161076990612856565b610c15828260405180602001604052806000815250611913565b600e5461175b906001612976565b600e819055610792908290611733565b611776848484611485565b61178284848484611946565b6110aa5760405162461bcd60e51b815260040161076990612394565b6060601080546107a490612a04565b6060816117d257506040805180820190915260018152600360fc1b6020820152610725565b8160005b81156117fc57806117e681612a3f565b91506117f59050600a8361298e565b91506117d6565b60008167ffffffffffffffff81111561182557634e487b7160e01b600052604160045260246000fd5b6040519080825280601f01601f19166020018201604052801561184f576020820181803683370190505b5090505b841561147d576118646001836129c1565b9150611871600a86612a5a565b61187c906030612976565b60f81b81838151811061189f57634e487b7160e01b600052603260045260246000fd5b60200101906001600160f81b031916908160001a9053506118c1600a8661298e565b9450611853565b60006001600160e01b031982166380ac58cd60e01b14806118f957506001600160e01b03198216635b5e139f60e01b145b80610722575061072282611a61565b6108fd838383611a7a565b61191d8383611ad1565b61192a6000848484611946565b6108fd5760405162461bcd60e51b815260040161076990612394565b600061195a846001600160a01b0316611bb0565b15611a5657836001600160a01b031663150b7a0261197661129f565b8786866040518563ffffffff1660e01b815260040161199894939291906121e1565b602060405180830381600087803b1580156119b257600080fd5b505af19250505080156119e2575060408051601f3d908101601f191682019092526119df918101906120f5565b60015b611a3c573d808015611a10576040519150601f19603f3d011682016040523d82523d6000602084013e611a15565b606091505b508051611a345760405162461bcd60e51b815260040161076990612394565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061147d565b506001949350505050565b6001600160e01b031981166301ffc9a760e01b14919050565b611a85838383611bb6565b611a8d610da5565b6001600160a01b0316611a9e61129f565b6001600160a01b0316146108fd57611ab4610c19565b156108fd5760405162461bcd60e51b815260040161076990612280565b6001600160a01b038216611af75760405162461bcd60e51b81526004016107699061269e565b611b0081611375565b15611b1d5760405162461bcd60e51b81526004016107699061242c565b611b2960008383611908565b6001600160a01b0382166000908152600360205260408120805460019290611b52908490612976565b909155505060008181526002602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b3b151590565b611bc18383836108fd565b6001600160a01b038316611bdd57611bd881611c3f565b611c00565b816001600160a01b0316836001600160a01b031614611c0057611c008382611c83565b6001600160a01b038216611c1c57611c1781611d20565b6108fd565b826001600160a01b0316826001600160a01b0316146108fd576108fd8282611df9565b600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b60006001611c9084610c5e565b611c9a91906129c1565b600083815260076020526040902054909150808214611ced576001600160a01b03841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b5060009182526007602090815260408084208490556001600160a01b039094168352600681528383209183525290812055565b600854600090611d32906001906129c1565b60008381526009602052604081205460088054939450909284908110611d6857634e487b7160e01b600052603260045260246000fd5b906000526020600020015490508060088381548110611d9757634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611ddd57634e487b7160e01b600052603160045260246000fd5b6001900381819060005260206000200160009055905550505050565b6000611e0483610c5e565b6001600160a01b039093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b828054611e4990612a04565b90600052602060002090601f016020900481019282611e6b5760008555611eb1565b82601f10611e8457805160ff1916838001178555611eb1565b82800160010185558215611eb1579182015b82811115611eb1578251825591602001919060010190611e96565b50611ebd929150611ec1565b5090565b5b80821115611ebd5760008155600101611ec2565b600067ffffffffffffffff80841115611ef157611ef1612a9a565b604051601f8501601f191681016020018281118282101715611f1557611f15612a9a565b604052848152915081838501861015611f2d57600080fd5b8484602083013760006020868301015250509392505050565b80356001600160a01b038116811461072557600080fd5b8035801515811461072557600080fd5b600060208284031215611f7e578081fd5b61112c82611f46565b60008060408385031215611f99578081fd5b611fa283611f46565b9150611fb060208401611f46565b90509250929050565b600080600060608486031215611fcd578081fd5b611fd684611f46565b9250611fe460208501611f46565b9150604084013590509250925092565b60008060008060808587031215612009578081fd5b61201285611f46565b935061202060208601611f46565b925060408501359150606085013567ffffffffffffffff811115612042578182fd5b8501601f81018713612052578182fd5b61206187823560208401611ed6565b91505092959194509250565b6000806040838503121561207f578182fd5b61208883611f46565b9150611fb060208401611f5d565b600080604083850312156120a8578182fd5b6120b183611f46565b946020939093013593505050565b6000602082840312156120d0578081fd5b61112c82611f5d565b6000602082840312156120ea578081fd5b813561112c81612ab0565b600060208284031215612106578081fd5b815161112c81612ab0565b600060208284031215612122578081fd5b813567ffffffffffffffff811115612138578182fd5b8201601f81018413612148578182fd5b61147d84823560208401611ed6565b600060208284031215612168578081fd5b5035919050565b600081518084526121878160208601602086016129d8565b601f01601f19169290920160200192915050565b600083516121ad8184602088016129d8565b8351908301906121c18183602088016129d8565b01949350505050565b90565b6001600160a01b0391909116815260200190565b6001600160a01b03858116825284166020820152604081018390526080606082018190526000906122149083018461216f565b9695505050505050565b6020808252825182820181905260009190848201906040850190845b818110156122565783518352928401929184019160010161223a565b50909695505050505050565b901515815260200190565b60006020825261112c602083018461216f565b6020808252602b908201527f4552433732315061757361626c653a20746f6b656e207472616e73666572207760408201526a1a1a5b19481c185d5cd95960aa1b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b6020808252600e908201526d22bc31b2b2b23990373ab6b132b960911b604082015260600190565b6020808252600e908201526d1b585e080e0d48185b1b1bddd95960921b604082015260600190565b6020808252602b908201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560408201526a74206f6620626f756e647360a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b6020808252601c908201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604082015260600190565b6020808252601c908201527f6d6178204e465420706572206164647265737320657863656564656400000000604082015260600190565b60208082526024908201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526019908201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604082015260600190565b60208082526009908201526813585e081b1a5b5a5d60ba1b604082015260600190565b6020808252602c908201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526038908201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760408201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606082015260800190565b6020808252602a908201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604082015269726f206164647265737360b01b606082015260800190565b60208082526029908201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460408201526832b73a103a37b5b2b760b91b606082015260800190565b6020808252818101527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604082015260600190565b6020808252602c908201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860408201526b34b9ba32b73a103a37b5b2b760a11b606082015260800190565b6020808252600f908201526e496e636f72726563742076616c756560881b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526029908201527f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960408201526839903737ba1037bbb760b91b606082015260800190565b6020808252602f908201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60408201526e3732bc34b9ba32b73a103a37b5b2b760891b606082015260800190565b60208082526021908201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656040820152603960f91b606082015260800190565b60208082526010908201526f2a3930b739b332b9103330b4b632b21760811b604082015260600190565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6020808252602c908201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60408201526b7574206f6620626f756e647360a01b606082015260800190565b60208082526030908201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760408201526f1b995c881b9bdc88185c1c1c9bdd995960821b606082015260800190565b90815260200190565b6000821982111561298957612989612a6e565b500190565b60008261299d5761299d612a84565b500490565b60008160001904831182151516156129bc576129bc612a6e565b500290565b6000828210156129d3576129d3612a6e565b500390565b60005b838110156129f35781810151838201526020016129db565b838111156110aa5750506000910152565b600281046001821680612a1857607f821691505b60208210811415612a3957634e487b7160e01b600052602260045260246000fd5b50919050565b6000600019821415612a5357612a53612a6e565b5060010190565b600082612a6957612a69612a84565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b03198116811461079257600080fdfea2646970667358221220f45d68aabd3af25434e03d19b4e28d600e352a6a8a15f64243bc7c0fc4917dde64736f6c63430008000033
Deployed Bytecode Sourcemap
23431:3470:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23923:46;;;;;;;;;;-1:-1:-1;23923:46:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;26713:179;;;;;;;;;;-1:-1:-1;26713:179:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;25892:154::-;;;;;;;;;;-1:-1:-1;25892:154:0;;;;;:::i;:::-;;:::i;:::-;;13279:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;14358:219::-;;;;;;;;;;-1:-1:-1;14358:219:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13941:409::-;;;;;;;;;;-1:-1:-1;13941:409:0;;;;;:::i;:::-;;:::i;26610:95::-;;;;;;;;;;-1:-1:-1;26610:95:0;;;;;:::i;:::-;;:::i;23673:25::-;;;;;;;;;;;;;:::i;23702:28::-;;;;;;;;;;;;;:::i;20340:113::-;;;;;;;;;;;;;:::i;15058:284::-;;;;;;;;;;-1:-1:-1;15058:284:0;;;;;:::i;:::-;;:::i;24946:104::-;;;;;;;;;;-1:-1:-1;24946:104:0;;;;;:::i;:::-;;:::i;20076:256::-;;;;;;;;;;-1:-1:-1;20076:256:0;;;;;:::i;:::-;;:::i;23554:35::-;;;;;;;;;;;;;:::i;15350:185::-;;;;;;;;;;-1:-1:-1;15350:185:0;;;;;:::i;:::-;;:::i;23205:192::-;;;;;;;;;;-1:-1:-1;23205:192:0;;;;;:::i;:::-;;:::i;25535:349::-;;;;;;;;;;-1:-1:-1;25535:349:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;20461:233::-;;;;;;;;;;-1:-1:-1;20461:233:0;;;;;:::i;:::-;;:::i;24719:90::-;;;;;;;;;;-1:-1:-1;24719:90:0;;;;;:::i;:::-;;:::i;25179:101::-;;;;;;;;;;-1:-1:-1;25179:101:0;;;;;:::i;:::-;;:::i;10402:86::-;;;;;;;;;;;;;:::i;13032:239::-;;;;;;;;;;-1:-1:-1;13032:239:0;;;;;:::i;:::-;;:::i;12816:208::-;;;;;;;;;;-1:-1:-1;12816:208:0;;;;;:::i;:::-;;:::i;11432:94::-;;;;;;;;;;;;;:::i;24617:90::-;;;;;;;;;;-1:-1:-1;24617:90:0;;;;;:::i;:::-;;:::i;26054:108::-;;;;;;;;;;;;;:::i;23636:30::-;;;;;;;;;;;;;:::i;23596:33::-;;;;;;;;;;;;;:::i;11209:87::-;;;;;;;;;;;;;:::i;25292:75::-;;;;;;;;;;-1:-1:-1;25292:75:0;;;;;:::i;:::-;;:::i;13387:104::-;;;;;;;;;;;;;:::i;25373:154::-;;;;;;;;;;-1:-1:-1;25373:154:0;;;;;:::i;:::-;;:::i;24047:558::-;;;;;;:::i;:::-;;:::i;14585:293::-;;;;;;;;;;-1:-1:-1;14585:293:0;;;;;:::i;:::-;;:::i;15543:328::-;;;;;;;;;;-1:-1:-1;15543:328:0;;;;;:::i;:::-;;:::i;13499:332::-;;;;;;;;;;-1:-1:-1;13499:332:0;;;;;:::i;:::-;;:::i;23737:63::-;;;;;;;;;;;;;:::i;23840:74::-;;;;;;;;;;;;;:::i;14886:164::-;;;;;;;;;;-1:-1:-1;14886:164:0;;;;;:::i;:::-;;:::i;11534:192::-;;;;;;;;;;-1:-1:-1;11534:192:0;;;;;:::i;:::-;;:::i;23807:26::-;;;;;;;;;;;;;:::i;23923:46::-;;;;;;;;;;;;;:::o;26713:179::-;26824:4;26848:36;26872:11;26848:23;:36::i;:::-;26841:43;;26713:179;;;;:::o;25892:154::-;11355:12;:10;:12::i;:::-;-1:-1:-1;;;;;11344:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11344:23:0;;11336:68;;;;-1:-1:-1;;;11336:68:0;;;;;;;:::i;:::-;;;;;;;;;25956:4:::1;25949:11:::0;::::1;;;25945:73;;;25977:8;:6;:8::i;:::-;26000:7;;25945:73;26028:10;:8;:10::i;:::-;25892:154:::0;:::o;13279:100::-;13333:13;13366:5;13359:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13279:100;:::o;14358:219::-;14434:7;14462:16;14470:7;14462;:16::i;:::-;14454:73;;;;-1:-1:-1;;;14454:73:0;;;;;;;:::i;:::-;-1:-1:-1;14545:24:0;;;;:15;:24;;;;;;-1:-1:-1;;;;;14545:24:0;;14358:219::o;13941:409::-;14022:13;14038:23;14053:7;14038:14;:23::i;:::-;14022:39;;14086:5;-1:-1:-1;;;;;14080:11:0;:2;-1:-1:-1;;;;;14080:11:0;;;14072:57;;;;-1:-1:-1;;;14072:57:0;;;;;;;:::i;:::-;14178:5;-1:-1:-1;;;;;14162:21:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;14162:21:0;;:62;;;;14187:37;14204:5;14211:12;:10;:12::i;14187:37::-;14140:168;;;;-1:-1:-1;;;14140:168:0;;;;;;;:::i;:::-;14321:21;14330:2;14334:7;14321:8;:21::i;:::-;13941:409;;;:::o;26610:95::-;11355:12;:10;:12::i;:::-;-1:-1:-1;;;;;11344:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11344:23:0;;11336:68;;;;-1:-1:-1;;;11336:68:0;;;;;;;:::i;:::-;26677:14:::1;:23:::0;;-1:-1:-1;;;;;26677:23:0;;::::1;;;-1:-1:-1::0;;;;;;26677:23:0;;::::1;::::0;;;::::1;::::0;;26610:95::o;23673:25::-;;;;:::o;23702:28::-;;;;:::o;20340:113::-;20428:10;:17;20340:113;:::o;15058:284::-;15200:41;15219:12;:10;:12::i;:::-;15233:7;15200:18;:41::i;:::-;15192:103;;;;-1:-1:-1;;;15192:103:0;;;;;;;:::i;:::-;15306:28;15316:4;15322:2;15326:7;15306:9;:28::i;24946:104::-;25025:5;;24998:7;;25025:17;;25035:6;25025:9;:17::i;20076:256::-;20173:7;20209:23;20226:5;20209:16;:23::i;:::-;20201:5;:31;20193:87;;;;-1:-1:-1;;;20193:87:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;20298:19:0;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;20076:256::o;23554:35::-;;;;:::o;15350:185::-;15488:39;15505:4;15511:2;15515:7;15488:39;;;;;;;;;;;;:16;:39::i;23205:192::-;23270:41;23289:12;:10;:12::i;23270:41::-;23262:102;;;;-1:-1:-1;;;23262:102:0;;;;;;;:::i;:::-;23375:14;23381:7;23375:5;:14::i;25535:349::-;25597:16;25626:18;25647:17;25657:6;25647:9;:17::i;:::-;25626:38;;25675:25;25717:10;25703:25;;;;;;-1:-1:-1;;;25703:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25703:25:0;;25675:53;;25744:9;25739:112;25763:10;25759:1;:14;25739:112;;;25809:30;25829:6;25837:1;25809:19;:30::i;:::-;25795:8;25804:1;25795:11;;;;;;-1:-1:-1;;;25795:11:0;;;;;;;;;;;;;;;;;;:44;25775:3;;;;:::i;:::-;;;;25739:112;;;-1:-1:-1;25868:8:0;25535:349;-1:-1:-1;;;25535:349:0:o;20461:233::-;20536:7;20572:30;:28;:30::i;:::-;20564:5;:38;20556:95;;;;-1:-1:-1;;;20556:95:0;;;;;;;:::i;:::-;20669:10;20680:5;20669:17;;;;;;-1:-1:-1;;;20669:17:0;;;;;;;;;;;;;;;;;20662:24;;20461:233;;;:::o;24719:90::-;11355:12;:10;:12::i;:::-;-1:-1:-1;;;;;11344:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11344:23:0;;11336:68;;;;-1:-1:-1;;;11336:68:0;;;;;;;:::i;:::-;24782:11:::1;:19:::0;24719:90::o;25179:101::-;11355:12;:10;:12::i;:::-;-1:-1:-1;;;;;11344:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11344:23:0;;11336:68;;;;-1:-1:-1;;;11336:68:0;;;;;;;:::i;:::-;25250:22;;::::1;::::0;:12:::1;::::0;:22:::1;::::0;::::1;::::0;::::1;:::i;:::-;;25179:101:::0;:::o;10402:86::-;10473:7;;-1:-1:-1;;;10473:7:0;;;;;10402:86::o;13032:239::-;13104:7;13140:16;;;:7;:16;;;;;;-1:-1:-1;;;;;13140:16:0;13175:19;13167:73;;;;-1:-1:-1;;;13167:73:0;;;;;;;:::i;12816:208::-;12888:7;-1:-1:-1;;;;;12916:19:0;;12908:74;;;;-1:-1:-1;;;12908:74:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;;13000:16:0;;;;;:9;:16;;;;;;;12816:208::o;11432:94::-;11355:12;:10;:12::i;:::-;-1:-1:-1;;;;;11344:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11344:23:0;;11336:68;;;;-1:-1:-1;;;11336:68:0;;;;;;;:::i;:::-;11497:21:::1;11515:1;11497:9;:21::i;:::-;11432:94::o:0;24617:90::-;11355:12;:10;:12::i;:::-;-1:-1:-1;;;;;11344:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11344:23:0;;11336:68;;;;-1:-1:-1;;;11336:68:0;;;;;;;:::i;:::-;24683:7:::1;:16:::0;;-1:-1:-1;;24683:16:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24617:90::o;26054:108::-;11355:12;:10;:12::i;:::-;-1:-1:-1;;;;;11344:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11344:23:0;;11336:68;;;;-1:-1:-1;;;11336:68:0;;;;;;;:::i;:::-;26116:14:::1;::::0;26105:49:::1;::::0;26116:14:::1;::::0;::::1;-1:-1:-1::0;;;;;26116:14:0::1;26132:21;26105:10;:49::i;23636:30::-:0;;;;:::o;23596:33::-;;;;:::o;11209:87::-;11282:6;;-1:-1:-1;;;;;11282:6:0;11209:87;:::o;25292:75::-;11355:12;:10;:12::i;:::-;-1:-1:-1;;;;;11344:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11344:23:0;;11336:68;;;;-1:-1:-1;;;11336:68:0;;;;;;;:::i;:::-;25348:5:::1;:14:::0;25292:75::o;13387:104::-;13443:13;13476:7;13469:14;;;;;:::i;25373:154::-;11355:12;:10;:12::i;:::-;-1:-1:-1;;;;;11344:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11344:23:0;;11336:68;;;;-1:-1:-1;;;11336:68:0;;;;;;;:::i;:::-;25449:2:::1;25436:9;;:15;;25428:42;;;;-1:-1:-1::0;;;25428:42:0::1;;;;;;;:::i;:::-;25481:24;25491:2;25495:9;;25481;:24::i;:::-;25510:9;:12:::0;;;:9:::1;:12;::::0;::::1;:::i;:::-;;;;;;25373:154:::0;:::o;24047:558::-;24106:7;;;;:15;;:7;:15;24103:207;;;24181:11;;24157:10;24145:23;;;;:11;:23;;;;;;:32;;24171:6;;24145:32;:::i;:::-;:47;;24137:88;;;;-1:-1:-1;;;24137:88:0;;;;;;;:::i;:::-;24278:10;24266:23;;;;:11;:23;;;;;;:32;;24292:6;;24266:32;:::i;:::-;24252:10;24240:23;;;;:11;:23;;;;;:58;24103:207;24347:12;;24337:6;24329:5;;:14;;;;:::i;:::-;:30;;24321:52;;;;-1:-1:-1;;;24321:52:0;;;;;;;:::i;:::-;24402:11;;24392:6;:21;;24384:48;;;;-1:-1:-1;;;24384:48:0;;;;;;;:::i;:::-;24464:13;24470:6;24464:5;:13::i;:::-;24451:9;:26;24443:54;;;;-1:-1:-1;;;24443:54:0;;;;;;;:::i;:::-;24513:9;24508:90;24532:6;24528:1;:10;24508:90;;;24560:26;24575:10;24560:14;:26::i;:::-;24540:3;;;;:::i;:::-;;;;24508:90;;14585:293;14700:12;:10;:12::i;:::-;-1:-1:-1;;;;;14688:24:0;:8;-1:-1:-1;;;;;14688:24:0;;;14680:62;;;;-1:-1:-1;;;14680:62:0;;;;;;;:::i;:::-;14798:8;14753:18;:32;14772:12;:10;:12::i;:::-;-1:-1:-1;;;;;14753:32:0;;;;;;;;;;;;;;;;;-1:-1:-1;14753:32:0;;;:42;;;;;;;;;;;;:53;;-1:-1:-1;;14753:53:0;;;;;;;;;;;14837:12;:10;:12::i;:::-;-1:-1:-1;;;;;14822:48:0;;14861:8;14822:48;;;;;;:::i;:::-;;;;;;;;14585:293;;:::o;15543:328::-;15718:41;15737:12;:10;:12::i;:::-;15751:7;15718:18;:41::i;:::-;15710:103;;;;-1:-1:-1;;;15710:103:0;;;;;;;:::i;:::-;15824:39;15838:4;15844:2;15848:7;15857:5;15824:13;:39::i;:::-;15543:328;;;;:::o;13499:332::-;13572:13;13606:16;13614:7;13606;:16::i;:::-;13598:76;;;;-1:-1:-1;;;13598:76:0;;;;;;;:::i;:::-;13685:21;13709:10;:8;:10::i;:::-;13685:34;;13761:1;13743:7;13737:21;:25;:86;;;;;;;;;;;;;;;;;13789:7;13798:18;:7;:16;:18::i;:::-;13772:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13737:86;13730:93;13499:332;-1:-1:-1;;;13499:332:0:o;23737:63::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23840:74::-;;;;;;-1:-1:-1;;;;;23840:74:0;;:::o;14886:164::-;-1:-1:-1;;;;;15007:25:0;;;14983:4;15007:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;14886:164::o;11534:192::-;11355:12;:10;:12::i;:::-;-1:-1:-1;;;;;11344:23:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;11344:23:0;;11336:68;;;;-1:-1:-1;;;11336:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11623:22:0;::::1;11615:73;;;;-1:-1:-1::0;;;11615:73:0::1;;;;;;;:::i;:::-;11699:19;11709:8;11699:9;:19::i;23807:26::-:0;;;;;;:::o;19844:224::-;19946:4;-1:-1:-1;;;;;;19970:50:0;;-1:-1:-1;;;19970:50:0;;:90;;;20024:36;20048:11;20024:23;:36::i;4350:98::-;4430:10;4350:98;:::o;10700:118::-;10541:8;:6;:8::i;:::-;10540:9;10532:38;;;;-1:-1:-1;;;10532:38:0;;;;;;;:::i;:::-;10760:7:::1;:14:::0;;-1:-1:-1;;;;10760:14:0::1;-1:-1:-1::0;;;10760:14:0::1;::::0;;10790:20:::1;10797:12;:10;:12::i;:::-;10790:20;;;;;;:::i;:::-;;;;;;;;10700:118::o:0;10826:120::-;10639:8;:6;:8::i;:::-;10631:41;;;;-1:-1:-1;;;10631:41:0;;;;;;;:::i;:::-;10885:7:::1;:15:::0;;-1:-1:-1;;;;10885:15:0::1;::::0;;10916:22:::1;10925:12;:10;:12::i;16202:127::-:0;16267:4;16291:16;;;:7;:16;;;;;;-1:-1:-1;;;;;16291:16:0;:30;;;16202:127::o;18388:174::-;18463:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;18463:29:0;-1:-1:-1;;;;;18463:29:0;;;;;;;;:24;;18517:23;18463:24;18517:14;:23::i;:::-;-1:-1:-1;;;;;18508:46:0;;;;;;;;;;;18388:174;;:::o;16337:348::-;16430:4;16455:16;16463:7;16455;:16::i;:::-;16447:73;;;;-1:-1:-1;;;16447:73:0;;;;;;;:::i;:::-;16531:13;16547:23;16562:7;16547:14;:23::i;:::-;16531:39;;16600:5;-1:-1:-1;;;;;16589:16:0;:7;-1:-1:-1;;;;;16589:16:0;;:51;;;;16633:7;-1:-1:-1;;;;;16609:31:0;:20;16621:7;16609:11;:20::i;:::-;-1:-1:-1;;;;;16609:31:0;;16589:51;:87;;;;16644:32;16661:5;16668:7;16644:16;:32::i;:::-;16581:96;16337:348;-1:-1:-1;;;;16337:348:0:o;17856:524::-;18015:4;-1:-1:-1;;;;;17988:31:0;:23;18003:7;17988:14;:23::i;:::-;-1:-1:-1;;;;;17988:31:0;;17980:85;;;;-1:-1:-1;;;17980:85:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18084:16:0;;18076:65;;;;-1:-1:-1;;;18076:65:0;;;;;;;:::i;:::-;18154:39;18175:4;18181:2;18185:7;18154:20;:39::i;:::-;18204:29;18221:1;18225:7;18204:8;:29::i;:::-;-1:-1:-1;;;;;18246:15:0;;;;;;:9;:15;;;;;:20;;18265:1;;18246:15;:20;;18265:1;;18246:20;:::i;:::-;;;;-1:-1:-1;;;;;;;18277:13:0;;;;;;:9;:13;;;;;:18;;18294:1;;18277:13;:18;;18294:1;;18277:18;:::i;:::-;;;;-1:-1:-1;;18306:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;18306:21:0;-1:-1:-1;;;;;18306:21:0;;;;;;;;;18345:27;;18306:16;;18345:27;;;;;;;17856:524;;;:::o;1381:98::-;1439:7;1466:5;1470:1;1466;:5;:::i;17524:324::-;17584:13;17600:23;17615:7;17600:14;:23::i;:::-;17584:39;;17634:48;17655:5;17670:1;17674:7;17634:20;:48::i;:::-;17693:29;17710:1;17714:7;17693:8;:29::i;:::-;-1:-1:-1;;;;;17733:16:0;;;;;;:9;:16;;;;;:21;;17753:1;;17733:16;:21;;17753:1;;17733:21;:::i;:::-;;;;-1:-1:-1;;17772:16:0;;;;:7;:16;;;;;;17765:23;;-1:-1:-1;;;;;;17765:23:0;;;17804:36;17780:7;;17772:16;-1:-1:-1;;;;;17804:36:0;;;;;17772:16;;17804:36;17524:324;;:::o;11734:173::-;11809:6;;;-1:-1:-1;;;;;11826:17:0;;;-1:-1:-1;;;;;;11826:17:0;;;;;;;11859:40;;11809:6;;;11826:17;11809:6;;11859:40;;11790:16;;11859:40;11734:173;;:::o;26170:181::-;26245:12;26263:8;-1:-1:-1;;;;;26263:13:0;26284:7;26263:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26244:52;;;26315:7;26307:36;;;;-1:-1:-1;;;26307:36:0;;;;;;;:::i;16693:110::-;16769:26;16779:2;16783:7;16769:26;;;;;;;;;;;;:9;:26::i;24821:113::-;24885:5;;:9;;24893:1;24885:9;:::i;:::-;24877:5;:17;;;24905:21;;24915:3;;24905:9;:21::i;15879:315::-;16036:28;16046:4;16052:2;16056:7;16036:9;:28::i;:::-;16083:48;16106:4;16112:2;16116:7;16125:5;16083:22;:48::i;:::-;16075:111;;;;-1:-1:-1;;;16075:111:0;;;;;;;:::i;25058:113::-;25118:13;25151:12;25144:19;;;;;:::i;2938:534::-;2994:13;3026:10;3022:53;;-1:-1:-1;3053:10:0;;;;;;;;;;;;-1:-1:-1;;;3053:10:0;;;;;;3022:53;3100:5;3085:12;3141:78;3148:9;;3141:78;;3174:8;;;;:::i;:::-;;-1:-1:-1;3197:10:0;;-1:-1:-1;3205:2:0;3197:10;;:::i;:::-;;;3141:78;;;3229:19;3261:6;3251:17;;;;;;-1:-1:-1;;;3251:17:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3251:17:0;;3229:39;;3279:154;3286:10;;3279:154;;3313:11;3323:1;3313:11;;:::i;:::-;;-1:-1:-1;3382:10:0;3390:2;3382:5;:10;:::i;:::-;3369:24;;:2;:24;:::i;:::-;3356:39;;3339:6;3346;3339:14;;;;;;-1:-1:-1;;;3339:14:0;;;;;;;;;;;;:56;-1:-1:-1;;;;;3339:56:0;;;;;;;;-1:-1:-1;3410:11:0;3419:2;3410:11;;:::i;:::-;;;3279:154;;12503:305;12605:4;-1:-1:-1;;;;;;12642:40:0;;-1:-1:-1;;;12642:40:0;;:105;;-1:-1:-1;;;;;;;12699:48:0;;-1:-1:-1;;;12699:48:0;12642:105;:158;;;;12764:36;12788:11;12764:23;:36::i;26359:239::-;26545:45;26572:4;26578:2;26582:7;26545:26;:45::i;16811:321::-;16941:18;16947:2;16951:7;16941:5;:18::i;:::-;16992:54;17023:1;17027:2;17031:7;17040:5;16992:22;:54::i;:::-;16970:154;;;;-1:-1:-1;;;16970:154:0;;;;;;;:::i;18570:803::-;18725:4;18746:15;:2;-1:-1:-1;;;;;18746:13:0;;:15::i;:::-;18742:624;;;18798:2;-1:-1:-1;;;;;18782:36:0;;18819:12;:10;:12::i;:::-;18833:4;18839:7;18848:5;18782:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18782:72:0;;;;;;;;-1:-1:-1;;18782:72:0;;;;;;;;;;;;:::i;:::-;;;18778:533;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19028:13:0;;19024:272;;19071:60;;-1:-1:-1;;;19071:60:0;;;;;;;:::i;19024:272::-;19246:6;19240:13;19231:6;19227:2;19223:15;19216:38;18778:533;-1:-1:-1;;;;;;18905:55:0;-1:-1:-1;;;18905:55:0;;-1:-1:-1;18898:62:0;;18742:624;-1:-1:-1;19350:4:0;18570:803;;;;;;:::o;2657:157::-;-1:-1:-1;;;;;;2766:40:0;;-1:-1:-1;;;2766:40:0;2657:157;;;:::o;22782:328::-;22926:45;22953:4;22959:2;22963:7;22926:26;:45::i;:::-;23002:7;:5;:7::i;:::-;-1:-1:-1;;;;;22986:23:0;:12;:10;:12::i;:::-;-1:-1:-1;;;;;22986:23:0;;22982:121;;23035:8;:6;:8::i;:::-;23034:9;23026:65;;;;-1:-1:-1;;;23026:65:0;;;;;;;:::i;17140:376::-;-1:-1:-1;;;;;17220:16:0;;17212:61;;;;-1:-1:-1;;;17212:61:0;;;;;;;:::i;:::-;17293:16;17301:7;17293;:16::i;:::-;17292:17;17284:58;;;;-1:-1:-1;;;17284:58:0;;;;;;;:::i;:::-;17353:45;17382:1;17386:2;17390:7;17353:20;:45::i;:::-;-1:-1:-1;;;;;17409:13:0;;;;;;:9;:13;;;;;:18;;17426:1;;17409:13;:18;;17426:1;;17409:18;:::i;:::-;;;;-1:-1:-1;;17438:16:0;;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;17438:21:0;-1:-1:-1;;;;;17438:21:0;;;;;;;;17475:33;;17438:16;;;17475:33;;17438:16;;17475:33;17140:376;;:::o;4618:196::-;4750:20;4798:8;;;4618:196::o;20702:589::-;20846:45;20873:4;20879:2;20883:7;20846:26;:45::i;:::-;-1:-1:-1;;;;;20908:18:0;;20904:187;;20943:40;20975:7;20943:31;:40::i;:::-;20904:187;;;21013:2;-1:-1:-1;;;;;21005:10:0;:4;-1:-1:-1;;;;;21005:10:0;;21001:90;;21032:47;21065:4;21071:7;21032:32;:47::i;:::-;-1:-1:-1;;;;;21105:16:0;;21101:183;;21138:45;21175:7;21138:36;:45::i;:::-;21101:183;;;21211:4;-1:-1:-1;;;;;21205:10:0;:2;-1:-1:-1;;;;;21205:10:0;;21201:83;;21232:40;21260:2;21264:7;21232:27;:40::i;21528:164::-;21632:10;:17;;21605:24;;;;:15;:24;;;;;:44;;;21660:24;;;;;;;;;;;;21528:164::o;21700:550::-;21792:22;21842:1;21817:22;21834:4;21817:16;:22::i;:::-;:26;;;;:::i;:::-;21854:18;21875:26;;;:17;:26;;;;;;21792:51;;-1:-1:-1;21916:28:0;;;21912:235;;-1:-1:-1;;;;;21983:18:0;;21961:19;21983:18;;;:12;:18;;;;;;;;:34;;;;;;;;;22032:30;;;;;;:44;;;22092:30;;:17;:30;;;;;:43;;;21912:235;-1:-1:-1;22164:26:0;;;;:17;:26;;;;;;;;22157:33;;;-1:-1:-1;;;;;22208:18:0;;;;;:12;:18;;;;;:34;;;;;;;22201:41;21700:550::o;22258:419::-;22365:10;:17;22340:22;;22365:21;;22385:1;;22365:21;:::i;:::-;22397:18;22418:24;;;:15;:24;;;;;;22475:10;:26;;22340:46;;-1:-1:-1;22418:24:0;;22340:46;;22475:26;;;;-1:-1:-1;;;22475:26:0;;;;;;;;;;;;;;;;;22453:48;;22537:11;22512:10;22523;22512:22;;;;;;-1:-1:-1;;;22512:22:0;;;;;;;;;;;;;;;;;;;;:36;;;;22559:28;;;:15;:28;;;;;;;:41;;;22618:24;;;;;22611:31;22653:10;:16;;;;;-1:-1:-1;;;22653:16:0;;;;;;;;;;;;;;;;;;;;;;;;;;22258:419;;;;:::o;21299:221::-;21384:14;21401:20;21418:2;21401:16;:20::i;:::-;-1:-1:-1;;;;;21432:16:0;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;21477:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;21299:221:0:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:607:1;;110:18;151:2;143:6;140:14;137:2;;;157:18;;:::i;:::-;206:2;200:9;279:2;256:17;;-1:-1:-1;;252:31:1;240:44;;286:4;236:55;306:18;;;326:22;;;303:46;300:2;;;352:18;;:::i;:::-;388:2;381:22;436;;;421:6;-1:-1:-1;421:6:1;473:16;;;470:25;-1:-1:-1;467:2:1;;;508:1;505;498:12;467:2;558:6;553:3;546:4;538:6;534:17;521:44;613:1;606:4;597:6;589;585:19;581:30;574:41;;;90:531;;;;;:::o;626:175::-;696:20;;-1:-1:-1;;;;;745:31:1;;735:42;;725:2;;791:1;788;781:12;806:162;873:20;;929:13;;922:21;912:32;;902:2;;958:1;955;948:12;973:198;;1085:2;1073:9;1064:7;1060:23;1056:32;1053:2;;;1106:6;1098;1091:22;1053:2;1134:31;1155:9;1134:31;:::i;1176:274::-;;;1305:2;1293:9;1284:7;1280:23;1276:32;1273:2;;;1326:6;1318;1311:22;1273:2;1354:31;1375:9;1354:31;:::i;:::-;1344:41;;1404:40;1440:2;1429:9;1425:18;1404:40;:::i;:::-;1394:50;;1263:187;;;;;:::o;1455:342::-;;;;1601:2;1589:9;1580:7;1576:23;1572:32;1569:2;;;1622:6;1614;1607:22;1569:2;1650:31;1671:9;1650:31;:::i;:::-;1640:41;;1700:40;1736:2;1725:9;1721:18;1700:40;:::i;:::-;1690:50;;1787:2;1776:9;1772:18;1759:32;1749:42;;1559:238;;;;;:::o;1802:702::-;;;;;1974:3;1962:9;1953:7;1949:23;1945:33;1942:2;;;1996:6;1988;1981:22;1942:2;2024:31;2045:9;2024:31;:::i;:::-;2014:41;;2074:40;2110:2;2099:9;2095:18;2074:40;:::i;:::-;2064:50;;2161:2;2150:9;2146:18;2133:32;2123:42;;2216:2;2205:9;2201:18;2188:32;2243:18;2235:6;2232:30;2229:2;;;2280:6;2272;2265:22;2229:2;2308:22;;2361:4;2353:13;;2349:27;-1:-1:-1;2339:2:1;;2395:6;2387;2380:22;2339:2;2423:75;2490:7;2485:2;2472:16;2467:2;2463;2459:11;2423:75;:::i;:::-;2413:85;;;1932:572;;;;;;;:::o;2509:268::-;;;2635:2;2623:9;2614:7;2610:23;2606:32;2603:2;;;2656:6;2648;2641:22;2603:2;2684:31;2705:9;2684:31;:::i;:::-;2674:41;;2734:37;2767:2;2756:9;2752:18;2734:37;:::i;2782:266::-;;;2911:2;2899:9;2890:7;2886:23;2882:32;2879:2;;;2932:6;2924;2917:22;2879:2;2960:31;2981:9;2960:31;:::i;:::-;2950:41;3038:2;3023:18;;;;3010:32;;-1:-1:-1;;;2869:179:1:o;3053:192::-;;3162:2;3150:9;3141:7;3137:23;3133:32;3130:2;;;3183:6;3175;3168:22;3130:2;3211:28;3229:9;3211:28;:::i;3250:257::-;;3361:2;3349:9;3340:7;3336:23;3332:32;3329:2;;;3382:6;3374;3367:22;3329:2;3426:9;3413:23;3445:32;3471:5;3445:32;:::i;3512:261::-;;3634:2;3622:9;3613:7;3609:23;3605:32;3602:2;;;3655:6;3647;3640:22;3602:2;3692:9;3686:16;3711:32;3737:5;3711:32;:::i;3778:482::-;;3900:2;3888:9;3879:7;3875:23;3871:32;3868:2;;;3921:6;3913;3906:22;3868:2;3966:9;3953:23;3999:18;3991:6;3988:30;3985:2;;;4036:6;4028;4021:22;3985:2;4064:22;;4117:4;4109:13;;4105:27;-1:-1:-1;4095:2:1;;4151:6;4143;4136:22;4095:2;4179:75;4246:7;4241:2;4228:16;4223:2;4219;4215:11;4179:75;:::i;4265:190::-;;4377:2;4365:9;4356:7;4352:23;4348:32;4345:2;;;4398:6;4390;4383:22;4345:2;-1:-1:-1;4426:23:1;;4335:120;-1:-1:-1;4335:120:1:o;4460:259::-;;4541:5;4535:12;4568:6;4563:3;4556:19;4584:63;4640:6;4633:4;4628:3;4624:14;4617:4;4610:5;4606:16;4584:63;:::i;:::-;4701:2;4680:15;-1:-1:-1;;4676:29:1;4667:39;;;;4708:4;4663:50;;4511:208;-1:-1:-1;;4511:208:1:o;4724:470::-;;4941:6;4935:13;4957:53;5003:6;4998:3;4991:4;4983:6;4979:17;4957:53;:::i;:::-;5073:13;;5032:16;;;;5095:57;5073:13;5032:16;5129:4;5117:17;;5095:57;:::i;:::-;5168:20;;4911:283;-1:-1:-1;;;;4911:283:1:o;5199:205::-;5399:3;5390:14::o;5409:203::-;-1:-1:-1;;;;;5573:32:1;;;;5555:51;;5543:2;5528:18;;5510:102::o;5617:490::-;-1:-1:-1;;;;;5886:15:1;;;5868:34;;5938:15;;5933:2;5918:18;;5911:43;5985:2;5970:18;;5963:34;;;6033:3;6028:2;6013:18;;6006:31;;;5617:490;;6054:47;;6081:19;;6073:6;6054:47;:::i;:::-;6046:55;5820:287;-1:-1:-1;;;;;;5820:287:1:o;6112:635::-;6283:2;6335:21;;;6405:13;;6308:18;;;6427:22;;;6112:635;;6283:2;6506:15;;;;6480:2;6465:18;;;6112:635;6552:169;6566:6;6563:1;6560:13;6552:169;;;6627:13;;6615:26;;6696:15;;;;6661:12;;;;6588:1;6581:9;6552:169;;;-1:-1:-1;6738:3:1;;6263:484;-1:-1:-1;;;;;;6263:484:1:o;6752:187::-;6917:14;;6910:22;6892:41;;6880:2;6865:18;;6847:92::o;6944:221::-;;7093:2;7082:9;7075:21;7113:46;7155:2;7144:9;7140:18;7132:6;7113:46;:::i;7170:407::-;7372:2;7354:21;;;7411:2;7391:18;;;7384:30;7450:34;7445:2;7430:18;;7423:62;-1:-1:-1;;;7516:2:1;7501:18;;7494:41;7567:3;7552:19;;7344:233::o;7582:344::-;7784:2;7766:21;;;7823:2;7803:18;;;7796:30;-1:-1:-1;;;7857:2:1;7842:18;;7835:50;7917:2;7902:18;;7756:170::o;7931:338::-;8133:2;8115:21;;;8172:2;8152:18;;;8145:30;-1:-1:-1;;;8206:2:1;8191:18;;8184:44;8260:2;8245:18;;8105:164::o;8274:338::-;8476:2;8458:21;;;8515:2;8495:18;;;8488:30;-1:-1:-1;;;8549:2:1;8534:18;;8527:44;8603:2;8588:18;;8448:164::o;8617:407::-;8819:2;8801:21;;;8858:2;8838:18;;;8831:30;8897:34;8892:2;8877:18;;8870:62;-1:-1:-1;;;8963:2:1;8948:18;;8941:41;9014:3;8999:19;;8791:233::o;9029:414::-;9231:2;9213:21;;;9270:2;9250:18;;;9243:30;9309:34;9304:2;9289:18;;9282:62;-1:-1:-1;;;9375:2:1;9360:18;;9353:48;9433:3;9418:19;;9203:240::o;9448:402::-;9650:2;9632:21;;;9689:2;9669:18;;;9662:30;9728:34;9723:2;9708:18;;9701:62;-1:-1:-1;;;9794:2:1;9779:18;;9772:36;9840:3;9825:19;;9622:228::o;9855:352::-;10057:2;10039:21;;;10096:2;10076:18;;;10069:30;10135;10130:2;10115:18;;10108:58;10198:2;10183:18;;10029:178::o;10212:352::-;10414:2;10396:21;;;10453:2;10433:18;;;10426:30;10492;10487:2;10472:18;;10465:58;10555:2;10540:18;;10386:178::o;10569:400::-;10771:2;10753:21;;;10810:2;10790:18;;;10783:30;10849:34;10844:2;10829:18;;10822:62;-1:-1:-1;;;10915:2:1;10900:18;;10893:34;10959:3;10944:19;;10743:226::o;10974:349::-;11176:2;11158:21;;;11215:2;11195:18;;;11188:30;11254:27;11249:2;11234:18;;11227:55;11314:2;11299:18;;11148:175::o;11328:332::-;11530:2;11512:21;;;11569:1;11549:18;;;11542:29;-1:-1:-1;;;11602:2:1;11587:18;;11580:39;11651:2;11636:18;;11502:158::o;11665:408::-;11867:2;11849:21;;;11906:2;11886:18;;;11879:30;11945:34;11940:2;11925:18;;11918:62;-1:-1:-1;;;12011:2:1;11996:18;;11989:42;12063:3;12048:19;;11839:234::o;12078:340::-;12280:2;12262:21;;;12319:2;12299:18;;;12292:30;-1:-1:-1;;;12353:2:1;12338:18;;12331:46;12409:2;12394:18;;12252:166::o;12423:420::-;12625:2;12607:21;;;12664:2;12644:18;;;12637:30;12703:34;12698:2;12683:18;;12676:62;12774:26;12769:2;12754:18;;12747:54;12833:3;12818:19;;12597:246::o;12848:406::-;13050:2;13032:21;;;13089:2;13069:18;;;13062:30;13128:34;13123:2;13108:18;;13101:62;-1:-1:-1;;;13194:2:1;13179:18;;13172:40;13244:3;13229:19;;13022:232::o;13259:405::-;13461:2;13443:21;;;13500:2;13480:18;;;13473:30;13539:34;13534:2;13519:18;;13512:62;-1:-1:-1;;;13605:2:1;13590:18;;13583:39;13654:3;13639:19;;13433:231::o;13669:356::-;13871:2;13853:21;;;13890:18;;;13883:30;13949:34;13944:2;13929:18;;13922:62;14016:2;14001:18;;13843:182::o;14030:408::-;14232:2;14214:21;;;14271:2;14251:18;;;14244:30;14310:34;14305:2;14290:18;;14283:62;-1:-1:-1;;;14376:2:1;14361:18;;14354:42;14428:3;14413:19;;14204:234::o;14443:339::-;14645:2;14627:21;;;14684:2;14664:18;;;14657:30;-1:-1:-1;;;14718:2:1;14703:18;;14696:45;14773:2;14758:18;;14617:165::o;14787:356::-;14989:2;14971:21;;;15008:18;;;15001:30;15067:34;15062:2;15047:18;;15040:62;15134:2;15119:18;;14961:182::o;15148:405::-;15350:2;15332:21;;;15389:2;15369:18;;;15362:30;15428:34;15423:2;15408:18;;15401:62;-1:-1:-1;;;15494:2:1;15479:18;;15472:39;15543:3;15528:19;;15322:231::o;15558:411::-;15760:2;15742:21;;;15799:2;15779:18;;;15772:30;15838:34;15833:2;15818:18;;15811:62;-1:-1:-1;;;15904:2:1;15889:18;;15882:45;15959:3;15944:19;;15732:237::o;15974:397::-;16176:2;16158:21;;;16215:2;16195:18;;;16188:30;16254:34;16249:2;16234:18;;16227:62;-1:-1:-1;;;16320:2:1;16305:18;;16298:31;16361:3;16346:19;;16148:223::o;16376:340::-;16578:2;16560:21;;;16617:2;16597:18;;;16590:30;-1:-1:-1;;;16651:2:1;16636:18;;16629:46;16707:2;16692:18;;16550:166::o;16721:413::-;16923:2;16905:21;;;16962:2;16942:18;;;16935:30;17001:34;16996:2;16981:18;;16974:62;-1:-1:-1;;;17067:2:1;17052:18;;17045:47;17124:3;17109:19;;16895:239::o;17139:408::-;17341:2;17323:21;;;17380:2;17360:18;;;17353:30;17419:34;17414:2;17399:18;;17392:62;-1:-1:-1;;;17485:2:1;17470:18;;17463:42;17537:3;17522:19;;17313:234::o;17552:412::-;17754:2;17736:21;;;17793:2;17773:18;;;17766:30;17832:34;17827:2;17812:18;;17805:62;-1:-1:-1;;;17898:2:1;17883:18;;17876:46;17954:3;17939:19;;17726:238::o;17969:177::-;18115:25;;;18103:2;18088:18;;18070:76::o;18151:128::-;;18222:1;18218:6;18215:1;18212:13;18209:2;;;18228:18;;:::i;:::-;-1:-1:-1;18264:9:1;;18199:80::o;18284:120::-;;18350:1;18340:2;;18355:18;;:::i;:::-;-1:-1:-1;18389:9:1;;18330:74::o;18409:168::-;;18515:1;18511;18507:6;18503:14;18500:1;18497:21;18492:1;18485:9;18478:17;18474:45;18471:2;;;18522:18;;:::i;:::-;-1:-1:-1;18562:9:1;;18461:116::o;18582:125::-;;18650:1;18647;18644:8;18641:2;;;18655:18;;:::i;:::-;-1:-1:-1;18692:9:1;;18631:76::o;18712:258::-;18784:1;18794:113;18808:6;18805:1;18802:13;18794:113;;;18884:11;;;18878:18;18865:11;;;18858:39;18830:2;18823:10;18794:113;;;18925:6;18922:1;18919:13;18916:2;;;-1:-1:-1;;18960:1:1;18942:16;;18935:27;18765:205::o;18975:380::-;19060:1;19050:12;;19107:1;19097:12;;;19118:2;;19172:4;19164:6;19160:17;19150:27;;19118:2;19225;19217:6;19214:14;19194:18;19191:38;19188:2;;;19271:10;19266:3;19262:20;19259:1;19252:31;19306:4;19303:1;19296:15;19334:4;19331:1;19324:15;19188:2;;19030:325;;;:::o;19360:135::-;;-1:-1:-1;;19420:17:1;;19417:2;;;19440:18;;:::i;:::-;-1:-1:-1;19487:1:1;19476:13;;19407:88::o;19500:112::-;;19558:1;19548:2;;19563:18;;:::i;:::-;-1:-1:-1;19597:9:1;;19538:74::o;19617:127::-;19678:10;19673:3;19669:20;19666:1;19659:31;19709:4;19706:1;19699:15;19733:4;19730:1;19723:15;19749:127;19810:10;19805:3;19801:20;19798:1;19791:31;19841:4;19838:1;19831:15;19865:4;19862:1;19855:15;19881:127;19942:10;19937:3;19933:20;19930:1;19923:31;19973:4;19970:1;19963:15;19997:4;19994:1;19987:15;20013:133;-1:-1:-1;;;;;;20089:32:1;;20079:43;;20069:2;;20136:1;20133;20126:12
Swarm Source
ipfs://f45d68aabd3af25434e03d19b4e28d600e352a6a8a15f64243bc7c0fc4917dde
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.