ERC-20
NFT
Overview
Max Total Supply
1,333 BMANFT
Holders
637
Market
Price
$0.00 @ 0.000000 MOVR
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 0 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
BlvckMarketNFT
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at moonriver.moonscan.io on 2021-11-22 */ // SPDX-License-Identifier: MIT contract Ownable { address public owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); function Ownable() public { owner = msg.sender; } modifier onlyOwner() { require(msg.sender == owner); _; } function transferOwnership(address newOwner) public onlyOwner { require(newOwner != address(0)); emit OwnershipTransferred(owner, newOwner); owner = newOwner; } } contract ERC721Receiver { bytes4 constant ERC721_RECEIVED = 0xf0b9e5ba; function onERC721Received(address _from, uint256 _tokenId, bytes _data) public returns(bytes4); } contract ERC721Holder is ERC721Receiver { function onERC721Received(address, uint256, bytes) public returns(bytes4) { return ERC721_RECEIVED; } } contract ERC721Basic { event Transfer(address indexed _from, address indexed _to, uint256 _tokenId); event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId); event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); function balanceOf(address _owner) public view returns (uint256 _balance); function ownerOf(uint256 _tokenId) public view returns (address _owner); function exists(uint256 _tokenId) public view returns (bool _exists); function approve(address _to, uint256 _tokenId) public; function getApproved(uint256 _tokenId) public view returns (address _operator); function setApprovalForAll(address _operator, bool _approved) public; function isApprovedForAll(address _owner, address _operator) public view returns (bool); function transferFrom(address _from, address _to, uint256 _tokenId) public; function safeTransferFrom(address _from, address _to, uint256 _tokenId) public; function safeTransferFrom( address _from, address _to, uint256 _tokenId, bytes _data ) public; } contract ERC721Enumerable is ERC721Basic { function totalSupply() public view returns (uint256); function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256 _tokenId); function tokenByIndex(uint256 _index) public view returns (uint256); } contract ERC721Metadata is ERC721Basic { function name() public view returns (string _name); function symbol() public view returns (string _symbol); function tokenURI(uint256 _tokenId) public view returns (string); } contract ERC721 is ERC721Basic, ERC721Enumerable, ERC721Metadata { } library AddressUtils { function isContract(address addr) internal view returns (bool) { uint256 size; assembly { size := extcodesize(addr) } // solium-disable-line security/no-inline-assembly return size > 0; } } library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256 c) { if (a == 0) { return 0; } c = a * b; assert(c / a == b); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { assert(b <= a); return a - b; } function add(uint256 a, uint256 b) internal pure returns (uint256 c) { c = a + b; assert(c >= a); return c; } } contract ERC721BasicToken is ERC721Basic { using SafeMath for uint256; using AddressUtils for address; bytes4 constant ERC721_RECEIVED = 0xf0b9e5ba; // Mapping from token ID to owner mapping (uint256 => address) internal tokenOwner; // Mapping from token ID to approved address mapping (uint256 => address) internal tokenApprovals; // Mapping from owner to number of owned token mapping (address => uint256) internal ownedTokensCount; // Mapping from owner to operator approvals mapping (address => mapping (address => bool)) internal operatorApprovals; modifier onlyOwnerOf(uint256 _tokenId) { require(ownerOf(_tokenId) == msg.sender); _; } modifier canTransfer(uint256 _tokenId) { require(isApprovedOrOwner(msg.sender, _tokenId)); _; } function balanceOf(address _owner) public view returns (uint256) { require(_owner != address(0)); return ownedTokensCount[_owner]; } function ownerOf(uint256 _tokenId) public view returns (address) { address owner = tokenOwner[_tokenId]; require(owner != address(0)); return owner; } function exists(uint256 _tokenId) public view returns (bool) { address owner = tokenOwner[_tokenId]; return owner != address(0); } function approve(address _to, uint256 _tokenId) public { address owner = ownerOf(_tokenId); require(_to != owner); require(msg.sender == owner || isApprovedForAll(owner, msg.sender)); if (getApproved(_tokenId) != address(0) || _to != address(0)) { tokenApprovals[_tokenId] = _to; emit Approval(owner, _to, _tokenId); } } function getApproved(uint256 _tokenId) public view returns (address) { return tokenApprovals[_tokenId]; } function setApprovalForAll(address _to, bool _approved) public { require(_to != msg.sender); operatorApprovals[msg.sender][_to] = _approved; emit ApprovalForAll(msg.sender, _to, _approved); } function isApprovedForAll(address _owner, address _operator) public view returns (bool) { return operatorApprovals[_owner][_operator]; } function transferFrom(address _from, address _to, uint256 _tokenId) public canTransfer(_tokenId) { require(_from != address(0)); require(_to != address(0)); clearApproval(_from, _tokenId); removeTokenFrom(_from, _tokenId); addTokenTo(_to, _tokenId); emit Transfer(_from, _to, _tokenId); } function safeTransferFrom( address _from, address _to, uint256 _tokenId ) public canTransfer(_tokenId) { // solium-disable-next-line arg-overflow safeTransferFrom(_from, _to, _tokenId, ""); } function safeTransferFrom( address _from, address _to, uint256 _tokenId, bytes _data ) public canTransfer(_tokenId) { transferFrom(_from, _to, _tokenId); // solium-disable-next-line arg-overflow require(checkAndCallSafeTransfer(_from, _to, _tokenId, _data)); } function isApprovedOrOwner(address _spender, uint256 _tokenId) internal view returns (bool) { address owner = ownerOf(_tokenId); return _spender == owner || getApproved(_tokenId) == _spender || isApprovedForAll(owner, _spender); } function _mint(address _to, uint256 _tokenId) internal { require(_to != address(0)); addTokenTo(_to, _tokenId); emit Transfer(address(0), _to, _tokenId); } function _burn(address _owner, uint256 _tokenId) internal { clearApproval(_owner, _tokenId); removeTokenFrom(_owner, _tokenId); emit Transfer(_owner, address(0), _tokenId); } function clearApproval(address _owner, uint256 _tokenId) internal { require(ownerOf(_tokenId) == _owner); if (tokenApprovals[_tokenId] != address(0)) { tokenApprovals[_tokenId] = address(0); emit Approval(_owner, address(0), _tokenId); } } function addTokenTo(address _to, uint256 _tokenId) internal { require(tokenOwner[_tokenId] == address(0)); tokenOwner[_tokenId] = _to; ownedTokensCount[_to] = ownedTokensCount[_to].add(1); } function removeTokenFrom(address _from, uint256 _tokenId) internal { require(ownerOf(_tokenId) == _from); ownedTokensCount[_from] = ownedTokensCount[_from].sub(1); tokenOwner[_tokenId] = address(0); } function checkAndCallSafeTransfer( address _from, address _to, uint256 _tokenId, bytes _data ) internal returns (bool) { if (!_to.isContract()) { return true; } bytes4 retval = ERC721Receiver(_to).onERC721Received(_from, _tokenId, _data); return (retval == ERC721_RECEIVED); } } contract ERC721Token is ERC721, ERC721BasicToken { // Token name string internal name_; // Token symbol string internal symbol_; // Mapping from owner to list of owned token IDs mapping (address => uint256[]) internal ownedTokens; // Mapping from token ID to index of the owner tokens list mapping(uint256 => uint256) internal ownedTokensIndex; // Array with all token ids, used for enumeration uint256[] internal allTokens; // Mapping from token id to position in the allTokens array mapping(uint256 => uint256) internal allTokensIndex; // Optional mapping for token URIs mapping(uint256 => string) internal tokenURIs; function ERC721Token(string _name, string _symbol) public { name_ = _name; symbol_ = _symbol; } function name() public view returns (string) { return name_; } function symbol() public view returns (string) { return symbol_; } function tokenURI(uint256 _tokenId) public view returns (string) { require(exists(_tokenId)); return tokenURIs[_tokenId]; } function tokenOfOwnerByIndex(address _owner, uint256 _index) public view returns (uint256) { require(_index < balanceOf(_owner)); return ownedTokens[_owner][_index]; } function totalSupply() public view returns (uint256) { return allTokens.length; } function tokenByIndex(uint256 _index) public view returns (uint256) { require(_index < totalSupply()); return allTokens[_index]; } function _setTokenURI(uint256 _tokenId, string _uri) internal { require(exists(_tokenId)); tokenURIs[_tokenId] = _uri; } function addTokenTo(address _to, uint256 _tokenId) internal { super.addTokenTo(_to, _tokenId); uint256 length = ownedTokens[_to].length; ownedTokens[_to].push(_tokenId); ownedTokensIndex[_tokenId] = length; } function removeTokenFrom(address _from, uint256 _tokenId) internal { super.removeTokenFrom(_from, _tokenId); uint256 tokenIndex = ownedTokensIndex[_tokenId]; uint256 lastTokenIndex = ownedTokens[_from].length.sub(1); uint256 lastToken = ownedTokens[_from][lastTokenIndex]; ownedTokens[_from][tokenIndex] = lastToken; ownedTokens[_from][lastTokenIndex] = 0; ownedTokens[_from].length--; ownedTokensIndex[_tokenId] = 0; ownedTokensIndex[lastToken] = tokenIndex; } function _mint(address _to, uint256 _tokenId) internal { super._mint(_to, _tokenId); allTokensIndex[_tokenId] = allTokens.length; allTokens.push(_tokenId); } function _burn(address _owner, uint256 _tokenId) internal { super._burn(_owner, _tokenId); // Clear metadata (if any) if (bytes(tokenURIs[_tokenId]).length != 0) { delete tokenURIs[_tokenId]; } // Reorg all tokens array uint256 tokenIndex = allTokensIndex[_tokenId]; uint256 lastTokenIndex = allTokens.length.sub(1); uint256 lastToken = allTokens[lastTokenIndex]; allTokens[tokenIndex] = lastToken; allTokens[lastTokenIndex] = 0; allTokens.length--; allTokensIndex[_tokenId] = 0; allTokensIndex[lastToken] = tokenIndex; } } library Integers { function parseInt(string _value) public returns (uint _ret) { bytes memory _bytesValue = bytes(_value); uint j = 1; for(uint i = _bytesValue.length-1; i >= 0 && i < _bytesValue.length; i--) { assert(_bytesValue[i] >= 48 && _bytesValue[i] <= 57); _ret += (uint(_bytesValue[i]) - 48)*j; j*=10; } } function toString(uint _base) internal returns (string) { if (_base==0){ return "0"; } bytes memory _tmp = new bytes(32); uint i; for(i = 0;_base > 0;i++) { _tmp[i] = byte((_base % 10) + 48); _base /= 10; } bytes memory _real = new bytes(i--); for(uint j = 0; j < _real.length; j++) { _real[j] = _tmp[i--]; } return string(_real); } function toByte(uint8 _base) public returns (byte _ret) { assembly { let m_alloc := add(msize(),0x1) mstore8(m_alloc, _base) _ret := mload(m_alloc) } } function toBytes(uint _base) internal returns (bytes _ret) { assembly { let m_alloc := add(msize(),0x1) _ret := mload(m_alloc) mstore(_ret, 0x20) mstore(add(_ret, 0x20), _base) } } } library Strings { function concat(string _base, string _value) internal returns (string) { bytes memory _baseBytes = bytes(_base); bytes memory _valueBytes = bytes(_value); assert(_valueBytes.length > 0); string memory _tmpValue = new string(_baseBytes.length + _valueBytes.length); bytes memory _newValue = bytes(_tmpValue); uint i; uint j; for(i = 0; i < _baseBytes.length; i++) { _newValue[j++] = _baseBytes[i]; } for(i = 0; i<_valueBytes.length; i++) { _newValue[j++] = _valueBytes[i]; } return string(_newValue); } function indexOf(string _base, string _value) internal returns (int) { return _indexOf(_base, _value, 0); } function _indexOf(string _base, string _value, uint _offset) internal returns (int) { bytes memory _baseBytes = bytes(_base); bytes memory _valueBytes = bytes(_value); assert(_valueBytes.length == 1); for(uint i = _offset; i < _baseBytes.length; i++) { if (_baseBytes[i] == _valueBytes[0]) { return int(i); } } return -1; } function length(string _base) internal returns (uint) { bytes memory _baseBytes = bytes(_base); return _baseBytes.length; } function substring(string _base, int _length) internal returns (string) { return _substring(_base, _length, 0); } function _substring(string _base, int _length, int _offset) internal returns (string) { bytes memory _baseBytes = bytes(_base); assert(uint(_offset+_length) <= _baseBytes.length); string memory _tmp = new string(uint(_length)); bytes memory _tmpBytes = bytes(_tmp); uint j = 0; for(uint i = uint(_offset); i < uint(_offset+_length); i++) { _tmpBytes[j++] = _baseBytes[i]; } return string(_tmpBytes); } function split(string _base, string _value) internal returns (string[] storage splitArr) { bytes memory _baseBytes = bytes(_base); uint _offset = 0; while(_offset < _baseBytes.length-1) { int _limit = _indexOf(_base, _value, _offset); if (_limit == -1) { _limit = int(_baseBytes.length); } string memory _tmp = new string(uint(_limit)-_offset); bytes memory _tmpBytes = bytes(_tmp); uint j = 0; for(uint i = _offset; i < uint(_limit); i++) { _tmpBytes[j++] = _baseBytes[i]; } _offset = uint(_limit) + 1; splitArr.push(string(_tmpBytes)); } return splitArr; } function compareTo(string _base, string _value) internal returns (bool) { bytes memory _baseBytes = bytes(_base); bytes memory _valueBytes = bytes(_value); if (_baseBytes.length != _valueBytes.length) { return false; } for(uint i = 0; i < _baseBytes.length; i++) { if (_baseBytes[i] != _valueBytes[i]) { return false; } } return true; } function compareToIgnoreCase(string _base, string _value) internal returns (bool) { bytes memory _baseBytes = bytes(_base); bytes memory _valueBytes = bytes(_value); if (_baseBytes.length != _valueBytes.length) { return false; } for(uint i = 0; i < _baseBytes.length; i++) { if (_baseBytes[i] != _valueBytes[i] && _upper(_baseBytes[i]) != _upper(_valueBytes[i])) { return false; } } return true; } function upper(string _base) internal returns (string) { bytes memory _baseBytes = bytes(_base); for (uint i = 0; i < _baseBytes.length; i++) { _baseBytes[i] = _upper(_baseBytes[i]); } return string(_baseBytes); } function lower(string _base) internal returns (string) { bytes memory _baseBytes = bytes(_base); for (uint i = 0; i < _baseBytes.length; i++) { _baseBytes[i] = _lower(_baseBytes[i]); } return string(_baseBytes); } function _upper(bytes1 _b1) private constant returns (bytes1) { if (_b1 >= 0x61 && _b1 <= 0x7A) { return bytes1(uint8(_b1)-32); } return _b1; } function _lower(bytes1 _b1) private constant returns (bytes1) { if (_b1 >= 0x41 && _b1 <= 0x5A) { return bytes1(uint8(_b1)+32); } return _b1; } } pragma solidity ^0.4.24 ; interface IERC20 { function mint(address _to, uint256 _amount) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom(address from, address to, uint256 value) external returns (bool); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function getTotalSupply() external view returns (uint256); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); event Transfer(address indexed _from, address indexed _to, uint256 _value); event Approval(address indexed _owner, address indexed _spender, uint256 _value); } contract BlvckMarketNFT is Ownable, ERC721Token, ERC721Holder { using Strings for string; using Integers for uint; function BlvckMarketNFT () ERC721Token("BlvckMarketNFT" ,"BMANFT") public {} struct DigitalNFT { string ipfsHash; address publisher; string name; string description; string typeFile; string collection; uint total; uint unit; uint id; } string public baseURI = "https://ipfs.io/ipfs/"; IERC20 public addressBMAToken; IERC20 public addressVBMACredit; address public artistWallet = 0x43bF6C711ceA984e55926fCa73D602309769aBF6; address public teamWallet = 0x7E66E23b0Cc2eB712a1af1dE9b6aF0FbABbd42C3; address public treasuryWallet = 0x1196f89b8DA779CF24613cA7572B991927d3E9ad; address public taxWallet = 0xD5d8B27a62b46e4e4fA78F38aE8C843F1fD69b79; address public BMAWallet = 0x25f67d7e553174F8c170Cfa48A794FC5090e197F; uint public artistTax = 22; uint public teamTax = 6; uint public treasuryTax = 11; uint public taxTax = 50; uint public BMATax = 11; bool public mintON = false; bool public enableUnique = false; bool public enableCashback = true; bool public enableWhitelist = false; bool public enableSecurityPayment = false; uint public taxCashBack = 11; mapping(address => address) public blvcklist; uint256 public limitPerAddress = 20; mapping (address => uint) public depositedTokens; DigitalNFT[] public digitalNFTs; mapping (string => uint256) ipfsHashToTokenId; mapping (address => uint256) internal publishedTokensCount; mapping (address => uint256[]) internal publishedTokens; mapping(address => mapping (uint256 => uint256)) internal publishedTokensIndex; struct SellingItem { address seller; uint256 price; string ipfsHash; string name; string description; bool resale; string typeFile; string collection; uint256 id; } mapping (uint256 => SellingItem) public tokenIdToSellingItem; /*** Modifier ***/ modifier onlyOwner() { require(msg.sender == owner); _; } /*** Owner Actions ***/ function withdraw() public onlyOwner { owner.transfer(this.balance); } function withdrawVBMA(uint256 _value) public onlyOwner { require(addressVBMACredit.transfer(msg.sender, _value), "Transfer VBMA error."); } function setBlvcklist(address[] _address) public onlyOwner { for(uint i = 0; _address.length > i; i++) blvcklist[_address[i]] = _address[i]; } function setLimitPerAddress(uint256 _value) public onlyOwner { limitPerAddress = _value; } function setBaseURI(string _value) public onlyOwner { baseURI = _value; } function setMintON(bool _value) public onlyOwner { mintON = _value; } function setEnableSecurityPayment(bool _value) public onlyOwner { enableSecurityPayment = _value; } function setEnableWhitelist(bool _value) public onlyOwner { enableWhitelist = _value; } function setEnableUnique(bool _value) public onlyOwner { enableUnique = _value; } function setEnableCashback(bool _value) public onlyOwner { enableCashback = _value; } function setBMATax(uint _value) public onlyOwner { BMATax = _value; } function setTaxTax(uint _value) public onlyOwner { taxTax = _value; } function setTreasuryTax(uint _value) public onlyOwner { treasuryTax = _value; } function setTeamTax(uint _value) public onlyOwner { teamTax = _value; } function setArtistTax(uint _value) public onlyOwner { artistTax = _value; } function setBMAWallet(address _value) public onlyOwner { BMAWallet = _value; } function setTaxWallet(address _value) public onlyOwner { taxWallet = _value; } function setTreasuryWallet(address _value) public onlyOwner { treasuryWallet = _value; } function setTeamWallet(address _value) public onlyOwner { teamWallet = _value; } function setArtistWallet(address _value) public onlyOwner { artistWallet = _value; } function setTaxCashBack(uint _value) public onlyOwner { taxCashBack = _value; } function setAddressBMA(address _addressBMAToken) public onlyOwner { addressBMAToken = IERC20(_addressBMAToken); } function setAddressVBMACredit(address _addressVBMACredit) public onlyOwner { addressVBMACredit = IERC20(_addressVBMACredit); } function getIpfsHashToTokenId(string _string) public view returns (uint256){ return ipfsHashToTokenId[_string]; } function getOwnedTokens(address _owner) public view returns (uint256[]) { return ownedTokens[_owner]; } function getAllTokens() public view returns (uint256[]) { return allTokens; } function publishedCountOf(address _publisher) public view returns (uint256) { return publishedTokensCount[_publisher]; } function publishedTokenOfOwnerByIndex(address _publisher, uint256 _index) public view returns (uint256) { require(_index < publishedCountOf(_publisher)); return publishedTokens[_publisher][_index]; } function getPublishedTokens(address _publisher) public view returns (uint256[]) { return publishedTokens[_publisher]; } function tokenURI(uint256 _tokenId) public view returns (string) { require(exists(_tokenId)); return baseURI.concat(digitalNFTs[_tokenId].ipfsHash); } function mintNFT(uint256 _price, string _ipfsHash, string _name, string _description, string _typeFile, string _collection, uint _total, uint _initCount) public onlyOwner { if(enableUnique) require(ipfsHashToTokenId[_ipfsHash] == 0); if(_total == 0) _total = 1; for(uint i = 0; i < _total; i++){ DigitalNFT memory _digitalNFT = DigitalNFT({ ipfsHash: _ipfsHash, publisher: msg.sender, name: _name, description: _description, typeFile: _typeFile, collection: _collection, total: _total, unit: _initCount.add(i), id: 0 }); uint256 newDigitalNFTId = digitalNFTs.push(_digitalNFT) - 1; digitalNFTs[newDigitalNFTId].id = newDigitalNFTId; ipfsHashToTokenId[_ipfsHash] = newDigitalNFTId; _mint(msg.sender, newDigitalNFTId); publishedTokensCount[msg.sender]++; uint256 length = publishedTokens[msg.sender].length; publishedTokens[msg.sender].push(newDigitalNFTId); publishedTokensIndex[msg.sender][newDigitalNFTId] = length; addNFTSellingItemInternal(newDigitalNFTId, _price); } } function addNFTSellingItem(uint256 _tokenId, uint256 _price) public onlyOwnerOf(_tokenId) { require(tokenIdToSellingItem[_tokenId].seller == address(0)); bool resale = true; if(msg.sender == owner){resale = false;} SellingItem memory _sellingItem = SellingItem( msg.sender, uint256(_price), digitalNFTs[_tokenId].ipfsHash, digitalNFTs[_tokenId].name, digitalNFTs[_tokenId].description, resale, digitalNFTs[_tokenId].typeFile, digitalNFTs[_tokenId].collection, _tokenId ); tokenIdToSellingItem[_tokenId] = _sellingItem; approve(address(this), _tokenId); safeTransferFrom(msg.sender, address(this), _tokenId); } function addNFTSellingItemInternal(uint256 _tokenId, uint256 _price) internal { require(tokenIdToSellingItem[_tokenId].seller == address(0)); SellingItem memory _sellingItem = SellingItem( msg.sender, uint256(_price), digitalNFTs[_tokenId].ipfsHash, digitalNFTs[_tokenId].name, digitalNFTs[_tokenId].description, false, digitalNFTs[_tokenId].typeFile, digitalNFTs[_tokenId].collection, _tokenId ); tokenIdToSellingItem[_tokenId] = _sellingItem; approve(address(this), _tokenId); safeTransferFrom(msg.sender, address(this), _tokenId); } function cancelNFTSellingItem(uint256 _tokenId) public { require(tokenIdToSellingItem[_tokenId].seller == msg.sender); this.safeTransferFrom(address(this), tokenIdToSellingItem[_tokenId].seller, _tokenId); delete tokenIdToSellingItem[_tokenId]; } function purchaseNFT(uint256 _tokenId) public payable{ if(enableWhitelist) { require(blvcklist[msg.sender] == msg.sender, "Blvcklist Not Found."); require(this.balanceOf(msg.sender) < limitPerAddress, "Limit per address exceeded."); } uint256 priceItemEther = tokenIdToSellingItem[_tokenId].price; address sellerAddress = tokenIdToSellingItem[_tokenId].seller; bool resale = tokenIdToSellingItem[_tokenId].resale; require(sellerAddress != address(0)); require(sellerAddress != msg.sender); require(msg.value >= priceItemEther); if(resale){ uint256 priceItemResale = priceItemEther.sub(priceItemEther.mul(BMATax).div(100)); BMAWallet.transfer(priceItemEther.mul(BMATax).div(100)); sellerAddress.transfer(priceItemResale); }else{ if(enableSecurityPayment){ BMAWallet.transfer(priceItemEther); }else{ artistWallet.transfer(priceItemEther.mul(artistTax).div(100)); teamWallet.transfer(priceItemEther.mul(teamTax).div(100)); treasuryWallet.transfer(priceItemEther.mul(treasuryTax).div(100)); taxWallet.transfer(priceItemEther.mul(taxTax).div(100)); BMAWallet.transfer(priceItemEther.mul(BMATax).div(100)); } } if(enableCashback){ // cashback require(addressVBMACredit.transfer(msg.sender, priceItemEther.mul(taxCashBack).div(100)), "Transfer cashback error."); } delete tokenIdToSellingItem[_tokenId]; this.safeTransferFrom(address(this), msg.sender, _tokenId); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setTeamTax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"setEnableCashback","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addressBMAToken","type":"address"}],"name":"setAddressBMA","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"approve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_publisher","type":"address"}],"name":"getPublishedTokens","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_address","type":"address[]"}],"name":"setBlvcklist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"purchaseNFT","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"address"}],"name":"setTeamWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_price","type":"uint256"},{"name":"_ipfsHash","type":"string"},{"name":"_name","type":"string"},{"name":"_description","type":"string"},{"name":"_typeFile","type":"string"},{"name":"_collection","type":"string"},{"name":"_total","type":"uint256"},{"name":"_initCount","type":"uint256"}],"name":"mintNFT","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setTaxCashBack","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"tokenIdToSellingItem","outputs":[{"name":"seller","type":"address"},{"name":"price","type":"uint256"},{"name":"ipfsHash","type":"string"},{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"resale","type":"bool"},{"name":"typeFile","type":"string"},{"name":"collection","type":"string"},{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_string","type":"string"}],"name":"getIpfsHashToTokenId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"limitPerAddress","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getAllTokens","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"taxWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_index","type":"uint256"}],"name":"tokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BMAWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"address"}],"name":"setBMAWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"treasuryWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addressBMAToken","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"setEnableUnique","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"exists","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_index","type":"uint256"}],"name":"tokenByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BMATax","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"blvcklist","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"string"}],"name":"setBaseURI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setArtistTax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"teamWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"mintON","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"taxTax","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setBMATax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"baseURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"setEnableWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"withdrawVBMA","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"taxCashBack","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"addressVBMACredit","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setLimitPerAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_addressVBMACredit","type":"address"}],"name":"setAddressVBMACredit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"teamTax","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_publisher","type":"address"}],"name":"publishedCountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"artistWallet","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"address"}],"name":"setTreasuryWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setTaxTax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_tokenId","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"digitalNFTs","outputs":[{"name":"ipfsHash","type":"string"},{"name":"publisher","type":"address"},{"name":"name","type":"string"},{"name":"description","type":"string"},{"name":"typeFile","type":"string"},{"name":"collection","type":"string"},{"name":"total","type":"uint256"},{"name":"unit","type":"uint256"},{"name":"id","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"depositedTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_publisher","type":"address"},{"name":"_index","type":"uint256"}],"name":"publishedTokenOfOwnerByIndex","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"setMintON","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"uint256"}],"name":"setTreasuryTax","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"enableWhitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"addNFTSellingItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"bool"}],"name":"setEnableSecurityPayment","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"artistTax","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"getOwnedTokens","outputs":[{"name":"","type":"uint256[]"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"enableUnique","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"address"}],"name":"setTaxWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"enableCashback","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"treasuryTax","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"","type":"address"},{"name":"","type":"uint256"},{"name":"","type":"bytes"}],"name":"onERC721Received","outputs":[{"name":"","type":"bytes4"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"enableSecurityPayment","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"cancelNFTSellingItem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_value","type":"address"}],"name":"setArtistWallet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_approved","type":"address"},{"indexed":false,"name":"_tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_operator","type":"address"},{"indexed":false,"name":"_approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60c0604052601560808190527f68747470733a2f2f697066732e696f2f697066732f000000000000000000000060a09081526200004091600c9190620001dc565b50600f8054600160a060020a03199081167343bf6c711cea984e55926fca73d602309769abf617909155601080548216737e66e23b0cc2eb712a1af1de9b6af0fbabbd42c3179055601180548216731196f89b8da779cf24613ca7572b991927d3e9ad17905560128054821673d5d8b27a62b46e4e4fa78f38ae8c843f1fd69b79179055601380549091167325f67d7e553174f8c170cfa48a794fc5090e197f179055601660148181556006601555600b91829055603260175560188290556019805464ffff0000001962ffffff199091166201000017169055601a91909155601c553480156200013057600080fd5b50604080518082018252600e81527f426c76636b4d61726b65744e465400000000000000000000000000000000000060208083019182528351808501909452600684527f424d414e465400000000000000000000000000000000000000000000000000009084015260008054600160a060020a031916331790558151919291620001bd91600591620001dc565b508051620001d3906006906020840190620001dc565b50505062000281565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021f57805160ff19168380011785556200024f565b828001600101855582156200024f579182015b828111156200024f57825182559160200191906001019062000232565b506200025d92915062000261565b5090565b6200027e91905b808211156200025d576000815560010162000268565b90565b6149ab80620002916000396000f3006080604052600436106103795763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630256276d811461037e57806303b904131461039857806305b3bf8a146103b257806306fdde03146103d3578063081812fc1461045d578063095ea7b3146104915780630b8021c4146104b55780630ea4275014610526578063150bde031461057b5780631525ff7d1461058657806318160ddd146105a75780631dc78a38146105ce57806322b1bbc51461072d578063239c4dcf1461074557806323b872dd1461099f57806327ea2df0146109c95780632a484ad414610a225780632a5c792a14610a375780632dc0562d14610a4c5780632f745c5914610a615780632fe5cba114610a855780633ccfd60b14610a9a57806342842e0e14610aaf57806345136c4b14610ad95780634626402b14610afa5780634dd4be8c14610b0f5780634deb1cbc14610b245780634f558e7914610b3e5780634f6ccce714610b6a57806354be171414610b8257806354fd146714610b9757806355f804b314610bb857806356ea64ad14610c115780635992704414610c295780635b98a73714610c3e5780635f7b144a14610c535780636352211e14610c685780636bb4c45914610c805780636c0360eb14610c9857806370a0823114610cad57806378f9ccf214610cce5780637953f52714610ce857806379e663af14610d005780637b1bb78114610d1557806381c0b1f014610d2a57806384d35c7614610d425780638da5cb5b14610d63578063932733c714610d7857806395d89b4114610d8d5780639bc706e814610da2578063a22cb46514610dc3578063a3342fba14610de9578063a8602fea14610dfe578063b3eb583514610e1f578063b88d4fde14610e37578063c16479e214610ea6578063c326bf4f146110b4578063c435d2ac146110d5578063c682b09b146110f9578063c87b56dd14611113578063cd6840d51461112b578063cdfb2b4e14611143578063d0012b3914611158578063d34a6a3314611173578063d862686b1461118d578063d9d61655146111a2578063e67478aa146111c3578063e985e9c5146111d8578063ea414b28146111ff578063ea7ccd7914611220578063ecfeb5ba14611235578063f0b9e5ba1461124a578063f2fde38b146112e8578063f73fb6d814611309578063f885bf831461131e578063fce57fd914611336575b600080fd5b34801561038a57600080fd5b50610396600435611357565b005b3480156103a457600080fd5b506103966004351515611373565b3480156103be57600080fd5b50610396600160a060020a03600435166113c2565b3480156103df57600080fd5b506103e8611408565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561042257818101518382015260200161040a565b50505050905090810190601f16801561044f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561046957600080fd5b5061047560043561149f565b60408051600160a060020a039092168252519081900360200190f35b34801561049d57600080fd5b50610396600160a060020a03600435166024356114ba565b3480156104c157600080fd5b506104d6600160a060020a03600435166115ac565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105125781810151838201526020016104fa565b505050509050019250505060405180910390f35b34801561053257600080fd5b5060408051602060048035808201358381028086018501909652808552610396953695939460249493850192918291850190849080828437509497506116189650505050505050565b6103966004356116bc565b34801561059257600080fd5b50610396600160a060020a0360043516611dd4565b3480156105b357600080fd5b506105bc611e1a565b60408051918252519081900360200190f35b3480156105da57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261039695833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750508435955050506020909201359150611e209050565b34801561073957600080fd5b5061039660043561214e565b34801561075157600080fd5b5061075d60043561216a565b604051808a600160a060020a0316600160a060020a0316815260200189815260200180602001806020018060200188151515158152602001806020018060200187815260200186810386528d818151815260200191508051906020019080838360005b838110156107d85781810151838201526020016107c0565b50505050905090810190601f1680156108055780820380516001836020036101000a031916815260200191505b5086810385528c5181528c516020918201918e019080838360005b83811015610838578181015183820152602001610820565b50505050905090810190601f1680156108655780820380516001836020036101000a031916815260200191505b5086810384528b5181528b516020918201918d019080838360005b83811015610898578181015183820152602001610880565b50505050905090810190601f1680156108c55780820380516001836020036101000a031916815260200191505b5086810383528951815289516020918201918b019080838360005b838110156108f85781810151838201526020016108e0565b50505050905090810190601f1680156109255780820380516001836020036101000a031916815260200191505b5086810382528851815288516020918201918a019080838360005b83811015610958578181015183820152602001610940565b50505050905090810190601f1680156109855780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b3480156109ab57600080fd5b50610396600160a060020a0360043581169060243516604435612471565b3480156109d557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526105bc9436949293602493928401919081908401838280828437509497506125209650505050505050565b348015610a2e57600080fd5b506105bc612588565b348015610a4357600080fd5b506104d661258e565b348015610a5857600080fd5b506104756125e5565b348015610a6d57600080fd5b506105bc600160a060020a03600435166024356125f4565b348015610a9157600080fd5b50610475612642565b348015610aa657600080fd5b50610396612651565b348015610abb57600080fd5b50610396600160a060020a03600435811690602435166044356126a6565b348015610ae557600080fd5b50610396600160a060020a03600435166126de565b348015610b0657600080fd5b50610475612724565b348015610b1b57600080fd5b50610475612733565b348015610b3057600080fd5b506103966004351515612742565b348015610b4a57600080fd5b50610b56600435612790565b604080519115158252519081900360200190f35b348015610b7657600080fd5b506105bc6004356127ad565b348015610b8e57600080fd5b506105bc6127e2565b348015610ba357600080fd5b50610475600160a060020a03600435166127e8565b348015610bc457600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103969436949293602493928401919081908401838280828437509497506128039650505050505050565b348015610c1d57600080fd5b5061039660043561282d565b348015610c3557600080fd5b50610475612849565b348015610c4a57600080fd5b50610b56612858565b348015610c5f57600080fd5b506105bc612861565b348015610c7457600080fd5b50610475600435612867565b348015610c8c57600080fd5b5061039660043561288b565b348015610ca457600080fd5b506103e86128a7565b348015610cb957600080fd5b506105bc600160a060020a0360043516612935565b348015610cda57600080fd5b506103966004351515612968565b348015610cf457600080fd5b506103966004356129b8565b348015610d0c57600080fd5b506105bc612ad5565b348015610d2157600080fd5b50610475612adb565b348015610d3657600080fd5b50610396600435612aea565b348015610d4e57600080fd5b50610396600160a060020a0360043516612b06565b348015610d6f57600080fd5b50610475612b4c565b348015610d8457600080fd5b506105bc612b5b565b348015610d9957600080fd5b506103e8612b61565b348015610dae57600080fd5b506105bc600160a060020a0360043516612bc2565b348015610dcf57600080fd5b50610396600160a060020a03600435166024351515612bdc565b348015610df557600080fd5b50610475612c60565b348015610e0a57600080fd5b50610396600160a060020a0360043516612c6f565b348015610e2b57600080fd5b50610396600435612cb5565b348015610e4357600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261039694600160a060020a038135811695602480359092169560443595369560849401918190840183828082843750949750612cd19650505050505050565b348015610eb257600080fd5b50610ebe600435612d10565b60405180806020018a600160a060020a0316600160a060020a031681526020018060200180602001806020018060200189815260200188815260200187815260200186810386528f818151815260200191508051906020019080838360005b83811015610f35578181015183820152602001610f1d565b50505050905090810190601f168015610f625780820380516001836020036101000a031916815260200191505b5086810385528d5181528d516020918201918f019080838360005b83811015610f95578181015183820152602001610f7d565b50505050905090810190601f168015610fc25780820380516001836020036101000a031916815260200191505b5086810384528c5181528c516020918201918e019080838360005b83811015610ff5578181015183820152602001610fdd565b50505050905090810190601f1680156110225780820380516001836020036101000a031916815260200191505b5086810383528b5181528b516020918201918d019080838360005b8381101561105557818101518382015260200161103d565b50505050905090810190601f1680156110825780820380516001836020036101000a031916815260200191505b5086810382528a5181528a516020918201918c0190808383600083811015610958578181015183820152602001610940565b3480156110c057600080fd5b506105bc600160a060020a0360043516613027565b3480156110e157600080fd5b506105bc600160a060020a0360043516602435613039565b34801561110557600080fd5b506103966004351515613073565b34801561111f57600080fd5b506103e860043561309d565b34801561113757600080fd5b506103966004356131f9565b34801561114f57600080fd5b50610b56613215565b34801561116457600080fd5b50610396600435602435613225565b34801561117f57600080fd5b506103966004351515613731565b34801561119957600080fd5b506105bc613782565b3480156111ae57600080fd5b506104d6600160a060020a0360043516613788565b3480156111cf57600080fd5b50610b566137f2565b3480156111e457600080fd5b50610b56600160a060020a0360043581169060243516613800565b34801561120b57600080fd5b50610396600160a060020a036004351661382e565b34801561122c57600080fd5b50610b56613874565b34801561124157600080fd5b506105bc613883565b34801561125657600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526112b3948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506138899650505050505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b3480156112f457600080fd5b50610396600160a060020a03600435166138b1565b34801561131557600080fd5b50610b56613945565b34801561132a57600080fd5b50610396600435613956565b34801561134257600080fd5b50610396600160a060020a0360043516613a9a565b600054600160a060020a0316331461136e57600080fd5b601555565b600054600160a060020a0316331461138a57600080fd5b6019805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055565b600054600160a060020a031633146113d957600080fd5b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156114945780601f1061146957610100808354040283529160200191611494565b820191906000526020600020905b81548152906001019060200180831161147757829003601f168201915b505050505090505b90565b600090815260026020526040902054600160a060020a031690565b60006114c582612867565b9050600160a060020a0383811690821614156114e057600080fd5b33600160a060020a03821614806114fc57506114fc8133613800565b151561150757600080fd5b60006115128361149f565b600160a060020a03161415806115305750600160a060020a03831615155b156115a757600082815260026020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03878116918217909255835186815293519093918516927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35b505050565b600160a060020a03811660009081526021602090815260409182902080548351818402810184019094528084526060939283018282801561160c57602002820191906000526020600020905b8154815260200190600101908083116115f8575b50505050509050919050565b60008054600160a060020a0316331461163057600080fd5b5060005b80825111156116b857818181518110151561164b57fe5b90602001906020020151601b6000848481518110151561166757fe5b602090810291909101810151600160a060020a03908116835290820192909252604001600020805473ffffffffffffffffffffffffffffffffffffffff191692909116919091179055600101611634565b5050565b600080600080601960039054906101000a900460ff161561184f57336000818152601b6020526040902054600160a060020a03161461175c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f426c76636b6c697374204e6f7420466f756e642e000000000000000000000000604482015290519081900360640190fd5b601c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905130916370a082319160248083019260209291908290030181600087803b1580156117b757600080fd5b505af11580156117cb573d6000803e3d6000fd5b505050506040513d60208110156117e157600080fd5b50511061184f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4c696d69742070657220616464726573732065786365656465642e0000000000604482015290519081900360640190fd5b600085815260236020526040902060018101548154600590920154909550600160a060020a03909116935060ff16915082151561188b57600080fd5b600160a060020a0383163314156118a157600080fd5b348411156118ae57600080fd5b811561197e576118ea6118dd60646118d160185488613ae090919063ffffffff16565b9063ffffffff613b0916565b859063ffffffff613b1e16565b601354601854919250600160a060020a0316906108fc90611919906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611941573d6000803e3d6000fd5b50604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611978573d6000803e3d6000fd5b50611b7f565b601954640100000000900460ff16156119cb57601354604051600160a060020a039091169085156108fc029086906000818181858888f19350505050158015611978573d6000803e3d6000fd5b600f54601454600160a060020a03909116906108fc906119f9906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611a21573d6000803e3d6000fd5b50601054601554600160a060020a03909116906108fc90611a50906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611a78573d6000803e3d6000fd5b50601154601654600160a060020a03909116906108fc90611aa7906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611acf573d6000803e3d6000fd5b50601254601754600160a060020a03909116906108fc90611afe906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611b26573d6000803e3d6000fd5b50601354601854600160a060020a03909116906108fc90611b55906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611b7d573d6000803e3d6000fd5b505b60195462010000900460ff1615611cc657600e54601a54600160a060020a039091169063a9059cbb903390611bc2906064906118d1908a9063ffffffff613ae016565b6040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b505050506040513d6020811015611c5757600080fd5b50511515611cc657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5472616e7366657220636173686261636b206572726f722e0000000000000000604482015290519081900360640190fd5b6000858152602360205260408120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590611d0460028301826147d5565b611d126003830160006147d5565b611d206004830160006147d5565b60058201805460ff19169055611d3a6006830160006147d5565b611d486007830160006147d5565b506000600891909101819055604080517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820181905233602483015260448201899052915191926342842e0e9260648084019382900301818387803b158015611db557600080fd5b505af1158015611dc9573d6000803e3d6000fd5b505050505050505050565b600054600160a060020a03163314611deb57600080fd5b6010805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60095490565b6000611e2a614819565b600080548190600160a060020a03163314611e4457600080fd5b601954610100900460ff1615611ec057601f8b6040518082805190602001908083835b60208310611e865780518252601f199092019160209182019101611e67565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054159150611ec0905057600080fd5b851515611ecc57600195505b600093505b8584101561214057610120604051908101604052808c815260200133600160a060020a031681526020018b81526020018a8152602001898152602001888152602001878152602001611f2c8688613b3090919063ffffffff16565b815260006020918201819052601e80546001818101808455929093528451805195985092949193889360099092027f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3500192611f8a928492019061486f565b5060208281015160018301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905560408301518051611fd6926002850192019061486f565b5060608201518051611ff291600384019160209091019061486f565b506080820151805161200e91600484019160209091019061486f565b5060a0820151805161202a91600584019160209091019061486f565b5060c0820151816006015560e082015181600701556101008201518160080155505003915081601e8381548110151561205f57fe5b90600052602060002090600902016008018190555081601f8c6040518082805190602001908083835b602083106120a75780518252601f199092019160209182019101612088565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092909255506120e390503383613b3d565b503360008181526020808052604080832080546001908101909155602183528184208054918201815584528284208101869055938352602282528083208584529091529020819055612135828d613b8c565b600190930192611ed1565b505050505050505050505050565b600054600160a060020a0316331461216557600080fd5b601a55565b60236020908152600091825260409182902080546001808301546002808501805488516101009582161595909502600019011691909104601f8101879004870284018701909752868352600160a060020a039093169590949192918301828280156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505060038301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156122a65780601f1061227b576101008083540402835291602001916122a6565b820191906000526020600020905b81548152906001019060200180831161228957829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156123365780601f1061230b57610100808354040283529160200191612336565b820191906000526020600020905b81548152906001019060200180831161231957829003601f168201915b50505050600583015460068401805460408051602060026101006001861615026000190190941693909304601f8101849004840282018401909252818152959660ff90941695939450908301828280156123d15780601f106123a6576101008083540402835291602001916123d1565b820191906000526020600020905b8154815290600101906020018083116123b457829003601f168201915b5050505060078301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156124615780601f1061243657610100808354040283529160200191612461565b820191906000526020600020905b81548152906001019060200180831161244457829003601f168201915b5050505050908060080154905089565b8061247c338261405d565b151561248757600080fd5b600160a060020a038416151561249c57600080fd5b600160a060020a03831615156124b157600080fd5b6124bb84836140bc565b6124c58483614169565b6124cf83836142a2565b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b6000601f826040518082805190602001908083835b602083106125545780518252601f199092019160209182019101612535565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054949350505050565b601c5481565b6060600980548060200260200160405190810160405280929190818152602001828054801561149457602002820191906000526020600020905b8154815260200190600101908083116125c8575050505050905090565b601254600160a060020a031681565b60006125ff83612935565b821061260a57600080fd5b600160a060020a038316600090815260076020526040902080548390811061262e57fe5b906000526020600020015490505b92915050565b601354600160a060020a031681565b600054600160a060020a0316331461266857600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f193505050501580156126a3573d6000803e3d6000fd5b50565b806126b1338261405d565b15156126bc57600080fd5b6126d88484846020604051908101604052806000815250612cd1565b50505050565b600054600160a060020a031633146126f557600080fd5b6013805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b601154600160a060020a031681565b600d54600160a060020a031681565b600054600160a060020a0316331461275957600080fd5b60198054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b600090815260016020526040902054600160a060020a0316151590565b60006127b7611e1a565b82106127c257600080fd5b60098054839081106127d057fe5b90600052602060002001549050919050565b60185481565b601b60205260009081526040902054600160a060020a031681565b600054600160a060020a0316331461281a57600080fd5b80516116b890600c90602084019061486f565b600054600160a060020a0316331461284457600080fd5b601455565b601054600160a060020a031681565b60195460ff1681565b60175481565b600081815260016020526040812054600160a060020a031680151561263c57600080fd5b600054600160a060020a031633146128a257600080fd5b601855565b600c805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561292d5780601f106129025761010080835404028352916020019161292d565b820191906000526020600020905b81548152906001019060200180831161291057829003601f168201915b505050505081565b6000600160a060020a038216151561294c57600080fd5b50600160a060020a031660009081526003602052604090205490565b600054600160a060020a0316331461297f57600080fd5b601980549115156301000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff909216919091179055565b600054600160a060020a031633146129cf57600080fd5b600e54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015612a3c57600080fd5b505af1158015612a50573d6000803e3d6000fd5b505050506040513d6020811015612a6657600080fd5b505115156126a357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5472616e736665722056424d41206572726f722e000000000000000000000000604482015290519081900360640190fd5b601a5481565b600e54600160a060020a031681565b600054600160a060020a03163314612b0157600080fd5b601c55565b600054600160a060020a03163314612b1d57600080fd5b600e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b60155481565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156114945780601f1061146957610100808354040283529160200191611494565b600160a060020a0316600090815260208052604090205490565b600160a060020a038216331415612bf257600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b600f54600160a060020a031681565b600054600160a060020a03163314612c8657600080fd5b6011805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314612ccc57600080fd5b601755565b81612cdc338261405d565b1515612ce757600080fd5b612cf2858585612471565b612cfe858585856142eb565b1515612d0957600080fd5b5050505050565b601e805482908110612d1e57fe5b60009182526020918290206009919091020180546040805160026001841615610100026000190190931692909204601f810185900485028301850190915280825291935091839190830182828015612db75780601f10612d8c57610100808354040283529160200191612db7565b820191906000526020600020905b815481529060010190602001808311612d9a57829003601f168201915b505050506001838101546002808601805460408051602061010097841615979097026000190190921693909304601f81018690048602820186019093528281529596600160a060020a03909316959294509192830182828015612e5b5780601f10612e3057610100808354040283529160200191612e5b565b820191906000526020600020905b815481529060010190602001808311612e3e57829003601f168201915b5050505060038301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015612eeb5780601f10612ec057610100808354040283529160200191612eeb565b820191906000526020600020905b815481529060010190602001808311612ece57829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015612f7b5780601f10612f5057610100808354040283529160200191612f7b565b820191906000526020600020905b815481529060010190602001808311612f5e57829003601f168201915b5050505060058301805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815294959493509083018282801561300b5780601f10612fe05761010080835404028352916020019161300b565b820191906000526020600020905b815481529060010190602001808311612fee57829003601f168201915b5050505050908060060154908060070154908060080154905089565b601d6020526000908152604090205481565b600061304483612bc2565b821061304f57600080fd5b600160a060020a038316600090815260216020526040902080548390811061262e57fe5b600054600160a060020a0316331461308a57600080fd5b6019805460ff1916911515919091179055565b60606130a882612790565b15156130b357600080fd5b61263c601e838154811015156130c557fe5b6000918252602091829020600990910201805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156131585780601f1061312d57610100808354040283529160200191613158565b820191906000526020600020905b81548152906001019060200180831161313b57829003601f168201915b5050600c8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152955091935091508301828280156131e65780601f106131bb576101008083540402835291602001916131e6565b820191906000526020600020905b8154815290600101906020018083116131c957829003601f168201915b505050505061447490919063ffffffff16565b600054600160a060020a0316331461321057600080fd5b601655565b6019546301000000900460ff1681565b600061322f6148ed565b833361323a82612867565b600160a060020a03161461324d57600080fd5b600085815260236020526040902054600160a060020a03161561326f57600080fd5b60005460019350600160a060020a031633141561328b57600092505b6101206040519081016040528033600160a060020a03168152602001858152602001601e878154811015156132bc57fe5b6000918252602091829020600990910201805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561334f5780601f106133245761010080835404028352916020019161334f565b820191906000526020600020905b81548152906001019060200180831161333257829003601f168201915b50505050508152602001601e8781548110151561336857fe5b600091825260209182902060026009909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134005780601f106133d557610100808354040283529160200191613400565b820191906000526020600020905b8154815290600101906020018083116133e357829003601f168201915b50505050508152602001601e8781548110151561341957fe5b6000918252602091829020600360099092020101805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134af5780601f10613484576101008083540402835291602001916134af565b820191906000526020600020905b81548152906001019060200180831161349257829003601f168201915b505050505081526020018415158152602001601e878154811015156134d057fe5b6000918252602091829020600460099092020101805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156135665780601f1061353b57610100808354040283529160200191613566565b820191906000526020600020905b81548152906001019060200180831161354957829003601f168201915b50505050508152602001601e8781548110151561357f57fe5b6000918252602091829020600560099092020101805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156136155780601f106135ea57610100808354040283529160200191613615565b820191906000526020600020905b8154815290600101906020018083116135f857829003601f168201915b505050918352505060209081018790526000878152602382526040908190208351815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909116178155838301516001820155908301518051939550859391926136859260028501929091019061486f565b50606082015180516136a191600384019160209091019061486f565b50608082015180516136bd91600484019160209091019061486f565b5060a082015160058201805460ff191691151591909117905560c082015180516136f191600684019160209091019061486f565b5060e0820151805161370d91600784019160209091019061486f565b50610100820151816008015590505061372630866114ba565b612d093330876126a6565b600054600160a060020a0316331461374857600080fd5b60198054911515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909216919091179055565b60145481565b600160a060020a03811660009081526007602090815260409182902080548351818402810184019094528084526060939283018282801561160c57602002820191906000526020600020908154815260200190600101908083116115f85750505050509050919050565b601954610100900460ff1681565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600054600160a060020a0316331461384557600080fd5b6012805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60195462010000900460ff1681565b60165481565b7ff0b9e5ba000000000000000000000000000000000000000000000000000000009392505050565b600054600160a060020a031633146138c857600080fd5b600160a060020a03811615156138dd57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b601954640100000000900460ff1681565b600081815260236020526040902054600160a060020a0316331461397957600080fd5b6000818152602360205260408082205481517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201819052600160a060020a03909216602482015260448101859052915190926342842e0e926064808201939182900301818387803b1580156139f357600080fd5b505af1158015613a07573d6000803e3d6000fd5b5050506000828152602360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181018290559150613a4960028301826147d5565b613a576003830160006147d5565b613a656004830160006147d5565b60058201805460ff19169055613a7f6006830160006147d5565b613a8d6007830160006147d5565b6008820160009055505050565b600054600160a060020a03163314613ab157600080fd5b600f805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000821515613af15750600061263c565b50818102818382811515613b0157fe5b041461263c57fe5b60008183811515613b1657fe5b049392505050565b600082821115613b2a57fe5b50900390565b8181018281101561263c57fe5b613b478282614643565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af015550565b613b946148ed565b600083815260236020526040902054600160a060020a031615613bb657600080fd5b6101206040519081016040528033600160a060020a03168152602001838152602001601e85815481101515613be757fe5b6000918252602091829020600990910201805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015613c7a5780601f10613c4f57610100808354040283529160200191613c7a565b820191906000526020600020905b815481529060010190602001808311613c5d57829003601f168201915b50505050508152602001601e85815481101515613c9357fe5b600091825260209182902060026009909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015613d2b5780601f10613d0057610100808354040283529160200191613d2b565b820191906000526020600020905b815481529060010190602001808311613d0e57829003601f168201915b50505050508152602001601e85815481101515613d4457fe5b6000918252602091829020600360099092020101805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015613dda5780601f10613daf57610100808354040283529160200191613dda565b820191906000526020600020905b815481529060010190602001808311613dbd57829003601f168201915b50505050508152602001600015158152602001601e85815481101515613dfc57fe5b6000918252602091829020600460099092020101805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015613e925780601f10613e6757610100808354040283529160200191613e92565b820191906000526020600020905b815481529060010190602001808311613e7557829003601f168201915b50505050508152602001601e85815481101515613eab57fe5b6000918252602091829020600560099092020101805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015613f415780601f10613f1657610100808354040283529160200191613f41565b820191906000526020600020905b815481529060010190602001808311613f2457829003601f168201915b505050918352505060209081018590526000858152602382526040908190208351815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390911617815583830151600182015590830151805193945084939192613fb19260028501929091019061486f565b5060608201518051613fcd91600384019160209091019061486f565b5060808201518051613fe991600484019160209091019061486f565b5060a082015160058201805460ff191691151591909117905560c0820151805161401d91600684019160209091019061486f565b5060e0820151805161403991600784019160209091019061486f565b50610100820151816008015590505061405230846114ba565b6115a73330856126a6565b60008061406983612867565b905080600160a060020a031684600160a060020a031614806140a4575083600160a060020a03166140998461149f565b600160a060020a0316145b806140b457506140b48185613800565b949350505050565b81600160a060020a03166140cf82612867565b600160a060020a0316146140e257600080fd5b600081815260026020526040902054600160a060020a0316156116b8576000818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916905580518481529051600160a060020a038616927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35050565b600080600061417885856146a7565b600084815260086020908152604080832054600160a060020a03891684526007909252909120549093506141b390600163ffffffff613b1e16565b600160a060020a0386166000908152600760205260409020805491935090839081106141db57fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a031681526020019081526020016000208481548110151561421b57fe5b6000918252602080832090910192909255600160a060020a038716815260079091526040812080548490811061424d57fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490614284906000198301614945565b50600093845260086020526040808520859055908452909220555050565b60006142ae838361473d565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b60008061430085600160a060020a03166147cd565b151561430f576001915061446b565b84600160a060020a031663f0b9e5ba8786866040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156143a757818101518382015260200161438f565b50505050905090810190601f1680156143d45780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156143f557600080fd5b505af1158015614409573d6000803e3d6000fd5b505050506040513d602081101561441f57600080fd5b50517fffffffff0000000000000000000000000000000000000000000000000000000081167ff0b9e5ba0000000000000000000000000000000000000000000000000000000014925090505b50949350505050565b60608060608060606000808895508794506000855111151561449257fe5b84518651016040519080825280601f01601f1916602001820160405280156144c4578160200160208202803883390190505b509350839250600091505b85518210156145805785828151811015156144e657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838280600101935081518110151561454557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001909101906144cf565b600091505b845182101561463657848281518110151561459c57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283828060010193508151811015156145fb57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190910190614585565b5090979650505050505050565b600160a060020a038216151561465857600080fd5b61466282826142a2565b604080518281529051600160a060020a038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b81600160a060020a03166146ba82612867565b600160a060020a0316146146cd57600080fd5b600160a060020a0382166000908152600360205260409020546146f790600163ffffffff613b1e16565b600160a060020a03909216600090815260036020908152604080832094909455918152600190915220805473ffffffffffffffffffffffffffffffffffffffff19169055565b600081815260016020526040902054600160a060020a03161561475f57600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03881690811790915584526003909152909120546147ad91613b30565b600160a060020a0390921660009081526003602052604090209190915550565b6000903b1190565b50805460018160011615610100020316600290046000825580601f106147fb57506126a3565b601f0160209004906000526020600020908101906126a39190614965565b61012060405190810160405280606081526020016000600160a060020a03168152602001606081526020016060815260200160608152602001606081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106148b057805160ff19168380011785556148dd565b828001600101855582156148dd579182015b828111156148dd5782518255916020019190600101906148c2565b506148e9929150614965565b5090565b610120604051908101604052806000600160a060020a03168152602001600081526020016060815260200160608152602001606081526020016000151581526020016060815260200160608152602001600081525090565b8154818355818111156115a7576000838152602090206115a79181019083015b61149c91905b808211156148e9576000815560010161496b5600a165627a7a72305820be33d525b3facc1d653891584a04a8515826347d39b09cf6f0ec22f5592d63880029
Deployed Bytecode
0x6080604052600436106103795763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630256276d811461037e57806303b904131461039857806305b3bf8a146103b257806306fdde03146103d3578063081812fc1461045d578063095ea7b3146104915780630b8021c4146104b55780630ea4275014610526578063150bde031461057b5780631525ff7d1461058657806318160ddd146105a75780631dc78a38146105ce57806322b1bbc51461072d578063239c4dcf1461074557806323b872dd1461099f57806327ea2df0146109c95780632a484ad414610a225780632a5c792a14610a375780632dc0562d14610a4c5780632f745c5914610a615780632fe5cba114610a855780633ccfd60b14610a9a57806342842e0e14610aaf57806345136c4b14610ad95780634626402b14610afa5780634dd4be8c14610b0f5780634deb1cbc14610b245780634f558e7914610b3e5780634f6ccce714610b6a57806354be171414610b8257806354fd146714610b9757806355f804b314610bb857806356ea64ad14610c115780635992704414610c295780635b98a73714610c3e5780635f7b144a14610c535780636352211e14610c685780636bb4c45914610c805780636c0360eb14610c9857806370a0823114610cad57806378f9ccf214610cce5780637953f52714610ce857806379e663af14610d005780637b1bb78114610d1557806381c0b1f014610d2a57806384d35c7614610d425780638da5cb5b14610d63578063932733c714610d7857806395d89b4114610d8d5780639bc706e814610da2578063a22cb46514610dc3578063a3342fba14610de9578063a8602fea14610dfe578063b3eb583514610e1f578063b88d4fde14610e37578063c16479e214610ea6578063c326bf4f146110b4578063c435d2ac146110d5578063c682b09b146110f9578063c87b56dd14611113578063cd6840d51461112b578063cdfb2b4e14611143578063d0012b3914611158578063d34a6a3314611173578063d862686b1461118d578063d9d61655146111a2578063e67478aa146111c3578063e985e9c5146111d8578063ea414b28146111ff578063ea7ccd7914611220578063ecfeb5ba14611235578063f0b9e5ba1461124a578063f2fde38b146112e8578063f73fb6d814611309578063f885bf831461131e578063fce57fd914611336575b600080fd5b34801561038a57600080fd5b50610396600435611357565b005b3480156103a457600080fd5b506103966004351515611373565b3480156103be57600080fd5b50610396600160a060020a03600435166113c2565b3480156103df57600080fd5b506103e8611408565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561042257818101518382015260200161040a565b50505050905090810190601f16801561044f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561046957600080fd5b5061047560043561149f565b60408051600160a060020a039092168252519081900360200190f35b34801561049d57600080fd5b50610396600160a060020a03600435166024356114ba565b3480156104c157600080fd5b506104d6600160a060020a03600435166115ac565b60408051602080825283518183015283519192839290830191858101910280838360005b838110156105125781810151838201526020016104fa565b505050509050019250505060405180910390f35b34801561053257600080fd5b5060408051602060048035808201358381028086018501909652808552610396953695939460249493850192918291850190849080828437509497506116189650505050505050565b6103966004356116bc565b34801561059257600080fd5b50610396600160a060020a0360043516611dd4565b3480156105b357600080fd5b506105bc611e1a565b60408051918252519081900360200190f35b3480156105da57600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261039695833595369560449491939091019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a999881019791965091820194509250829150840183828082843750949750508435955050506020909201359150611e209050565b34801561073957600080fd5b5061039660043561214e565b34801561075157600080fd5b5061075d60043561216a565b604051808a600160a060020a0316600160a060020a0316815260200189815260200180602001806020018060200188151515158152602001806020018060200187815260200186810386528d818151815260200191508051906020019080838360005b838110156107d85781810151838201526020016107c0565b50505050905090810190601f1680156108055780820380516001836020036101000a031916815260200191505b5086810385528c5181528c516020918201918e019080838360005b83811015610838578181015183820152602001610820565b50505050905090810190601f1680156108655780820380516001836020036101000a031916815260200191505b5086810384528b5181528b516020918201918d019080838360005b83811015610898578181015183820152602001610880565b50505050905090810190601f1680156108c55780820380516001836020036101000a031916815260200191505b5086810383528951815289516020918201918b019080838360005b838110156108f85781810151838201526020016108e0565b50505050905090810190601f1680156109255780820380516001836020036101000a031916815260200191505b5086810382528851815288516020918201918a019080838360005b83811015610958578181015183820152602001610940565b50505050905090810190601f1680156109855780820380516001836020036101000a031916815260200191505b509e50505050505050505050505050505060405180910390f35b3480156109ab57600080fd5b50610396600160a060020a0360043581169060243516604435612471565b3480156109d557600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526105bc9436949293602493928401919081908401838280828437509497506125209650505050505050565b348015610a2e57600080fd5b506105bc612588565b348015610a4357600080fd5b506104d661258e565b348015610a5857600080fd5b506104756125e5565b348015610a6d57600080fd5b506105bc600160a060020a03600435166024356125f4565b348015610a9157600080fd5b50610475612642565b348015610aa657600080fd5b50610396612651565b348015610abb57600080fd5b50610396600160a060020a03600435811690602435166044356126a6565b348015610ae557600080fd5b50610396600160a060020a03600435166126de565b348015610b0657600080fd5b50610475612724565b348015610b1b57600080fd5b50610475612733565b348015610b3057600080fd5b506103966004351515612742565b348015610b4a57600080fd5b50610b56600435612790565b604080519115158252519081900360200190f35b348015610b7657600080fd5b506105bc6004356127ad565b348015610b8e57600080fd5b506105bc6127e2565b348015610ba357600080fd5b50610475600160a060020a03600435166127e8565b348015610bc457600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526103969436949293602493928401919081908401838280828437509497506128039650505050505050565b348015610c1d57600080fd5b5061039660043561282d565b348015610c3557600080fd5b50610475612849565b348015610c4a57600080fd5b50610b56612858565b348015610c5f57600080fd5b506105bc612861565b348015610c7457600080fd5b50610475600435612867565b348015610c8c57600080fd5b5061039660043561288b565b348015610ca457600080fd5b506103e86128a7565b348015610cb957600080fd5b506105bc600160a060020a0360043516612935565b348015610cda57600080fd5b506103966004351515612968565b348015610cf457600080fd5b506103966004356129b8565b348015610d0c57600080fd5b506105bc612ad5565b348015610d2157600080fd5b50610475612adb565b348015610d3657600080fd5b50610396600435612aea565b348015610d4e57600080fd5b50610396600160a060020a0360043516612b06565b348015610d6f57600080fd5b50610475612b4c565b348015610d8457600080fd5b506105bc612b5b565b348015610d9957600080fd5b506103e8612b61565b348015610dae57600080fd5b506105bc600160a060020a0360043516612bc2565b348015610dcf57600080fd5b50610396600160a060020a03600435166024351515612bdc565b348015610df557600080fd5b50610475612c60565b348015610e0a57600080fd5b50610396600160a060020a0360043516612c6f565b348015610e2b57600080fd5b50610396600435612cb5565b348015610e4357600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261039694600160a060020a038135811695602480359092169560443595369560849401918190840183828082843750949750612cd19650505050505050565b348015610eb257600080fd5b50610ebe600435612d10565b60405180806020018a600160a060020a0316600160a060020a031681526020018060200180602001806020018060200189815260200188815260200187815260200186810386528f818151815260200191508051906020019080838360005b83811015610f35578181015183820152602001610f1d565b50505050905090810190601f168015610f625780820380516001836020036101000a031916815260200191505b5086810385528d5181528d516020918201918f019080838360005b83811015610f95578181015183820152602001610f7d565b50505050905090810190601f168015610fc25780820380516001836020036101000a031916815260200191505b5086810384528c5181528c516020918201918e019080838360005b83811015610ff5578181015183820152602001610fdd565b50505050905090810190601f1680156110225780820380516001836020036101000a031916815260200191505b5086810383528b5181528b516020918201918d019080838360005b8381101561105557818101518382015260200161103d565b50505050905090810190601f1680156110825780820380516001836020036101000a031916815260200191505b5086810382528a5181528a516020918201918c0190808383600083811015610958578181015183820152602001610940565b3480156110c057600080fd5b506105bc600160a060020a0360043516613027565b3480156110e157600080fd5b506105bc600160a060020a0360043516602435613039565b34801561110557600080fd5b506103966004351515613073565b34801561111f57600080fd5b506103e860043561309d565b34801561113757600080fd5b506103966004356131f9565b34801561114f57600080fd5b50610b56613215565b34801561116457600080fd5b50610396600435602435613225565b34801561117f57600080fd5b506103966004351515613731565b34801561119957600080fd5b506105bc613782565b3480156111ae57600080fd5b506104d6600160a060020a0360043516613788565b3480156111cf57600080fd5b50610b566137f2565b3480156111e457600080fd5b50610b56600160a060020a0360043581169060243516613800565b34801561120b57600080fd5b50610396600160a060020a036004351661382e565b34801561122c57600080fd5b50610b56613874565b34801561124157600080fd5b506105bc613883565b34801561125657600080fd5b50604080516020600460443581810135601f81018490048402850184019095528484526112b3948235600160a060020a03169460248035953695946064949201919081908401838280828437509497506138899650505050505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b3480156112f457600080fd5b50610396600160a060020a03600435166138b1565b34801561131557600080fd5b50610b56613945565b34801561132a57600080fd5b50610396600435613956565b34801561134257600080fd5b50610396600160a060020a0360043516613a9a565b600054600160a060020a0316331461136e57600080fd5b601555565b600054600160a060020a0316331461138a57600080fd5b6019805491151562010000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff909216919091179055565b600054600160a060020a031633146113d957600080fd5b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156114945780601f1061146957610100808354040283529160200191611494565b820191906000526020600020905b81548152906001019060200180831161147757829003601f168201915b505050505090505b90565b600090815260026020526040902054600160a060020a031690565b60006114c582612867565b9050600160a060020a0383811690821614156114e057600080fd5b33600160a060020a03821614806114fc57506114fc8133613800565b151561150757600080fd5b60006115128361149f565b600160a060020a03161415806115305750600160a060020a03831615155b156115a757600082815260026020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03878116918217909255835186815293519093918516927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35b505050565b600160a060020a03811660009081526021602090815260409182902080548351818402810184019094528084526060939283018282801561160c57602002820191906000526020600020905b8154815260200190600101908083116115f8575b50505050509050919050565b60008054600160a060020a0316331461163057600080fd5b5060005b80825111156116b857818181518110151561164b57fe5b90602001906020020151601b6000848481518110151561166757fe5b602090810291909101810151600160a060020a03908116835290820192909252604001600020805473ffffffffffffffffffffffffffffffffffffffff191692909116919091179055600101611634565b5050565b600080600080601960039054906101000a900460ff161561184f57336000818152601b6020526040902054600160a060020a03161461175c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f426c76636b6c697374204e6f7420466f756e642e000000000000000000000000604482015290519081900360640190fd5b601c54604080517f70a08231000000000000000000000000000000000000000000000000000000008152336004820152905130916370a082319160248083019260209291908290030181600087803b1580156117b757600080fd5b505af11580156117cb573d6000803e3d6000fd5b505050506040513d60208110156117e157600080fd5b50511061184f57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f4c696d69742070657220616464726573732065786365656465642e0000000000604482015290519081900360640190fd5b600085815260236020526040902060018101548154600590920154909550600160a060020a03909116935060ff16915082151561188b57600080fd5b600160a060020a0383163314156118a157600080fd5b348411156118ae57600080fd5b811561197e576118ea6118dd60646118d160185488613ae090919063ffffffff16565b9063ffffffff613b0916565b859063ffffffff613b1e16565b601354601854919250600160a060020a0316906108fc90611919906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611941573d6000803e3d6000fd5b50604051600160a060020a0384169082156108fc029083906000818181858888f19350505050158015611978573d6000803e3d6000fd5b50611b7f565b601954640100000000900460ff16156119cb57601354604051600160a060020a039091169085156108fc029086906000818181858888f19350505050158015611978573d6000803e3d6000fd5b600f54601454600160a060020a03909116906108fc906119f9906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611a21573d6000803e3d6000fd5b50601054601554600160a060020a03909116906108fc90611a50906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611a78573d6000803e3d6000fd5b50601154601654600160a060020a03909116906108fc90611aa7906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611acf573d6000803e3d6000fd5b50601254601754600160a060020a03909116906108fc90611afe906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611b26573d6000803e3d6000fd5b50601354601854600160a060020a03909116906108fc90611b55906064906118d190899063ffffffff613ae016565b6040518115909202916000818181858888f19350505050158015611b7d573d6000803e3d6000fd5b505b60195462010000900460ff1615611cc657600e54601a54600160a060020a039091169063a9059cbb903390611bc2906064906118d1908a9063ffffffff613ae016565b6040518363ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018083600160a060020a0316600160a060020a0316815260200182815260200192505050602060405180830381600087803b158015611c2d57600080fd5b505af1158015611c41573d6000803e3d6000fd5b505050506040513d6020811015611c5757600080fd5b50511515611cc657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f5472616e7366657220636173686261636b206572726f722e0000000000000000604482015290519081900360640190fd5b6000858152602360205260408120805473ffffffffffffffffffffffffffffffffffffffff191681556001810182905590611d0460028301826147d5565b611d126003830160006147d5565b611d206004830160006147d5565b60058201805460ff19169055611d3a6006830160006147d5565b611d486007830160006147d5565b506000600891909101819055604080517f42842e0e000000000000000000000000000000000000000000000000000000008152306004820181905233602483015260448201899052915191926342842e0e9260648084019382900301818387803b158015611db557600080fd5b505af1158015611dc9573d6000803e3d6000fd5b505050505050505050565b600054600160a060020a03163314611deb57600080fd5b6010805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60095490565b6000611e2a614819565b600080548190600160a060020a03163314611e4457600080fd5b601954610100900460ff1615611ec057601f8b6040518082805190602001908083835b60208310611e865780518252601f199092019160209182019101611e67565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054159150611ec0905057600080fd5b851515611ecc57600195505b600093505b8584101561214057610120604051908101604052808c815260200133600160a060020a031681526020018b81526020018a8152602001898152602001888152602001878152602001611f2c8688613b3090919063ffffffff16565b815260006020918201819052601e80546001818101808455929093528451805195985092949193889360099092027f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e3500192611f8a928492019061486f565b5060208281015160018301805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390921691909117905560408301518051611fd6926002850192019061486f565b5060608201518051611ff291600384019160209091019061486f565b506080820151805161200e91600484019160209091019061486f565b5060a0820151805161202a91600584019160209091019061486f565b5060c0820151816006015560e082015181600701556101008201518160080155505003915081601e8381548110151561205f57fe5b90600052602060002090600902016008018190555081601f8c6040518082805190602001908083835b602083106120a75780518252601f199092019160209182019101612088565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092909255506120e390503383613b3d565b503360008181526020808052604080832080546001908101909155602183528184208054918201815584528284208101869055938352602282528083208584529091529020819055612135828d613b8c565b600190930192611ed1565b505050505050505050505050565b600054600160a060020a0316331461216557600080fd5b601a55565b60236020908152600091825260409182902080546001808301546002808501805488516101009582161595909502600019011691909104601f8101879004870284018701909752868352600160a060020a039093169590949192918301828280156122165780601f106121eb57610100808354040283529160200191612216565b820191906000526020600020905b8154815290600101906020018083116121f957829003601f168201915b5050505060038301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156122a65780601f1061227b576101008083540402835291602001916122a6565b820191906000526020600020905b81548152906001019060200180831161228957829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156123365780601f1061230b57610100808354040283529160200191612336565b820191906000526020600020905b81548152906001019060200180831161231957829003601f168201915b50505050600583015460068401805460408051602060026101006001861615026000190190941693909304601f8101849004840282018401909252818152959660ff90941695939450908301828280156123d15780601f106123a6576101008083540402835291602001916123d1565b820191906000526020600020905b8154815290600101906020018083116123b457829003601f168201915b5050505060078301805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529495949350908301828280156124615780601f1061243657610100808354040283529160200191612461565b820191906000526020600020905b81548152906001019060200180831161244457829003601f168201915b5050505050908060080154905089565b8061247c338261405d565b151561248757600080fd5b600160a060020a038416151561249c57600080fd5b600160a060020a03831615156124b157600080fd5b6124bb84836140bc565b6124c58483614169565b6124cf83836142a2565b82600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b6000601f826040518082805190602001908083835b602083106125545780518252601f199092019160209182019101612535565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922054949350505050565b601c5481565b6060600980548060200260200160405190810160405280929190818152602001828054801561149457602002820191906000526020600020905b8154815260200190600101908083116125c8575050505050905090565b601254600160a060020a031681565b60006125ff83612935565b821061260a57600080fd5b600160a060020a038316600090815260076020526040902080548390811061262e57fe5b906000526020600020015490505b92915050565b601354600160a060020a031681565b600054600160a060020a0316331461266857600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f193505050501580156126a3573d6000803e3d6000fd5b50565b806126b1338261405d565b15156126bc57600080fd5b6126d88484846020604051908101604052806000815250612cd1565b50505050565b600054600160a060020a031633146126f557600080fd5b6013805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b601154600160a060020a031681565b600d54600160a060020a031681565b600054600160a060020a0316331461275957600080fd5b60198054911515610100027fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff909216919091179055565b600090815260016020526040902054600160a060020a0316151590565b60006127b7611e1a565b82106127c257600080fd5b60098054839081106127d057fe5b90600052602060002001549050919050565b60185481565b601b60205260009081526040902054600160a060020a031681565b600054600160a060020a0316331461281a57600080fd5b80516116b890600c90602084019061486f565b600054600160a060020a0316331461284457600080fd5b601455565b601054600160a060020a031681565b60195460ff1681565b60175481565b600081815260016020526040812054600160a060020a031680151561263c57600080fd5b600054600160a060020a031633146128a257600080fd5b601855565b600c805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561292d5780601f106129025761010080835404028352916020019161292d565b820191906000526020600020905b81548152906001019060200180831161291057829003601f168201915b505050505081565b6000600160a060020a038216151561294c57600080fd5b50600160a060020a031660009081526003602052604090205490565b600054600160a060020a0316331461297f57600080fd5b601980549115156301000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff909216919091179055565b600054600160a060020a031633146129cf57600080fd5b600e54604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152336004820152602481018490529051600160a060020a039092169163a9059cbb916044808201926020929091908290030181600087803b158015612a3c57600080fd5b505af1158015612a50573d6000803e3d6000fd5b505050506040513d6020811015612a6657600080fd5b505115156126a357604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f5472616e736665722056424d41206572726f722e000000000000000000000000604482015290519081900360640190fd5b601a5481565b600e54600160a060020a031681565b600054600160a060020a03163314612b0157600080fd5b601c55565b600054600160a060020a03163314612b1d57600080fd5b600e805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031681565b60155481565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156114945780601f1061146957610100808354040283529160200191611494565b600160a060020a0316600090815260208052604090205490565b600160a060020a038216331415612bf257600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b600f54600160a060020a031681565b600054600160a060020a03163314612c8657600080fd5b6011805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a03163314612ccc57600080fd5b601755565b81612cdc338261405d565b1515612ce757600080fd5b612cf2858585612471565b612cfe858585856142eb565b1515612d0957600080fd5b5050505050565b601e805482908110612d1e57fe5b60009182526020918290206009919091020180546040805160026001841615610100026000190190931692909204601f810185900485028301850190915280825291935091839190830182828015612db75780601f10612d8c57610100808354040283529160200191612db7565b820191906000526020600020905b815481529060010190602001808311612d9a57829003601f168201915b505050506001838101546002808601805460408051602061010097841615979097026000190190921693909304601f81018690048602820186019093528281529596600160a060020a03909316959294509192830182828015612e5b5780601f10612e3057610100808354040283529160200191612e5b565b820191906000526020600020905b815481529060010190602001808311612e3e57829003601f168201915b5050505060038301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015612eeb5780601f10612ec057610100808354040283529160200191612eeb565b820191906000526020600020905b815481529060010190602001808311612ece57829003601f168201915b5050505060048301805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152949594935090830182828015612f7b5780601f10612f5057610100808354040283529160200191612f7b565b820191906000526020600020905b815481529060010190602001808311612f5e57829003601f168201915b5050505060058301805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815294959493509083018282801561300b5780601f10612fe05761010080835404028352916020019161300b565b820191906000526020600020905b815481529060010190602001808311612fee57829003601f168201915b5050505050908060060154908060070154908060080154905089565b601d6020526000908152604090205481565b600061304483612bc2565b821061304f57600080fd5b600160a060020a038316600090815260216020526040902080548390811061262e57fe5b600054600160a060020a0316331461308a57600080fd5b6019805460ff1916911515919091179055565b60606130a882612790565b15156130b357600080fd5b61263c601e838154811015156130c557fe5b6000918252602091829020600990910201805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156131585780601f1061312d57610100808354040283529160200191613158565b820191906000526020600020905b81548152906001019060200180831161313b57829003601f168201915b5050600c8054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152955091935091508301828280156131e65780601f106131bb576101008083540402835291602001916131e6565b820191906000526020600020905b8154815290600101906020018083116131c957829003601f168201915b505050505061447490919063ffffffff16565b600054600160a060020a0316331461321057600080fd5b601655565b6019546301000000900460ff1681565b600061322f6148ed565b833361323a82612867565b600160a060020a03161461324d57600080fd5b600085815260236020526040902054600160a060020a03161561326f57600080fd5b60005460019350600160a060020a031633141561328b57600092505b6101206040519081016040528033600160a060020a03168152602001858152602001601e878154811015156132bc57fe5b6000918252602091829020600990910201805460408051601f600260001961010060018716150201909416939093049283018590048502810185019091528181529283018282801561334f5780601f106133245761010080835404028352916020019161334f565b820191906000526020600020905b81548152906001019060200180831161333257829003601f168201915b50505050508152602001601e8781548110151561336857fe5b600091825260209182902060026009909202018101805460408051601f6000196101006001861615020190931694909404918201859004850284018501905280835291929091908301828280156134005780601f106133d557610100808354040283529160200191613400565b820191906000526020600020905b8154815290600101906020018083116133e357829003601f168201915b50505050508152602001601e8781548110151561341957fe5b6000918252602091829020600360099092020101805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156134af5780601f10613484576101008083540402835291602001916134af565b820191906000526020600020905b81548152906001019060200180831161349257829003601f168201915b505050505081526020018415158152602001601e878154811015156134d057fe5b6000918252602091829020600460099092020101805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156135665780601f1061353b57610100808354040283529160200191613566565b820191906000526020600020905b81548152906001019060200180831161354957829003601f168201915b50505050508152602001601e8781548110151561357f57fe5b6000918252602091829020600560099092020101805460408051601f60026000196101006001871615020190941693909304928301859004850281018501909152818152928301828280156136155780601f106135ea57610100808354040283529160200191613615565b820191906000526020600020905b8154815290600101906020018083116135f857829003601f168201915b505050918352505060209081018790526000878152602382526040908190208351815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909116178155838301516001820155908301518051939550859391926136859260028501929091019061486f565b50606082015180516136a191600384019160209091019061486f565b50608082015180516136bd91600484019160209091019061486f565b5060a082015160058201805460ff191691151591909117905560c082015180516136f191600684019160209091019061486f565b5060e0820151805161370d91600784019160209091019061486f565b50610100820151816008015590505061372630866114ba565b612d093330876126a6565b600054600160a060020a0316331461374857600080fd5b60198054911515640100000000027fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff909216919091179055565b60145481565b600160a060020a03811660009081526007602090815260409182902080548351818402810184019094528084526060939283018282801561160c57602002820191906000526020600020908154815260200190600101908083116115f85750505050509050919050565b601954610100900460ff1681565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b600054600160a060020a0316331461384557600080fd5b6012805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60195462010000900460ff1681565b60165481565b7ff0b9e5ba000000000000000000000000000000000000000000000000000000009392505050565b600054600160a060020a031633146138c857600080fd5b600160a060020a03811615156138dd57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b601954640100000000900460ff1681565b600081815260236020526040902054600160a060020a0316331461397957600080fd5b6000818152602360205260408082205481517f42842e0e0000000000000000000000000000000000000000000000000000000081523060048201819052600160a060020a03909216602482015260448101859052915190926342842e0e926064808201939182900301818387803b1580156139f357600080fd5b505af1158015613a07573d6000803e3d6000fd5b5050506000828152602360205260408120805473ffffffffffffffffffffffffffffffffffffffff19168155600181018290559150613a4960028301826147d5565b613a576003830160006147d5565b613a656004830160006147d5565b60058201805460ff19169055613a7f6006830160006147d5565b613a8d6007830160006147d5565b6008820160009055505050565b600054600160a060020a03163314613ab157600080fd5b600f805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000821515613af15750600061263c565b50818102818382811515613b0157fe5b041461263c57fe5b60008183811515613b1657fe5b049392505050565b600082821115613b2a57fe5b50900390565b8181018281101561263c57fe5b613b478282614643565b600980546000838152600a60205260408120829055600182018355919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af015550565b613b946148ed565b600083815260236020526040902054600160a060020a031615613bb657600080fd5b6101206040519081016040528033600160a060020a03168152602001838152602001601e85815481101515613be757fe5b6000918252602091829020600990910201805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015613c7a5780601f10613c4f57610100808354040283529160200191613c7a565b820191906000526020600020905b815481529060010190602001808311613c5d57829003601f168201915b50505050508152602001601e85815481101515613c9357fe5b600091825260209182902060026009909202018101805460408051601f600019610100600186161502019093169490940491820185900485028401850190528083529192909190830182828015613d2b5780601f10613d0057610100808354040283529160200191613d2b565b820191906000526020600020905b815481529060010190602001808311613d0e57829003601f168201915b50505050508152602001601e85815481101515613d4457fe5b6000918252602091829020600360099092020101805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015613dda5780601f10613daf57610100808354040283529160200191613dda565b820191906000526020600020905b815481529060010190602001808311613dbd57829003601f168201915b50505050508152602001600015158152602001601e85815481101515613dfc57fe5b6000918252602091829020600460099092020101805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015613e925780601f10613e6757610100808354040283529160200191613e92565b820191906000526020600020905b815481529060010190602001808311613e7557829003601f168201915b50505050508152602001601e85815481101515613eab57fe5b6000918252602091829020600560099092020101805460408051601f6002600019610100600187161502019094169390930492830185900485028101850190915281815292830182828015613f415780601f10613f1657610100808354040283529160200191613f41565b820191906000526020600020905b815481529060010190602001808311613f2457829003601f168201915b505050918352505060209081018590526000858152602382526040908190208351815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0390911617815583830151600182015590830151805193945084939192613fb19260028501929091019061486f565b5060608201518051613fcd91600384019160209091019061486f565b5060808201518051613fe991600484019160209091019061486f565b5060a082015160058201805460ff191691151591909117905560c0820151805161401d91600684019160209091019061486f565b5060e0820151805161403991600784019160209091019061486f565b50610100820151816008015590505061405230846114ba565b6115a73330856126a6565b60008061406983612867565b905080600160a060020a031684600160a060020a031614806140a4575083600160a060020a03166140998461149f565b600160a060020a0316145b806140b457506140b48185613800565b949350505050565b81600160a060020a03166140cf82612867565b600160a060020a0316146140e257600080fd5b600081815260026020526040902054600160a060020a0316156116b8576000818152600260209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916905580518481529051600160a060020a038616927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35050565b600080600061417885856146a7565b600084815260086020908152604080832054600160a060020a03891684526007909252909120549093506141b390600163ffffffff613b1e16565b600160a060020a0386166000908152600760205260409020805491935090839081106141db57fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a031681526020019081526020016000208481548110151561421b57fe5b6000918252602080832090910192909255600160a060020a038716815260079091526040812080548490811061424d57fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490614284906000198301614945565b50600093845260086020526040808520859055908452909220555050565b60006142ae838361473d565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b60008061430085600160a060020a03166147cd565b151561430f576001915061446b565b84600160a060020a031663f0b9e5ba8786866040518463ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018084600160a060020a0316600160a060020a0316815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156143a757818101518382015260200161438f565b50505050905090810190601f1680156143d45780820380516001836020036101000a031916815260200191505b50945050505050602060405180830381600087803b1580156143f557600080fd5b505af1158015614409573d6000803e3d6000fd5b505050506040513d602081101561441f57600080fd5b50517fffffffff0000000000000000000000000000000000000000000000000000000081167ff0b9e5ba0000000000000000000000000000000000000000000000000000000014925090505b50949350505050565b60608060608060606000808895508794506000855111151561449257fe5b84518651016040519080825280601f01601f1916602001820160405280156144c4578160200160208202803883390190505b509350839250600091505b85518210156145805785828151811015156144e657fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f010000000000000000000000000000000000000000000000000000000000000002838280600101935081518110151561454557fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506001909101906144cf565b600091505b845182101561463657848281518110151561459c57fe5b9060200101517f010000000000000000000000000000000000000000000000000000000000000090047f01000000000000000000000000000000000000000000000000000000000000000283828060010193508151811015156145fb57fe5b9060200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600190910190614585565b5090979650505050505050565b600160a060020a038216151561465857600080fd5b61466282826142a2565b604080518281529051600160a060020a038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b81600160a060020a03166146ba82612867565b600160a060020a0316146146cd57600080fd5b600160a060020a0382166000908152600360205260409020546146f790600163ffffffff613b1e16565b600160a060020a03909216600090815260036020908152604080832094909455918152600190915220805473ffffffffffffffffffffffffffffffffffffffff19169055565b600081815260016020526040902054600160a060020a03161561475f57600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03881690811790915584526003909152909120546147ad91613b30565b600160a060020a0390921660009081526003602052604090209190915550565b6000903b1190565b50805460018160011615610100020316600290046000825580601f106147fb57506126a3565b601f0160209004906000526020600020908101906126a39190614965565b61012060405190810160405280606081526020016000600160a060020a03168152602001606081526020016060815260200160608152602001606081526020016000815260200160008152602001600081525090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106148b057805160ff19168380011785556148dd565b828001600101855582156148dd579182015b828111156148dd5782518255916020019190600101906148c2565b506148e9929150614965565b5090565b610120604051908101604052806000600160a060020a03168152602001600081526020016060815260200160608152602001606081526020016000151581526020016060815260200160608152602001600081525090565b8154818355818111156115a7576000838152602090206115a79181019083015b61149c91905b808211156148e9576000815560010161496b5600a165627a7a72305820be33d525b3facc1d653891584a04a8515826347d39b09cf6f0ec22f5592d63880029
Deployed Bytecode Sourcemap
18773:10763:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22544:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22544:85:0;;;;;;;22154:99;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22154:99:0;;;;;;;23353:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23353:127:0;-1:-1:-1;;;;;23353:127:0;;;;;8962:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8962:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8962:70:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5089:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5089:113:0;;;;;;;;;-1:-1:-1;;;;;5089:113:0;;;;;;;;;;;;;;4719:364;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4719:364:0;-1:-1:-1;;;;;4719:364:0;;;;;;;24367:133;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24367:133:0;-1:-1:-1;;;;;24367:133:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;24367:133:0;;;;;;;;;;;;;;;;;21346:169;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21346:169:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21346:169:0;;-1:-1:-1;21346:169:0;;-1:-1:-1;;;;;;;21346:169:0;27807:1726;;;;;;23044:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23044:94:0;-1:-1:-1;;;;;23044:94:0;;;;;9450:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9450:89:0;;;;;;;;;;;;;;;;;;;;24689:1282;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24689:1282:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24689:1282:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24689:1282:0;;;;-1:-1:-1;24689:1282:0;-1:-1:-1;24689:1282:0;;-1:-1:-1;24689:1282:0;;;;;;;;-1:-1:-1;;24689:1282:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24689:1282:0;;;;-1:-1:-1;24689:1282:0;-1:-1:-1;24689:1282:0;;-1:-1:-1;24689:1282:0;;;;;;;;-1:-1:-1;;24689:1282:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24689:1282:0;;;;-1:-1:-1;24689:1282:0;-1:-1:-1;24689:1282:0;;-1:-1:-1;24689:1282:0;;;;;;;;-1:-1:-1;;24689:1282:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24689:1282:0;;;;-1:-1:-1;24689:1282:0;-1:-1:-1;24689:1282:0;;-1:-1:-1;24689:1282:0;;;;;;;;-1:-1:-1;24689:1282:0;;-1:-1:-1;;24689:1282:0;;;-1:-1:-1;;;24689:1282:0;;;;;;-1:-1:-1;24689:1282:0;;-1:-1:-1;24689:1282:0;23252:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23252:93:0;;;;;20883:60;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20883:60:0;;;;;;;;;;-1:-1:-1;;;;;20883:60:0;-1:-1:-1;;;;;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20883:60:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20883:60:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20883:60:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20883:60:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5577:325;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5577:325:0;-1:-1:-1;;;;;5577:325:0;;;;;;;;;;;;23636:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23636:127:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23636:127:0;;-1:-1:-1;23636:127:0;;-1:-1:-1;;;;;;;23636:127:0;20216:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20216:35:0;;;;23896:91;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23896:91:0;;;;19610:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19610:69:0;;;;9262:180;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9262:180:0;-1:-1:-1;;;;;9262:180:0;;;;;;;19686:69;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19686:69:0;;;;21093:84;;8:9:-1;5:2;;;30:1;27;20:12;5:2;21093:84:0;;;;5908:235;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5908:235:0;-1:-1:-1;;;;;5908:235:0;;;;;;;;;;;;22734:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22734:92:0;-1:-1:-1;;;;;22734:92:0;;;;;19529:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19529:74:0;;;;19297:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19297:29:0;;;;22051:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22051:95:0;;;;;;;4568:143;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4568:143:0;;;;;;;;;;;;;;;;;;;;;;;9547;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;9547:143:0;;;;;19892:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19892:23:0;;;;20165:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20165:44:0;-1:-1:-1;;;;;20165:44:0;;;;;21635:87;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21635:87:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21635:87:0;;-1:-1:-1;21635:87:0;;-1:-1:-1;;;;;;;21635:87:0;22637:89;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22637:89:0;;;;;19452:70;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19452:70:0;;;;19924:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19924:26:0;;;;19862:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19862:23:0;;;;4392:168;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4392:168:0;;;;;22261:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22261:83:0;;;;;19241:47;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19241:47:0;;;;4241:145;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4241:145:0;-1:-1:-1;;;;;4241:145:0;;;;;21942:101;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21942:101:0;;;;;;;21185:153;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21185:153:0;;;;;20128:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20128:28:0;;;;19333:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19333:31:0;;;;21523:104;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21523:104:0;;;;;23488:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23488:140:0;-1:-1:-1;;;;;23488:140:0;;;;;57:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;57:20:0;;;;19797:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19797:23:0;;;;9040:74;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9040:74:0;;;;23995:134;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23995:134:0;-1:-1:-1;;;;;23995:134:0;;;;;5208:209;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5208:209:0;-1:-1:-1;;;;;5208:209:0;;;;;;;;;19373:72;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19373:72:0;;;;22934:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22934:102:0;-1:-1:-1;;;;;22934:102:0;;;;;22352:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22352:83:0;;;;;6151:314;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6151:314:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6151:314:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6151:314:0;;-1:-1:-1;6151:314:0;;-1:-1:-1;;;;;;;6151:314:0;20317:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20317:31:0;;;;;;;;;;;;;-1:-1:-1;;;;;20317:31:0;-1:-1:-1;;;;;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20317:31:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20317:31:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20317:31:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20317:31:0;;;;;;;;;;;;;;;;;;;;;;23:1:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;20260:48:0;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20260:48:0;-1:-1:-1;;;;;20260:48:0;;;;;24137:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24137:222:0;-1:-1:-1;;;;;24137:222:0;;;;;;;21730:83;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21730:83:0;;;;;;;24508:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;24508:173:0;;;;;22443:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22443:93:0;;;;;20036:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20036:35:0;;;;25979:811;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;25979:811:0;;;;;;;21821:113;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21821:113:0;;;;;;;19764:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19764:26:0;;;;23771:117;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23771:117:0;-1:-1:-1;;;;;23771:117:0;;;;;19957:32;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19957:32:0;;;;5425:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5425:144:0;-1:-1:-1;;;;;5425:144:0;;;;;;;;;;22834:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;22834:92:0;-1:-1:-1;;;;;22834:92:0;;;;;19996:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19996:33:0;;;;19827:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19827:28:0;;;;733:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;733:109:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;733:109:0;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;733:109:0;;-1:-1:-1;733:109:0;;-1:-1:-1;;;;;;;733:109:0;;;;;;;;;;;;;;;;;;;;315:178;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;315:178:0;-1:-1:-1;;;;;315:178:0;;;;;20078:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;20078:41:0;;;;27521:278;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;27521:278:0;;;;;23146:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;23146:98:0;-1:-1:-1;;;;;23146:98:0;;;;;22544:85;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;22605:7;:16;22544:85::o;22154:99::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;22222:14;:23;;;;;;;;;;;;;;;;;22154:99::o;23353:127::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;23430:15;:42;;-1:-1:-1;;23430:42:0;-1:-1:-1;;;;;23430:42:0;;;;;;;;;;23353:127::o;8962:70::-;9021:5;9014:12;;;;;;;;-1:-1:-1;;9014:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8999:6;;9014:12;;9021:5;;9014:12;;9021:5;9014:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8962:70;;:::o;5089:113::-;5149:7;5172:24;;;:14;:24;;;;;;-1:-1:-1;;;;;5172:24:0;;5089:113::o;4719:364::-;4781:13;4797:17;4805:8;4797:7;:17::i;:::-;4781:33;-1:-1:-1;;;;;;4829:12:0;;;;;;;;4821:21;;;;;;4857:10;-1:-1:-1;;;;;4857:19:0;;;;:58;;;4880:35;4897:5;4904:10;4880:16;:35::i;:::-;4849:67;;;;;;;;4962:1;4929:21;4941:8;4929:11;:21::i;:::-;-1:-1:-1;;;;;4929:35:0;;;:56;;;-1:-1:-1;;;;;;4968:17:0;;;;4929:56;4925:153;;;4996:24;;;;:14;:24;;;;;;;;;:30;;-1:-1:-1;;4996:30:0;-1:-1:-1;;;;;4996:30:0;;;;;;;;;5040;;;;;;;4996;;5040;;;;;;;;;;;;4925:153;4719:364;;;:::o;24367:133::-;-1:-1:-1;;;;;24465:27:0;;;;;;:15;:27;;;;;;;;;24458:34;;;;;;;;;;;;;;;;;24436:9;;24458:34;;;24465:27;24458:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24367:133;;;:::o;21346:169::-;21420:6;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;-1:-1:-1;21429:1:0;21416:91;21450:1;21432:8;:15;:19;21416:91;;;21496:8;21505:1;21496:11;;;;;;;;;;;;;;;;;;21471:9;:22;21481:8;21490:1;21481:11;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;21471:22:0;;;;;;;;;;;;;;-1:-1:-1;21471:22:0;:36;;-1:-1:-1;;21471:36:0;;;;;;;;;;;-1:-1:-1;21453:3:0;21416:91;;;21346:169;;:::o;27807:1726::-;28094:22;28166:21;28238:11;28470:23;27874:15;;;;;;;;;;;27871:211;;;27938:10;27913:21;;;;:9;:21;;;;;;-1:-1:-1;;;;;27913:21:0;:35;27905:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28023:15;;27994:26;;;;;;28009:10;27994:26;;;;;;:4;;:14;;:26;;;;;;;;;;;;;;-1:-1:-1;27994:4:0;:26;;;5:2:-1;;;;30:1;27;20:12;5:2;27994:26:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;27994:26:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;27994:26:0;:44;27986:84;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;28119:30;;;;:20;:30;;;;;:36;;;;28190:37;;28252;;;;;28119:36;;-1:-1:-1;;;;;;28190:37:0;;;;-1:-1:-1;28252:37:0;;;-1:-1:-1;28310:27:0;;;28302:36;;;;;;-1:-1:-1;;;;;28357:27:0;;28374:10;28357:27;;28349:36;;;;;;28404:9;:27;-1:-1:-1;28404:27:0;28396:36;;;;;;28448:6;28445:756;;;28496:55;28515:35;28546:3;28515:26;28534:6;;28515:14;:18;;:26;;;;:::i;:::-;:30;:35;:30;:35;:::i;:::-;28496:14;;:55;:18;:55;:::i;:::-;28566:9;;28604:6;;28470:81;;-1:-1:-1;;;;;;28566:9:0;;:55;;28585:35;;28616:3;;28585:26;;:14;;:26;:18;:26;:::i;:35::-;28566:55;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;28636:39:0;;-1:-1:-1;;;;;28636:22:0;;;:39;;;;;28659:15;;28636:39;;;;28659:15;28636:22;:39;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;28636:39:0;28445:756;;;28707:21;;;;;;;28704:486;;;28746:9;;:34;;-1:-1:-1;;;;;28746:9:0;;;;:34;;;;;28765:14;;28746:9;:34;:9;:34;28765:14;28746:9;:34;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;28704:486:0;28815:12;;28856:9;;-1:-1:-1;;;;;28815:12:0;;;;:61;;28837:38;;28871:3;;28837:29;;:14;;:29;:18;:29;:::i;:38::-;28815:61;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;28893:10:0;;28932:7;;-1:-1:-1;;;;;28893:10:0;;;;:57;;28913:36;;28945:3;;28913:27;;:14;;:27;:18;:27;:::i;:36::-;28893:57;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;28967:14:0;;29010:11;;-1:-1:-1;;;;;28967:14:0;;;;:65;;28991:40;;29027:3;;28991:31;;:14;;:31;:18;:31;:::i;:40::-;28967:65;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;29049:9:0;;29087:6;;-1:-1:-1;;;;;29049:9:0;;;;:55;;29068:35;;29099:3;;29068:26;;:14;;:26;:18;:26;:::i;:35::-;29049:55;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;29121:9:0;;29159:6;;-1:-1:-1;;;;;29121:9:0;;;;:55;;29140:35;;29171:3;;29140:26;;:14;;:26;:18;:26;:::i;:35::-;29121:55;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29121:55:0;28704:486;29224:14;;;;;;;29221:183;;;29283:17;;29341:11;;-1:-1:-1;;;;;29283:17:0;;;;:26;;29310:10;;29322:40;;29358:3;;29322:31;;:14;;:31;:18;:31;:::i;:40::-;29283:80;;;;;;;;;;;;;-1:-1:-1;;;;;29283:80:0;-1:-1:-1;;;;;29283:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;29283:80:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29283:80:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;29283:80:0;29275:117;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;29426:30;;;;:20;:30;;;;;29419:37;;-1:-1:-1;;29419:37:0;;;;;;;;;29426:30;29419:37;;;;29426:30;29419:37;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;29419:37:0;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;-1:-1:-1;29419:37:0;;;;;;;;;29467:58;;;;;;:4;:58;;;;;;29504:10;29467:58;;;;;;;;;;;;:4;;:21;;:58;;;;;;;;;;29419:37;29467:4;:58;;;5:2:-1;;;;30:1;27;20:12;5:2;29467:58:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;29467:58:0;;;;27807:1726;;;;;:::o;23044:94::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;23111:10;:19;;-1:-1:-1;;23111:19:0;-1:-1:-1;;;;;23111:19:0;;;;;;;;;;23044:94::o;9450:89::-;9517:9;:16;9450:89;:::o;24689:1282::-;24984:6;25025:29;;:::i;:::-;25412:23;21030:5;;25412:23;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;24874:12;;;;;;;24871:59;;;24896:17;24914:9;24896:28;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;24896:28:0;;;;;-1:-1:-1;24896:28:0;;;;;;;;;;;:33;;-1:-1:-1;24888:42:0;;-1:-1:-1;24888:42:0;;;;;24944:11;;24941:26;;;24966:1;24957:10;;24941:26;24993:1;24984:10;;24980:984;25000:6;24996:1;:10;24980:984;;;25057:340;;;;;;;;;25095:9;25057:340;;;;25133:10;-1:-1:-1;;;;;25057:340:0;;;;;25167:5;25057:340;;;;25203:12;25057:340;;;;25242:9;25057:340;;;;25280:11;25057:340;;;;25315:6;25057:340;;;;25344:17;25359:1;25344:10;:14;;:17;;;;:::i;:::-;25057:340;;25382:1;25057:340;;;;;;;25438:11;27:10:-1;;25470:1:0;23:18:-1;;;45:23;;;25438:29:0;;;;;;;;25025:372;;-1:-1:-1;25470:1:0;;23:18:-1;;25025:372:0;;25438:29;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;25438:29:0;;;;;;;;;;-1:-1:-1;;25438:29:0;-1:-1:-1;;;;;25438:29:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;25438:29:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;25438:29:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;25438:29:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:33;25412:59;;25518:15;25484:11;25496:15;25484:28;;;;;;;;;;;;;;;;;;;;:31;;:49;;;;25577:15;25546:17;25564:9;25546:28;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;25546:28:0;;;;;-1:-1:-1;25546:28:0;;;;;;;;;;:46;;;;-1:-1:-1;25605:34:0;;-1:-1:-1;25611:10:0;25623:15;25605:5;:34::i;:::-;-1:-1:-1;25675:10:0;25654:32;;;;:20;:32;;;;;;;:34;;;;;;;;;25718:15;:27;;;;;:34;;23:18:-1;;;45:23;;25765:49:0;;;;;;;;;;25827:32;;;:20;:32;;;;;:49;;;;;;;;:58;;;25900:50;25798:15;25943:6;25900:25;:50::i;:::-;25008:3;;;;;24980:984;;;24689:1282;;;;;;;;;;;;:::o;23252:93::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;23317:11;:20;23252:93::o;20883:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20883:60:0;;;;;;;;;;;;;;;;-1:-1:-1;;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20883:60:0;;;;;;;;;;;;;;;;-1:-1:-1;;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20883:60:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20883:60:0;;;;;;;;;;;;;;;;-1:-1:-1;;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20883:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5577:325::-;5664:8;4181:39;4199:10;4211:8;4181:17;:39::i;:::-;4173:48;;;;;;;;-1:-1:-1;;;;;5689:19:0;;;;5681:28;;;;;;-1:-1:-1;;;;;5724:17:0;;;;5716:26;;;;;;5751:30;5765:5;5772:8;5751:13;:30::i;:::-;5788:32;5804:5;5811:8;5788:15;:32::i;:::-;5827:25;5838:3;5843:8;5827:10;:25::i;:::-;5882:3;-1:-1:-1;;;;;5866:30:0;5875:5;-1:-1:-1;;;;;5866:30:0;;5887:8;5866:30;;;;;;;;;;;;;;;;;;5577:325;;;;:::o;23636:127::-;23703:7;23729:17;23747:7;23729:26;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;23729:26:0;;;;;-1:-1:-1;23729:26:0;;;;;;;;;;;;23636:127;-1:-1:-1;;;;23636:127:0:o;20216:35::-;;;;:::o;23896:91::-;23941:9;23970;23963:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23896:91;:::o;19610:69::-;;;-1:-1:-1;;;;;19610:69:0;;:::o;9262:180::-;9344:7;9377:17;9387:6;9377:9;:17::i;:::-;9368:26;;9360:35;;;;;;-1:-1:-1;;;;;9409:19:0;;;;;;:11;:19;;;;;:27;;9429:6;;9409:27;;;;;;;;;;;;;;9402:34;;9262:180;;;;;:::o;19686:69::-;;;-1:-1:-1;;;;;19686:69:0;;:::o;21093:84::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;21141:5;;;:28;;-1:-1:-1;;;;;21141:5:0;;;;21156:4;:12;21141:28;;;;;21156:12;;21141:28;:5;:28;21156:12;21141:5;:28;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21141:28:0;21093:84::o;5908:235::-;6029:8;4181:39;4199:10;4211:8;4181:17;:39::i;:::-;4173:48;;;;;;;;6095:42;6112:5;6119:3;6124:8;6095:42;;;;;;;;;;;;;:16;:42::i;:::-;5908:235;;;;:::o;22734:92::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;22800:9;:18;;-1:-1:-1;;22800:18:0;-1:-1:-1;;;;;22800:18:0;;;;;;;;;;22734:92::o;19529:74::-;;;-1:-1:-1;;;;;19529:74:0;;:::o;19297:29::-;;;-1:-1:-1;;;;;19297:29:0;;:::o;22051:95::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;22117:12;:21;;;;;;;;;;;;;;;;;22051:95::o;4568:143::-;4623:4;4652:20;;;:10;:20;;;;;;-1:-1:-1;;;;;4652:20:0;4686:19;;;4568:143::o;9547:::-;9606:7;9639:13;:11;:13::i;:::-;9630:22;;9622:31;;;;;;9667:9;:17;;9677:6;;9667:17;;;;;;;;;;;;;;9660:24;;9547:143;;;:::o;19892:23::-;;;;:::o;20165:44::-;;;;;;;;;;;;-1:-1:-1;;;;;20165:44:0;;:::o;21635:87::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;21698:16;;;;:7;;:16;;;;;:::i;22637:89::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;22700:9;:18;22637:89::o;19452:70::-;;;-1:-1:-1;;;;;19452:70:0;;:::o;19924:26::-;;;;;;:::o;19862:23::-;;;;:::o;4392:168::-;4448:7;4480:20;;;:10;:20;;;;;;-1:-1:-1;;;;;4480:20:0;4515:19;;;4507:28;;;;;22261:83;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;22321:6;:15;22261:83::o;19241:47::-;;;;;;;;;;;;;;;-1:-1:-1;;19241:47:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4241:145::-;4297:7;-1:-1:-1;;;;;4321:20:0;;;;4313:29;;;;;;-1:-1:-1;;;;;;4356:24:0;;;;;:16;:24;;;;;;;4241:145::o;21942:101::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;22011:15;:24;;;;;;;;;;;;;;;;;21942:101::o;21185:153::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;21259:17;;:46;;;;;;21286:10;21259:46;;;;;;;;;;;;-1:-1:-1;;;;;21259:17:0;;;;:26;;:46;;;;;;;;;;;;;;;:17;;:46;;;5:2:-1;;;;30:1;27;20:12;5:2;21259:46:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;21259:46:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;21259:46:0;21251:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20128:28;;;;:::o;19333:31::-;;;-1:-1:-1;;;;;19333:31:0;;:::o;21523:104::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;21595:15;:24;21523:104::o;23488:140::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;23574:17;:46;;-1:-1:-1;;23574:46:0;-1:-1:-1;;;;;23574:46:0;;;;;;;;;;23488:140::o;57:20::-;;;-1:-1:-1;;;;;57:20:0;;:::o;19797:23::-;;;;:::o;9040:74::-;9101:7;9094:14;;;;;;;;-1:-1:-1;;9094:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9079:6;;9094:14;;9101:7;;9094:14;;9101:7;9094:14;;;;;;;;;;;;;;;;;;;;;;;;23995:134;-1:-1:-1;;;;;24089:32:0;24062:7;24089:32;;;:20;:32;;;;;;;23995:134::o;5208:209::-;-1:-1:-1;;;;;5286:17:0;;5293:10;5286:17;;5278:26;;;;;;5329:10;5311:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;5311:34:0;;;;;;;;;;;;:46;;-1:-1:-1;;5311:46:0;;;;;;;;;;5369:42;;;;;;;5311:34;;5329:10;5369:42;;;;;;;;;;;5208:209;;:::o;19373:72::-;;;-1:-1:-1;;;;;19373:72:0;;:::o;22934:102::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;23005:14;:23;;-1:-1:-1;;23005:23:0;-1:-1:-1;;;;;23005:23:0;;;;;;;;;;22934:102::o;22352:83::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;22412:6;:15;22352:83::o;6151:314::-;6290:8;4181:39;4199:10;4211:8;4181:17;:39::i;:::-;4173:48;;;;;;;;6310:34;6323:5;6330:3;6335:8;6310:12;:34::i;:::-;6405:53;6430:5;6437:3;6442:8;6452:5;6405:24;:53::i;:::-;6397:62;;;;;;;;6151:314;;;;;:::o;20317:31::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20317:31:0;;;;;;-1:-1:-1;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20317:31:0;;;;;;;;;;;;;;;;-1:-1:-1;;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20317:31:0;;;;;;;;;;;;;;;;-1:-1:-1;;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;20317:31:0;;;;;;;;;;;;;;;;-1:-1:-1;;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20317:31:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;20260:48::-;;;;;;;;;;;;;:::o;24137:222::-;24232:7;24269:28;24286:10;24269:16;:28::i;:::-;24260:37;;24252:46;;;;;;-1:-1:-1;;;;;24316:27:0;;;;;;:15;:27;;;;;:35;;24344:6;;24316:35;;;;;21730:83;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;21790:6;:15;;-1:-1:-1;;21790:15:0;;;;;;;;;;21730:83::o;24508:173::-;24565:6;24592:16;24599:8;24592:6;:16::i;:::-;24584:25;;;;;;;;24627:46;24642:11;24654:8;24642:21;;;;;;;;;;;;;;;;;;;;;;;;24627:46;;;;;;;-1:-1:-1;;24627:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24642:21;24627:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;24627:7:0;:14;;;;;;;;-1:-1:-1;;24627:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24627:7:0;;-1:-1:-1;24627:14:0;-1:-1:-1;24627:14:0;;:7;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;:::i;22443:93::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;22508:11;:20;22443:93::o;20036:35::-;;;;;;;;;:::o;25979:811::-;26153:11;26234:31;;:::i;:::-;26059:8;4096:10;4075:17;26059:8;4075:7;:17::i;:::-;-1:-1:-1;;;;;4075:31:0;;4067:40;;;;;;26137:1;26088:30;;;:20;:30;;;;;:37;-1:-1:-1;;;;;26088:37:0;:51;26080:60;;;;;;26199:5;;26167:4;;-1:-1:-1;;;;;;26199:5:0;26185:10;:19;26182:40;;;26215:5;26206:14;;26182:40;26268:351;;;;;;;;;26294:10;-1:-1:-1;;;;;26268:351:0;;;;;26328:6;26268:351;;;;26351:11;26363:8;26351:21;;;;;;;;;;;;;;;;;;;;;;;;26268:351;;;;;;;-1:-1:-1;;26268:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26351:21;26268:351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26397:11;26409:8;26397:21;;;;;;;;;;;;;;;;;;;:26;:21;;;;;:26;;26268:351;;;;;;-1:-1:-1;;26268:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26397:26;;26268:351;;;26397:26;26268:351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26439:11;26451:8;26439:21;;;;;;;;;;;;;;;;;;;:33;:21;;;;;:33;26268:351;;;;;;;-1:-1:-1;;26268:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26439:33;26268:351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26487:6;26268:351;;;;;;26508:11;26520:8;26508:21;;;;;;;;;;;;;;;;;;;:30;:21;;;;;:30;26268:351;;;;;;;-1:-1:-1;;26268:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26508:30;26268:351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26553:11;26565:8;26553:21;;;;;;;;;;;;;;;;;;;:32;:21;;;;;:32;26268:351;;;;;;;-1:-1:-1;;26268:351:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26553:32;26268:351;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;26268:351:0;;;-1:-1:-1;;26268:351:0;;;;;;;-1:-1:-1;26630:30:0;;;:20;:30;;;;;;;:45;;;;-1:-1:-1;;26630:45:0;-1:-1:-1;;;;;26630:45:0;;;;;;;;;;-1:-1:-1;26630:45:0;;;;;;;;;;;-1:-1:-1;26630:45:0;;:30;;:45;;;;;;;;;;;:::i;:::-;-1:-1:-1;26630:45:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;26630:45:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;26630:45:0;;;;;;;;;-1:-1:-1;;26630:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;26630:45:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;26686:32;26702:4;26709:8;26686:7;:32::i;:::-;26729:53;26746:10;26766:4;26773:8;26729:16;:53::i;21821:113::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;21896:21;:30;;;;;;;;;;;;;;;;;21821:113::o;19764:26::-;;;;:::o;23771:117::-;-1:-1:-1;;;;;23861:19:0;;;;;;:11;:19;;;;;;;;;23854:26;;;;;;;;;;;;;;;;;23832:9;;23854:26;;;23861:19;23854:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23771:117;;;:::o;19957:32::-;;;;;;;;;:::o;5425:144::-;-1:-1:-1;;;;;5527:25:0;;;5507:4;5527:25;;;:17;:25;;;;;;;;:36;;;;;;;;;;;;;;;5425:144::o;22834:92::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;22900:9;:18;;-1:-1:-1;;22900:18:0;-1:-1:-1;;;;;22900:18:0;;;;;;;;;;22834:92::o;19996:33::-;;;;;;;;;:::o;19827:28::-;;;;:::o;733:109::-;821:15;733:109;;;;;:::o;315:178::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;-1:-1:-1;;;;;392:22:0;;;;384:31;;;;;;448:5;;;427:37;;-1:-1:-1;;;;;427:37:0;;;;448:5;;;427:37;;;471:5;:16;;-1:-1:-1;;471:16:0;-1:-1:-1;;;;;471:16:0;;;;;;;;;;315:178::o;20078:41::-;;;;;;;;;:::o;27521:278::-;27595:30;;;;:20;:30;;;;;:37;-1:-1:-1;;;;;27595:37:0;27636:10;27595:51;27587:60;;;;;;27695:30;;;;:20;:30;;;;;;:37;27658:85;;;;;:4;:85;;;;;;-1:-1:-1;;;;;27695:37:0;;;27658:85;;;;;;;;;;;;:4;;:21;;:85;;;;;;;;;;;27695:30;27658:4;:85;;;5:2:-1;;;;30:1;27;20:12;5:2;27658:85:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;;27761:30:0;;;;:20;:30;;;;;27754:37;;-1:-1:-1;;27754:37:0;;;;;;;;;27761:30;-1:-1:-1;27754:37:0;;;;27761:30;27754:37;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;27754:37:0;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;27521:278;:::o;23146:98::-;21030:5;;-1:-1:-1;;;;;21030:5:0;21016:10;:19;21008:28;;;;;;23215:12;:21;;-1:-1:-1;;23215:21:0;-1:-1:-1;;;;;23215:21:0;;;;;;;;;;23146:98::o;2888:174::-;2946:9;2968:6;;2964:37;;;-1:-1:-1;2992:1:0;2985:8;;2964:37;-1:-1:-1;3011:5:0;;;3015:1;3011;:5;3030;;;;;;;;:10;3023:18;;;3068:92;3126:7;3153:1;3149;:5;;;;;;;;;3068:92;-1:-1:-1;;;3068:92:0:o;3166:113::-;3224:7;3247:6;;;;3240:14;;;;-1:-1:-1;3268:5:0;;;3166:113::o;3285:127::-;3365:5;;;3384:6;;;;3377:14;;;10597:177;10659:26;10671:3;10676:8;10659:11;:26::i;:::-;10721:9;:16;;10694:24;;;;:14;:24;;;;;:43;;;39:1:-1;23:18;;45:23;;10744:24:0;;;;;;;-1:-1:-1;10597:177:0:o;26798:715::-;26958:31;;:::i;:::-;26944:1;26895:30;;;:20;:30;;;;;:37;-1:-1:-1;;;;;26895:37:0;:51;26887:60;;;;;;26992:350;;;;;;;;;27018:10;-1:-1:-1;;;;;26992:350:0;;;;;27052:6;26992:350;;;;27075:11;27087:8;27075:21;;;;;;;;;;;;;;;;;;;;;;;;26992:350;;;;;;;-1:-1:-1;;26992:350:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27075:21;26992:350;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27121:11;27133:8;27121:21;;;;;;;;;;;;;;;;;;;:26;:21;;;;;:26;;26992:350;;;;;;-1:-1:-1;;26992:350:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27121:26;;26992:350;;;27121:26;26992:350;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27163:11;27175:8;27163:21;;;;;;;;;;;;;;;;;;;:33;:21;;;;;:33;26992:350;;;;;;;-1:-1:-1;;26992:350:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27163:33;26992:350;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27211:5;26992:350;;;;;;27231:11;27243:8;27231:21;;;;;;;;;;;;;;;;;;;:30;:21;;;;;:30;26992:350;;;;;;;-1:-1:-1;;26992:350:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27231:30;26992:350;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27276:11;27288:8;27276:21;;;;;;;;;;;;;;;;;;;:32;:21;;;;;:32;26992:350;;;;;;;-1:-1:-1;;26992:350:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27276:32;26992:350;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;26992:350:0;;;-1:-1:-1;;26992:350:0;;;;;;;-1:-1:-1;27353:30:0;;;:20;:30;;;;;;;:45;;;;-1:-1:-1;;27353:45:0;-1:-1:-1;;;;;27353:45:0;;;;;;;;;;-1:-1:-1;27353:45:0;;;;;;;;;;;-1:-1:-1;27353:45:0;;:30;;:45;;;;;;;;;;;:::i;:::-;-1:-1:-1;27353:45:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;27353:45:0;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;27353:45:0;;;;;;;;;-1:-1:-1;;27353:45:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;27353:45:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;27409:32;27425:4;27432:8;27409:7;:32::i;:::-;27452:53;27469:10;27489:4;27496:8;27452:16;:53::i;6473:243::-;6559:4;6572:13;6588:17;6596:8;6588:7;:17::i;:::-;6572:33;;6631:5;-1:-1:-1;;;;;6619:17:0;:8;-1:-1:-1;;;;;6619:17:0;;:54;;;;6665:8;-1:-1:-1;;;;;6640:33:0;:21;6652:8;6640:11;:21::i;:::-;-1:-1:-1;;;;;6640:33:0;;6619:54;:91;;;;6677:33;6694:5;6701:8;6677:16;:33::i;:::-;6612:98;6473:243;-1:-1:-1;;;;6473:243:0:o;7103:271::-;7205:6;-1:-1:-1;;;;;7184:27:0;:17;7192:8;7184:7;:17::i;:::-;-1:-1:-1;;;;;7184:27:0;;7176:36;;;;;;7259:1;7223:24;;;:14;:24;;;;;;-1:-1:-1;;;;;7223:24:0;:38;7219:150;;7307:1;7272:24;;;:14;:24;;;;;;;;:37;;-1:-1:-1;;7272:37:0;;;7323:38;;;;;;;-1:-1:-1;;;;;7323:38:0;;;;;;;;;;;7103:271;;:::o;10076:515::-;10197:18;10251:22;10315:17;10150:38;10172:5;10179:8;10150:21;:38::i;:::-;10218:26;;;;:16;:26;;;;;;;;;-1:-1:-1;;;;;10276:18:0;;;;:11;:18;;;;;;:25;10218:26;;-1:-1:-1;10276:32:0;;10306:1;10276:32;:29;:32;:::i;:::-;-1:-1:-1;;;;;10335:18:0;;;;;;:11;:18;;;;;:34;;10251:57;;-1:-1:-1;10335:18:0;10251:57;;10335:34;;;;;;;;;;;;;;10315:54;;10411:9;10378:11;:18;10390:5;-1:-1:-1;;;;;10378:18:0;-1:-1:-1;;;;;10378:18:0;;;;;;;;;;;;10397:10;10378:30;;;;;;;;;;;;;;;;;;;;;:42;;;;-1:-1:-1;;;;;10427:18:0;;;;:11;:18;;;;;;:34;;10446:14;;10427:34;;;;;;;;;;;;;;;;;:38;;;;-1:-1:-1;;;;;10474:18:0;;;;:11;:18;;;;;;:27;;;;;-1:-1:-1;;10474:27:0;;;:::i;:::-;-1:-1:-1;10537:1:0;10508:26;;;:16;:26;;;;;;:30;;;10545:27;;;;;;:40;-1:-1:-1;;10076:515:0:o;9837:231::-;9942:14;9904:31;9921:3;9926:8;9904:16;:31::i;:::-;-1:-1:-1;;;;;;9959:16:0;;;;;;;:11;:16;;;;;;;;:23;;39:1:-1;23:18;;45:23;;9989:31:0;;;;;;;;;;;10027:26;;;:16;:26;;;;;:35;9837:231::o;7820:342::-;7966:4;8039:13;7987:16;:3;-1:-1:-1;;;;;7987:14:0;;:16::i;:::-;7986:17;7982:51;;;8021:4;8014:11;;;;7982:51;8070:3;-1:-1:-1;;;;;8055:36:0;;8092:5;8099:8;8109:5;8055:60;;;;;;;;;;;;;-1:-1:-1;;;;;8055:60:0;-1:-1:-1;;;;;8055:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;8055:60:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8055:60:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;8055:60:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8055:60:0;8130:25;;;8140:15;8130:25;;-1:-1:-1;8055:60:0;-1:-1:-1;7820:342:0;;;;;;;;:::o;12882:683::-;12963:6;12982:23;13031:24;13127:23;13227:22;13281:6;13298;13014:5;12982:38;;13064:6;13031:40;;13112:1;13091:11;:18;:22;13084:30;;;;;;13197:11;:18;13164:10;:17;:51;13153:63;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;13153:63:0;;13127:89;;13258:9;13227:41;;13325:1;13321:5;;13317:96;13332:10;:17;13328:1;:21;13317:96;;;13388:10;13399:1;13388:13;;;;;;;;;;;;;;;;;;;;13371:9;13381:3;;;;;;13371:14;;;;;;;;;;;;;;:30;;;;;;;;;;-1:-1:-1;13351:3:0;;;;;13317:96;;;13433:1;13429:5;;13425:96;13438:11;:18;13436:1;:20;13425:96;;;13495:11;13507:1;13495:14;;;;;;;;;;;;;;;;;;;;13478:9;13488:3;;;;;;13478:14;;;;;;;;;;;;;;:31;;;;;;;;;;-1:-1:-1;13458:3:0;;;;;13425:96;;;-1:-1:-1;13547:9:0;;12882:683;-1:-1:-1;;;;;;;12882:683:0:o;6724:173::-;-1:-1:-1;;;;;6794:17:0;;;;6786:26;;;;;;6819:25;6830:3;6835:8;6819:10;:25::i;:::-;6856:35;;;;;;;;-1:-1:-1;;;;;6856:35:0;;;6873:1;;6856:35;;;;;;;;;6724:173;;:::o;7596:218::-;7699:5;-1:-1:-1;;;;;7678:26:0;:17;7686:8;7678:7;:17::i;:::-;-1:-1:-1;;;;;7678:26:0;;7670:35;;;;;;-1:-1:-1;;;;;7738:23:0;;;;;;:16;:23;;;;;;:30;;7766:1;7738:30;:27;:30;:::i;:::-;-1:-1:-1;;;;;7712:23:0;;;;;;;:16;:23;;;;;;;;:56;;;;7775:20;;;:10;:20;;;;:33;;-1:-1:-1;;7775:33:0;;;7596:218::o;7380:208::-;7487:1;7455:20;;;:10;:20;;;;;;-1:-1:-1;;;;;7455:20:0;:34;7447:43;;;;;;7497:20;;;;:10;:20;;;;;;;;:26;;-1:-1:-1;;7497:26:0;-1:-1:-1;;;;;7497:26:0;;;;;;;;7554:21;;:16;:21;;;;;;;:28;;:25;:28::i;:::-;-1:-1:-1;;;;;7530:21:0;;;;;;;:16;:21;;;;;:52;;;;-1:-1:-1;7380:208:0:o;2582:206::-;2639:4;2690:17;;2774:8;;2582:206::o;18773:10763::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18773:10763:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18773:10763:0;;;-1:-1:-1;18773:10763:0;:::i;:::-;;;:::o;:::-;;;;;;;;;;;-1:-1:-1;;;;;18773:10763:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Swarm Source
bzzr://be33d525b3facc1d653891584a04a8515826347d39b09cf6f0ec22f5592d6388
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.