Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
367 SERUM
Holders
203
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
5 SERUMLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
ApeSerum
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-03-18 */ /** *Submitted for verification at Etherscan.io on 2022-03-02 */ /** *Submitted for verification at Etherscan.io on 2022-02-09 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract ReentrancyGuard { uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } modifier nonReentrant() { require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); _status = _ENTERED; _; _status = _NOT_ENTERED; } } 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); } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_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 { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } 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 ) internal 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); } } } } interface IERC721Receiver { function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } abstract contract ERC165 is IERC165 { function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } } 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; } 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); } 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); } contract ERC721A is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable { using Address for address; using Strings for uint256; struct TokenOwnership { address addr; uint64 startTimestamp; } struct AddressData { uint128 balance; uint128 numberMinted; } uint256 private currentIndex = 0; uint256 internal immutable collectionSize; uint256 internal immutable maxBatchSize; string private _name; string private _symbol; mapping(uint256 => TokenOwnership) private _ownerships; mapping(address => AddressData) private _addressData; mapping(uint256 => address) private _tokenApprovals; mapping(address => mapping(address => bool)) private _operatorApprovals; constructor( string memory name_, string memory symbol_, uint256 maxBatchSize_, uint256 collectionSize_ ) { require( collectionSize_ > 0, "ERC721A: collection must have a nonzero supply" ); require(maxBatchSize_ > 0, "ERC721A: max batch size must be nonzero"); _name = name_; _symbol = symbol_; maxBatchSize = maxBatchSize_; collectionSize = collectionSize_; } function totalSupply() public view override returns (uint256) { return currentIndex; } function tokenByIndex(uint256 index) public view override returns (uint256) { require(index < totalSupply(), "ERC721A: global index out of bounds"); return index; } function tokenOfOwnerByIndex(address owner, uint256 index) public view override returns (uint256) { require(index < balanceOf(owner), "ERC721A: owner index out of bounds"); uint256 numMintedSoFar = totalSupply(); uint256 tokenIdsIdx = 0; address currOwnershipAddr = address(0); for (uint256 i = 0; i < numMintedSoFar; i++) { TokenOwnership memory ownership = _ownerships[i]; if (ownership.addr != address(0)) { currOwnershipAddr = ownership.addr; } if (currOwnershipAddr == owner) { if (tokenIdsIdx == index) { return i; } tokenIdsIdx++; } } revert("ERC721A: unable to get token of owner by index"); } function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || interfaceId == type(IERC721Enumerable).interfaceId || super.supportsInterface(interfaceId); } function balanceOf(address owner) public view override returns (uint256) { require(owner != address(0), "ERC721A: balance query for the zero address"); return uint256(_addressData[owner].balance); } function _numberMinted(address owner) internal view returns (uint256) { require( owner != address(0), "ERC721A: number minted query for the zero address" ); return uint256(_addressData[owner].numberMinted); } function ownershipOf(uint256 tokenId) internal view returns (TokenOwnership memory) { require(_exists(tokenId), "ERC721A: owner query for nonexistent token"); uint256 lowestTokenToCheck; if (tokenId >= maxBatchSize) { lowestTokenToCheck = tokenId - maxBatchSize + 1; } for (uint256 curr = tokenId; curr >= lowestTokenToCheck; curr--) { TokenOwnership memory ownership = _ownerships[curr]; if (ownership.addr != address(0)) { return ownership; } } revert("ERC721A: unable to determine the owner of token"); } function ownerOf(uint256 tokenId) public view override returns (address) { return ownershipOf(tokenId).addr; } 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(),_getUriExtension())) : ""; } function _baseURI() internal view virtual returns (string memory) { return ""; } function _getUriExtension() internal view virtual returns (string memory) { return ""; } function approve(address to, uint256 tokenId) public override { address owner = ERC721A.ownerOf(tokenId); require(to != owner, "ERC721A: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721A: approve caller is not owner nor approved for all" ); _approve(to, tokenId, owner); } function getApproved(uint256 tokenId) public view override returns (address) { require(_exists(tokenId), "ERC721A: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) public override { require(operator != _msgSender(), "ERC721A: 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 override { _transfer(from, to, tokenId); } function safeTransferFrom( address from, address to, uint256 tokenId ) public override { safeTransferFrom(from, to, tokenId, ""); } function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public override { _transfer(from, to, tokenId); require( _checkOnERC721Received(from, to, tokenId, _data), "ERC721A: transfer to non ERC721Receiver implementer" ); } function _exists(uint256 tokenId) internal view returns (bool) { return tokenId < currentIndex; } function _safeMint(address to, uint256 quantity) internal { _safeMint(to, quantity, ""); } function _safeMint( address to, uint256 quantity, bytes memory _data ) internal { uint256 startTokenId = currentIndex; require(to != address(0), "ERC721A: mint to the zero address"); require(!_exists(startTokenId), "ERC721A: token already minted"); require(quantity <= maxBatchSize, "ERC721A: quantity to mint too high"); _beforeTokenTransfers(address(0), to, startTokenId, quantity); AddressData memory addressData = _addressData[to]; _addressData[to] = AddressData( addressData.balance + uint128(quantity), addressData.numberMinted + uint128(quantity) ); _ownerships[startTokenId] = TokenOwnership(to, uint64(block.timestamp)); uint256 updatedIndex = startTokenId; for (uint256 i = 0; i < quantity; i++) { emit Transfer(address(0), to, updatedIndex); require( _checkOnERC721Received(address(0), to, updatedIndex, _data), "ERC721A: transfer to non ERC721Receiver implementer" ); updatedIndex++; } currentIndex = updatedIndex; _afterTokenTransfers(address(0), to, startTokenId, quantity); } function _transfer( address from, address to, uint256 tokenId ) private { TokenOwnership memory prevOwnership = ownershipOf(tokenId); bool isApprovedOrOwner = (_msgSender() == prevOwnership.addr || getApproved(tokenId) == _msgSender() || isApprovedForAll(prevOwnership.addr, _msgSender())); require( isApprovedOrOwner, "ERC721A: transfer caller is not owner nor approved" ); require( prevOwnership.addr == from, "ERC721A: transfer from incorrect owner" ); require(to != address(0), "ERC721A: transfer to the zero address"); _beforeTokenTransfers(from, to, tokenId, 1); _approve(address(0), tokenId, prevOwnership.addr); _addressData[from].balance -= 1; _addressData[to].balance += 1; _ownerships[tokenId] = TokenOwnership(to, uint64(block.timestamp)); uint256 nextTokenId = tokenId + 1; if (_ownerships[nextTokenId].addr == address(0)) { if (_exists(nextTokenId)) { _ownerships[nextTokenId] = TokenOwnership( prevOwnership.addr, prevOwnership.startTimestamp ); } } emit Transfer(from, to, tokenId); _afterTokenTransfers(from, to, tokenId, 1); } function _approve( address to, uint256 tokenId, address owner ) private { _tokenApprovals[tokenId] = to; emit Approval(owner, to, tokenId); } uint256 public nextOwnerToExplicitlySet = 0; function _setOwnersExplicit(uint256 quantity) internal { uint256 oldNextOwnerToSet = nextOwnerToExplicitlySet; require(quantity > 0, "quantity must be nonzero"); uint256 endIndex = oldNextOwnerToSet + quantity - 1; if (endIndex > collectionSize - 1) { endIndex = collectionSize - 1; } require(_exists(endIndex), "not enough minted yet for this cleanup"); for (uint256 i = oldNextOwnerToSet; i <= endIndex; i++) { if (_ownerships[i].addr == address(0)) { TokenOwnership memory ownership = ownershipOf(i); _ownerships[i] = TokenOwnership( ownership.addr, ownership.startTimestamp ); } } nextOwnerToExplicitlySet = endIndex + 1; } 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("ERC721A: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } function _beforeTokenTransfers( address from, address to, uint256 startTokenId, uint256 quantity ) internal virtual {} function _afterTokenTransfers( address from, address to, uint256 startTokenId, uint256 quantity ) internal virtual {} } contract ApeSerum is Ownable, ERC721A, ReentrancyGuard { using Strings for uint256; uint256 public MAX_PER_Transtion = 20; // maximam amount that user can mint uint256 public MAX_PER_Address = 5; // maximam amount that user can mint uint256 public PRICE = 0.03 ether; //0.025 ether uint256 public reserved = 10; uint256 private constant TotalCollectionSize_ = 3100; // total number of nfts uint256 private constant MaxMintPerBatch_ = 5; //max mint per traction string private _baseTokenURI; mapping(uint => bool) public tokenIdClaimed; uint public status = 2; //0-pause 1-whitelist 2-public address public phase1Add = 0xa4d13D872d78Dc2E538B1279D9d0322fD04f0e52; constructor() ERC721A("Serum","SERUM", MaxMintPerBatch_, TotalCollectionSize_) { _baseTokenURI = ""; } modifier callerIsUser() { require(tx.origin == msg.sender, "The caller is another contract"); _; } function setphase1Add(address a) public onlyOwner{ phase1Add = a; } function ClaimFree() public { uint256 owned = IERC721Enumerable(phase1Add).balanceOf(msg.sender); uint count=0; require(owned > 4, "Require at least 5 unclaimed Baby Doodle Apes"); for (uint256 index = 0; index < owned; index++) { if(!tokenIdClaimed[IERC721Enumerable(phase1Add).tokenOfOwnerByIndex(msg.sender, index)]){ count++; tokenIdClaimed[IERC721Enumerable(phase1Add).tokenOfOwnerByIndex(msg.sender, index)]=true; } } require(count >= 5,"Not eligiable for free claims"); if(count > 9) _safeMint(msg.sender, 2); else if(count > 4) _safeMint(msg.sender, 1); } function mint(uint256 quantity) external payable callerIsUser { require( status == 2 , "Sale is not Active"); require(totalSupply() + quantity <= TotalCollectionSize_ - reserved, "reached max supply"); require( quantity <= MAX_PER_Transtion,"can not mint this many"); require(msg.value >= PRICE * quantity, "Need to send more ETH."); _safeMint(msg.sender, quantity); } 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 setBaseURI(string memory baseURI) external onlyOwner { _baseTokenURI = baseURI; } function _baseURI() internal view virtual override returns (string memory) { return _baseTokenURI; } function numberMinted(address owner) public view returns (uint256) { return _numberMinted(owner); } function getOwnershipData(uint256 tokenId) external view returns (TokenOwnership memory) { return ownershipOf(tokenId); } function withdraw() external onlyOwner nonReentrant { (bool success, ) = msg.sender.call{value: address(this).balance}(""); require(success, "Transfer failed."); } function changeMintPrice(uint256 _newPrice) external onlyOwner { PRICE = _newPrice; } function getMintPrice() public view returns(uint256) { return PRICE; } function changeMAX_PER_Transtion(uint256 q) external onlyOwner { MAX_PER_Transtion = q; } function setStatus(uint256 s)external onlyOwner{ status = s; } function setReserved(uint256 r)external onlyOwner{ reserved = r; } function getReserved() public view returns(uint256){ return reserved; } function getStatus()public view returns(uint){ return status; } function giveaway(address a, uint q)public onlyOwner{ _safeMint(a, q); } }
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":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"},{"inputs":[],"name":"ClaimFree","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"MAX_PER_Address","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PER_Transtion","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":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"q","type":"uint256"}],"name":"changeMAX_PER_Transtion","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newPrice","type":"uint256"}],"name":"changeMintPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMintPrice","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getOwnershipData","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"}],"internalType":"struct ERC721A.TokenOwnership","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserved","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStatus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"},{"internalType":"uint256","name":"q","type":"uint256"}],"name":"giveaway","outputs":[],"stateMutability":"nonpayable","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":"quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextOwnerToExplicitlySet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"numberMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"phase1Add","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reserved","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":"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":"r","type":"uint256"}],"name":"setReserved","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"s","type":"uint256"}],"name":"setStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"setphase1Add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"status","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint256","name":"","type":"uint256"}],"name":"tokenIdClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60c0604052600060015560006008556014600a556005600b55666a94d74f430000600c55600a600d55600260105573a4d13d872d78dc2e538b1279d9d0322fd04f0e52601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200008f57600080fd5b506040518060400160405280600581526020017f536572756d0000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f534552554d0000000000000000000000000000000000000000000000000000008152506005610c1c62000121620001156200022960201b60201c565b6200023160201b60201c565b6000811162000167576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200015e9062000415565b60405180910390fd5b60008211620001ad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001a490620003f3565b60405180910390fd5b8360029080519060200190620001c5929190620002f5565b508260039080519060200190620001de929190620002f5565b508160a08181525050806080818152505050505050600160098190555060405180602001604052806000815250600e908051906020019062000222929190620002f5565b506200054b565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620003039062000448565b90600052602060002090601f01602090048101928262000327576000855562000373565b82601f106200034257805160ff191683800117855562000373565b8280016001018555821562000373579182015b828111156200037257825182559160200191906001019062000355565b5b50905062000382919062000386565b5090565b5b80821115620003a157600081600090555060010162000387565b5090565b6000620003b460278362000437565b9150620003c182620004ad565b604082019050919050565b6000620003db602e8362000437565b9150620003e882620004fc565b604082019050919050565b600060208201905081810360008301526200040e81620003a5565b9050919050565b600060208201905081810360008301526200043081620003cc565b9050919050565b600082825260208201905092915050565b600060028204905060018216806200046157607f821691505b602082108114156200047857620004776200047e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f455243373231413a206d61782062617463682073697a65206d7573742062652060008201527f6e6f6e7a65726f00000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a20636f6c6c656374696f6e206d757374206861766520612060008201527f6e6f6e7a65726f20737570706c79000000000000000000000000000000000000602082015250565b60805160a05161516b6200057c6000396000818161289f015281816128c8015261304701526000505061516b6000f3fe6080604052600436106102515760003560e01c806369ba1a7511610139578063af7b26e9116100b6578063d7224ba01161007a578063d7224ba01461088f578063d8fb80e5146108ba578063dc33e681146108f7578063e985e9c514610934578063f2fde38b14610971578063fe60d12c1461099a57610251565b8063af7b26e9146107be578063b104d2d6146107e7578063b88d4fde146107fe578063c87b56dd14610827578063d04950a11461086457610251565b80639231ab2a116100fd5780639231ab2a146106e657806395d89b4114610723578063a0712d681461074e578063a22cb4651461076a578063a7f93ebd1461079357610251565b806369ba1a751461061357806370a082311461063c578063715018a6146106795780638d859f3e146106905780638da5cb5b146106bb57610251565b80632d6e71b6116101d257806342842e0e1161019657806342842e0e146104f35780634e69d5601461051c5780634f6ccce71461054757806355f804b314610584578063561e1c07146105ad5780636352211e146105d657610251565b80632d6e71b6146104225780632f2ffc571461044b5780632f745c59146104765780633ccfd60b146104b35780633fd17366146104ca57610251565b80630d9639ba116102195780630d9639ba1461034d5780630fab699d1461037857806318160ddd146103a3578063200d2ed2146103ce57806323b872dd146103f957610251565b806301ffc9a714610256578063050225ea1461029357806306fdde03146102bc578063081812fc146102e7578063095ea7b314610324575b600080fd5b34801561026257600080fd5b5061027d60048036038101906102789190613882565b6109c5565b60405161028a9190613fa2565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b59190613842565b610b0f565b005b3480156102c857600080fd5b506102d1610b99565b6040516102de9190613fbd565b60405180910390f35b3480156102f357600080fd5b5061030e60048036038101906103099190613925565b610c2b565b60405161031b9190613f12565b60405180910390f35b34801561033057600080fd5b5061034b60048036038101906103469190613842565b610cb0565b005b34801561035957600080fd5b50610362610dc9565b60405161036f91906143ba565b60405180910390f35b34801561038457600080fd5b5061038d610dd3565b60405161039a9190613f12565b60405180910390f35b3480156103af57600080fd5b506103b8610df9565b6040516103c591906143ba565b60405180910390f35b3480156103da57600080fd5b506103e3610e03565b6040516103f091906143ba565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b919061372c565b610e09565b005b34801561042e57600080fd5b5061044960048036038101906104449190613925565b610e19565b005b34801561045757600080fd5b50610460610e9f565b60405161046d91906143ba565b60405180910390f35b34801561048257600080fd5b5061049d60048036038101906104989190613842565b610ea5565b6040516104aa91906143ba565b60405180910390f35b3480156104bf57600080fd5b506104c86110a3565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190613925565b611224565b005b3480156104ff57600080fd5b5061051a6004803603810190610515919061372c565b6112aa565b005b34801561052857600080fd5b506105316112ca565b60405161053e91906143ba565b60405180910390f35b34801561055357600080fd5b5061056e60048036038101906105699190613925565b6112d4565b60405161057b91906143ba565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a691906138dc565b611327565b005b3480156105b957600080fd5b506105d460048036038101906105cf91906136bf565b6113bd565b005b3480156105e257600080fd5b506105fd60048036038101906105f89190613925565b61147d565b60405161060a9190613f12565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190613925565b611493565b005b34801561064857600080fd5b50610663600480360381019061065e91906136bf565b611519565b60405161067091906143ba565b60405180910390f35b34801561068557600080fd5b5061068e611602565b005b34801561069c57600080fd5b506106a561168a565b6040516106b291906143ba565b60405180910390f35b3480156106c757600080fd5b506106d0611690565b6040516106dd9190613f12565b60405180910390f35b3480156106f257600080fd5b5061070d60048036038101906107089190613925565b6116b9565b60405161071a919061439f565b60405180910390f35b34801561072f57600080fd5b506107386116d1565b6040516107459190613fbd565b60405180910390f35b61076860048036038101906107639190613925565b611763565b005b34801561077657600080fd5b50610791600480360381019061078c9190613802565b61191c565b005b34801561079f57600080fd5b506107a8611a9d565b6040516107b591906143ba565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190613925565b611aa7565b005b3480156107f357600080fd5b506107fc611b2d565b005b34801561080a57600080fd5b506108256004803603810190610820919061377f565b611e6f565b005b34801561083357600080fd5b5061084e60048036038101906108499190613925565b611ecb565b60405161085b9190613fbd565b60405180910390f35b34801561087057600080fd5b50610879611f72565b60405161088691906143ba565b60405180910390f35b34801561089b57600080fd5b506108a4611f78565b6040516108b191906143ba565b60405180910390f35b3480156108c657600080fd5b506108e160048036038101906108dc9190613925565b611f7e565b6040516108ee9190613fa2565b60405180910390f35b34801561090357600080fd5b5061091e600480360381019061091991906136bf565b611f9e565b60405161092b91906143ba565b60405180910390f35b34801561094057600080fd5b5061095b600480360381019061095691906136ec565b611fb0565b6040516109689190613fa2565b60405180910390f35b34801561097d57600080fd5b50610998600480360381019061099391906136bf565b612044565b005b3480156109a657600080fd5b506109af61213c565b6040516109bc91906143ba565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a9057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610af857507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b085750610b0782612142565b5b9050919050565b610b176121ac565b73ffffffffffffffffffffffffffffffffffffffff16610b35611690565b73ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b829061417f565b60405180910390fd5b610b9582826121b4565b5050565b606060028054610ba890614749565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd490614749565b8015610c215780601f10610bf657610100808354040283529160200191610c21565b820191906000526020600020905b815481529060010190602001808311610c0457829003601f168201915b5050505050905090565b6000610c36826121d2565b610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c9061435f565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610cbb8261147d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d239061421f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610d4b6121ac565b73ffffffffffffffffffffffffffffffffffffffff161480610d7a5750610d7981610d746121ac565b611fb0565b5b610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db0906140ff565b60405180910390fd5b610dc48383836121e0565b505050565b6000600d54905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b60105481565b610e14838383612292565b505050565b610e216121ac565b73ffffffffffffffffffffffffffffffffffffffff16610e3f611690565b73ffffffffffffffffffffffffffffffffffffffff1614610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c9061417f565b60405180910390fd5b80600d8190555050565b600b5481565b6000610eb083611519565b8210610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890613fdf565b60405180910390fd5b6000610efb610df9565b905060008060005b83811015611061576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610ff557806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561104d578684141561103e57819550505050505061109d565b8380611049906147ac565b9450505b508080611059906147ac565b915050610f03565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611094906142ff565b60405180910390fd5b92915050565b6110ab6121ac565b73ffffffffffffffffffffffffffffffffffffffff166110c9611690565b73ffffffffffffffffffffffffffffffffffffffff161461111f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111169061417f565b60405180910390fd5b60026009541415611165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115c9061431f565b60405180910390fd5b600260098190555060003373ffffffffffffffffffffffffffffffffffffffff164760405161119390613efd565b60006040518083038185875af1925050503d80600081146111d0576040519150601f19603f3d011682016040523d82523d6000602084013e6111d5565b606091505b5050905080611219576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112109061423f565b60405180910390fd5b506001600981905550565b61122c6121ac565b73ffffffffffffffffffffffffffffffffffffffff1661124a611690565b73ffffffffffffffffffffffffffffffffffffffff16146112a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112979061417f565b60405180910390fd5b80600c8190555050565b6112c583838360405180602001604052806000815250611e6f565b505050565b6000601054905090565b60006112de610df9565b821061131f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113169061405f565b60405180910390fd5b819050919050565b61132f6121ac565b73ffffffffffffffffffffffffffffffffffffffff1661134d611690565b73ffffffffffffffffffffffffffffffffffffffff16146113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a9061417f565b60405180910390fd5b80600e90805190602001906113b9929190613484565b5050565b6113c56121ac565b73ffffffffffffffffffffffffffffffffffffffff166113e3611690565b73ffffffffffffffffffffffffffffffffffffffff1614611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309061417f565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006114888261284b565b600001519050919050565b61149b6121ac565b73ffffffffffffffffffffffffffffffffffffffff166114b9611690565b73ffffffffffffffffffffffffffffffffffffffff161461150f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115069061417f565b60405180910390fd5b8060108190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561158a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115819061411f565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b61160a6121ac565b73ffffffffffffffffffffffffffffffffffffffff16611628611690565b73ffffffffffffffffffffffffffffffffffffffff161461167e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116759061417f565b60405180910390fd5b6116886000612a4e565b565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6116c161350a565b6116ca8261284b565b9050919050565b6060600380546116e090614749565b80601f016020809104026020016040519081016040528092919081815260200182805461170c90614749565b80156117595780601f1061172e57610100808354040283529160200191611759565b820191906000526020600020905b81548152906001019060200180831161173c57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c8906140df565b60405180910390fd5b600260105414611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d906140bf565b60405180910390fd5b600d54610c1c6118269190614605565b8161182f610df9565b61183991906144f0565b111561187a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118719061413f565b60405180910390fd5b600a548111156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b6906142df565b60405180910390fd5b80600c546118cd9190614577565b34101561190f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119069061427f565b60405180910390fd5b61191933826121b4565b50565b6119246121ac565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611989906141bf565b60405180910390fd5b806007600061199f6121ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611a4c6121ac565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611a919190613fa2565b60405180910390a35050565b6000600c54905090565b611aaf6121ac565b73ffffffffffffffffffffffffffffffffffffffff16611acd611690565b73ffffffffffffffffffffffffffffffffffffffff1614611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a9061417f565b60405180910390fd5b80600a8190555050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611b8a9190613f12565b60206040518083038186803b158015611ba257600080fd5b505afa158015611bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bda9190613952565b9050600060048211611c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c189061403f565b60405180910390fd5b60005b82811015611df757600f6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f745c5933856040518363ffffffff1660e01b8152600401611c8d929190613f79565b60206040518083038186803b158015611ca557600080fd5b505afa158015611cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdd9190613952565b815260200190815260200160002060009054906101000a900460ff16611de4578180611d08906147ac565b9250506001600f6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f745c5933866040518363ffffffff1660e01b8152600401611d6e929190613f79565b60206040518083038186803b158015611d8657600080fd5b505afa158015611d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbe9190613952565b815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611def906147ac565b915050611c24565b506005811015611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e33906141ff565b60405180910390fd5b6009811115611e5557611e503360026121b4565b611e6b565b6004811115611e6a57611e693360016121b4565b5b5b5050565b611e7a848484612292565b611e8684848484612b12565b611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebc9061425f565b60405180910390fd5b50505050565b6060611ed6826121d2565b611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c9061419f565b60405180910390fd5b6000611f1f612ca9565b90506000815111611f3f5760405180602001604052806000815250611f6a565b80611f4984612d3b565b604051602001611f5a929190613ed9565b6040516020818303038152906040525b915050919050565b600a5481565b60085481565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000611fa982612e9c565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61204c6121ac565b73ffffffffffffffffffffffffffffffffffffffff1661206a611690565b73ffffffffffffffffffffffffffffffffffffffff16146120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b79061417f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613fff565b60405180910390fd5b61213981612a4e565b50565b600d5481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6121ce828260405180602001604052806000815250612f85565b5050565b600060015482109050919050565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600061229d8261284b565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff166122c46121ac565b73ffffffffffffffffffffffffffffffffffffffff16148061232057506122e96121ac565b73ffffffffffffffffffffffffffffffffffffffff1661230884610c2b565b73ffffffffffffffffffffffffffffffffffffffff16145b8061233c575061233b82600001516123366121ac565b611fb0565b5b90508061237e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612375906141df565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146123f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e79061415f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612460576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124579061407f565b60405180910390fd5b61246d8585856001613465565b61247d60008484600001516121e0565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff166124eb91906145d1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff1661258f91906144aa565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600060018461269591906144f0565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127db5761270b816121d2565b156127da576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612843868686600161346b565b505050505050565b61285361350a565b61285c826121d2565b61289b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128929061401f565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000083106128ff5760017f0000000000000000000000000000000000000000000000000000000000000000846128f29190614605565b6128fc91906144f0565b90505b60008390505b818110612a0d576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146129f957809350505050612a49565b508080612a059061471f565b915050612905565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a409061433f565b60405180910390fd5b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612b338473ffffffffffffffffffffffffffffffffffffffff16613471565b15612c9c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612b5c6121ac565b8786866040518563ffffffff1660e01b8152600401612b7e9493929190613f2d565b602060405180830381600087803b158015612b9857600080fd5b505af1925050508015612bc957506040513d601f19601f82011682018060405250810190612bc691906138af565b60015b612c4c573d8060008114612bf9576040519150601f19603f3d011682016040523d82523d6000602084013e612bfe565b606091505b50600081511415612c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3b9061425f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612ca1565b600190505b949350505050565b6060600e8054612cb890614749565b80601f0160208091040260200160405190810160405280929190818152602001828054612ce490614749565b8015612d315780601f10612d0657610100808354040283529160200191612d31565b820191906000526020600020905b815481529060010190602001808311612d1457829003601f168201915b5050505050905090565b60606000821415612d83576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612e97565b600082905060005b60008214612db5578080612d9e906147ac565b915050600a82612dae9190614546565b9150612d8b565b60008167ffffffffffffffff811115612dd157612dd06148e2565b5b6040519080825280601f01601f191660200182016040528015612e035781602001600182028036833780820191505090505b5090505b60008514612e9057600182612e1c9190614605565b9150600a85612e2b91906147f5565b6030612e3791906144f0565b60f81b818381518110612e4d57612e4c6148b3565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612e899190614546565b9450612e07565b8093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f049061409f565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff3906142bf565b60405180910390fd5b613005816121d2565b15613045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161303c9061429f565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008311156130a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161309f9061437f565b60405180910390fd5b6130b56000858386613465565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060405180604001604052808583600001516131b291906144aa565b6fffffffffffffffffffffffffffffffff1681526020018583602001516131d991906144aa565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b8581101561344857818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46133e86000888488612b12565b613427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341e9061425f565b60405180910390fd5b8180613432906147ac565b9250508080613440906147ac565b915050613377565b508060018190555061345d600087858861346b565b505050505050565b50505050565b50505050565b600080823b905060008111915050919050565b82805461349090614749565b90600052602060002090601f0160209004810192826134b257600085556134f9565b82601f106134cb57805160ff19168380011785556134f9565b828001600101855582156134f9579182015b828111156134f85782518255916020019190600101906134dd565b5b5090506135069190613544565b5090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b5b8082111561355d576000816000905550600101613545565b5090565b600061357461356f846143fa565b6143d5565b9050828152602081018484840111156135905761358f614916565b5b61359b8482856146dd565b509392505050565b60006135b66135b18461442b565b6143d5565b9050828152602081018484840111156135d2576135d1614916565b5b6135dd8482856146dd565b509392505050565b6000813590506135f4816150d9565b92915050565b600081359050613609816150f0565b92915050565b60008135905061361e81615107565b92915050565b60008151905061363381615107565b92915050565b600082601f83011261364e5761364d614911565b5b813561365e848260208601613561565b91505092915050565b600082601f83011261367c5761367b614911565b5b813561368c8482602086016135a3565b91505092915050565b6000813590506136a48161511e565b92915050565b6000815190506136b98161511e565b92915050565b6000602082840312156136d5576136d4614920565b5b60006136e3848285016135e5565b91505092915050565b6000806040838503121561370357613702614920565b5b6000613711858286016135e5565b9250506020613722858286016135e5565b9150509250929050565b60008060006060848603121561374557613744614920565b5b6000613753868287016135e5565b9350506020613764868287016135e5565b925050604061377586828701613695565b9150509250925092565b6000806000806080858703121561379957613798614920565b5b60006137a7878288016135e5565b94505060206137b8878288016135e5565b93505060406137c987828801613695565b925050606085013567ffffffffffffffff8111156137ea576137e961491b565b5b6137f687828801613639565b91505092959194509250565b6000806040838503121561381957613818614920565b5b6000613827858286016135e5565b9250506020613838858286016135fa565b9150509250929050565b6000806040838503121561385957613858614920565b5b6000613867858286016135e5565b925050602061387885828601613695565b9150509250929050565b60006020828403121561389857613897614920565b5b60006138a68482850161360f565b91505092915050565b6000602082840312156138c5576138c4614920565b5b60006138d384828501613624565b91505092915050565b6000602082840312156138f2576138f1614920565b5b600082013567ffffffffffffffff8111156139105761390f61491b565b5b61391c84828501613667565b91505092915050565b60006020828403121561393b5761393a614920565b5b600061394984828501613695565b91505092915050565b60006020828403121561396857613967614920565b5b6000613976848285016136aa565b91505092915050565b61398881614639565b82525050565b61399781614639565b82525050565b6139a68161464b565b82525050565b60006139b78261445c565b6139c18185614472565b93506139d18185602086016146ec565b6139da81614925565b840191505092915050565b60006139f082614467565b6139fa818561448e565b9350613a0a8185602086016146ec565b613a1381614925565b840191505092915050565b6000613a2982614467565b613a33818561449f565b9350613a438185602086016146ec565b80840191505092915050565b6000613a5c60228361448e565b9150613a6782614936565b604082019050919050565b6000613a7f60268361448e565b9150613a8a82614985565b604082019050919050565b6000613aa2602a8361448e565b9150613aad826149d4565b604082019050919050565b6000613ac5602d8361448e565b9150613ad082614a23565b604082019050919050565b6000613ae860238361448e565b9150613af382614a72565b604082019050919050565b6000613b0b60258361448e565b9150613b1682614ac1565b604082019050919050565b6000613b2e60318361448e565b9150613b3982614b10565b604082019050919050565b6000613b5160128361448e565b9150613b5c82614b5f565b602082019050919050565b6000613b74601e8361448e565b9150613b7f82614b88565b602082019050919050565b6000613b9760398361448e565b9150613ba282614bb1565b604082019050919050565b6000613bba602b8361448e565b9150613bc582614c00565b604082019050919050565b6000613bdd60128361448e565b9150613be882614c4f565b602082019050919050565b6000613c0060268361448e565b9150613c0b82614c78565b604082019050919050565b6000613c2360208361448e565b9150613c2e82614cc7565b602082019050919050565b6000613c46602f8361448e565b9150613c5182614cf0565b604082019050919050565b6000613c69601a8361448e565b9150613c7482614d3f565b602082019050919050565b6000613c8c60328361448e565b9150613c9782614d68565b604082019050919050565b6000613caf601d8361448e565b9150613cba82614db7565b602082019050919050565b6000613cd260228361448e565b9150613cdd82614de0565b604082019050919050565b6000613cf5600083614483565b9150613d0082614e2f565b600082019050919050565b6000613d1860108361448e565b9150613d2382614e32565b602082019050919050565b6000613d3b60338361448e565b9150613d4682614e5b565b604082019050919050565b6000613d5e60168361448e565b9150613d6982614eaa565b602082019050919050565b6000613d81601d8361448e565b9150613d8c82614ed3565b602082019050919050565b6000613da460218361448e565b9150613daf82614efc565b604082019050919050565b6000613dc760168361448e565b9150613dd282614f4b565b602082019050919050565b6000613dea602e8361448e565b9150613df582614f74565b604082019050919050565b6000613e0d601f8361448e565b9150613e1882614fc3565b602082019050919050565b6000613e30602f8361448e565b9150613e3b82614fec565b604082019050919050565b6000613e53602d8361448e565b9150613e5e8261503b565b604082019050919050565b6000613e7660228361448e565b9150613e818261508a565b604082019050919050565b604082016000820151613ea2600085018261397f565b506020820151613eb56020850182613eca565b50505050565b613ec4816146bf565b82525050565b613ed3816146c9565b82525050565b6000613ee58285613a1e565b9150613ef18284613a1e565b91508190509392505050565b6000613f0882613ce8565b9150819050919050565b6000602082019050613f27600083018461398e565b92915050565b6000608082019050613f42600083018761398e565b613f4f602083018661398e565b613f5c6040830185613ebb565b8181036060830152613f6e81846139ac565b905095945050505050565b6000604082019050613f8e600083018561398e565b613f9b6020830184613ebb565b9392505050565b6000602082019050613fb7600083018461399d565b92915050565b60006020820190508181036000830152613fd781846139e5565b905092915050565b60006020820190508181036000830152613ff881613a4f565b9050919050565b6000602082019050818103600083015261401881613a72565b9050919050565b6000602082019050818103600083015261403881613a95565b9050919050565b6000602082019050818103600083015261405881613ab8565b9050919050565b6000602082019050818103600083015261407881613adb565b9050919050565b6000602082019050818103600083015261409881613afe565b9050919050565b600060208201905081810360008301526140b881613b21565b9050919050565b600060208201905081810360008301526140d881613b44565b9050919050565b600060208201905081810360008301526140f881613b67565b9050919050565b6000602082019050818103600083015261411881613b8a565b9050919050565b6000602082019050818103600083015261413881613bad565b9050919050565b6000602082019050818103600083015261415881613bd0565b9050919050565b6000602082019050818103600083015261417881613bf3565b9050919050565b6000602082019050818103600083015261419881613c16565b9050919050565b600060208201905081810360008301526141b881613c39565b9050919050565b600060208201905081810360008301526141d881613c5c565b9050919050565b600060208201905081810360008301526141f881613c7f565b9050919050565b6000602082019050818103600083015261421881613ca2565b9050919050565b6000602082019050818103600083015261423881613cc5565b9050919050565b6000602082019050818103600083015261425881613d0b565b9050919050565b6000602082019050818103600083015261427881613d2e565b9050919050565b6000602082019050818103600083015261429881613d51565b9050919050565b600060208201905081810360008301526142b881613d74565b9050919050565b600060208201905081810360008301526142d881613d97565b9050919050565b600060208201905081810360008301526142f881613dba565b9050919050565b6000602082019050818103600083015261431881613ddd565b9050919050565b6000602082019050818103600083015261433881613e00565b9050919050565b6000602082019050818103600083015261435881613e23565b9050919050565b6000602082019050818103600083015261437881613e46565b9050919050565b6000602082019050818103600083015261439881613e69565b9050919050565b60006040820190506143b46000830184613e8c565b92915050565b60006020820190506143cf6000830184613ebb565b92915050565b60006143df6143f0565b90506143eb828261477b565b919050565b6000604051905090565b600067ffffffffffffffff821115614415576144146148e2565b5b61441e82614925565b9050602081019050919050565b600067ffffffffffffffff821115614446576144456148e2565b5b61444f82614925565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006144b582614683565b91506144c083614683565b9250826fffffffffffffffffffffffffffffffff038211156144e5576144e4614826565b5b828201905092915050565b60006144fb826146bf565b9150614506836146bf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561453b5761453a614826565b5b828201905092915050565b6000614551826146bf565b915061455c836146bf565b92508261456c5761456b614855565b5b828204905092915050565b6000614582826146bf565b915061458d836146bf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145c6576145c5614826565b5b828202905092915050565b60006145dc82614683565b91506145e783614683565b9250828210156145fa576145f9614826565b5b828203905092915050565b6000614610826146bf565b915061461b836146bf565b92508282101561462e5761462d614826565b5b828203905092915050565b60006146448261469f565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561470a5780820151818401526020810190506146ef565b83811115614719576000848401525b50505050565b600061472a826146bf565b9150600082141561473e5761473d614826565b5b600182039050919050565b6000600282049050600182168061476157607f821691505b6020821081141561477557614774614884565b5b50919050565b61478482614925565b810181811067ffffffffffffffff821117156147a3576147a26148e2565b5b80604052505050565b60006147b7826146bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156147ea576147e9614826565b5b600182019050919050565b6000614800826146bf565b915061480b836146bf565b92508261481b5761481a614855565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b7f52657175697265206174206c65617374203520756e636c61696d65642042616260008201527f7920446f6f646c65204170657300000000000000000000000000000000000000602082015250565b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206e756d626572206d696e74656420717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b7f53616c65206973206e6f74204163746976650000000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f72656163686564206d617820737570706c790000000000000000000000000000600082015250565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f4e6f7420656c69676961626c6520666f72206672656520636c61696d73000000600082015250565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b7f4e65656420746f2073656e64206d6f7265204554482e00000000000000000000600082015250565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f63616e206e6f74206d696e742074686973206d616e7900000000000000000000600082015250565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f455243373231413a20756e61626c6520746f2064657465726d696e652074686560008201527f206f776e6572206f6620746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b7f455243373231413a207175616e7469747920746f206d696e7420746f6f20686960008201527f6768000000000000000000000000000000000000000000000000000000000000602082015250565b6150e281614639565b81146150ed57600080fd5b50565b6150f98161464b565b811461510457600080fd5b50565b61511081614657565b811461511b57600080fd5b50565b615127816146bf565b811461513257600080fd5b5056fea264697066735822122038c345f5e839dca45d0a76b8d028806832526ec1696e7ebcd4d65ea9b969420c64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106102515760003560e01c806369ba1a7511610139578063af7b26e9116100b6578063d7224ba01161007a578063d7224ba01461088f578063d8fb80e5146108ba578063dc33e681146108f7578063e985e9c514610934578063f2fde38b14610971578063fe60d12c1461099a57610251565b8063af7b26e9146107be578063b104d2d6146107e7578063b88d4fde146107fe578063c87b56dd14610827578063d04950a11461086457610251565b80639231ab2a116100fd5780639231ab2a146106e657806395d89b4114610723578063a0712d681461074e578063a22cb4651461076a578063a7f93ebd1461079357610251565b806369ba1a751461061357806370a082311461063c578063715018a6146106795780638d859f3e146106905780638da5cb5b146106bb57610251565b80632d6e71b6116101d257806342842e0e1161019657806342842e0e146104f35780634e69d5601461051c5780634f6ccce71461054757806355f804b314610584578063561e1c07146105ad5780636352211e146105d657610251565b80632d6e71b6146104225780632f2ffc571461044b5780632f745c59146104765780633ccfd60b146104b35780633fd17366146104ca57610251565b80630d9639ba116102195780630d9639ba1461034d5780630fab699d1461037857806318160ddd146103a3578063200d2ed2146103ce57806323b872dd146103f957610251565b806301ffc9a714610256578063050225ea1461029357806306fdde03146102bc578063081812fc146102e7578063095ea7b314610324575b600080fd5b34801561026257600080fd5b5061027d60048036038101906102789190613882565b6109c5565b60405161028a9190613fa2565b60405180910390f35b34801561029f57600080fd5b506102ba60048036038101906102b59190613842565b610b0f565b005b3480156102c857600080fd5b506102d1610b99565b6040516102de9190613fbd565b60405180910390f35b3480156102f357600080fd5b5061030e60048036038101906103099190613925565b610c2b565b60405161031b9190613f12565b60405180910390f35b34801561033057600080fd5b5061034b60048036038101906103469190613842565b610cb0565b005b34801561035957600080fd5b50610362610dc9565b60405161036f91906143ba565b60405180910390f35b34801561038457600080fd5b5061038d610dd3565b60405161039a9190613f12565b60405180910390f35b3480156103af57600080fd5b506103b8610df9565b6040516103c591906143ba565b60405180910390f35b3480156103da57600080fd5b506103e3610e03565b6040516103f091906143ba565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b919061372c565b610e09565b005b34801561042e57600080fd5b5061044960048036038101906104449190613925565b610e19565b005b34801561045757600080fd5b50610460610e9f565b60405161046d91906143ba565b60405180910390f35b34801561048257600080fd5b5061049d60048036038101906104989190613842565b610ea5565b6040516104aa91906143ba565b60405180910390f35b3480156104bf57600080fd5b506104c86110a3565b005b3480156104d657600080fd5b506104f160048036038101906104ec9190613925565b611224565b005b3480156104ff57600080fd5b5061051a6004803603810190610515919061372c565b6112aa565b005b34801561052857600080fd5b506105316112ca565b60405161053e91906143ba565b60405180910390f35b34801561055357600080fd5b5061056e60048036038101906105699190613925565b6112d4565b60405161057b91906143ba565b60405180910390f35b34801561059057600080fd5b506105ab60048036038101906105a691906138dc565b611327565b005b3480156105b957600080fd5b506105d460048036038101906105cf91906136bf565b6113bd565b005b3480156105e257600080fd5b506105fd60048036038101906105f89190613925565b61147d565b60405161060a9190613f12565b60405180910390f35b34801561061f57600080fd5b5061063a60048036038101906106359190613925565b611493565b005b34801561064857600080fd5b50610663600480360381019061065e91906136bf565b611519565b60405161067091906143ba565b60405180910390f35b34801561068557600080fd5b5061068e611602565b005b34801561069c57600080fd5b506106a561168a565b6040516106b291906143ba565b60405180910390f35b3480156106c757600080fd5b506106d0611690565b6040516106dd9190613f12565b60405180910390f35b3480156106f257600080fd5b5061070d60048036038101906107089190613925565b6116b9565b60405161071a919061439f565b60405180910390f35b34801561072f57600080fd5b506107386116d1565b6040516107459190613fbd565b60405180910390f35b61076860048036038101906107639190613925565b611763565b005b34801561077657600080fd5b50610791600480360381019061078c9190613802565b61191c565b005b34801561079f57600080fd5b506107a8611a9d565b6040516107b591906143ba565b60405180910390f35b3480156107ca57600080fd5b506107e560048036038101906107e09190613925565b611aa7565b005b3480156107f357600080fd5b506107fc611b2d565b005b34801561080a57600080fd5b506108256004803603810190610820919061377f565b611e6f565b005b34801561083357600080fd5b5061084e60048036038101906108499190613925565b611ecb565b60405161085b9190613fbd565b60405180910390f35b34801561087057600080fd5b50610879611f72565b60405161088691906143ba565b60405180910390f35b34801561089b57600080fd5b506108a4611f78565b6040516108b191906143ba565b60405180910390f35b3480156108c657600080fd5b506108e160048036038101906108dc9190613925565b611f7e565b6040516108ee9190613fa2565b60405180910390f35b34801561090357600080fd5b5061091e600480360381019061091991906136bf565b611f9e565b60405161092b91906143ba565b60405180910390f35b34801561094057600080fd5b5061095b600480360381019061095691906136ec565b611fb0565b6040516109689190613fa2565b60405180910390f35b34801561097d57600080fd5b50610998600480360381019061099391906136bf565b612044565b005b3480156109a657600080fd5b506109af61213c565b6040516109bc91906143ba565b60405180910390f35b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610a9057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610af857507f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b085750610b0782612142565b5b9050919050565b610b176121ac565b73ffffffffffffffffffffffffffffffffffffffff16610b35611690565b73ffffffffffffffffffffffffffffffffffffffff1614610b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b829061417f565b60405180910390fd5b610b9582826121b4565b5050565b606060028054610ba890614749565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd490614749565b8015610c215780601f10610bf657610100808354040283529160200191610c21565b820191906000526020600020905b815481529060010190602001808311610c0457829003601f168201915b5050505050905090565b6000610c36826121d2565b610c75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6c9061435f565b60405180910390fd5b6006600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610cbb8261147d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d2c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d239061421f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610d4b6121ac565b73ffffffffffffffffffffffffffffffffffffffff161480610d7a5750610d7981610d746121ac565b611fb0565b5b610db9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db0906140ff565b60405180910390fd5b610dc48383836121e0565b505050565b6000600d54905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600154905090565b60105481565b610e14838383612292565b505050565b610e216121ac565b73ffffffffffffffffffffffffffffffffffffffff16610e3f611690565b73ffffffffffffffffffffffffffffffffffffffff1614610e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e8c9061417f565b60405180910390fd5b80600d8190555050565b600b5481565b6000610eb083611519565b8210610ef1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee890613fdf565b60405180910390fd5b6000610efb610df9565b905060008060005b83811015611061576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614610ff557806000015192505b8773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561104d578684141561103e57819550505050505061109d565b8380611049906147ac565b9450505b508080611059906147ac565b915050610f03565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611094906142ff565b60405180910390fd5b92915050565b6110ab6121ac565b73ffffffffffffffffffffffffffffffffffffffff166110c9611690565b73ffffffffffffffffffffffffffffffffffffffff161461111f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111169061417f565b60405180910390fd5b60026009541415611165576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115c9061431f565b60405180910390fd5b600260098190555060003373ffffffffffffffffffffffffffffffffffffffff164760405161119390613efd565b60006040518083038185875af1925050503d80600081146111d0576040519150601f19603f3d011682016040523d82523d6000602084013e6111d5565b606091505b5050905080611219576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112109061423f565b60405180910390fd5b506001600981905550565b61122c6121ac565b73ffffffffffffffffffffffffffffffffffffffff1661124a611690565b73ffffffffffffffffffffffffffffffffffffffff16146112a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112979061417f565b60405180910390fd5b80600c8190555050565b6112c583838360405180602001604052806000815250611e6f565b505050565b6000601054905090565b60006112de610df9565b821061131f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113169061405f565b60405180910390fd5b819050919050565b61132f6121ac565b73ffffffffffffffffffffffffffffffffffffffff1661134d611690565b73ffffffffffffffffffffffffffffffffffffffff16146113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a9061417f565b60405180910390fd5b80600e90805190602001906113b9929190613484565b5050565b6113c56121ac565b73ffffffffffffffffffffffffffffffffffffffff166113e3611690565b73ffffffffffffffffffffffffffffffffffffffff1614611439576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114309061417f565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006114888261284b565b600001519050919050565b61149b6121ac565b73ffffffffffffffffffffffffffffffffffffffff166114b9611690565b73ffffffffffffffffffffffffffffffffffffffff161461150f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115069061417f565b60405180910390fd5b8060108190555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561158a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115819061411f565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b61160a6121ac565b73ffffffffffffffffffffffffffffffffffffffff16611628611690565b73ffffffffffffffffffffffffffffffffffffffff161461167e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116759061417f565b60405180910390fd5b6116886000612a4e565b565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6116c161350a565b6116ca8261284b565b9050919050565b6060600380546116e090614749565b80601f016020809104026020016040519081016040528092919081815260200182805461170c90614749565b80156117595780601f1061172e57610100808354040283529160200191611759565b820191906000526020600020905b81548152906001019060200180831161173c57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c8906140df565b60405180910390fd5b600260105414611816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180d906140bf565b60405180910390fd5b600d54610c1c6118269190614605565b8161182f610df9565b61183991906144f0565b111561187a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118719061413f565b60405180910390fd5b600a548111156118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b6906142df565b60405180910390fd5b80600c546118cd9190614577565b34101561190f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119069061427f565b60405180910390fd5b61191933826121b4565b50565b6119246121ac565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611992576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611989906141bf565b60405180910390fd5b806007600061199f6121ac565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611a4c6121ac565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611a919190613fa2565b60405180910390a35050565b6000600c54905090565b611aaf6121ac565b73ffffffffffffffffffffffffffffffffffffffff16611acd611690565b73ffffffffffffffffffffffffffffffffffffffff1614611b23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1a9061417f565b60405180910390fd5b80600a8190555050565b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401611b8a9190613f12565b60206040518083038186803b158015611ba257600080fd5b505afa158015611bb6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bda9190613952565b9050600060048211611c21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c189061403f565b60405180910390fd5b60005b82811015611df757600f6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f745c5933856040518363ffffffff1660e01b8152600401611c8d929190613f79565b60206040518083038186803b158015611ca557600080fd5b505afa158015611cb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdd9190613952565b815260200190815260200160002060009054906101000a900460ff16611de4578180611d08906147ac565b9250506001600f6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f745c5933866040518363ffffffff1660e01b8152600401611d6e929190613f79565b60206040518083038186803b158015611d8657600080fd5b505afa158015611d9a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dbe9190613952565b815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611def906147ac565b915050611c24565b506005811015611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e33906141ff565b60405180910390fd5b6009811115611e5557611e503360026121b4565b611e6b565b6004811115611e6a57611e693360016121b4565b5b5b5050565b611e7a848484612292565b611e8684848484612b12565b611ec5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ebc9061425f565b60405180910390fd5b50505050565b6060611ed6826121d2565b611f15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0c9061419f565b60405180910390fd5b6000611f1f612ca9565b90506000815111611f3f5760405180602001604052806000815250611f6a565b80611f4984612d3b565b604051602001611f5a929190613ed9565b6040516020818303038152906040525b915050919050565b600a5481565b60085481565b600f6020528060005260406000206000915054906101000a900460ff1681565b6000611fa982612e9c565b9050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61204c6121ac565b73ffffffffffffffffffffffffffffffffffffffff1661206a611690565b73ffffffffffffffffffffffffffffffffffffffff16146120c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120b79061417f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613fff565b60405180910390fd5b61213981612a4e565b50565b600d5481565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600033905090565b6121ce828260405180602001604052806000815250612f85565b5050565b600060015482109050919050565b826006600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600061229d8261284b565b90506000816000015173ffffffffffffffffffffffffffffffffffffffff166122c46121ac565b73ffffffffffffffffffffffffffffffffffffffff16148061232057506122e96121ac565b73ffffffffffffffffffffffffffffffffffffffff1661230884610c2b565b73ffffffffffffffffffffffffffffffffffffffff16145b8061233c575061233b82600001516123366121ac565b611fb0565b5b90508061237e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612375906141df565b60405180910390fd5b8473ffffffffffffffffffffffffffffffffffffffff16826000015173ffffffffffffffffffffffffffffffffffffffff16146123f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e79061415f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612460576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124579061407f565b60405180910390fd5b61246d8585856001613465565b61247d60008484600001516121e0565b6001600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff166124eb91906145d1565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506001600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160008282829054906101000a90046fffffffffffffffffffffffffffffffff1661258f91906144aa565b92506101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060405180604001604052808573ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600085815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600060018461269591906144f0565b9050600073ffffffffffffffffffffffffffffffffffffffff166004600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156127db5761270b816121d2565b156127da576040518060400160405280846000015173ffffffffffffffffffffffffffffffffffffffff168152602001846020015167ffffffffffffffff168152506004600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055509050505b5b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612843868686600161346b565b505050505050565b61285361350a565b61285c826121d2565b61289b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128929061401f565b60405180910390fd5b60007f000000000000000000000000000000000000000000000000000000000000000583106128ff5760017f0000000000000000000000000000000000000000000000000000000000000005846128f29190614605565b6128fc91906144f0565b90505b60008390505b818110612a0d576000600460008381526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900467ffffffffffffffff1667ffffffffffffffff1667ffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16146129f957809350505050612a49565b508080612a059061471f565b915050612905565b506040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a409061433f565b60405180910390fd5b919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612b338473ffffffffffffffffffffffffffffffffffffffff16613471565b15612c9c578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612b5c6121ac565b8786866040518563ffffffff1660e01b8152600401612b7e9493929190613f2d565b602060405180830381600087803b158015612b9857600080fd5b505af1925050508015612bc957506040513d601f19601f82011682018060405250810190612bc691906138af565b60015b612c4c573d8060008114612bf9576040519150601f19603f3d011682016040523d82523d6000602084013e612bfe565b606091505b50600081511415612c44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3b9061425f565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612ca1565b600190505b949350505050565b6060600e8054612cb890614749565b80601f0160208091040260200160405190810160405280929190818152602001828054612ce490614749565b8015612d315780601f10612d0657610100808354040283529160200191612d31565b820191906000526020600020905b815481529060010190602001808311612d1457829003601f168201915b5050505050905090565b60606000821415612d83576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612e97565b600082905060005b60008214612db5578080612d9e906147ac565b915050600a82612dae9190614546565b9150612d8b565b60008167ffffffffffffffff811115612dd157612dd06148e2565b5b6040519080825280601f01601f191660200182016040528015612e035781602001600182028036833780820191505090505b5090505b60008514612e9057600182612e1c9190614605565b9150600a85612e2b91906147f5565b6030612e3791906144f0565b60f81b818381518110612e4d57612e4c6148b3565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85612e899190614546565b9450612e07565b8093505050505b919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f049061409f565b60405180910390fd5b600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ff3906142bf565b60405180910390fd5b613005816121d2565b15613045576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161303c9061429f565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000058311156130a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161309f9061437f565b60405180910390fd5b6130b56000858386613465565b6000600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206040518060400160405290816000820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016000820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681525050905060405180604001604052808583600001516131b291906144aa565b6fffffffffffffffffffffffffffffffff1681526020018583602001516131d991906144aa565b6fffffffffffffffffffffffffffffffff16815250600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008201518160000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060208201518160000160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555090505060405180604001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020014267ffffffffffffffff168152506004600084815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550905050600082905060005b8581101561344857818773ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46133e86000888488612b12565b613427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161341e9061425f565b60405180910390fd5b8180613432906147ac565b9250508080613440906147ac565b915050613377565b508060018190555061345d600087858861346b565b505050505050565b50505050565b50505050565b600080823b905060008111915050919050565b82805461349090614749565b90600052602060002090601f0160209004810192826134b257600085556134f9565b82601f106134cb57805160ff19168380011785556134f9565b828001600101855582156134f9579182015b828111156134f85782518255916020019190600101906134dd565b5b5090506135069190613544565b5090565b6040518060400160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff1681525090565b5b8082111561355d576000816000905550600101613545565b5090565b600061357461356f846143fa565b6143d5565b9050828152602081018484840111156135905761358f614916565b5b61359b8482856146dd565b509392505050565b60006135b66135b18461442b565b6143d5565b9050828152602081018484840111156135d2576135d1614916565b5b6135dd8482856146dd565b509392505050565b6000813590506135f4816150d9565b92915050565b600081359050613609816150f0565b92915050565b60008135905061361e81615107565b92915050565b60008151905061363381615107565b92915050565b600082601f83011261364e5761364d614911565b5b813561365e848260208601613561565b91505092915050565b600082601f83011261367c5761367b614911565b5b813561368c8482602086016135a3565b91505092915050565b6000813590506136a48161511e565b92915050565b6000815190506136b98161511e565b92915050565b6000602082840312156136d5576136d4614920565b5b60006136e3848285016135e5565b91505092915050565b6000806040838503121561370357613702614920565b5b6000613711858286016135e5565b9250506020613722858286016135e5565b9150509250929050565b60008060006060848603121561374557613744614920565b5b6000613753868287016135e5565b9350506020613764868287016135e5565b925050604061377586828701613695565b9150509250925092565b6000806000806080858703121561379957613798614920565b5b60006137a7878288016135e5565b94505060206137b8878288016135e5565b93505060406137c987828801613695565b925050606085013567ffffffffffffffff8111156137ea576137e961491b565b5b6137f687828801613639565b91505092959194509250565b6000806040838503121561381957613818614920565b5b6000613827858286016135e5565b9250506020613838858286016135fa565b9150509250929050565b6000806040838503121561385957613858614920565b5b6000613867858286016135e5565b925050602061387885828601613695565b9150509250929050565b60006020828403121561389857613897614920565b5b60006138a68482850161360f565b91505092915050565b6000602082840312156138c5576138c4614920565b5b60006138d384828501613624565b91505092915050565b6000602082840312156138f2576138f1614920565b5b600082013567ffffffffffffffff8111156139105761390f61491b565b5b61391c84828501613667565b91505092915050565b60006020828403121561393b5761393a614920565b5b600061394984828501613695565b91505092915050565b60006020828403121561396857613967614920565b5b6000613976848285016136aa565b91505092915050565b61398881614639565b82525050565b61399781614639565b82525050565b6139a68161464b565b82525050565b60006139b78261445c565b6139c18185614472565b93506139d18185602086016146ec565b6139da81614925565b840191505092915050565b60006139f082614467565b6139fa818561448e565b9350613a0a8185602086016146ec565b613a1381614925565b840191505092915050565b6000613a2982614467565b613a33818561449f565b9350613a438185602086016146ec565b80840191505092915050565b6000613a5c60228361448e565b9150613a6782614936565b604082019050919050565b6000613a7f60268361448e565b9150613a8a82614985565b604082019050919050565b6000613aa2602a8361448e565b9150613aad826149d4565b604082019050919050565b6000613ac5602d8361448e565b9150613ad082614a23565b604082019050919050565b6000613ae860238361448e565b9150613af382614a72565b604082019050919050565b6000613b0b60258361448e565b9150613b1682614ac1565b604082019050919050565b6000613b2e60318361448e565b9150613b3982614b10565b604082019050919050565b6000613b5160128361448e565b9150613b5c82614b5f565b602082019050919050565b6000613b74601e8361448e565b9150613b7f82614b88565b602082019050919050565b6000613b9760398361448e565b9150613ba282614bb1565b604082019050919050565b6000613bba602b8361448e565b9150613bc582614c00565b604082019050919050565b6000613bdd60128361448e565b9150613be882614c4f565b602082019050919050565b6000613c0060268361448e565b9150613c0b82614c78565b604082019050919050565b6000613c2360208361448e565b9150613c2e82614cc7565b602082019050919050565b6000613c46602f8361448e565b9150613c5182614cf0565b604082019050919050565b6000613c69601a8361448e565b9150613c7482614d3f565b602082019050919050565b6000613c8c60328361448e565b9150613c9782614d68565b604082019050919050565b6000613caf601d8361448e565b9150613cba82614db7565b602082019050919050565b6000613cd260228361448e565b9150613cdd82614de0565b604082019050919050565b6000613cf5600083614483565b9150613d0082614e2f565b600082019050919050565b6000613d1860108361448e565b9150613d2382614e32565b602082019050919050565b6000613d3b60338361448e565b9150613d4682614e5b565b604082019050919050565b6000613d5e60168361448e565b9150613d6982614eaa565b602082019050919050565b6000613d81601d8361448e565b9150613d8c82614ed3565b602082019050919050565b6000613da460218361448e565b9150613daf82614efc565b604082019050919050565b6000613dc760168361448e565b9150613dd282614f4b565b602082019050919050565b6000613dea602e8361448e565b9150613df582614f74565b604082019050919050565b6000613e0d601f8361448e565b9150613e1882614fc3565b602082019050919050565b6000613e30602f8361448e565b9150613e3b82614fec565b604082019050919050565b6000613e53602d8361448e565b9150613e5e8261503b565b604082019050919050565b6000613e7660228361448e565b9150613e818261508a565b604082019050919050565b604082016000820151613ea2600085018261397f565b506020820151613eb56020850182613eca565b50505050565b613ec4816146bf565b82525050565b613ed3816146c9565b82525050565b6000613ee58285613a1e565b9150613ef18284613a1e565b91508190509392505050565b6000613f0882613ce8565b9150819050919050565b6000602082019050613f27600083018461398e565b92915050565b6000608082019050613f42600083018761398e565b613f4f602083018661398e565b613f5c6040830185613ebb565b8181036060830152613f6e81846139ac565b905095945050505050565b6000604082019050613f8e600083018561398e565b613f9b6020830184613ebb565b9392505050565b6000602082019050613fb7600083018461399d565b92915050565b60006020820190508181036000830152613fd781846139e5565b905092915050565b60006020820190508181036000830152613ff881613a4f565b9050919050565b6000602082019050818103600083015261401881613a72565b9050919050565b6000602082019050818103600083015261403881613a95565b9050919050565b6000602082019050818103600083015261405881613ab8565b9050919050565b6000602082019050818103600083015261407881613adb565b9050919050565b6000602082019050818103600083015261409881613afe565b9050919050565b600060208201905081810360008301526140b881613b21565b9050919050565b600060208201905081810360008301526140d881613b44565b9050919050565b600060208201905081810360008301526140f881613b67565b9050919050565b6000602082019050818103600083015261411881613b8a565b9050919050565b6000602082019050818103600083015261413881613bad565b9050919050565b6000602082019050818103600083015261415881613bd0565b9050919050565b6000602082019050818103600083015261417881613bf3565b9050919050565b6000602082019050818103600083015261419881613c16565b9050919050565b600060208201905081810360008301526141b881613c39565b9050919050565b600060208201905081810360008301526141d881613c5c565b9050919050565b600060208201905081810360008301526141f881613c7f565b9050919050565b6000602082019050818103600083015261421881613ca2565b9050919050565b6000602082019050818103600083015261423881613cc5565b9050919050565b6000602082019050818103600083015261425881613d0b565b9050919050565b6000602082019050818103600083015261427881613d2e565b9050919050565b6000602082019050818103600083015261429881613d51565b9050919050565b600060208201905081810360008301526142b881613d74565b9050919050565b600060208201905081810360008301526142d881613d97565b9050919050565b600060208201905081810360008301526142f881613dba565b9050919050565b6000602082019050818103600083015261431881613ddd565b9050919050565b6000602082019050818103600083015261433881613e00565b9050919050565b6000602082019050818103600083015261435881613e23565b9050919050565b6000602082019050818103600083015261437881613e46565b9050919050565b6000602082019050818103600083015261439881613e69565b9050919050565b60006040820190506143b46000830184613e8c565b92915050565b60006020820190506143cf6000830184613ebb565b92915050565b60006143df6143f0565b90506143eb828261477b565b919050565b6000604051905090565b600067ffffffffffffffff821115614415576144146148e2565b5b61441e82614925565b9050602081019050919050565b600067ffffffffffffffff821115614446576144456148e2565b5b61444f82614925565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006144b582614683565b91506144c083614683565b9250826fffffffffffffffffffffffffffffffff038211156144e5576144e4614826565b5b828201905092915050565b60006144fb826146bf565b9150614506836146bf565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561453b5761453a614826565b5b828201905092915050565b6000614551826146bf565b915061455c836146bf565b92508261456c5761456b614855565b5b828204905092915050565b6000614582826146bf565b915061458d836146bf565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156145c6576145c5614826565b5b828202905092915050565b60006145dc82614683565b91506145e783614683565b9250828210156145fa576145f9614826565b5b828203905092915050565b6000614610826146bf565b915061461b836146bf565b92508282101561462e5761462d614826565b5b828203905092915050565b60006146448261469f565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b60006fffffffffffffffffffffffffffffffff82169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600067ffffffffffffffff82169050919050565b82818337600083830152505050565b60005b8381101561470a5780820151818401526020810190506146ef565b83811115614719576000848401525b50505050565b600061472a826146bf565b9150600082141561473e5761473d614826565b5b600182039050919050565b6000600282049050600182168061476157607f821691505b6020821081141561477557614774614884565b5b50919050565b61478482614925565b810181811067ffffffffffffffff821117156147a3576147a26148e2565b5b80604052505050565b60006147b7826146bf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156147ea576147e9614826565b5b600182019050919050565b6000614800826146bf565b915061480b836146bf565b92508261481b5761481a614855565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231413a206f776e657220696e646578206f7574206f6620626f756e60008201527f6473000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206f776e657220717565727920666f72206e6f6e6578697360008201527f74656e7420746f6b656e00000000000000000000000000000000000000000000602082015250565b7f52657175697265206174206c65617374203520756e636c61696d65642042616260008201527f7920446f6f646c65204170657300000000000000000000000000000000000000602082015250565b7f455243373231413a20676c6f62616c20696e646578206f7574206f6620626f7560008201527f6e64730000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a207472616e7366657220746f20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231413a206e756d626572206d696e74656420717565727920666f7260008201527f20746865207a65726f2061646472657373000000000000000000000000000000602082015250565b7f53616c65206973206e6f74204163746976650000000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f455243373231413a20617070726f76652063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f76656420666f7220616c6c00000000000000602082015250565b7f455243373231413a2062616c616e636520717565727920666f7220746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b7f72656163686564206d617820737570706c790000000000000000000000000000600082015250565b7f455243373231413a207472616e736665722066726f6d20696e636f727265637460008201527f206f776e65720000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f766520746f2063616c6c6572000000000000600082015250565b7f455243373231413a207472616e736665722063616c6c6572206973206e6f742060008201527f6f776e6572206e6f7220617070726f7665640000000000000000000000000000602082015250565b7f4e6f7420656c69676961626c6520666f72206672656520636c61696d73000000600082015250565b7f455243373231413a20617070726f76616c20746f2063757272656e74206f776e60008201527f6572000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b7f455243373231413a207472616e7366657220746f206e6f6e204552433732315260008201527f6563656976657220696d706c656d656e74657200000000000000000000000000602082015250565b7f4e65656420746f2073656e64206d6f7265204554482e00000000000000000000600082015250565b7f455243373231413a20746f6b656e20616c7265616479206d696e746564000000600082015250565b7f455243373231413a206d696e7420746f20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b7f63616e206e6f74206d696e742074686973206d616e7900000000000000000000600082015250565b7f455243373231413a20756e61626c6520746f2067657420746f6b656e206f662060008201527f6f776e657220627920696e646578000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f455243373231413a20756e61626c6520746f2064657465726d696e652074686560008201527f206f776e6572206f6620746f6b656e0000000000000000000000000000000000602082015250565b7f455243373231413a20617070726f76656420717565727920666f72206e6f6e6560008201527f78697374656e7420746f6b656e00000000000000000000000000000000000000602082015250565b7f455243373231413a207175616e7469747920746f206d696e7420746f6f20686960008201527f6768000000000000000000000000000000000000000000000000000000000000602082015250565b6150e281614639565b81146150ed57600080fd5b50565b6150f98161464b565b811461510457600080fd5b50565b61511081614657565b811461511b57600080fd5b50565b615127816146bf565b811461513257600080fd5b5056fea264697066735822122038c345f5e839dca45d0a76b8d028806832526ec1696e7ebcd4d65ea9b969420c64736f6c63430008070033
Deployed Bytecode Sourcemap
19992:3842:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11309:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23751:80;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12881:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14082:204;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13698:379;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23589:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20635:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10279:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20575:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14765:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23509:76;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20167:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10560:744;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22958:176;;;;;;;;;;;;;:::i;:::-;;23138:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14912:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23674:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10378:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22482:98;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20945:73;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12758:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23433:72;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11684:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2768:103;;;;;;;;;;;;;:::i;:::-;;20245:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2545:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22807:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12980:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21730:397;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14291:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23240:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23327:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21024:700;;;;;;;;;;;;;:::i;:::-;;15074:311;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22134:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20088:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18204:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20525;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22696:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14572:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2880:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20299:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11309:370;11436:4;11481:25;11466:40;;;:11;:40;;;;:99;;;;11532:33;11517:48;;;:11;:48;;;;11466:99;:160;;;;11591:35;11576:50;;;:11;:50;;;;11466:160;:207;;;;11637:36;11661:11;11637:23;:36::i;:::-;11466:207;11452:221;;11309:370;;;:::o;23751:80::-;2690:12;:10;:12::i;:::-;2679:23;;:7;:5;:7::i;:::-;:23;;;2671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23810:15:::1;23820:1;23823;23810:9;:15::i;:::-;23751:80:::0;;:::o;12881:94::-;12935:13;12964:5;12957:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12881:94;:::o;14082:204::-;14150:7;14174:16;14182:7;14174;:16::i;:::-;14166:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14256:15;:24;14272:7;14256:24;;;;;;;;;;;;;;;;;;;;;14249:31;;14082:204;;;:::o;13698:379::-;13767:13;13783:24;13799:7;13783:15;:24::i;:::-;13767:40;;13828:5;13822:11;;:2;:11;;;;13814:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;13913:5;13897:21;;:12;:10;:12::i;:::-;:21;;;:62;;;;13922:37;13939:5;13946:12;:10;:12::i;:::-;13922:16;:37::i;:::-;13897:62;13881:153;;;;;;;;;;;;:::i;:::-;;;;;;;;;14043:28;14052:2;14056:7;14065:5;14043:8;:28::i;:::-;13760:317;13698:379;;:::o;23589:81::-;23632:7;23656:8;;23649:15;;23589:81;:::o;20635:69::-;;;;;;;;;;;;;:::o;10279:94::-;10332:7;10355:12;;10348:19;;10279:94;:::o;20575:22::-;;;;:::o;14765:142::-;14873:28;14883:4;14889:2;14893:7;14873:9;:28::i;:::-;14765:142;;;:::o;23509:76::-;2690:12;:10;:12::i;:::-;2679:23;;:7;:5;:7::i;:::-;:23;;;2671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23578:1:::1;23567:8;:12;;;;23509:76:::0;:::o;20167:34::-;;;;:::o;10560:744::-;10669:7;10704:16;10714:5;10704:9;:16::i;:::-;10696:5;:24;10688:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;10766:22;10791:13;:11;:13::i;:::-;10766:38;;10811:19;10841:25;10891:9;10886:350;10910:14;10906:1;:18;10886:350;;;10940:31;10974:11;:14;10986:1;10974:14;;;;;;;;;;;10940:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11027:1;11001:28;;:9;:14;;;:28;;;10997:89;;11062:9;:14;;;11042:34;;10997:89;11119:5;11098:26;;:17;:26;;;11094:135;;;11156:5;11141:11;:20;11137:59;;;11183:1;11176:8;;;;;;;;;11137:59;11206:13;;;;;:::i;:::-;;;;11094:135;10931:305;10926:3;;;;;:::i;:::-;;;;10886:350;;;;11242:56;;;;;;;;;;:::i;:::-;;;;;;;;10560:744;;;;;:::o;22958:176::-;2690:12;:10;:12::i;:::-;2679:23;;:7;:5;:7::i;:::-;:23;;;2671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;327:1:::1;473:7;;:19;;465:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;327:1;534:7;:18;;;;23018:12:::2;23036:10;:15;;23059:21;23036:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23017:68;;;23100:7;23092:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;23010:124;283:1:::1;577:7;:22;;;;22958:176::o:0;23138:98::-;2690:12;:10;:12::i;:::-;2679:23;;:7;:5;:7::i;:::-;:23;;;2671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23221:9:::1;23213:5;:17;;;;23138:98:::0;:::o;14912:157::-;15024:39;15041:4;15047:2;15051:7;15024:39;;;;;;;;;;;;:16;:39::i;:::-;14912:157;;;:::o;23674:73::-;23714:4;23735:6;;23728:13;;23674:73;:::o;10378:177::-;10445:7;10477:13;:11;:13::i;:::-;10469:5;:21;10461:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10544:5;10537:12;;10378:177;;;:::o;22482:98::-;2690:12;:10;:12::i;:::-;2679:23;;:7;:5;:7::i;:::-;:23;;;2671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;22567:7:::1;22551:13;:23;;;;;;;;;;;;:::i;:::-;;22482:98:::0;:::o;20945:73::-;2690:12;:10;:12::i;:::-;2679:23;;:7;:5;:7::i;:::-;:23;;;2671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21012:1:::1;21000:9;;:13;;;;;;;;;;;;;;;;;;20945:73:::0;:::o;12758:118::-;12822:7;12845:20;12857:7;12845:11;:20::i;:::-;:25;;;12838:32;;12758:118;;;:::o;23433:72::-;2690:12;:10;:12::i;:::-;2679:23;;:7;:5;:7::i;:::-;:23;;;2671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23498:1:::1;23489:6;:10;;;;23433:72:::0;:::o;11684:211::-;11748:7;11789:1;11772:19;;:5;:19;;;;11764:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;11861:12;:19;11874:5;11861:19;;;;;;;;;;;;;;;:27;;;;;;;;;;;;11853:36;;11846:43;;11684:211;;;:::o;2768:103::-;2690:12;:10;:12::i;:::-;2679:23;;:7;:5;:7::i;:::-;:23;;;2671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2833:30:::1;2860:1;2833:18;:30::i;:::-;2768:103::o:0;20245:34::-;;;;:::o;2545:87::-;2591:7;2618:6;;;;;;;;;;;2611:13;;2545:87;:::o;22807:147::-;22888:21;;:::i;:::-;22928:20;22940:7;22928:11;:20::i;:::-;22921:27;;22807:147;;;:::o;12980:98::-;13036:13;13065:7;13058:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12980:98;:::o;21730:397::-;20883:10;20870:23;;:9;:23;;;20862:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;21818:1:::1;21808:6;;:11;21799:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;21909:8;;20383:4;21886:31;;;;:::i;:::-;21874:8;21858:13;:11;:13::i;:::-;:24;;;;:::i;:::-;:59;;21850:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;21969:17;;21957:8;:29;;21947:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;22048:8;22040:5;;:16;;;;:::i;:::-;22027:9;:29;;22019:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;22090:31;22100:10;22112:8;22090:9;:31::i;:::-;21730:397:::0;:::o;14291:274::-;14394:12;:10;:12::i;:::-;14382:24;;:8;:24;;;;14374:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;14491:8;14446:18;:32;14465:12;:10;:12::i;:::-;14446:32;;;;;;;;;;;;;;;:42;14479:8;14446:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;14540:8;14511:48;;14526:12;:10;:12::i;:::-;14511:48;;;14550:8;14511:48;;;;;;:::i;:::-;;;;;;;;14291:274;;:::o;23240:83::-;23284:7;23312:5;;23305:12;;23240:83;:::o;23327:102::-;2690:12;:10;:12::i;:::-;2679:23;;:7;:5;:7::i;:::-;:23;;;2671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23422:1:::1;23402:17;:21;;;;23327:102:::0;:::o;21024:700::-;21063:13;21097:9;;;;;;;;;;;21079:38;;;21118:10;21079:50;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21063:66;;21140:10;21179:1;21171:5;:9;21163:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21246:13;21241:311;21273:5;21265;:13;21241:311;;;21308:14;:83;21341:9;;;;;;;;;;;21323:48;;;21372:10;21384:5;21323:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21308:83;;;;;;;;;;;;;;;;;;;;;21304:237;;21411:7;;;;;:::i;:::-;;;;21521:4;21437:14;:83;21470:9;;;;;;;;;;;21452:48;;;21501:10;21513:5;21452:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21437:83;;;;;;;;;;;;:88;;;;;;;;;;;;;;;;;;21304:237;21280:7;;;;;:::i;:::-;;;;21241:311;;;;21579:1;21570:5;:10;;21562:51;;;;;;;;;;;;:::i;:::-;;;;;;;;;21635:1;21627:5;:9;21624:92;;;21638:24;21648:10;21660:1;21638:9;:24::i;:::-;21624:92;;;21689:1;21681:5;:9;21678:38;;;21692:24;21702:10;21714:1;21692:9;:24::i;:::-;21678:38;21624:92;21052:672;;21024:700::o;15074:311::-;15211:28;15221:4;15227:2;15231:7;15211:9;:28::i;:::-;15262:48;15285:4;15291:2;15295:7;15304:5;15262:22;:48::i;:::-;15246:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;15074:311;;;;:::o;22134:342::-;22207:13;22237:16;22245:7;22237;:16::i;:::-;22229:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;22311:21;22335:10;:8;:10::i;:::-;22311:34;;22390:1;22372:7;22366:21;:25;:104;;;;;;;;;;;;;;;;;22427:7;22436:18;:7;:16;:18::i;:::-;22410:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;22366:104;22352:118;;;22134:342;;;:::o;20088:37::-;;;;:::o;18204:43::-;;;;:::o;20525:::-;;;;;;;;;;;;;;;;;;;;;;:::o;22696:107::-;22754:7;22777:20;22791:5;22777:13;:20::i;:::-;22770:27;;22696:107;;;:::o;14572:186::-;14694:4;14717:18;:25;14736:5;14717:25;;;;;;;;;;;;;;;:35;14743:8;14717:35;;;;;;;;;;;;;;;;;;;;;;;;;14710:42;;14572:186;;;;:::o;2880:201::-;2690:12;:10;:12::i;:::-;2679:23;;:7;:5;:7::i;:::-;:23;;;2671:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2989:1:::1;2969:22;;:8;:22;;;;2961:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3045:28;3064:8;3045:18;:28::i;:::-;2880:201:::0;:::o;20299:29::-;;;;:::o;7198:157::-;7283:4;7322:25;7307:40;;;:11;:40;;;;7300:47;;7198:157;;;:::o;2088:98::-;2141:7;2168:10;2161:17;;2088:98;:::o;15501:::-;15566:27;15576:2;15580:8;15566:27;;;;;;;;;;;;:9;:27::i;:::-;15501:98;;:::o;15390:105::-;15447:4;15477:12;;15467:7;:22;15460:29;;15390:105;;;:::o;18026:172::-;18150:2;18123:15;:24;18139:7;18123:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;18184:7;18180:2;18164:28;;18173:5;18164:28;;;;;;;;;;;;18026:172;;;:::o;16761:1260::-;16858:35;16896:20;16908:7;16896:11;:20::i;:::-;16858:58;;16925:22;16967:13;:18;;;16951:34;;:12;:10;:12::i;:::-;:34;;;:81;;;;17020:12;:10;:12::i;:::-;16996:36;;:20;17008:7;16996:11;:20::i;:::-;:36;;;16951:81;:142;;;;17043:50;17060:13;:18;;;17080:12;:10;:12::i;:::-;17043:16;:50::i;:::-;16951:142;16925:169;;17119:17;17103:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17251:4;17229:26;;:13;:18;;;:26;;;17213:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;17340:1;17326:16;;:2;:16;;;;17318:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;17393:43;17415:4;17421:2;17425:7;17434:1;17393:21;:43::i;:::-;17444:49;17461:1;17465:7;17474:13;:18;;;17444:8;:49::i;:::-;17532:1;17502:12;:18;17515:4;17502:18;;;;;;;;;;;;;;;:26;;;:31;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17568:1;17540:12;:16;17553:2;17540:16;;;;;;;;;;;;;;;:24;;;:29;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;17599:43;;;;;;;;17614:2;17599:43;;;;;;17625:15;17599:43;;;;;17576:11;:20;17588:7;17576:20;;;;;;;;;;;:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17650:19;17682:1;17672:7;:11;;;;:::i;:::-;17650:33;;17735:1;17694:43;;:11;:24;17706:11;17694:24;;;;;;;;;;;:29;;;;;;;;;;;;:43;;;17690:236;;;17752:20;17760:11;17752:7;:20::i;:::-;17748:171;;;17812:97;;;;;;;;17839:13;:18;;;17812:97;;;;;;17870:13;:28;;;17812:97;;;;;17785:11;:24;17797:11;17785:24;;;;;;;;;;;:124;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17748:171;17690:236;17958:7;17954:2;17939:27;;17948:4;17939:27;;;;;;;;;;;;17973:42;17994:4;18000:2;18004:7;18013:1;17973:20;:42::i;:::-;16851:1170;;;16761:1260;;;:::o;12147:606::-;12223:21;;:::i;:::-;12264:16;12272:7;12264;:16::i;:::-;12256:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12336:26;12384:12;12373:7;:23;12369:93;;12453:1;12438:12;12428:7;:22;;;;:::i;:::-;:26;;;;:::i;:::-;12407:47;;12369:93;12475:12;12490:7;12475:22;;12470:212;12507:18;12499:4;:26;12470:212;;12544:31;12578:11;:17;12590:4;12578:17;;;;;;;;;;;12544:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12634:1;12608:28;;:9;:14;;;:28;;;12604:71;;12656:9;12649:16;;;;;;;12604:71;12535:147;12527:6;;;;;:::i;:::-;;;;12470:212;;;;12690:57;;;;;;;;;;:::i;:::-;;;;;;;;12147:606;;;;:::o;3090:191::-;3164:16;3183:6;;;;;;;;;;;3164:25;;3209:8;3200:6;;:17;;;;;;;;;;;;;;;;;;3264:8;3233:40;;3254:8;3233:40;;;;;;;;;;;;3153:128;3090:191;:::o;19004:690::-;19141:4;19158:15;:2;:13;;;:15::i;:::-;19154:535;;;19213:2;19197:36;;;19234:12;:10;:12::i;:::-;19248:4;19254:7;19263:5;19197:72;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;19184:464;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19445:1;19428:6;:13;:18;19424:215;;;19461:61;;;;;;;;;;:::i;:::-;;;;;;;;19424:215;19607:6;19601:13;19592:6;19588:2;19584:15;19577:38;19184:464;19329:45;;;19319:55;;;:6;:55;;;;19312:62;;;;;19154:535;19677:4;19670:11;;19004:690;;;;;;;:::o;22584:108::-;22644:13;22673;22666:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22584:108;:::o;705:533::-;761:13;801:1;792:5;:10;788:53;;;819:10;;;;;;;;;;;;;;;;;;;;;788:53;851:12;866:5;851:20;;882:14;907:78;922:1;914:4;:9;907:78;;940:8;;;;;:::i;:::-;;;;971:2;963:10;;;;;:::i;:::-;;;907:78;;;995:19;1027:6;1017:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;995:39;;1045:154;1061:1;1052:5;:10;1045:154;;1089:1;1079:11;;;;;:::i;:::-;;;1156:2;1148:5;:10;;;;:::i;:::-;1135:2;:24;;;;:::i;:::-;1122:39;;1105:6;1112;1105:14;;;;;;;;:::i;:::-;;;;;:56;;;;;;;;;;;1185:2;1176:11;;;;;:::i;:::-;;;1045:154;;;1223:6;1209:21;;;;;705:533;;;;:::o;11901:240::-;11962:7;12011:1;11994:19;;:5;:19;;;;11978:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;12102:12;:19;12115:5;12102:19;;;;;;;;;;;;;;;:32;;;;;;;;;;;;12094:41;;12087:48;;11901:240;;;:::o;15604:1152::-;15709:20;15732:12;;15709:35;;15773:1;15759:16;;:2;:16;;;;15751:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;15830:21;15838:12;15830:7;:21::i;:::-;15829:22;15821:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15912:12;15900:8;:24;;15892:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15972:61;16002:1;16006:2;16010:12;16024:8;15972:21;:61::i;:::-;16042:30;16075:12;:16;16088:2;16075:16;;;;;;;;;;;;;;;16042:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16117:119;;;;;;;;16167:8;16137:11;:19;;;:39;;;;:::i;:::-;16117:119;;;;;;16220:8;16185:11;:24;;;:44;;;;:::i;:::-;16117:119;;;;;16098:12;:16;16111:2;16098:16;;;;;;;;;;;;;;;:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16271:43;;;;;;;;16286:2;16271:43;;;;;;16297:15;16271:43;;;;;16243:11;:25;16255:12;16243:25;;;;;;;;;;;:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16323:20;16346:12;16323:35;;16372:9;16367:281;16391:8;16387:1;:12;16367:281;;;16445:12;16441:2;16420:38;;16437:1;16420:38;;;;;;;;;;;;16485:59;16516:1;16520:2;16524:12;16538:5;16485:22;:59::i;:::-;16467:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;16626:14;;;;;:::i;:::-;;;;16401:3;;;;;:::i;:::-;;;;16367:281;;;;16671:12;16656;:27;;;;16690:60;16719:1;16723:2;16727:12;16741:8;16690:20;:60::i;:::-;15702:1054;;;15604:1152;;;:::o;19699:141::-;;;;;:::o;19845:140::-;;;;;:::o;3313:197::-;3373:4;3391:12;3458:7;3446:20;3438:28;;3501:1;3494:4;:8;3487:15;;;3313:197;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:410:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:112;;;280:79;;:::i;:::-;249:112;370:41;404:6;399:3;394;370:41;:::i;:::-;90:327;7:410;;;;;:::o;423:412::-;501:5;526:66;542:49;584:6;542:49;:::i;:::-;526:66;:::i;:::-;517:75;;615:6;608:5;601:21;653:4;646:5;642:16;691:3;682:6;677:3;673:16;670:25;667:112;;;698:79;;:::i;:::-;667:112;788:41;822:6;817:3;812;788:41;:::i;:::-;507:328;423:412;;;;;:::o;841:139::-;887:5;925:6;912:20;903:29;;941:33;968:5;941:33;:::i;:::-;841:139;;;;:::o;986:133::-;1029:5;1067:6;1054:20;1045:29;;1083:30;1107:5;1083:30;:::i;:::-;986:133;;;;:::o;1125:137::-;1170:5;1208:6;1195:20;1186:29;;1224:32;1250:5;1224:32;:::i;:::-;1125:137;;;;:::o;1268:141::-;1324:5;1355:6;1349:13;1340:22;;1371:32;1397:5;1371:32;:::i;:::-;1268:141;;;;:::o;1428:338::-;1483:5;1532:3;1525:4;1517:6;1513:17;1509:27;1499:122;;1540:79;;:::i;:::-;1499:122;1657:6;1644:20;1682:78;1756:3;1748:6;1741:4;1733:6;1729:17;1682:78;:::i;:::-;1673:87;;1489:277;1428:338;;;;:::o;1786:340::-;1842:5;1891:3;1884:4;1876:6;1872:17;1868:27;1858:122;;1899:79;;:::i;:::-;1858:122;2016:6;2003:20;2041:79;2116:3;2108:6;2101:4;2093:6;2089:17;2041:79;:::i;:::-;2032:88;;1848:278;1786:340;;;;:::o;2132:139::-;2178:5;2216:6;2203:20;2194:29;;2232:33;2259:5;2232:33;:::i;:::-;2132:139;;;;:::o;2277:143::-;2334:5;2365:6;2359:13;2350:22;;2381:33;2408:5;2381:33;:::i;:::-;2277:143;;;;:::o;2426:329::-;2485:6;2534:2;2522:9;2513:7;2509:23;2505:32;2502:119;;;2540:79;;:::i;:::-;2502:119;2660:1;2685:53;2730:7;2721:6;2710:9;2706:22;2685:53;:::i;:::-;2675:63;;2631:117;2426:329;;;;:::o;2761:474::-;2829:6;2837;2886:2;2874:9;2865:7;2861:23;2857:32;2854:119;;;2892:79;;:::i;:::-;2854:119;3012:1;3037:53;3082:7;3073:6;3062:9;3058:22;3037:53;:::i;:::-;3027:63;;2983:117;3139:2;3165:53;3210:7;3201:6;3190:9;3186:22;3165:53;:::i;:::-;3155:63;;3110:118;2761:474;;;;;:::o;3241:619::-;3318:6;3326;3334;3383:2;3371:9;3362:7;3358:23;3354:32;3351:119;;;3389:79;;:::i;:::-;3351:119;3509:1;3534:53;3579:7;3570:6;3559:9;3555:22;3534:53;:::i;:::-;3524:63;;3480:117;3636:2;3662:53;3707:7;3698:6;3687:9;3683:22;3662:53;:::i;:::-;3652:63;;3607:118;3764:2;3790:53;3835:7;3826:6;3815:9;3811:22;3790:53;:::i;:::-;3780:63;;3735:118;3241:619;;;;;:::o;3866:943::-;3961:6;3969;3977;3985;4034:3;4022:9;4013:7;4009:23;4005:33;4002:120;;;4041:79;;:::i;:::-;4002:120;4161:1;4186:53;4231:7;4222:6;4211:9;4207:22;4186:53;:::i;:::-;4176:63;;4132:117;4288:2;4314:53;4359:7;4350:6;4339:9;4335:22;4314:53;:::i;:::-;4304:63;;4259:118;4416:2;4442:53;4487:7;4478:6;4467:9;4463:22;4442:53;:::i;:::-;4432:63;;4387:118;4572:2;4561:9;4557:18;4544:32;4603:18;4595:6;4592:30;4589:117;;;4625:79;;:::i;:::-;4589:117;4730:62;4784:7;4775:6;4764:9;4760:22;4730:62;:::i;:::-;4720:72;;4515:287;3866:943;;;;;;;:::o;4815:468::-;4880:6;4888;4937:2;4925:9;4916:7;4912:23;4908:32;4905:119;;;4943:79;;:::i;:::-;4905:119;5063:1;5088:53;5133:7;5124:6;5113:9;5109:22;5088:53;:::i;:::-;5078:63;;5034:117;5190:2;5216:50;5258:7;5249:6;5238:9;5234:22;5216:50;:::i;:::-;5206:60;;5161:115;4815:468;;;;;:::o;5289:474::-;5357:6;5365;5414:2;5402:9;5393:7;5389:23;5385:32;5382:119;;;5420:79;;:::i;:::-;5382:119;5540:1;5565:53;5610:7;5601:6;5590:9;5586:22;5565:53;:::i;:::-;5555:63;;5511:117;5667:2;5693:53;5738:7;5729:6;5718:9;5714:22;5693:53;:::i;:::-;5683:63;;5638:118;5289:474;;;;;:::o;5769:327::-;5827:6;5876:2;5864:9;5855:7;5851:23;5847:32;5844:119;;;5882:79;;:::i;:::-;5844:119;6002:1;6027:52;6071:7;6062:6;6051:9;6047:22;6027:52;:::i;:::-;6017:62;;5973:116;5769:327;;;;:::o;6102:349::-;6171:6;6220:2;6208:9;6199:7;6195:23;6191:32;6188:119;;;6226:79;;:::i;:::-;6188:119;6346:1;6371:63;6426:7;6417:6;6406:9;6402:22;6371:63;:::i;:::-;6361:73;;6317:127;6102:349;;;;:::o;6457:509::-;6526:6;6575:2;6563:9;6554:7;6550:23;6546:32;6543:119;;;6581:79;;:::i;:::-;6543:119;6729:1;6718:9;6714:17;6701:31;6759:18;6751:6;6748:30;6745:117;;;6781:79;;:::i;:::-;6745:117;6886:63;6941:7;6932:6;6921:9;6917:22;6886:63;:::i;:::-;6876:73;;6672:287;6457:509;;;;:::o;6972:329::-;7031:6;7080:2;7068:9;7059:7;7055:23;7051:32;7048:119;;;7086:79;;:::i;:::-;7048:119;7206:1;7231:53;7276:7;7267:6;7256:9;7252:22;7231:53;:::i;:::-;7221:63;;7177:117;6972:329;;;;:::o;7307:351::-;7377:6;7426:2;7414:9;7405:7;7401:23;7397:32;7394:119;;;7432:79;;:::i;:::-;7394:119;7552:1;7577:64;7633:7;7624:6;7613:9;7609:22;7577:64;:::i;:::-;7567:74;;7523:128;7307:351;;;;:::o;7664:108::-;7741:24;7759:5;7741:24;:::i;:::-;7736:3;7729:37;7664:108;;:::o;7778:118::-;7865:24;7883:5;7865:24;:::i;:::-;7860:3;7853:37;7778:118;;:::o;7902:109::-;7983:21;7998:5;7983:21;:::i;:::-;7978:3;7971:34;7902:109;;:::o;8017:360::-;8103:3;8131:38;8163:5;8131:38;:::i;:::-;8185:70;8248:6;8243:3;8185:70;:::i;:::-;8178:77;;8264:52;8309:6;8304:3;8297:4;8290:5;8286:16;8264:52;:::i;:::-;8341:29;8363:6;8341:29;:::i;:::-;8336:3;8332:39;8325:46;;8107:270;8017:360;;;;:::o;8383:364::-;8471:3;8499:39;8532:5;8499:39;:::i;:::-;8554:71;8618:6;8613:3;8554:71;:::i;:::-;8547:78;;8634:52;8679:6;8674:3;8667:4;8660:5;8656:16;8634:52;:::i;:::-;8711:29;8733:6;8711:29;:::i;:::-;8706:3;8702:39;8695:46;;8475:272;8383:364;;;;:::o;8753:377::-;8859:3;8887:39;8920:5;8887:39;:::i;:::-;8942:89;9024:6;9019:3;8942:89;:::i;:::-;8935:96;;9040:52;9085:6;9080:3;9073:4;9066:5;9062:16;9040:52;:::i;:::-;9117:6;9112:3;9108:16;9101:23;;8863:267;8753:377;;;;:::o;9136:366::-;9278:3;9299:67;9363:2;9358:3;9299:67;:::i;:::-;9292:74;;9375:93;9464:3;9375:93;:::i;:::-;9493:2;9488:3;9484:12;9477:19;;9136:366;;;:::o;9508:::-;9650:3;9671:67;9735:2;9730:3;9671:67;:::i;:::-;9664:74;;9747:93;9836:3;9747:93;:::i;:::-;9865:2;9860:3;9856:12;9849:19;;9508:366;;;:::o;9880:::-;10022:3;10043:67;10107:2;10102:3;10043:67;:::i;:::-;10036:74;;10119:93;10208:3;10119:93;:::i;:::-;10237:2;10232:3;10228:12;10221:19;;9880:366;;;:::o;10252:::-;10394:3;10415:67;10479:2;10474:3;10415:67;:::i;:::-;10408:74;;10491:93;10580:3;10491:93;:::i;:::-;10609:2;10604:3;10600:12;10593:19;;10252:366;;;:::o;10624:::-;10766:3;10787:67;10851:2;10846:3;10787:67;:::i;:::-;10780:74;;10863:93;10952:3;10863:93;:::i;:::-;10981:2;10976:3;10972:12;10965:19;;10624:366;;;:::o;10996:::-;11138:3;11159:67;11223:2;11218:3;11159:67;:::i;:::-;11152:74;;11235:93;11324:3;11235:93;:::i;:::-;11353:2;11348:3;11344:12;11337:19;;10996:366;;;:::o;11368:::-;11510:3;11531:67;11595:2;11590:3;11531:67;:::i;:::-;11524:74;;11607:93;11696:3;11607:93;:::i;:::-;11725:2;11720:3;11716:12;11709:19;;11368:366;;;:::o;11740:::-;11882:3;11903:67;11967:2;11962:3;11903:67;:::i;:::-;11896:74;;11979:93;12068:3;11979:93;:::i;:::-;12097:2;12092:3;12088:12;12081:19;;11740:366;;;:::o;12112:::-;12254:3;12275:67;12339:2;12334:3;12275:67;:::i;:::-;12268:74;;12351:93;12440:3;12351:93;:::i;:::-;12469:2;12464:3;12460:12;12453:19;;12112:366;;;:::o;12484:::-;12626:3;12647:67;12711:2;12706:3;12647:67;:::i;:::-;12640:74;;12723:93;12812:3;12723:93;:::i;:::-;12841:2;12836:3;12832:12;12825:19;;12484:366;;;:::o;12856:::-;12998:3;13019:67;13083:2;13078:3;13019:67;:::i;:::-;13012:74;;13095:93;13184:3;13095:93;:::i;:::-;13213:2;13208:3;13204:12;13197:19;;12856:366;;;:::o;13228:::-;13370:3;13391:67;13455:2;13450:3;13391:67;:::i;:::-;13384:74;;13467:93;13556:3;13467:93;:::i;:::-;13585:2;13580:3;13576:12;13569:19;;13228:366;;;:::o;13600:::-;13742:3;13763:67;13827:2;13822:3;13763:67;:::i;:::-;13756:74;;13839:93;13928:3;13839:93;:::i;:::-;13957:2;13952:3;13948:12;13941:19;;13600:366;;;:::o;13972:::-;14114:3;14135:67;14199:2;14194:3;14135:67;:::i;:::-;14128:74;;14211:93;14300:3;14211:93;:::i;:::-;14329:2;14324:3;14320:12;14313:19;;13972:366;;;:::o;14344:::-;14486:3;14507:67;14571:2;14566:3;14507:67;:::i;:::-;14500:74;;14583:93;14672:3;14583:93;:::i;:::-;14701:2;14696:3;14692:12;14685:19;;14344:366;;;:::o;14716:::-;14858:3;14879:67;14943:2;14938:3;14879:67;:::i;:::-;14872:74;;14955:93;15044:3;14955:93;:::i;:::-;15073:2;15068:3;15064:12;15057:19;;14716:366;;;:::o;15088:::-;15230:3;15251:67;15315:2;15310:3;15251:67;:::i;:::-;15244:74;;15327:93;15416:3;15327:93;:::i;:::-;15445:2;15440:3;15436:12;15429:19;;15088:366;;;:::o;15460:::-;15602:3;15623:67;15687:2;15682:3;15623:67;:::i;:::-;15616:74;;15699:93;15788:3;15699:93;:::i;:::-;15817:2;15812:3;15808:12;15801:19;;15460:366;;;:::o;15832:::-;15974:3;15995:67;16059:2;16054:3;15995:67;:::i;:::-;15988:74;;16071:93;16160:3;16071:93;:::i;:::-;16189:2;16184:3;16180:12;16173:19;;15832:366;;;:::o;16204:398::-;16363:3;16384:83;16465:1;16460:3;16384:83;:::i;:::-;16377:90;;16476:93;16565:3;16476:93;:::i;:::-;16594:1;16589:3;16585:11;16578:18;;16204:398;;;:::o;16608:366::-;16750:3;16771:67;16835:2;16830:3;16771:67;:::i;:::-;16764:74;;16847:93;16936:3;16847:93;:::i;:::-;16965:2;16960:3;16956:12;16949:19;;16608:366;;;:::o;16980:::-;17122:3;17143:67;17207:2;17202:3;17143:67;:::i;:::-;17136:74;;17219:93;17308:3;17219:93;:::i;:::-;17337:2;17332:3;17328:12;17321:19;;16980:366;;;:::o;17352:::-;17494:3;17515:67;17579:2;17574:3;17515:67;:::i;:::-;17508:74;;17591:93;17680:3;17591:93;:::i;:::-;17709:2;17704:3;17700:12;17693:19;;17352:366;;;:::o;17724:::-;17866:3;17887:67;17951:2;17946:3;17887:67;:::i;:::-;17880:74;;17963:93;18052:3;17963:93;:::i;:::-;18081:2;18076:3;18072:12;18065:19;;17724:366;;;:::o;18096:::-;18238:3;18259:67;18323:2;18318:3;18259:67;:::i;:::-;18252:74;;18335:93;18424:3;18335:93;:::i;:::-;18453:2;18448:3;18444:12;18437:19;;18096:366;;;:::o;18468:::-;18610:3;18631:67;18695:2;18690:3;18631:67;:::i;:::-;18624:74;;18707:93;18796:3;18707:93;:::i;:::-;18825:2;18820:3;18816:12;18809:19;;18468:366;;;:::o;18840:::-;18982:3;19003:67;19067:2;19062:3;19003:67;:::i;:::-;18996:74;;19079:93;19168:3;19079:93;:::i;:::-;19197:2;19192:3;19188:12;19181:19;;18840:366;;;:::o;19212:::-;19354:3;19375:67;19439:2;19434:3;19375:67;:::i;:::-;19368:74;;19451:93;19540:3;19451:93;:::i;:::-;19569:2;19564:3;19560:12;19553:19;;19212:366;;;:::o;19584:::-;19726:3;19747:67;19811:2;19806:3;19747:67;:::i;:::-;19740:74;;19823:93;19912:3;19823:93;:::i;:::-;19941:2;19936:3;19932:12;19925:19;;19584:366;;;:::o;19956:::-;20098:3;20119:67;20183:2;20178:3;20119:67;:::i;:::-;20112:74;;20195:93;20284:3;20195:93;:::i;:::-;20313:2;20308:3;20304:12;20297:19;;19956:366;;;:::o;20328:::-;20470:3;20491:67;20555:2;20550:3;20491:67;:::i;:::-;20484:74;;20567:93;20656:3;20567:93;:::i;:::-;20685:2;20680:3;20676:12;20669:19;;20328:366;;;:::o;20770:527::-;20929:4;20924:3;20920:14;21016:4;21009:5;21005:16;20999:23;21035:63;21092:4;21087:3;21083:14;21069:12;21035:63;:::i;:::-;20944:164;21200:4;21193:5;21189:16;21183:23;21219:61;21274:4;21269:3;21265:14;21251:12;21219:61;:::i;:::-;21118:172;20898:399;20770:527;;:::o;21303:118::-;21390:24;21408:5;21390:24;:::i;:::-;21385:3;21378:37;21303:118;;:::o;21427:105::-;21502:23;21519:5;21502:23;:::i;:::-;21497:3;21490:36;21427:105;;:::o;21538:435::-;21718:3;21740:95;21831:3;21822:6;21740:95;:::i;:::-;21733:102;;21852:95;21943:3;21934:6;21852:95;:::i;:::-;21845:102;;21964:3;21957:10;;21538:435;;;;;:::o;21979:379::-;22163:3;22185:147;22328:3;22185:147;:::i;:::-;22178:154;;22349:3;22342:10;;21979:379;;;:::o;22364:222::-;22457:4;22495:2;22484:9;22480:18;22472:26;;22508:71;22576:1;22565:9;22561:17;22552:6;22508:71;:::i;:::-;22364:222;;;;:::o;22592:640::-;22787:4;22825:3;22814:9;22810:19;22802:27;;22839:71;22907:1;22896:9;22892:17;22883:6;22839:71;:::i;:::-;22920:72;22988:2;22977:9;22973:18;22964:6;22920:72;:::i;:::-;23002;23070:2;23059:9;23055:18;23046:6;23002:72;:::i;:::-;23121:9;23115:4;23111:20;23106:2;23095:9;23091:18;23084:48;23149:76;23220:4;23211:6;23149:76;:::i;:::-;23141:84;;22592:640;;;;;;;:::o;23238:332::-;23359:4;23397:2;23386:9;23382:18;23374:26;;23410:71;23478:1;23467:9;23463:17;23454:6;23410:71;:::i;:::-;23491:72;23559:2;23548:9;23544:18;23535:6;23491:72;:::i;:::-;23238:332;;;;;:::o;23576:210::-;23663:4;23701:2;23690:9;23686:18;23678:26;;23714:65;23776:1;23765:9;23761:17;23752:6;23714:65;:::i;:::-;23576:210;;;;:::o;23792:313::-;23905:4;23943:2;23932:9;23928:18;23920:26;;23992:9;23986:4;23982:20;23978:1;23967:9;23963:17;23956:47;24020:78;24093:4;24084:6;24020:78;:::i;:::-;24012:86;;23792:313;;;;:::o;24111:419::-;24277:4;24315:2;24304:9;24300:18;24292:26;;24364:9;24358:4;24354:20;24350:1;24339:9;24335:17;24328:47;24392:131;24518:4;24392:131;:::i;:::-;24384:139;;24111:419;;;:::o;24536:::-;24702:4;24740:2;24729:9;24725:18;24717:26;;24789:9;24783:4;24779:20;24775:1;24764:9;24760:17;24753:47;24817:131;24943:4;24817:131;:::i;:::-;24809:139;;24536:419;;;:::o;24961:::-;25127:4;25165:2;25154:9;25150:18;25142:26;;25214:9;25208:4;25204:20;25200:1;25189:9;25185:17;25178:47;25242:131;25368:4;25242:131;:::i;:::-;25234:139;;24961:419;;;:::o;25386:::-;25552:4;25590:2;25579:9;25575:18;25567:26;;25639:9;25633:4;25629:20;25625:1;25614:9;25610:17;25603:47;25667:131;25793:4;25667:131;:::i;:::-;25659:139;;25386:419;;;:::o;25811:::-;25977:4;26015:2;26004:9;26000:18;25992:26;;26064:9;26058:4;26054:20;26050:1;26039:9;26035:17;26028:47;26092:131;26218:4;26092:131;:::i;:::-;26084:139;;25811:419;;;:::o;26236:::-;26402:4;26440:2;26429:9;26425:18;26417:26;;26489:9;26483:4;26479:20;26475:1;26464:9;26460:17;26453:47;26517:131;26643:4;26517:131;:::i;:::-;26509:139;;26236:419;;;:::o;26661:::-;26827:4;26865:2;26854:9;26850:18;26842:26;;26914:9;26908:4;26904:20;26900:1;26889:9;26885:17;26878:47;26942:131;27068:4;26942:131;:::i;:::-;26934:139;;26661:419;;;:::o;27086:::-;27252:4;27290:2;27279:9;27275:18;27267:26;;27339:9;27333:4;27329:20;27325:1;27314:9;27310:17;27303:47;27367:131;27493:4;27367:131;:::i;:::-;27359:139;;27086:419;;;:::o;27511:::-;27677:4;27715:2;27704:9;27700:18;27692:26;;27764:9;27758:4;27754:20;27750:1;27739:9;27735:17;27728:47;27792:131;27918:4;27792:131;:::i;:::-;27784:139;;27511:419;;;:::o;27936:::-;28102:4;28140:2;28129:9;28125:18;28117:26;;28189:9;28183:4;28179:20;28175:1;28164:9;28160:17;28153:47;28217:131;28343:4;28217:131;:::i;:::-;28209:139;;27936:419;;;:::o;28361:::-;28527:4;28565:2;28554:9;28550:18;28542:26;;28614:9;28608:4;28604:20;28600:1;28589:9;28585:17;28578:47;28642:131;28768:4;28642:131;:::i;:::-;28634:139;;28361:419;;;:::o;28786:::-;28952:4;28990:2;28979:9;28975:18;28967:26;;29039:9;29033:4;29029:20;29025:1;29014:9;29010:17;29003:47;29067:131;29193:4;29067:131;:::i;:::-;29059:139;;28786:419;;;:::o;29211:::-;29377:4;29415:2;29404:9;29400:18;29392:26;;29464:9;29458:4;29454:20;29450:1;29439:9;29435:17;29428:47;29492:131;29618:4;29492:131;:::i;:::-;29484:139;;29211:419;;;:::o;29636:::-;29802:4;29840:2;29829:9;29825:18;29817:26;;29889:9;29883:4;29879:20;29875:1;29864:9;29860:17;29853:47;29917:131;30043:4;29917:131;:::i;:::-;29909:139;;29636:419;;;:::o;30061:::-;30227:4;30265:2;30254:9;30250:18;30242:26;;30314:9;30308:4;30304:20;30300:1;30289:9;30285:17;30278:47;30342:131;30468:4;30342:131;:::i;:::-;30334:139;;30061:419;;;:::o;30486:::-;30652:4;30690:2;30679:9;30675:18;30667:26;;30739:9;30733:4;30729:20;30725:1;30714:9;30710:17;30703:47;30767:131;30893:4;30767:131;:::i;:::-;30759:139;;30486:419;;;:::o;30911:::-;31077:4;31115:2;31104:9;31100:18;31092:26;;31164:9;31158:4;31154:20;31150:1;31139:9;31135:17;31128:47;31192:131;31318:4;31192:131;:::i;:::-;31184:139;;30911:419;;;:::o;31336:::-;31502:4;31540:2;31529:9;31525:18;31517:26;;31589:9;31583:4;31579:20;31575:1;31564:9;31560:17;31553:47;31617:131;31743:4;31617:131;:::i;:::-;31609:139;;31336:419;;;:::o;31761:::-;31927:4;31965:2;31954:9;31950:18;31942:26;;32014:9;32008:4;32004:20;32000:1;31989:9;31985:17;31978:47;32042:131;32168:4;32042:131;:::i;:::-;32034:139;;31761:419;;;:::o;32186:::-;32352:4;32390:2;32379:9;32375:18;32367:26;;32439:9;32433:4;32429:20;32425:1;32414:9;32410:17;32403:47;32467:131;32593:4;32467:131;:::i;:::-;32459:139;;32186:419;;;:::o;32611:::-;32777:4;32815:2;32804:9;32800:18;32792:26;;32864:9;32858:4;32854:20;32850:1;32839:9;32835:17;32828:47;32892:131;33018:4;32892:131;:::i;:::-;32884:139;;32611:419;;;:::o;33036:::-;33202:4;33240:2;33229:9;33225:18;33217:26;;33289:9;33283:4;33279:20;33275:1;33264:9;33260:17;33253:47;33317:131;33443:4;33317:131;:::i;:::-;33309:139;;33036:419;;;:::o;33461:::-;33627:4;33665:2;33654:9;33650:18;33642:26;;33714:9;33708:4;33704:20;33700:1;33689:9;33685:17;33678:47;33742:131;33868:4;33742:131;:::i;:::-;33734:139;;33461:419;;;:::o;33886:::-;34052:4;34090:2;34079:9;34075:18;34067:26;;34139:9;34133:4;34129:20;34125:1;34114:9;34110:17;34103:47;34167:131;34293:4;34167:131;:::i;:::-;34159:139;;33886:419;;;:::o;34311:::-;34477:4;34515:2;34504:9;34500:18;34492:26;;34564:9;34558:4;34554:20;34550:1;34539:9;34535:17;34528:47;34592:131;34718:4;34592:131;:::i;:::-;34584:139;;34311:419;;;:::o;34736:::-;34902:4;34940:2;34929:9;34925:18;34917:26;;34989:9;34983:4;34979:20;34975:1;34964:9;34960:17;34953:47;35017:131;35143:4;35017:131;:::i;:::-;35009:139;;34736:419;;;:::o;35161:::-;35327:4;35365:2;35354:9;35350:18;35342:26;;35414:9;35408:4;35404:20;35400:1;35389:9;35385:17;35378:47;35442:131;35568:4;35442:131;:::i;:::-;35434:139;;35161:419;;;:::o;35586:::-;35752:4;35790:2;35779:9;35775:18;35767:26;;35839:9;35833:4;35829:20;35825:1;35814:9;35810:17;35803:47;35867:131;35993:4;35867:131;:::i;:::-;35859:139;;35586:419;;;:::o;36011:::-;36177:4;36215:2;36204:9;36200:18;36192:26;;36264:9;36258:4;36254:20;36250:1;36239:9;36235:17;36228:47;36292:131;36418:4;36292:131;:::i;:::-;36284:139;;36011:419;;;:::o;36436:::-;36602:4;36640:2;36629:9;36625:18;36617:26;;36689:9;36683:4;36679:20;36675:1;36664:9;36660:17;36653:47;36717:131;36843:4;36717:131;:::i;:::-;36709:139;;36436:419;;;:::o;36861:346::-;37016:4;37054:2;37043:9;37039:18;37031:26;;37067:133;37197:1;37186:9;37182:17;37173:6;37067:133;:::i;:::-;36861:346;;;;:::o;37213:222::-;37306:4;37344:2;37333:9;37329:18;37321:26;;37357:71;37425:1;37414:9;37410:17;37401:6;37357:71;:::i;:::-;37213:222;;;;:::o;37441:129::-;37475:6;37502:20;;:::i;:::-;37492:30;;37531:33;37559:4;37551:6;37531:33;:::i;:::-;37441:129;;;:::o;37576:75::-;37609:6;37642:2;37636:9;37626:19;;37576:75;:::o;37657:307::-;37718:4;37808:18;37800:6;37797:30;37794:56;;;37830:18;;:::i;:::-;37794:56;37868:29;37890:6;37868:29;:::i;:::-;37860:37;;37952:4;37946;37942:15;37934:23;;37657:307;;;:::o;37970:308::-;38032:4;38122:18;38114:6;38111:30;38108:56;;;38144:18;;:::i;:::-;38108:56;38182:29;38204:6;38182:29;:::i;:::-;38174:37;;38266:4;38260;38256:15;38248:23;;37970:308;;;:::o;38284:98::-;38335:6;38369:5;38363:12;38353:22;;38284:98;;;:::o;38388:99::-;38440:6;38474:5;38468:12;38458:22;;38388:99;;;:::o;38493:168::-;38576:11;38610:6;38605:3;38598:19;38650:4;38645:3;38641:14;38626:29;;38493:168;;;;:::o;38667:147::-;38768:11;38805:3;38790:18;;38667:147;;;;:::o;38820:169::-;38904:11;38938:6;38933:3;38926:19;38978:4;38973:3;38969:14;38954:29;;38820:169;;;;:::o;38995:148::-;39097:11;39134:3;39119:18;;38995:148;;;;:::o;39149:273::-;39189:3;39208:20;39226:1;39208:20;:::i;:::-;39203:25;;39242:20;39260:1;39242:20;:::i;:::-;39237:25;;39364:1;39328:34;39324:42;39321:1;39318:49;39315:75;;;39370:18;;:::i;:::-;39315:75;39414:1;39411;39407:9;39400:16;;39149:273;;;;:::o;39428:305::-;39468:3;39487:20;39505:1;39487:20;:::i;:::-;39482:25;;39521:20;39539:1;39521:20;:::i;:::-;39516:25;;39675:1;39607:66;39603:74;39600:1;39597:81;39594:107;;;39681:18;;:::i;:::-;39594:107;39725:1;39722;39718:9;39711:16;;39428:305;;;;:::o;39739:185::-;39779:1;39796:20;39814:1;39796:20;:::i;:::-;39791:25;;39830:20;39848:1;39830:20;:::i;:::-;39825:25;;39869:1;39859:35;;39874:18;;:::i;:::-;39859:35;39916:1;39913;39909:9;39904:14;;39739:185;;;;:::o;39930:348::-;39970:7;39993:20;40011:1;39993:20;:::i;:::-;39988:25;;40027:20;40045:1;40027:20;:::i;:::-;40022:25;;40215:1;40147:66;40143:74;40140:1;40137:81;40132:1;40125:9;40118:17;40114:105;40111:131;;;40222:18;;:::i;:::-;40111:131;40270:1;40267;40263:9;40252:20;;39930:348;;;;:::o;40284:191::-;40324:4;40344:20;40362:1;40344:20;:::i;:::-;40339:25;;40378:20;40396:1;40378:20;:::i;:::-;40373:25;;40417:1;40414;40411:8;40408:34;;;40422:18;;:::i;:::-;40408:34;40467:1;40464;40460:9;40452:17;;40284:191;;;;:::o;40481:::-;40521:4;40541:20;40559:1;40541:20;:::i;:::-;40536:25;;40575:20;40593:1;40575:20;:::i;:::-;40570:25;;40614:1;40611;40608:8;40605:34;;;40619:18;;:::i;:::-;40605:34;40664:1;40661;40657:9;40649:17;;40481:191;;;;:::o;40678:96::-;40715:7;40744:24;40762:5;40744:24;:::i;:::-;40733:35;;40678:96;;;:::o;40780:90::-;40814:7;40857:5;40850:13;40843:21;40832:32;;40780:90;;;:::o;40876:149::-;40912:7;40952:66;40945:5;40941:78;40930:89;;40876:149;;;:::o;41031:118::-;41068:7;41108:34;41101:5;41097:46;41086:57;;41031:118;;;:::o;41155:126::-;41192:7;41232:42;41225:5;41221:54;41210:65;;41155:126;;;:::o;41287:77::-;41324:7;41353:5;41342:16;;41287:77;;;:::o;41370:101::-;41406:7;41446:18;41439:5;41435:30;41424:41;;41370:101;;;:::o;41477:154::-;41561:6;41556:3;41551;41538:30;41623:1;41614:6;41609:3;41605:16;41598:27;41477:154;;;:::o;41637:307::-;41705:1;41715:113;41729:6;41726:1;41723:13;41715:113;;;41814:1;41809:3;41805:11;41799:18;41795:1;41790:3;41786:11;41779:39;41751:2;41748:1;41744:10;41739:15;;41715:113;;;41846:6;41843:1;41840:13;41837:101;;;41926:1;41917:6;41912:3;41908:16;41901:27;41837:101;41686:258;41637:307;;;:::o;41950:171::-;41989:3;42012:24;42030:5;42012:24;:::i;:::-;42003:33;;42058:4;42051:5;42048:15;42045:41;;;42066:18;;:::i;:::-;42045:41;42113:1;42106:5;42102:13;42095:20;;41950:171;;;:::o;42127:320::-;42171:6;42208:1;42202:4;42198:12;42188:22;;42255:1;42249:4;42245:12;42276:18;42266:81;;42332:4;42324:6;42320:17;42310:27;;42266:81;42394:2;42386:6;42383:14;42363:18;42360:38;42357:84;;;42413:18;;:::i;:::-;42357:84;42178:269;42127:320;;;:::o;42453:281::-;42536:27;42558:4;42536:27;:::i;:::-;42528:6;42524:40;42666:6;42654:10;42651:22;42630:18;42618:10;42615:34;42612:62;42609:88;;;42677:18;;:::i;:::-;42609:88;42717:10;42713:2;42706:22;42496:238;42453:281;;:::o;42740:233::-;42779:3;42802:24;42820:5;42802:24;:::i;:::-;42793:33;;42848:66;42841:5;42838:77;42835:103;;;42918:18;;:::i;:::-;42835:103;42965:1;42958:5;42954:13;42947:20;;42740:233;;;:::o;42979:176::-;43011:1;43028:20;43046:1;43028:20;:::i;:::-;43023:25;;43062:20;43080:1;43062:20;:::i;:::-;43057:25;;43101:1;43091:35;;43106:18;;:::i;:::-;43091:35;43147:1;43144;43140:9;43135:14;;42979:176;;;;:::o;43161:180::-;43209:77;43206:1;43199:88;43306:4;43303:1;43296:15;43330:4;43327:1;43320:15;43347:180;43395:77;43392:1;43385:88;43492:4;43489:1;43482:15;43516:4;43513:1;43506:15;43533:180;43581:77;43578:1;43571:88;43678:4;43675:1;43668:15;43702:4;43699:1;43692:15;43719:180;43767:77;43764:1;43757:88;43864:4;43861:1;43854:15;43888:4;43885:1;43878:15;43905:180;43953:77;43950:1;43943:88;44050:4;44047:1;44040:15;44074:4;44071:1;44064:15;44091:117;44200:1;44197;44190:12;44214:117;44323:1;44320;44313:12;44337:117;44446:1;44443;44436:12;44460:117;44569:1;44566;44559:12;44583:102;44624:6;44675:2;44671:7;44666:2;44659:5;44655:14;44651:28;44641:38;;44583:102;;;:::o;44691:221::-;44831:34;44827:1;44819:6;44815:14;44808:58;44900:4;44895:2;44887:6;44883:15;44876:29;44691:221;:::o;44918:225::-;45058:34;45054:1;45046:6;45042:14;45035:58;45127:8;45122:2;45114:6;45110:15;45103:33;44918:225;:::o;45149:229::-;45289:34;45285:1;45277:6;45273:14;45266:58;45358:12;45353:2;45345:6;45341:15;45334:37;45149:229;:::o;45384:232::-;45524:34;45520:1;45512:6;45508:14;45501:58;45593:15;45588:2;45580:6;45576:15;45569:40;45384:232;:::o;45622:222::-;45762:34;45758:1;45750:6;45746:14;45739:58;45831:5;45826:2;45818:6;45814:15;45807:30;45622:222;:::o;45850:224::-;45990:34;45986:1;45978:6;45974:14;45967:58;46059:7;46054:2;46046:6;46042:15;46035:32;45850:224;:::o;46080:236::-;46220:34;46216:1;46208:6;46204:14;46197:58;46289:19;46284:2;46276:6;46272:15;46265:44;46080:236;:::o;46322:168::-;46462:20;46458:1;46450:6;46446:14;46439:44;46322:168;:::o;46496:180::-;46636:32;46632:1;46624:6;46620:14;46613:56;46496:180;:::o;46682:244::-;46822:34;46818:1;46810:6;46806:14;46799:58;46891:27;46886:2;46878:6;46874:15;46867:52;46682:244;:::o;46932:230::-;47072:34;47068:1;47060:6;47056:14;47049:58;47141:13;47136:2;47128:6;47124:15;47117:38;46932:230;:::o;47168:168::-;47308:20;47304:1;47296:6;47292:14;47285:44;47168:168;:::o;47342:225::-;47482:34;47478:1;47470:6;47466:14;47459:58;47551:8;47546:2;47538:6;47534:15;47527:33;47342:225;:::o;47573:182::-;47713:34;47709:1;47701:6;47697:14;47690:58;47573:182;:::o;47761:234::-;47901:34;47897:1;47889:6;47885:14;47878:58;47970:17;47965:2;47957:6;47953:15;47946:42;47761:234;:::o;48001:176::-;48141:28;48137:1;48129:6;48125:14;48118:52;48001:176;:::o;48183:237::-;48323:34;48319:1;48311:6;48307:14;48300:58;48392:20;48387:2;48379:6;48375:15;48368:45;48183:237;:::o;48426:179::-;48566:31;48562:1;48554:6;48550:14;48543:55;48426:179;:::o;48611:221::-;48751:34;48747:1;48739:6;48735:14;48728:58;48820:4;48815:2;48807:6;48803:15;48796:29;48611:221;:::o;48838:114::-;;:::o;48958:166::-;49098:18;49094:1;49086:6;49082:14;49075:42;48958:166;:::o;49130:238::-;49270:34;49266:1;49258:6;49254:14;49247:58;49339:21;49334:2;49326:6;49322:15;49315:46;49130:238;:::o;49374:172::-;49514:24;49510:1;49502:6;49498:14;49491:48;49374:172;:::o;49552:179::-;49692:31;49688:1;49680:6;49676:14;49669:55;49552:179;:::o;49737:220::-;49877:34;49873:1;49865:6;49861:14;49854:58;49946:3;49941:2;49933:6;49929:15;49922:28;49737:220;:::o;49963:172::-;50103:24;50099:1;50091:6;50087:14;50080:48;49963:172;:::o;50141:233::-;50281:34;50277:1;50269:6;50265:14;50258:58;50350:16;50345:2;50337:6;50333:15;50326:41;50141:233;:::o;50380:181::-;50520:33;50516:1;50508:6;50504:14;50497:57;50380:181;:::o;50567:234::-;50707:34;50703:1;50695:6;50691:14;50684:58;50776:17;50771:2;50763:6;50759:15;50752:42;50567:234;:::o;50807:232::-;50947:34;50943:1;50935:6;50931:14;50924:58;51016:15;51011:2;51003:6;50999:15;50992:40;50807:232;:::o;51045:221::-;51185:34;51181:1;51173:6;51169:14;51162:58;51254:4;51249:2;51241:6;51237:15;51230:29;51045:221;:::o;51272:122::-;51345:24;51363:5;51345:24;:::i;:::-;51338:5;51335:35;51325:63;;51384:1;51381;51374:12;51325:63;51272:122;:::o;51400:116::-;51470:21;51485:5;51470:21;:::i;:::-;51463:5;51460:32;51450:60;;51506:1;51503;51496:12;51450:60;51400:116;:::o;51522:120::-;51594:23;51611:5;51594:23;:::i;:::-;51587:5;51584:34;51574:62;;51632:1;51629;51622:12;51574:62;51522:120;:::o;51648:122::-;51721:24;51739:5;51721:24;:::i;:::-;51714:5;51711:35;51701:63;;51760:1;51757;51750:12;51701:63;51648:122;:::o
Swarm Source
ipfs://38c345f5e839dca45d0a76b8d028806832526ec1696e7ebcd4d65ea9b969420c
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.