Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Multichain Info
No addresses found
Latest 25 from a total of 683 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Pause | 12477754 | 1423 days ago | IN | 0 ETH | 0.00220086 | ||||
Disable Auction | 12477734 | 1423 days ago | IN | 0 ETH | 0.00180503 | ||||
Disable Auction | 12477259 | 1423 days ago | IN | 0 ETH | 0.00192025 | ||||
Disable Auction | 12476861 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476860 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476848 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476848 | 1423 days ago | IN | 0 ETH | 0.00172768 | ||||
Disable Auction | 12476848 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476848 | 1423 days ago | IN | 0 ETH | 0.00172768 | ||||
Disable Auction | 12476848 | 1423 days ago | IN | 0 ETH | 0.00157411 | ||||
Disable Auction | 12476791 | 1423 days ago | IN | 0 ETH | 0.00172768 | ||||
Disable Auction | 12476785 | 1423 days ago | IN | 0 ETH | 0.00172768 | ||||
Disable Auction | 12476782 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476779 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476775 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476766 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476757 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476750 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476739 | 1423 days ago | IN | 0 ETH | 0.00172822 | ||||
Disable Auction | 12476726 | 1423 days ago | IN | 0 ETH | 0.00176663 | ||||
Withdraw Bid | 12131801 | 1476 days ago | IN | 0 ETH | 0.00269121 | ||||
Withdraw Bid | 12131800 | 1476 days ago | IN | 0 ETH | 0.00269121 | ||||
Withdraw Bid | 12080042 | 1484 days ago | IN | 0 ETH | 0.0023211 | ||||
Withdraw Bid | 12077773 | 1485 days ago | IN | 0 ETH | 0.00311094 | ||||
Withdraw Bid | 11883585 | 1515 days ago | IN | 0 ETH | 0.00296526 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Method | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|---|
- | 12477734 | 1423 days ago | 0.1 ETH | ||||
- | 12477259 | 1423 days ago | 2.2 ETH | ||||
- | 12476861 | 1423 days ago | 0.1 ETH | ||||
- | 12476860 | 1423 days ago | 0.2 ETH | ||||
- | 12476848 | 1423 days ago | 0.15 ETH | ||||
- | 12476848 | 1423 days ago | 0.06 ETH | ||||
- | 12476848 | 1423 days ago | 0.2 ETH | ||||
- | 12476848 | 1423 days ago | 0.05 ETH | ||||
- | 12476848 | 1423 days ago | 0.05 ETH | ||||
- | 12476791 | 1423 days ago | 0.05 ETH | ||||
- | 12476785 | 1423 days ago | 0.04 ETH | ||||
- | 12476782 | 1423 days ago | 0.15 ETH | ||||
- | 12476779 | 1423 days ago | 0.1 ETH | ||||
- | 12476775 | 1423 days ago | 0.2 ETH | ||||
- | 12476766 | 1423 days ago | 0.31 ETH | ||||
- | 12476757 | 1423 days ago | 0.09 ETH | ||||
- | 12476750 | 1423 days ago | 0.075 ETH | ||||
- | 12476739 | 1423 days ago | 0.1 ETH | ||||
- | 12476726 | 1423 days ago | 0.08 ETH | ||||
- | 12131801 | 1476 days ago | 0.3 ETH | ||||
- | 12131800 | 1476 days ago | 0.3 ETH | ||||
- | 12080042 | 1484 days ago | 0.11 ETH | ||||
- | 12077773 | 1485 days ago | 0.5 ETH | ||||
- | 11883585 | 1515 days ago | 0.1 ETH | ||||
- | 11715526 | 1540 days ago | 0.04 ETH |
Loading...
Loading
Contract Name:
TokenMarketplace
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-04-23 */ // File: openzeppelin-solidity/contracts/access/rbac/Roles.sol pragma solidity ^0.4.24; /** * @title Roles * @author Francisco Giordano (@frangio) * @dev Library for managing addresses assigned to a Role. * See RBAC.sol for example usage. */ library Roles { struct Role { mapping (address => bool) bearer; } /** * @dev give an address access to this role */ function add(Role storage _role, address _addr) internal { _role.bearer[_addr] = true; } /** * @dev remove an address' access to this role */ function remove(Role storage _role, address _addr) internal { _role.bearer[_addr] = false; } /** * @dev check if an address has this role * // reverts */ function check(Role storage _role, address _addr) internal view { require(has(_role, _addr)); } /** * @dev check if an address has this role * @return bool */ function has(Role storage _role, address _addr) internal view returns (bool) { return _role.bearer[_addr]; } } // File: openzeppelin-solidity/contracts/ownership/Ownable.sol pragma solidity ^0.4.24; /** * @title Ownable * @dev The Ownable contract has an owner address, and provides basic authorization control * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; event OwnershipRenounced(address indexed previousOwner); event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ constructor() public { owner = msg.sender; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(msg.sender == owner); _; } /** * @dev Allows the current owner to relinquish control of the contract. * @notice Renouncing to ownership will leave the contract without an owner. * It will not be possible to call the functions with the `onlyOwner` * modifier anymore. */ function renounceOwnership() public onlyOwner { emit OwnershipRenounced(owner); owner = address(0); } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function transferOwnership(address _newOwner) public onlyOwner { _transferOwnership(_newOwner); } /** * @dev Transfers control of the contract to a newOwner. * @param _newOwner The address to transfer ownership to. */ function _transferOwnership(address _newOwner) internal { require(_newOwner != address(0)); emit OwnershipTransferred(owner, _newOwner); owner = _newOwner; } } // File: openzeppelin-solidity/contracts/lifecycle/Pausable.sol pragma solidity ^0.4.24; /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Ownable { event Pause(); event Unpause(); bool public paused = false; /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() public onlyOwner whenNotPaused { paused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyOwner whenPaused { paused = false; emit Unpause(); } } // File: openzeppelin-solidity/contracts/access/rbac/RBAC.sol pragma solidity ^0.4.24; /** * @title RBAC (Role-Based Access Control) * @author Matt Condon (@Shrugs) * @dev Stores and provides setters and getters for roles and addresses. * Supports unlimited numbers of roles and addresses. * See //contracts/mocks/RBACMock.sol for an example of usage. * This RBAC method uses strings to key roles. It may be beneficial * for you to write your own implementation of this interface using Enums or similar. */ contract RBAC { using Roles for Roles.Role; mapping (string => Roles.Role) private roles; event RoleAdded(address indexed operator, string role); event RoleRemoved(address indexed operator, string role); /** * @dev reverts if addr does not have role * @param _operator address * @param _role the name of the role * // reverts */ function checkRole(address _operator, string _role) public view { roles[_role].check(_operator); } /** * @dev determine if addr has role * @param _operator address * @param _role the name of the role * @return bool */ function hasRole(address _operator, string _role) public view returns (bool) { return roles[_role].has(_operator); } /** * @dev add a role to an address * @param _operator address * @param _role the name of the role */ function addRole(address _operator, string _role) internal { roles[_role].add(_operator); emit RoleAdded(_operator, _role); } /** * @dev remove a role from an address * @param _operator address * @param _role the name of the role */ function removeRole(address _operator, string _role) internal { roles[_role].remove(_operator); emit RoleRemoved(_operator, _role); } /** * @dev modifier to scope access to a single role (uses msg.sender as addr) * @param _role the name of the role * // reverts */ modifier onlyRole(string _role) { checkRole(msg.sender, _role); _; } /** * @dev modifier to scope access to a set of roles (uses msg.sender as addr) * @param _roles the names of the roles to scope access to * // reverts * * @TODO - when solidity supports dynamic arrays as arguments to modifiers, provide this * see: https://github.com/ethereum/solidity/issues/2467 */ // modifier onlyRoles(string[] _roles) { // bool hasAnyRole = false; // for (uint8 i = 0; i < _roles.length; i++) { // if (hasRole(msg.sender, _roles[i])) { // hasAnyRole = true; // break; // } // } // require(hasAnyRole); // _; // } } // File: openzeppelin-solidity/contracts/access/Whitelist.sol pragma solidity ^0.4.24; /** * @title Whitelist * @dev The Whitelist contract has a whitelist of addresses, and provides basic authorization control functions. * This simplifies the implementation of "user permissions". */ contract Whitelist is Ownable, RBAC { string public constant ROLE_WHITELISTED = "whitelist"; /** * @dev Throws if operator is not whitelisted. * @param _operator address */ modifier onlyIfWhitelisted(address _operator) { checkRole(_operator, ROLE_WHITELISTED); _; } /** * @dev add an address to the whitelist * @param _operator address * @return true if the address was added to the whitelist, false if the address was already in the whitelist */ function addAddressToWhitelist(address _operator) public onlyOwner { addRole(_operator, ROLE_WHITELISTED); } /** * @dev getter to determine if address is in whitelist */ function whitelist(address _operator) public view returns (bool) { return hasRole(_operator, ROLE_WHITELISTED); } /** * @dev add addresses to the whitelist * @param _operators addresses * @return true if at least one address was added to the whitelist, * false if all addresses were already in the whitelist */ function addAddressesToWhitelist(address[] _operators) public onlyOwner { for (uint256 i = 0; i < _operators.length; i++) { addAddressToWhitelist(_operators[i]); } } /** * @dev remove an address from the whitelist * @param _operator address * @return true if the address was removed from the whitelist, * false if the address wasn't in the whitelist in the first place */ function removeAddressFromWhitelist(address _operator) public onlyOwner { removeRole(_operator, ROLE_WHITELISTED); } /** * @dev remove addresses from the whitelist * @param _operators addresses * @return true if at least one address was removed from the whitelist, * false if all addresses weren't in the whitelist in the first place */ function removeAddressesFromWhitelist(address[] _operators) public onlyOwner { for (uint256 i = 0; i < _operators.length; i++) { removeAddressFromWhitelist(_operators[i]); } } } // File: openzeppelin-solidity/contracts/math/SafeMath.sol pragma solidity ^0.4.24; /** * @title SafeMath * @dev Math operations with safety checks that throw on error */ library SafeMath { /** * @dev Multiplies two numbers, throws on overflow. */ function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) { // Gas optimization: this is cheaper than asserting 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522 if (_a == 0) { return 0; } c = _a * _b; assert(c / _a == _b); return c; } /** * @dev Integer division of two numbers, truncating the quotient. */ function div(uint256 _a, uint256 _b) internal pure returns (uint256) { // assert(_b > 0); // Solidity automatically throws when dividing by 0 // uint256 c = _a / _b; // assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold return _a / _b; } /** * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend). */ function sub(uint256 _a, uint256 _b) internal pure returns (uint256) { assert(_b <= _a); return _a - _b; } /** * @dev Adds two numbers, throws on overflow. */ function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) { c = _a + _b; assert(c >= _a); return c; } } // File: contracts/v2/marketplace/ITokenMarketplace.sol pragma solidity ^0.4.24; interface ITokenMarketplace { event BidPlaced( uint256 indexed _tokenId, address indexed _currentOwner, address indexed _bidder, uint256 _amount ); event BidWithdrawn( uint256 indexed _tokenId, address indexed _bidder ); event BidAccepted( uint256 indexed _tokenId, address indexed _currentOwner, address indexed _bidder, uint256 _amount ); event BidRejected( uint256 indexed _tokenId, address indexed _currentOwner, address indexed _bidder, uint256 _amount ); event AuctionEnabled( uint256 indexed _tokenId, address indexed _auctioneer ); event AuctionDisabled( uint256 indexed _tokenId, address indexed _auctioneer ); function placeBid(uint256 _tokenId) payable external returns (bool success); function withdrawBid(uint256 _tokenId) external returns (bool success); function acceptBid(uint256 _tokenId) external returns (uint256 tokenId); function rejectBid(uint256 _tokenId) external returns (bool success); function enableAuction(uint256 _tokenId) external returns (bool success); function disableAuction(uint256 _tokenId) external returns (bool success); } // File: contracts/v2/marketplace/TokenMarketplace.sol pragma solidity ^0.4.24; interface IKODAV2 { function ownerOf(uint256 _tokenId) external view returns (address _owner); function exists(uint256 _tokenId) external view returns (bool _exists); function editionOfTokenId(uint256 _tokenId) external view returns (uint256 tokenId); function artistCommission(uint256 _tokenId) external view returns (address _artistAccount, uint256 _artistCommission); function editionOptionalCommission(uint256 _tokenId) external view returns (uint256 _rate, address _recipient); function safeTransferFrom(address _from, address _to, uint256 _tokenId) external; } contract TokenMarketplace is Whitelist, Pausable, ITokenMarketplace { using SafeMath for uint256; event UpdatePlatformPercentageFee(uint256 _oldPercentage, uint256 _newPercentage); event UpdateRoyaltyPercentageFee(uint256 _oldPercentage, uint256 _newPercentage); struct Offer { address bidder; uint256 offer; } // Min increase in bid amount uint256 public minBidAmount = 0.04 ether; // Interface into the KODA world IKODAV2 public kodaAddress; // KO account which can receive commission address public koCommissionAccount; uint256 public artistRoyaltyPercentage = 50; uint256 public platformFeePercentage = 30; // Token ID to Offer mapping mapping(uint256 => Offer) offers; // Explicitly disable sales for specific tokens mapping(uint256 => bool) disabledTokens; /////////////// // Modifiers // /////////////// modifier onlyWhenOfferOwner(uint256 _tokenId) { require(offers[_tokenId].bidder == msg.sender, "Not offer maker"); _; } modifier onlyWhenTokenExists(uint256 _tokenId) { require(kodaAddress.exists(_tokenId), "Token does not exist"); _; } modifier onlyWhenBidOverMinAmount(uint256 _tokenId) { require(msg.value >= offers[_tokenId].offer.add(minBidAmount), "Offer not enough"); _; } modifier onlyWhenTokenAuctionEnabled(uint256 _tokenId) { require(!disabledTokens[_tokenId], "Token not enabled for offers"); _; } ///////////////// // Constructor // ///////////////// // Set the caller as the default KO account constructor(IKODAV2 _kodaAddress, address _koCommissionAccount) public { kodaAddress = _kodaAddress; koCommissionAccount = _koCommissionAccount; super.addAddressToWhitelist(msg.sender); } ////////////////// // User Actions // ////////////////// function placeBid(uint256 _tokenId) public payable whenNotPaused onlyWhenTokenExists(_tokenId) onlyWhenBidOverMinAmount(_tokenId) onlyWhenTokenAuctionEnabled(_tokenId) { _refundHighestBidder(_tokenId); offers[_tokenId] = Offer(msg.sender, msg.value); address currentOwner = kodaAddress.ownerOf(_tokenId); emit BidPlaced(_tokenId, currentOwner, msg.sender, msg.value); } function withdrawBid(uint256 _tokenId) public whenNotPaused onlyWhenTokenExists(_tokenId) onlyWhenOfferOwner(_tokenId) { _refundHighestBidder(_tokenId); emit BidWithdrawn(_tokenId, msg.sender); } function rejectBid(uint256 _tokenId) public whenNotPaused { address currentOwner = kodaAddress.ownerOf(_tokenId); require(currentOwner == msg.sender, "Not token owner"); uint256 currentHighestBiddersAmount = offers[_tokenId].offer; require(currentHighestBiddersAmount > 0, "No offer open"); address currentHighestBidder = offers[_tokenId].bidder; _refundHighestBidder(_tokenId); emit BidRejected(_tokenId, currentOwner, currentHighestBidder, currentHighestBiddersAmount); } function acceptBid(uint256 _tokenId) public whenNotPaused { address currentOwner = kodaAddress.ownerOf(_tokenId); require(currentOwner == msg.sender, "Not token owner"); uint256 winningOffer = offers[_tokenId].offer; require(winningOffer > 0, "No offer open"); address winningBidder = offers[_tokenId].bidder; delete offers[_tokenId]; // Get edition no. uint256 editionNumber = kodaAddress.editionOfTokenId(_tokenId); _handleFunds(editionNumber, winningOffer, currentOwner); kodaAddress.safeTransferFrom(msg.sender, winningBidder, _tokenId); emit BidAccepted(_tokenId, currentOwner, winningBidder, winningOffer); } function _refundHighestBidder(uint256 _tokenId) internal { // Get current highest bidder address currentHighestBidder = offers[_tokenId].bidder; // Get current highest bid amount uint256 currentHighestBiddersAmount = offers[_tokenId].offer; if (currentHighestBidder != address(0) && currentHighestBiddersAmount > 0) { // Clear out highest bidder delete offers[_tokenId]; // Refund it currentHighestBidder.transfer(currentHighestBiddersAmount); } } function _handleFunds(uint256 _editionNumber, uint256 _offer, address _currentOwner) internal { // Get existing artist commission (address artistAccount, uint256 artistCommissionRate) = kodaAddress.artistCommission(_editionNumber); // Get existing optional commission (uint256 optionalCommissionRate, address optionalCommissionRecipient) = kodaAddress.editionOptionalCommission(_editionNumber); _splitFunds(artistAccount, artistCommissionRate, optionalCommissionRecipient, optionalCommissionRate, _offer, _currentOwner); } function _splitFunds( address _artistAccount, uint256 _artistCommissionRate, address _optionalCommissionRecipient, uint256 _optionalCommissionRate, uint256 _offer, address _currentOwner ) internal { // Work out total % of royalties to payout = creator royalties + KO commission uint256 totalCommissionPercentageToPay = platformFeePercentage.add(artistRoyaltyPercentage); // Send current owner majority share of the offer uint256 totalToSendToOwner = _offer.sub( _offer.div(1000).mul(totalCommissionPercentageToPay) ); _currentOwner.transfer(totalToSendToOwner); // Send % to KO uint256 koCommission = _offer.div(1000).mul(platformFeePercentage); koCommissionAccount.transfer(koCommission); // Send to seller minus royalties and commission uint256 remainingRoyalties = _offer.sub(koCommission).sub(totalToSendToOwner); if (_optionalCommissionRecipient == address(0)) { // After KO and Seller - send the rest to the original artist _artistAccount.transfer(remainingRoyalties); } else { _handleOptionalSplits(_artistAccount, _artistCommissionRate, _optionalCommissionRecipient, _optionalCommissionRate, remainingRoyalties); } } function _handleOptionalSplits( address _artistAccount, uint256 _artistCommissionRate, address _optionalCommissionRecipient, uint256 _optionalCommissionRate, uint256 _remainingRoyalties ) internal { uint256 _totalCollaboratorsRate = _artistCommissionRate.add(_optionalCommissionRate); uint256 _scaledUpCommission = _artistCommissionRate.mul(10 ** 18); // work out % of royalties total to split e.g. 43 / 85 = 50.5882353% uint256 primaryArtistPercentage = _scaledUpCommission.div(_totalCollaboratorsRate); uint256 totalPrimaryRoyaltiesToArtist = _remainingRoyalties.mul(primaryArtistPercentage).div(10 ** 18); _artistAccount.transfer(totalPrimaryRoyaltiesToArtist); uint256 remainingRoyaltiesToCollaborator = _remainingRoyalties.sub(totalPrimaryRoyaltiesToArtist); _optionalCommissionRecipient.transfer(remainingRoyaltiesToCollaborator); } /////////////////// // Query Methods // /////////////////// function tokenOffer(uint256 _tokenId) external view returns (address _bidder, uint256 _offer, address _owner, bool _enabled, bool _paused) { Offer memory offer = offers[_tokenId]; return ( offer.bidder, offer.offer, kodaAddress.ownerOf(_tokenId), !disabledTokens[_tokenId], paused ); } function determineSaleValues(uint256 _tokenId) external view returns (uint256 _sellerTotal, uint256 _platformFee, uint256 _royaltyFee) { Offer memory offer = offers[_tokenId]; uint256 offerValue = offer.offer; uint256 fee = offerValue.div(1000).mul(platformFeePercentage); uint256 royalties = offerValue.div(1000).mul(artistRoyaltyPercentage); return ( offer.offer.sub(fee).sub(royalties), fee, royalties ); } /////////////////// // Admin Actions // /////////////////// function disableAuction(uint256 _tokenId) public onlyIfWhitelisted(msg.sender) { _refundHighestBidder(_tokenId); disabledTokens[_tokenId] = true; emit AuctionDisabled(_tokenId, msg.sender); } function enableAuction(uint256 _tokenId) public onlyIfWhitelisted(msg.sender) { _refundHighestBidder(_tokenId); disabledTokens[_tokenId] = false; emit AuctionEnabled(_tokenId, msg.sender); } function setMinBidAmount(uint256 _minBidAmount) onlyIfWhitelisted(msg.sender) public { minBidAmount = _minBidAmount; } function setKodavV2(IKODAV2 _kodaAddress) onlyIfWhitelisted(msg.sender) public { kodaAddress = _kodaAddress; } function setKoCommissionAccount(address _koCommissionAccount) public onlyIfWhitelisted(msg.sender) { require(_koCommissionAccount != address(0), "Invalid address"); koCommissionAccount = _koCommissionAccount; } function setArtistRoyaltyPercentage(uint256 _artistRoyaltyPercentage) public onlyIfWhitelisted(msg.sender) { emit UpdateRoyaltyPercentageFee(artistRoyaltyPercentage, _artistRoyaltyPercentage); artistRoyaltyPercentage = _artistRoyaltyPercentage; } function setPlatformPercentage(uint256 _platformFeePercentage) public onlyIfWhitelisted(msg.sender) { emit UpdatePlatformPercentageFee(platformFeePercentage, _platformFeePercentage); platformFeePercentage = _platformFeePercentage; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"enableAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"},{"name":"_role","type":"string"}],"name":"checkRole","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"withdrawBid","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_platformFeePercentage","type":"uint256"}],"name":"setPlatformPercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ROLE_WHITELISTED","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"},{"name":"_role","type":"string"}],"name":"hasRole","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operators","type":"address[]"}],"name":"removeAddressesFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"determineSaleValues","outputs":[{"name":"_sellerTotal","type":"uint256"},{"name":"_platformFee","type":"uint256"},{"name":"_royaltyFee","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"}],"name":"removeAddressFromWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"acceptBid","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_minBidAmount","type":"uint256"}],"name":"setMinBidAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minBidAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"artistRoyaltyPercentage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"rejectBid","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"koCommissionAccount","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_operator","type":"address"}],"name":"addAddressToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"tokenOffer","outputs":[{"name":"_bidder","type":"address"},{"name":"_offer","type":"uint256"},{"name":"_owner","type":"address"},{"name":"_enabled","type":"bool"},{"name":"_paused","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_koCommissionAccount","type":"address"}],"name":"setKoCommissionAccount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_artistRoyaltyPercentage","type":"uint256"}],"name":"setArtistRoyaltyPercentage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"placeBid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"_operator","type":"address"}],"name":"whitelist","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"disableAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_kodaAddress","type":"address"}],"name":"setKodavV2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"platformFeePercentage","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"kodaAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_operators","type":"address[]"}],"name":"addAddressesToWhitelist","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_kodaAddress","type":"address"},{"name":"_koCommissionAccount","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_oldPercentage","type":"uint256"},{"indexed":false,"name":"_newPercentage","type":"uint256"}],"name":"UpdatePlatformPercentageFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"_oldPercentage","type":"uint256"},{"indexed":false,"name":"_newPercentage","type":"uint256"}],"name":"UpdateRoyaltyPercentageFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_tokenId","type":"uint256"},{"indexed":true,"name":"_currentOwner","type":"address"},{"indexed":true,"name":"_bidder","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"BidPlaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_tokenId","type":"uint256"},{"indexed":true,"name":"_bidder","type":"address"}],"name":"BidWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_tokenId","type":"uint256"},{"indexed":true,"name":"_currentOwner","type":"address"},{"indexed":true,"name":"_bidder","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"BidAccepted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_tokenId","type":"uint256"},{"indexed":true,"name":"_currentOwner","type":"address"},{"indexed":true,"name":"_bidder","type":"address"},{"indexed":false,"name":"_amount","type":"uint256"}],"name":"BidRejected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_tokenId","type":"uint256"},{"indexed":true,"name":"_auctioneer","type":"address"}],"name":"AuctionEnabled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_tokenId","type":"uint256"},{"indexed":true,"name":"_auctioneer","type":"address"}],"name":"AuctionDisabled","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"operator","type":"address"},{"indexed":false,"name":"role","type":"string"}],"name":"RoleRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]
Contract Creation Code
60806040526002805460ff19169055668e1bc9bf0400006003556032600655601e6007553480156200003057600080fd5b50604051604080620022f78339810160405280516020909101516000805433600160a060020a03199182168117909255600480548216600160a060020a0380871691909117909155600580549092169084161790556200009e90640100000000620000a68102620011a31704565b50506200025c565b600054600160a060020a03163314620000be57600080fd5b6200010e816040805190810160405280600981526020017f77686974656c697374000000000000000000000000000000000000000000000081525062000111640100000000026401000000009004565b50565b6200018d826001836040518082805190602001908083835b602083106200014a5780518252601f19909201916020918201910162000129565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505064010000000062000237810262001f071704565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b700489826040518080602001828103825283818151815260200191508051906020019080838360005b83811015620001f8578181015183820152602001620001de565b50505050905090810190601f168015620002265780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b61208b806200026c6000396000f3006080604052600436106101955763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630872ef6e811461019a5780630988ca8c146101b45780630eaaf4c81461021b57806314d39bad1461023357806318b919e91461024b578063217fe6c6146102d557806324953eaa1461035057806326aa5942146103a5578063286dd3f5146103db5780632b1fd58a146103fc5780633f4ba83a14610414578063417fd6b61461042957806349751788146104415780635c06d0e0146104685780635c975abb1461047d5780636e3341b3146104925780636e93dbdc146104aa578063715018a6146104db5780637b9417c8146104f05780638456cb59146105115780638795dcff146105265780638da5cb5b1461057a578063953e474a1461058f5780639841ee39146105b05780639979ef45146105c85780639b19251a146105d3578063bb435c8d146105f4578063bbee17a31461060c578063cdd78cfc1461062d578063e0758c9d14610642578063e2ec6ec314610657578063f2fde38b146106ac575b600080fd5b3480156101a657600080fd5b506101b26004356106cd565b005b3480156101c057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b2958335600160a060020a03169536956044949193909101919081908401838280828437509497506107489650505050505050565b34801561022757600080fd5b506101b26004356107b6565b34801561023f57600080fd5b506101b260043561095a565b34801561025757600080fd5b506102606109cb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029a578181015183820152602001610282565b50505050905090810190601f1680156102c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e157600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261033c958335600160a060020a03169536956044949193909101919081908401838280828437509497506109f09650505050505050565b604080519115158252519081900360200190f35b34801561035c57600080fd5b50604080516020600480358082013583810280860185019096528085526101b295369593946024949385019291829185019084908082843750949750610a659650505050505050565b3480156103b157600080fd5b506103bd600435610ab2565b60408051938452602084019290925282820152519081900360600190f35b3480156103e757600080fd5b506101b2600160a060020a0360043516610b6c565b34801561040857600080fd5b506101b2600435610bb3565b34801561042057600080fd5b506101b2610ebd565b34801561043557600080fd5b506101b2600435610f1a565b34801561044d57600080fd5b50610456610f4e565b60408051918252519081900360200190f35b34801561047457600080fd5b50610456610f54565b34801561048957600080fd5b5061033c610f5a565b34801561049e57600080fd5b506101b2600435610f63565b3480156104b657600080fd5b506104bf611135565b60408051600160a060020a039092168252519081900360200190f35b3480156104e757600080fd5b506101b2611144565b3480156104fc57600080fd5b506101b2600160a060020a03600435166111a3565b34801561051d57600080fd5b506101b26111e7565b34801561053257600080fd5b5061053e600435611246565b60408051600160a060020a0396871681526020810195909552929094168383015215156060830152911515608082015290519081900360a00190f35b34801561058657600080fd5b506104bf61132d565b34801561059b57600080fd5b506101b2600160a060020a036004351661133c565b3480156105bc57600080fd5b506101b26004356113ed565b6101b260043561145e565b3480156105df57600080fd5b5061033c600160a060020a036004351661174c565b34801561060057600080fd5b506101b260043561177b565b34801561061857600080fd5b506101b2600160a060020a03600435166117f9565b34801561063957600080fd5b5061045661184a565b34801561064e57600080fd5b506104bf611850565b34801561066357600080fd5b50604080516020600480358082013583810280860185019096528085526101b29536959394602494938501929182918501908490808284375094975061185f9650505050505050565b3480156106b857600080fd5b506101b2600160a060020a03600435166118ac565b336106fb81604080519081016040528060098152602001600080516020612040833981519152815250610748565b610704826118cc565b600082815260096020526040808220805460ff1916905551339184917fdeb115d202a55795fb5e47cee9ce6c0bd792a016a2d1251f937b1bb24e92332e9190a35050565b6107b2826001836040518082805190602001908083835b6020831061077e5780518252601f19909201916020918201910161075f565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061195e565b5050565b60025460ff16156107c657600080fd5b60048054604080517f4f558e79000000000000000000000000000000000000000000000000000000008152928301849052518392600160a060020a0390921691634f558e799160248083019260209291908290030181600087803b15801561082d57600080fd5b505af1158015610841573d6000803e3d6000fd5b505050506040513d602081101561085757600080fd5b505115156108af576040805160e560020a62461bcd02815260206004820152601460248201527f546f6b656e20646f6573206e6f74206578697374000000000000000000000000604482015290519081900360640190fd5b6000828152600860205260409020548290600160a060020a0316331461091f576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f74206f66666572206d616b65720000000000000000000000000000000000604482015290519081900360640190fd5b610928836118cc565b604051339084907f5e9c7ae3229b2cda5065d7058fcc05765c695c29ce05313fbe96cb2ca639231a90600090a3505050565b3361098881604080519081016040528060098152602001600080516020612040833981519152815250610748565b600754604080519182526020820184905280517feacf709830352fe1a96d6837caea6476163d682a42a64eb621b34d9b901b50009281900390910190a150600755565b6040805180820190915260098152600080516020612040833981519152602082015281565b6000610a5c836001846040518082805190602001908083835b60208310610a285780518252601f199092019160209182019101610a09565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611973565b90505b92915050565b60008054600160a060020a03163314610a7d57600080fd5b5060005b81518110156107b257610aaa8282815181101515610a9b57fe5b90602001906020020151610b6c565b600101610a81565b6000806000610abf612028565b50600084815260086020908152604080832081518083019092528054600160a060020a03168252600101549181018290526007549092908190610b1a90610b0e856103e863ffffffff61199216565b9063ffffffff6119a716565b600654909250610b3690610b0e856103e863ffffffff61199216565b9050610b5f81610b538487602001516119d090919063ffffffff16565b9063ffffffff6119d016565b9891975095509350505050565b600054600160a060020a03163314610b8357600080fd5b610bb0816040805190810160405280600981526020016000805160206120408339815191528152506119e2565b50565b60025460009081908190819060ff1615610bcc57600080fd5b600480546040805160e160020a6331a9108f02815292830188905251600160a060020a0390911691636352211e9160248083019260209291908290030181600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b505050506040513d6020811015610c4557600080fd5b50519350600160a060020a0384163314610ca9576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746f6b656e206f776e65720000000000000000000000000000000000604482015290519081900360640190fd5b60008581526008602052604081206001015493508311610d13576040805160e560020a62461bcd02815260206004820152600d60248201527f4e6f206f66666572206f70656e00000000000000000000000000000000000000604482015290519081900360640190fd5b60008581526008602090815260408083208054600160a060020a03198116825560019091018490556004805483517f824eec3b0000000000000000000000000000000000000000000000000000000081529182018b90529251600160a060020a039283169750919092169363824eec3b93602480850194919392918390030190829087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b50519050610ddd818486611af3565b60048054604080517f42842e0e0000000000000000000000000000000000000000000000000000000081523393810193909352600160a060020a0385811660248501526044840189905290519116916342842e0e91606480830192600092919082900301818387803b158015610e5257600080fd5b505af1158015610e66573d6000803e3d6000fd5b5050505081600160a060020a031684600160a060020a0316867fe6d56779a392535d3a591e92b65ba36f2ecc424bbf5220d0176a7da29385b504866040518082815260200191505060405180910390a45050505050565b600054600160a060020a03163314610ed457600080fd5b60025460ff161515610ee557600080fd5b6002805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b33610f4881604080519081016040528060098152602001600080516020612040833981519152815250610748565b50600355565b60035481565b60065481565b60025460ff1681565b6002546000908190819060ff1615610f7a57600080fd5b600480546040805160e160020a6331a9108f02815292830187905251600160a060020a0390911691636352211e9160248083019260209291908290030181600087803b158015610fc957600080fd5b505af1158015610fdd573d6000803e3d6000fd5b505050506040513d6020811015610ff357600080fd5b50519250600160a060020a0383163314611057576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746f6b656e206f776e65720000000000000000000000000000000000604482015290519081900360640190fd5b600084815260086020526040812060010154925082116110c1576040805160e560020a62461bcd02815260206004820152600d60248201527f4e6f206f66666572206f70656e00000000000000000000000000000000000000604482015290519081900360640190fd5b50600083815260086020526040902054600160a060020a03166110e3846118cc565b80600160a060020a031683600160a060020a0316857f6d699e170cc72516120ba19fe48e744504798d1afc2ffb65ff1154a6f4fa4d15856040518082815260200191505060405180910390a450505050565b600554600160a060020a031681565b600054600160a060020a0316331461115b57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a260008054600160a060020a0319169055565b600054600160a060020a031633146111ba57600080fd5b610bb081604080519081016040528060098152602001600080516020612040833981519152815250611c47565b600054600160a060020a031633146111fe57600080fd5b60025460ff161561120e57600080fd5b6002805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6000806000806000611256612028565b506000868152600860209081526040808320815180830183528154600160a060020a0390811680835260019093015482860181905260048054865160e160020a6331a9108f0281529182018f9052955193979496919590921693636352211e936024808501949192918390030190829087803b1580156112d557600080fd5b505af11580156112e9573d6000803e3d6000fd5b505050506040513d60208110156112ff57600080fd5b50516000998a526009602052604090992054600254929a9199985060ff908116159750909116945092505050565b600054600160a060020a031681565b3361136a81604080519081016040528060098152602001600080516020612040833981519152815250610748565b600160a060020a03821615156113ca576040805160e560020a62461bcd02815260206004820152600f60248201527f496e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b5060058054600160a060020a031916600160a060020a0392909216919091179055565b3361141b81604080519081016040528060098152602001600080516020612040833981519152815250610748565b600654604080519182526020820184905280517f3d843ef224be86afeee7f914f0fa9ddae84d6d9df67ca5edcb781900ee88bff49281900390910190a150600655565b60025460009060ff161561147157600080fd5b60048054604080517f4f558e79000000000000000000000000000000000000000000000000000000008152928301859052518492600160a060020a0390921691634f558e799160248083019260209291908290030181600087803b1580156114d857600080fd5b505af11580156114ec573d6000803e3d6000fd5b505050506040513d602081101561150257600080fd5b5051151561155a576040805160e560020a62461bcd02815260206004820152601460248201527f546f6b656e20646f6573206e6f74206578697374000000000000000000000000604482015290519081900360640190fd5b6003546000848152600860205260409020600101548491611581919063ffffffff611d1916565b3410156115d8576040805160e560020a62461bcd02815260206004820152601060248201527f4f66666572206e6f7420656e6f75676800000000000000000000000000000000604482015290519081900360640190fd5b600084815260096020526040902054849060ff1615611641576040805160e560020a62461bcd02815260206004820152601c60248201527f546f6b656e206e6f7420656e61626c656420666f72206f666665727300000000604482015290519081900360640190fd5b61164a856118cc565b60408051808201825233815234602080830191825260008981526008825284812093518454600160a060020a031916600160a060020a03918216178555925160019094019390935560048054855160e160020a6331a9108f0281529182018b905294519490921693636352211e936024808501948390030190829087803b1580156116d457600080fd5b505af11580156116e8573d6000803e3d6000fd5b505050506040513d60208110156116fe57600080fd5b50516040805134815290519195503391600160a060020a0387169188917f3d87e1d02e187b9fe1095bc12567b7485b6cf54c47eea3dc9b5fd64d03cb67509181900360200190a45050505050565b6000610a5f826040805190810160405280600981526020016000805160206120408339815191528152506109f0565b336117a981604080519081016040528060098152602001600080516020612040833981519152815250610748565b6117b2826118cc565b600082815260096020526040808220805460ff1916600117905551339184917fe0c56951f00a75f5139f9af608a2ae603fe7c340a8f4b4b3125e9a7018041b609190a35050565b3361182781604080519081016040528060098152602001600080516020612040833981519152815250610748565b5060048054600160a060020a031916600160a060020a0392909216919091179055565b60075481565b600454600160a060020a031681565b60008054600160a060020a0316331461187757600080fd5b5060005b81518110156107b2576118a4828281518110151561189557fe5b906020019060200201516111a3565b60010161187b565b600054600160a060020a031633146118c357600080fd5b610bb081611d26565b60008181526008602052604090208054600190910154600160a060020a039091169081158015906118fd5750600081115b15611959576000838152600860205260408082208054600160a060020a031916815560010182905551600160a060020a0384169183156108fc02918491818181858888f19350505050158015611957573d6000803e3d6000fd5b505b505050565b6119688282611973565b15156107b257600080fd5b600160a060020a03166000908152602091909152604090205460ff1690565b6000818381151561199f57fe5b049392505050565b60008215156119b857506000610a5f565b508181028183828115156119c857fe5b0414610a5f57fe5b6000828211156119dc57fe5b50900390565b611a4c826001836040518082805190602001908083835b60208310611a185780518252601f1990920191602091820191016119f9565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611d96565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611ab5578181015183820152602001611a9d565b50505050905090810190601f168015611ae25780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60048054604080517f32fd84780000000000000000000000000000000000000000000000000000000081529283018690528051600093849384938493600160a060020a03909216926332fd8478926024808301939282900301818787803b158015611b5d57600080fd5b505af1158015611b71573d6000803e3d6000fd5b505050506040513d6040811015611b8757600080fd5b50805160209091015160048054604080517fde56a2450000000000000000000000000000000000000000000000000000000081529283018c90528051949850929650600160a060020a03169263de56a245926024808401939192918290030181600087803b158015611bf857600080fd5b505af1158015611c0c573d6000803e3d6000fd5b505050506040513d6040811015611c2257600080fd5b5080516020909101519092509050611c3e848483858a8a611db8565b50505050505050565b611cb1826001836040518082805190602001908083835b60208310611c7d5780518252601f199092019160209182019101611c5e565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611f07565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b7004898260405180806020018281038252838181518152602001915080519060200190808383600083811015611ab5578181015183820152602001611a9d565b81810182811015610a5f57fe5b600160a060020a0381161515611d3b57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600080600080611dd5600654600754611d1990919063ffffffff16565b9350611dfd611df085610b0e896103e863ffffffff61199216565b879063ffffffff6119d016565b604051909350600160a060020a0386169084156108fc029085906000818181858888f19350505050158015611e36573d6000803e3d6000fd5b50600754611e5090610b0e886103e863ffffffff61199216565b600554604051919350600160a060020a03169083156108fc029084906000818181858888f19350505050158015611e8b573d6000803e3d6000fd5b50611ea083610b53888563ffffffff6119d016565b9050600160a060020a0388161515611eee57604051600160a060020a038b169082156108fc029083906000818181858888f19350505050158015611ee8573d6000803e3d6000fd5b50611efb565b611efb8a8a8a8a85611f2c565b50505050505050505050565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600080808080611f42898863ffffffff611d1916565b9450611f5c89670de0b6b3a764000063ffffffff6119a716565b9350611f6e848663ffffffff61199216565b9250611f98670de0b6b3a7640000611f8c888663ffffffff6119a716565b9063ffffffff61199216565b604051909250600160a060020a038b169083156108fc029084906000818181858888f19350505050158015611fd1573d6000803e3d6000fd5b50611fe2868363ffffffff6119d016565b604051909150600160a060020a0389169082156108fc029083906000818181858888f1935050505015801561201b573d6000803e3d6000fd5b5050505050505050505050565b604080518082019091526000808252602082015290560077686974656c6973740000000000000000000000000000000000000000000000a165627a7a723058208d4d7fd32ed4eca24d9a1d29d11672740b9d925a07c7be20199d74510bb6f4840029000000000000000000000000fbeef911dc5821886e1dda71586d90ed28174b7d0000000000000000000000003f8c962eb167ad2f80c72b5f933511ccdf0719d4
Deployed Bytecode
0x6080604052600436106101955763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416630872ef6e811461019a5780630988ca8c146101b45780630eaaf4c81461021b57806314d39bad1461023357806318b919e91461024b578063217fe6c6146102d557806324953eaa1461035057806326aa5942146103a5578063286dd3f5146103db5780632b1fd58a146103fc5780633f4ba83a14610414578063417fd6b61461042957806349751788146104415780635c06d0e0146104685780635c975abb1461047d5780636e3341b3146104925780636e93dbdc146104aa578063715018a6146104db5780637b9417c8146104f05780638456cb59146105115780638795dcff146105265780638da5cb5b1461057a578063953e474a1461058f5780639841ee39146105b05780639979ef45146105c85780639b19251a146105d3578063bb435c8d146105f4578063bbee17a31461060c578063cdd78cfc1461062d578063e0758c9d14610642578063e2ec6ec314610657578063f2fde38b146106ac575b600080fd5b3480156101a657600080fd5b506101b26004356106cd565b005b3480156101c057600080fd5b5060408051602060046024803582810135601f81018590048502860185019096528585526101b2958335600160a060020a03169536956044949193909101919081908401838280828437509497506107489650505050505050565b34801561022757600080fd5b506101b26004356107b6565b34801561023f57600080fd5b506101b260043561095a565b34801561025757600080fd5b506102606109cb565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561029a578181015183820152602001610282565b50505050905090810190601f1680156102c75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156102e157600080fd5b5060408051602060046024803582810135601f810185900485028601850190965285855261033c958335600160a060020a03169536956044949193909101919081908401838280828437509497506109f09650505050505050565b604080519115158252519081900360200190f35b34801561035c57600080fd5b50604080516020600480358082013583810280860185019096528085526101b295369593946024949385019291829185019084908082843750949750610a659650505050505050565b3480156103b157600080fd5b506103bd600435610ab2565b60408051938452602084019290925282820152519081900360600190f35b3480156103e757600080fd5b506101b2600160a060020a0360043516610b6c565b34801561040857600080fd5b506101b2600435610bb3565b34801561042057600080fd5b506101b2610ebd565b34801561043557600080fd5b506101b2600435610f1a565b34801561044d57600080fd5b50610456610f4e565b60408051918252519081900360200190f35b34801561047457600080fd5b50610456610f54565b34801561048957600080fd5b5061033c610f5a565b34801561049e57600080fd5b506101b2600435610f63565b3480156104b657600080fd5b506104bf611135565b60408051600160a060020a039092168252519081900360200190f35b3480156104e757600080fd5b506101b2611144565b3480156104fc57600080fd5b506101b2600160a060020a03600435166111a3565b34801561051d57600080fd5b506101b26111e7565b34801561053257600080fd5b5061053e600435611246565b60408051600160a060020a0396871681526020810195909552929094168383015215156060830152911515608082015290519081900360a00190f35b34801561058657600080fd5b506104bf61132d565b34801561059b57600080fd5b506101b2600160a060020a036004351661133c565b3480156105bc57600080fd5b506101b26004356113ed565b6101b260043561145e565b3480156105df57600080fd5b5061033c600160a060020a036004351661174c565b34801561060057600080fd5b506101b260043561177b565b34801561061857600080fd5b506101b2600160a060020a03600435166117f9565b34801561063957600080fd5b5061045661184a565b34801561064e57600080fd5b506104bf611850565b34801561066357600080fd5b50604080516020600480358082013583810280860185019096528085526101b29536959394602494938501929182918501908490808284375094975061185f9650505050505050565b3480156106b857600080fd5b506101b2600160a060020a03600435166118ac565b336106fb81604080519081016040528060098152602001600080516020612040833981519152815250610748565b610704826118cc565b600082815260096020526040808220805460ff1916905551339184917fdeb115d202a55795fb5e47cee9ce6c0bd792a016a2d1251f937b1bb24e92332e9190a35050565b6107b2826001836040518082805190602001908083835b6020831061077e5780518252601f19909201916020918201910161075f565b51815160209384036101000a600019018019909216911617905292019485525060405193849003019092209291505061195e565b5050565b60025460ff16156107c657600080fd5b60048054604080517f4f558e79000000000000000000000000000000000000000000000000000000008152928301849052518392600160a060020a0390921691634f558e799160248083019260209291908290030181600087803b15801561082d57600080fd5b505af1158015610841573d6000803e3d6000fd5b505050506040513d602081101561085757600080fd5b505115156108af576040805160e560020a62461bcd02815260206004820152601460248201527f546f6b656e20646f6573206e6f74206578697374000000000000000000000000604482015290519081900360640190fd5b6000828152600860205260409020548290600160a060020a0316331461091f576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f74206f66666572206d616b65720000000000000000000000000000000000604482015290519081900360640190fd5b610928836118cc565b604051339084907f5e9c7ae3229b2cda5065d7058fcc05765c695c29ce05313fbe96cb2ca639231a90600090a3505050565b3361098881604080519081016040528060098152602001600080516020612040833981519152815250610748565b600754604080519182526020820184905280517feacf709830352fe1a96d6837caea6476163d682a42a64eb621b34d9b901b50009281900390910190a150600755565b6040805180820190915260098152600080516020612040833981519152602082015281565b6000610a5c836001846040518082805190602001908083835b60208310610a285780518252601f199092019160209182019101610a09565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611973565b90505b92915050565b60008054600160a060020a03163314610a7d57600080fd5b5060005b81518110156107b257610aaa8282815181101515610a9b57fe5b90602001906020020151610b6c565b600101610a81565b6000806000610abf612028565b50600084815260086020908152604080832081518083019092528054600160a060020a03168252600101549181018290526007549092908190610b1a90610b0e856103e863ffffffff61199216565b9063ffffffff6119a716565b600654909250610b3690610b0e856103e863ffffffff61199216565b9050610b5f81610b538487602001516119d090919063ffffffff16565b9063ffffffff6119d016565b9891975095509350505050565b600054600160a060020a03163314610b8357600080fd5b610bb0816040805190810160405280600981526020016000805160206120408339815191528152506119e2565b50565b60025460009081908190819060ff1615610bcc57600080fd5b600480546040805160e160020a6331a9108f02815292830188905251600160a060020a0390911691636352211e9160248083019260209291908290030181600087803b158015610c1b57600080fd5b505af1158015610c2f573d6000803e3d6000fd5b505050506040513d6020811015610c4557600080fd5b50519350600160a060020a0384163314610ca9576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746f6b656e206f776e65720000000000000000000000000000000000604482015290519081900360640190fd5b60008581526008602052604081206001015493508311610d13576040805160e560020a62461bcd02815260206004820152600d60248201527f4e6f206f66666572206f70656e00000000000000000000000000000000000000604482015290519081900360640190fd5b60008581526008602090815260408083208054600160a060020a03198116825560019091018490556004805483517f824eec3b0000000000000000000000000000000000000000000000000000000081529182018b90529251600160a060020a039283169750919092169363824eec3b93602480850194919392918390030190829087803b158015610da457600080fd5b505af1158015610db8573d6000803e3d6000fd5b505050506040513d6020811015610dce57600080fd5b50519050610ddd818486611af3565b60048054604080517f42842e0e0000000000000000000000000000000000000000000000000000000081523393810193909352600160a060020a0385811660248501526044840189905290519116916342842e0e91606480830192600092919082900301818387803b158015610e5257600080fd5b505af1158015610e66573d6000803e3d6000fd5b5050505081600160a060020a031684600160a060020a0316867fe6d56779a392535d3a591e92b65ba36f2ecc424bbf5220d0176a7da29385b504866040518082815260200191505060405180910390a45050505050565b600054600160a060020a03163314610ed457600080fd5b60025460ff161515610ee557600080fd5b6002805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b33610f4881604080519081016040528060098152602001600080516020612040833981519152815250610748565b50600355565b60035481565b60065481565b60025460ff1681565b6002546000908190819060ff1615610f7a57600080fd5b600480546040805160e160020a6331a9108f02815292830187905251600160a060020a0390911691636352211e9160248083019260209291908290030181600087803b158015610fc957600080fd5b505af1158015610fdd573d6000803e3d6000fd5b505050506040513d6020811015610ff357600080fd5b50519250600160a060020a0383163314611057576040805160e560020a62461bcd02815260206004820152600f60248201527f4e6f7420746f6b656e206f776e65720000000000000000000000000000000000604482015290519081900360640190fd5b600084815260086020526040812060010154925082116110c1576040805160e560020a62461bcd02815260206004820152600d60248201527f4e6f206f66666572206f70656e00000000000000000000000000000000000000604482015290519081900360640190fd5b50600083815260086020526040902054600160a060020a03166110e3846118cc565b80600160a060020a031683600160a060020a0316857f6d699e170cc72516120ba19fe48e744504798d1afc2ffb65ff1154a6f4fa4d15856040518082815260200191505060405180910390a450505050565b600554600160a060020a031681565b600054600160a060020a0316331461115b57600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a260008054600160a060020a0319169055565b600054600160a060020a031633146111ba57600080fd5b610bb081604080519081016040528060098152602001600080516020612040833981519152815250611c47565b600054600160a060020a031633146111fe57600080fd5b60025460ff161561120e57600080fd5b6002805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b6000806000806000611256612028565b506000868152600860209081526040808320815180830183528154600160a060020a0390811680835260019093015482860181905260048054865160e160020a6331a9108f0281529182018f9052955193979496919590921693636352211e936024808501949192918390030190829087803b1580156112d557600080fd5b505af11580156112e9573d6000803e3d6000fd5b505050506040513d60208110156112ff57600080fd5b50516000998a526009602052604090992054600254929a9199985060ff908116159750909116945092505050565b600054600160a060020a031681565b3361136a81604080519081016040528060098152602001600080516020612040833981519152815250610748565b600160a060020a03821615156113ca576040805160e560020a62461bcd02815260206004820152600f60248201527f496e76616c696420616464726573730000000000000000000000000000000000604482015290519081900360640190fd5b5060058054600160a060020a031916600160a060020a0392909216919091179055565b3361141b81604080519081016040528060098152602001600080516020612040833981519152815250610748565b600654604080519182526020820184905280517f3d843ef224be86afeee7f914f0fa9ddae84d6d9df67ca5edcb781900ee88bff49281900390910190a150600655565b60025460009060ff161561147157600080fd5b60048054604080517f4f558e79000000000000000000000000000000000000000000000000000000008152928301859052518492600160a060020a0390921691634f558e799160248083019260209291908290030181600087803b1580156114d857600080fd5b505af11580156114ec573d6000803e3d6000fd5b505050506040513d602081101561150257600080fd5b5051151561155a576040805160e560020a62461bcd02815260206004820152601460248201527f546f6b656e20646f6573206e6f74206578697374000000000000000000000000604482015290519081900360640190fd5b6003546000848152600860205260409020600101548491611581919063ffffffff611d1916565b3410156115d8576040805160e560020a62461bcd02815260206004820152601060248201527f4f66666572206e6f7420656e6f75676800000000000000000000000000000000604482015290519081900360640190fd5b600084815260096020526040902054849060ff1615611641576040805160e560020a62461bcd02815260206004820152601c60248201527f546f6b656e206e6f7420656e61626c656420666f72206f666665727300000000604482015290519081900360640190fd5b61164a856118cc565b60408051808201825233815234602080830191825260008981526008825284812093518454600160a060020a031916600160a060020a03918216178555925160019094019390935560048054855160e160020a6331a9108f0281529182018b905294519490921693636352211e936024808501948390030190829087803b1580156116d457600080fd5b505af11580156116e8573d6000803e3d6000fd5b505050506040513d60208110156116fe57600080fd5b50516040805134815290519195503391600160a060020a0387169188917f3d87e1d02e187b9fe1095bc12567b7485b6cf54c47eea3dc9b5fd64d03cb67509181900360200190a45050505050565b6000610a5f826040805190810160405280600981526020016000805160206120408339815191528152506109f0565b336117a981604080519081016040528060098152602001600080516020612040833981519152815250610748565b6117b2826118cc565b600082815260096020526040808220805460ff1916600117905551339184917fe0c56951f00a75f5139f9af608a2ae603fe7c340a8f4b4b3125e9a7018041b609190a35050565b3361182781604080519081016040528060098152602001600080516020612040833981519152815250610748565b5060048054600160a060020a031916600160a060020a0392909216919091179055565b60075481565b600454600160a060020a031681565b60008054600160a060020a0316331461187757600080fd5b5060005b81518110156107b2576118a4828281518110151561189557fe5b906020019060200201516111a3565b60010161187b565b600054600160a060020a031633146118c357600080fd5b610bb081611d26565b60008181526008602052604090208054600190910154600160a060020a039091169081158015906118fd5750600081115b15611959576000838152600860205260408082208054600160a060020a031916815560010182905551600160a060020a0384169183156108fc02918491818181858888f19350505050158015611957573d6000803e3d6000fd5b505b505050565b6119688282611973565b15156107b257600080fd5b600160a060020a03166000908152602091909152604090205460ff1690565b6000818381151561199f57fe5b049392505050565b60008215156119b857506000610a5f565b508181028183828115156119c857fe5b0414610a5f57fe5b6000828211156119dc57fe5b50900390565b611a4c826001836040518082805190602001908083835b60208310611a185780518252601f1990920191602091820191016119f9565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611d96565b81600160a060020a03167fd211483f91fc6eff862467f8de606587a30c8fc9981056f051b897a418df803a826040518080602001828103825283818151815260200191508051906020019080838360005b83811015611ab5578181015183820152602001611a9d565b50505050905090810190601f168015611ae25780820380516001836020036101000a031916815260200191505b509250505060405180910390a25050565b60048054604080517f32fd84780000000000000000000000000000000000000000000000000000000081529283018690528051600093849384938493600160a060020a03909216926332fd8478926024808301939282900301818787803b158015611b5d57600080fd5b505af1158015611b71573d6000803e3d6000fd5b505050506040513d6040811015611b8757600080fd5b50805160209091015160048054604080517fde56a2450000000000000000000000000000000000000000000000000000000081529283018c90528051949850929650600160a060020a03169263de56a245926024808401939192918290030181600087803b158015611bf857600080fd5b505af1158015611c0c573d6000803e3d6000fd5b505050506040513d6040811015611c2257600080fd5b5080516020909101519092509050611c3e848483858a8a611db8565b50505050505050565b611cb1826001836040518082805190602001908083835b60208310611c7d5780518252601f199092019160209182019101611c5e565b51815160209384036101000a6000190180199092169116179052920194855250604051938490030190922092915050611f07565b81600160a060020a03167fbfec83d64eaa953f2708271a023ab9ee82057f8f3578d548c1a4ba0b5b7004898260405180806020018281038252838181518152602001915080519060200190808383600083811015611ab5578181015183820152602001611a9d565b81810182811015610a5f57fe5b600160a060020a0381161515611d3b57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360008054600160a060020a031916600160a060020a0392909216919091179055565b600160a060020a0316600090815260209190915260409020805460ff19169055565b600080600080611dd5600654600754611d1990919063ffffffff16565b9350611dfd611df085610b0e896103e863ffffffff61199216565b879063ffffffff6119d016565b604051909350600160a060020a0386169084156108fc029085906000818181858888f19350505050158015611e36573d6000803e3d6000fd5b50600754611e5090610b0e886103e863ffffffff61199216565b600554604051919350600160a060020a03169083156108fc029084906000818181858888f19350505050158015611e8b573d6000803e3d6000fd5b50611ea083610b53888563ffffffff6119d016565b9050600160a060020a0388161515611eee57604051600160a060020a038b169082156108fc029083906000818181858888f19350505050158015611ee8573d6000803e3d6000fd5b50611efb565b611efb8a8a8a8a85611f2c565b50505050505050505050565b600160a060020a0316600090815260209190915260409020805460ff19166001179055565b600080808080611f42898863ffffffff611d1916565b9450611f5c89670de0b6b3a764000063ffffffff6119a716565b9350611f6e848663ffffffff61199216565b9250611f98670de0b6b3a7640000611f8c888663ffffffff6119a716565b9063ffffffff61199216565b604051909250600160a060020a038b169083156108fc029084906000818181858888f19350505050158015611fd1573d6000803e3d6000fd5b50611fe2868363ffffffff6119d016565b604051909150600160a060020a0389169082156108fc029083906000818181858888f1935050505015801561201b573d6000803e3d6000fd5b5050505050505050505050565b604080518082019091526000808252602082015290560077686974656c6973740000000000000000000000000000000000000000000000a165627a7a723058208d4d7fd32ed4eca24d9a1d29d11672740b9d925a07c7be20199d74510bb6f4840029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000fbeef911dc5821886e1dda71586d90ed28174b7d0000000000000000000000003f8c962eb167ad2f80c72b5f933511ccdf0719d4
-----Decoded View---------------
Arg [0] : _kodaAddress (address): 0xFBeef911Dc5821886e1dda71586d90eD28174B7d
Arg [1] : _koCommissionAccount (address): 0x3f8C962eb167aD2f80C72b5F933511CcDF0719D4
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000fbeef911dc5821886e1dda71586d90ed28174b7d
Arg [1] : 0000000000000000000000003f8c962eb167ad2f80c72b5f933511ccdf0719d4
Deployed Bytecode Sourcemap
12650:9443:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20868:221;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20868:221:0;;;;;;;4847:119;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4847:119:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4847:119:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4847:119:0;;-1:-1:-1;4847:119:0;;-1:-1:-1;;;;;;;4847:119:0;14952:225;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;14952:225:0;;;;;21845:245;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21845:245:0;;;;;7074:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7074:53: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;7074:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5114:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5114:142:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5114:142:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5114:142:0;;-1:-1:-1;5114:142:0;;-1:-1:-1;;;;;;;5114:142:0;;;;;;;;;;;;;;;;;;;8931:208;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8931:208:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8931:208:0;;-1:-1:-1;8931:208:0;;-1:-1:-1;;;;;;;8931:208:0;20104:459;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20104:459:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8545:137;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8545:137:0;-1:-1:-1;;;;;8545:137:0;;;;;15717:697;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15717:697:0;;;;;3838:95;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3838:95:0;;;;21095:126;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21095:126:0;;;;;13028:40;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13028:40:0;;;;;;;;;;;;;;;;;;;;13231:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13231:43:0;;;;3217:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3217:26:0;;;;15183:528;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;15183:528:0;;;;;13190:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13190:34:0;;;;;;;;-1:-1:-1;;;;;13190:34:0;;;;;;;;;;;;;;2217:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2217:114:0;;;;7540:129;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7540:129:0;-1:-1:-1;;;;;7540:129:0;;;;;3658:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3658:93:0;;;;19770:328;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19770:328:0;;;;;;;;;-1:-1:-1;;;;;19770:328:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1422:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1422:20:0;;;;21351:223;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21351:223:0;-1:-1:-1;;;;;21351:223:0;;;;;21580:259;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21580:259:0;;;;;14527:419;;;;;;7747:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7747:139:0;-1:-1:-1;;;;;7747:139:0;;;;;20640:222;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;20640:222:0;;;;;21227:118;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;21227:118:0;-1:-1:-1;;;;;21227:118:0;;;;;13279:41;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13279:41:0;;;;13111:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13111:26:0;;;;8112:198;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;8112:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8112:198:0;;-1:-1:-1;8112:198:0;;-1:-1:-1;;;;;;;8112:198:0;2499:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2499:105:0;-1:-1:-1;;;;;2499:105:0;;;;;20868:221;20940:10;7282:38;7292:9;7303:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7303:16:0;;;7282:9;:38::i;:::-;20962:30;20983:8;20962:20;:30::i;:::-;21028:5;21001:24;;;:14;:24;;;;;;:32;;-1:-1:-1;;21001:32:0;;;21047:36;21072:10;;21016:8;;21047:36;;21028:5;21047:36;20868:221;;:::o;4847:119::-;4931:29;4950:9;4931:5;4937;4931:12;;;;;;;;;;;;;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;;4931:12:0;;;;;-1:-1:-1;4931:12:0;;;;;;;;;;;;-1:-1:-1;;4931:18:0;:29::i;:::-;4847:119;;:::o;14952:225::-;3393:6;;;;3392:7;3384:16;;;;;;13754:11;;;:28;;;;;;;;;;;;;15041:8;;-1:-1:-1;;;;;13754:11:0;;;;:18;;:28;;;;;;;;;;;;;;:11;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;13754:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13754:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13754:28:0;13746:61;;;;;;;-1:-1:-1;;;;;13746:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13615:16;;;;:6;:16;;;;;:23;15073:8;;-1:-1:-1;;;;;13615:23:0;13642:10;13615:37;13607:65;;;;;-1:-1:-1;;;;;13607:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15093:30;15114:8;15093:20;:30::i;:::-;15137:34;;15160:10;;15150:8;;15137:34;;;;;13814:1;3407;14952:225;:::o;21845:245::-;21933:10;7282:38;7292:9;7303:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7303:16:0;;;7282:9;:38::i;:::-;21985:21;;21957:74;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22038:21:0;:46;21845:245::o;7074:53::-;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7074:53:0;;;;;:::o;5114:142::-;5200:4;5223:27;5240:9;5223:5;5229;5223:12;;;;;;;;;;;;;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;;5223:12:0;;;;;-1:-1:-1;5223:12:0;;;;;;;;;;;;-1:-1:-1;;5223:16:0;:27::i;:::-;5216:34;;5114:142;;;;;:::o;8931:208::-;9033:9;1925:5;;-1:-1:-1;;;;;1925:5:0;1911:10;:19;1903:28;;;;;;-1:-1:-1;9045:1:0;9028:106;9052:10;:17;9048:1;:21;9028:106;;;9085:41;9112:10;9123:1;9112:13;;;;;;;;;;;;;;;;;;9085:26;:41::i;:::-;9071:3;;9028:106;;20104:459;20174:20;20196;20218:19;20246:18;;:::i;:::-;-1:-1:-1;20290:18:0;20267:16;;;:6;:16;;;;;;;;20246:37;;;;;;;;;;-1:-1:-1;;;;;20246:37:0;;;;;;;;;;;;20368:21;;20246:37;;20290:18;;;20343:47;;:20;20246:37;20358:4;20343:20;:14;:20;:::i;:::-;:24;:47;:24;:47;:::i;:::-;20442:23;;20329:61;;-1:-1:-1;20417:49:0;;:20;:10;20432:4;20417:20;:14;:20;:::i;:49::-;20397:69;;20489:35;20514:9;20489:20;20505:3;20489:5;:11;;;:15;;:20;;;;:::i;:::-;:24;:35;:24;:35;:::i;:::-;20475:82;20531:3;;-1:-1:-1;20541:9:0;-1:-1:-1;20104:459:0;-1:-1:-1;;;;20104:459:0:o;8545:137::-;1925:5;;-1:-1:-1;;;;;1925:5:0;1911:10;:19;1903:28;;;;;;8637:39;8648:9;8659:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;8659:16:0;;;8637:10;:39::i;:::-;8545:137;:::o;15717:697::-;3393:6;;15791:20;;;;;;;;3393:6;;3392:7;3384:16;;;;;;15814:11;;;:29;;;-1:-1:-1;;;;;15814:29:0;;;;;;;;;-1:-1:-1;;;;;15814:11:0;;;;:19;;:29;;;;;;;;;;;;;;:11;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;15814:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15814:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15814:29:0;;-1:-1:-1;;;;;;15858:26:0;;15874:10;15858:26;15850:54;;;;;-1:-1:-1;;;;;15850:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15936:16;;;;:6;:16;;;;;:22;;;;-1:-1:-1;15973:16:0;;15965:42;;;;;-1:-1:-1;;;;;15965:42:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;16040:16;;;;:6;:16;;;;;;;;:23;;-1:-1:-1;;;;;;16072:23:0;;;;-1:-1:-1;16072:23:0;;;;;;16152:11;;;:38;;;;;;;;;;;;;-1:-1:-1;;;;;16040:23:0;;;;-1:-1:-1;16152:11:0;;;;;:28;;:38;;;;;16040:16;;16152:38;;;;;;;;;:11;:38;;;5:2:-1;;;;30:1;27;20:12;5:2;16152:38:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16152:38:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16152:38:0;;-1:-1:-1;16199:55:0;16152:38;16227:12;16241;16199;:55::i;:::-;16263:11;;;:65;;;;;;16292:10;16263:65;;;;;;;-1:-1:-1;;;;;16263:65:0;;;;;;;;;;;;;;;:11;;;:28;;:65;;;;;:11;;:65;;;;;;;:11;;:65;;;5:2:-1;;;;30:1;27;20:12;5:2;16263:65:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16263:65:0;;;;16378:13;-1:-1:-1;;;;;16342:64:0;16364:12;-1:-1:-1;;;;;16342:64:0;16354:8;16342:64;16393:12;16342:64;;;;;;;;;;;;;;;;;;15717:697;;;;;:::o;3838:95::-;1925:5;;-1:-1:-1;;;;;1925:5:0;1911:10;:19;1903:28;;;;;;3553:6;;;;3545:15;;;;;;;;3892:6;:14;;-1:-1:-1;;3892:14:0;;;3918:9;;;;3901:5;;3918:9;3838:95::o;21095:126::-;21161:10;7282:38;7292:9;7303:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7303:16:0;;;7282:9;:38::i;:::-;-1:-1:-1;21187:12:0;:28;21095:126::o;13028:40::-;;;;:::o;13231:43::-;;;;:::o;3217:26::-;;;;;;:::o;15183:528::-;3393:6;;15257:20;;;;;;3393:6;;3392:7;3384:16;;;;;;15280:11;;;:29;;;-1:-1:-1;;;;;15280:29:0;;;;;;;;;-1:-1:-1;;;;;15280:11:0;;;;:19;;:29;;;;;;;;;;;;;;:11;;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;15280:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;15280:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;15280:29:0;;-1:-1:-1;;;;;;15324:26:0;;15340:10;15324:26;15316:54;;;;;-1:-1:-1;;;;;15316:54:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;15417:16;;;;:6;:16;;;;;:22;;;;-1:-1:-1;15454:31:0;;15446:57;;;;;-1:-1:-1;;;;;15446:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15543:16:0;;;;:6;:16;;;;;:23;-1:-1:-1;;;;;15543:23:0;15575:30;15550:8;15575:20;:30::i;:::-;15655:20;-1:-1:-1;;;;;15619:86:0;15641:12;-1:-1:-1;;;;;15619:86:0;15631:8;15619:86;15677:27;15619:86;;;;;;;;;;;;;;;;;;15183:528;;;;:::o;13190:34::-;;;-1:-1:-1;;;;;13190:34:0;;:::o;2217:114::-;1925:5;;-1:-1:-1;;;;;1925:5:0;1911:10;:19;1903:28;;;;;;2294:5;;;2275:25;;-1:-1:-1;;;;;2294:5:0;;;;2275:25;;;2323:1;2307:18;;-1:-1:-1;;;;;;2307:18:0;;;2217:114::o;7540:129::-;1925:5;;-1:-1:-1;;;;;1925:5:0;1911:10;:19;1903:28;;;;;;7627:36;7635:9;7646:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7646:16:0;;;7627:7;:36::i;3658:93::-;1925:5;;-1:-1:-1;;;;;1925:5:0;1911:10;:19;1903:28;;;;;;3393:6;;;;3392:7;3384:16;;;;;;3713:6;:13;;-1:-1:-1;;3713:13:0;3722:4;3713:13;;;3738:7;;;;3713:6;;3738:7;3658:93::o;19770:328::-;19831:15;19848:14;19864;19880:13;19895:12;19916:18;;:::i;:::-;-1:-1:-1;19937:16:0;;;;:6;:16;;;;;;;;19916:37;;;;;;;;;-1:-1:-1;;;;;19916:37:0;;;;;;;;;;;;;;;;;20011:11;;;:29;;-1:-1:-1;;;;;20011:29:0;;;;;;;;;;19916:37;;;;;;20011:11;;;;:19;;:29;;;;;;;;;;;;;;;:11;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;20011:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;20011:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;20011:29:0;20048:24;;;;:14;20011:29;20048:24;;;;;;20079:6;;19960:132;;;;20011:29;-1:-1:-1;20048:24:0;;;;20047:25;;-1:-1:-1;20079:6:0;;;;-1:-1:-1;19770:328:0;-1:-1:-1;;;19770:328:0:o;1422:20::-;;;-1:-1:-1;;;;;1422:20:0;;:::o;21351:223::-;21438:10;7282:38;7292:9;7303:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7303:16:0;;;7282:9;:38::i;:::-;-1:-1:-1;;;;;21465:34:0;;;;21457:62;;;;;-1:-1:-1;;;;;21457:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21526:19:0;:42;;-1:-1:-1;;;;;;21526:42:0;-1:-1:-1;;;;;21526:42:0;;;;;;;;;;21351:223::o;21580:259::-;21675:10;7282:38;7292:9;7303:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7303:16:0;;;7282:9;:38::i;:::-;21726:23;;21699:77;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21783:23:0;:50;21580:259::o;14527:419::-;3393:6;;14818:20;;3393:6;;3392:7;3384:16;;;;;;13754:11;;;:28;;;;;;;;;;;;;14624:8;;-1:-1:-1;;;;;13754:11:0;;;;:18;;:28;;;;;;;;;;;;;;:11;;:28;;;5:2:-1;;;;30:1;27;20:12;5:2;13754:28:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;13754:28:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;13754:28:0;13746:61;;;;;;;-1:-1:-1;;;;;13746:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13934:12;;13907:16;;;;:6;:16;;;;;:22;;;14662:8;;13907:40;;:22;:40;:26;:40;:::i;:::-;13894:9;:53;;13886:82;;;;;-1:-1:-1;;;;;13886:82:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14059:24;;;;:14;:24;;;;;;14703:8;;14059:24;;14058:25;14050:66;;;;;-1:-1:-1;;;;;14050:66:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14723:30;14744:8;14723:20;:30::i;:::-;14781:28;;;;;;;;14787:10;14781:28;;14799:9;14781:28;;;;;;;-1:-1:-1;14762:16:0;;;:6;:16;;;;;:47;;;;-1:-1:-1;;;;;;14762:47:0;-1:-1:-1;;;;;14762:47:0;;;;;;;;-1:-1:-1;14762:47:0;;;;;;;14841:11;;;:29;;-1:-1:-1;;;;;14841:29:0;;;;;;;;;;:11;;;;;:19;;:29;;;;;;;;;;;;:11;:29;;;5:2:-1;;;;30:1;27;20:12;5:2;14841:29:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;14841:29:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14841:29:0;14884:56;;;14930:9;14884:56;;;;14841:29;;-1:-1:-1;14918:10:0;;-1:-1:-1;;;;;14884:56:0;;;14894:8;;14884:56;;;;;14841:29;14884:56;;;13975:1;13814;3407;14527:419;;:::o;7747:139::-;7821:4;7844:36;7852:9;7863:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7863:16:0;;;7844:7;:36::i;20640:222::-;20713:10;7282:38;7292:9;7303:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7303:16:0;;;7282:9;:38::i;:::-;20735:30;20756:8;20735:20;:30::i;:::-;20774:24;;;;:14;:24;;;;;;:31;;-1:-1:-1;;20774:31:0;20801:4;20774:31;;;20819:37;20845:10;;20789:8;;20819:37;;20774:24;20819:37;20640:222;;:::o;21227:118::-;21287:10;7282:38;7292:9;7303:16;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;7303:16:0;;;7282:9;:38::i;:::-;-1:-1:-1;21313:11:0;:26;;-1:-1:-1;;;;;;21313:26:0;-1:-1:-1;;;;;21313:26:0;;;;;;;;;;21227:118::o;13279:41::-;;;;:::o;13111:26::-;;;-1:-1:-1;;;;;13111:26:0;;:::o;8112:198::-;8209:9;1925:5;;-1:-1:-1;;;;;1925:5:0;1911:10;:19;1903:28;;;;;;-1:-1:-1;8221:1:0;8204:101;8228:10;:17;8224:1;:21;8204:101;;;8261:36;8283:10;8294:1;8283:13;;;;;;;;;;;;;;;;;;8261:21;:36::i;:::-;8247:3;;8204:101;;2499:105;1925:5;;-1:-1:-1;;;;;1925:5:0;1911:10;:19;1903:28;;;;;;2569:29;2588:9;2569:18;:29::i;16420:516::-;16519:28;16550:16;;;:6;:16;;;;;:23;;;16659:22;;;;-1:-1:-1;;;;;16550:23:0;;;;16694:34;;;;;:69;;;16762:1;16732:27;:31;16694:69;16690:241;;;16818:16;;;;:6;:16;;;;;;16811:23;;-1:-1:-1;;;;;;16811:23:0;;;;;;;;16865:58;-1:-1:-1;;;;;16865:29:0;;;:58;;;;;16895:27;;16865:58;16818:16;16865:58;16895:27;16865:29;:58;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;16865:58:0;16690:241;16420:516;;;:::o;768:116::-;860:17;864:5;871;860:3;:17::i;:::-;852:26;;;;;;;968:134;-1:-1:-1;;;;;1077:19:0;1054:4;1077:19;;;;;;;;;;;;;;;968:134::o;9903:288::-;9963:7;10183:2;10178;:7;;;;;;;;;9903:288;-1:-1:-1;;;9903:288:0:o;9425:391::-;9485:9;9715:7;;9711:38;;;-1:-1:-1;9740:1:0;9733:8;;9711:38;-1:-1:-1;9761:7:0;;;9766:2;9761;:7;9782:6;;;;;;;;:12;9775:20;;;10308:119;10368:7;10391:8;;;;10384:16;;;;-1:-1:-1;10414:7:0;;;10308:119::o;5661:154::-;5738:30;5758:9;5738:5;5744;5738:12;;;;;;;;;;;;;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;;5738:12:0;;;;;-1:-1:-1;5738:12:0;;;;;;;;;;;;-1:-1:-1;;5738:19:0;:30::i;:::-;5792:9;-1:-1:-1;;;;;5780:29:0;;5803:5;5780:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;5780:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5661:154;;:::o;16942:556::-;17140:11;;;:44;;;;;;;;;;;;;;17085:21;;;;;;;;-1:-1:-1;;;;;17140:11:0;;;;:28;;:44;;;;;;;;;;;17085:21;17140:11;:44;;;5:2:-1;;;;30:1;27;20:12;5:2;17140:44:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17140:44:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17140:44:0;;;;;;;17306:11;;;17140:44;17306:53;;;;;;;;;;;;;17140:44;;-1:-1:-1;17140:44:0;;-1:-1:-1;;;;;;17306:11:0;;:37;;:53;;;;;17140:44;;17306:53;;;;;;:11;;:53;;;5:2:-1;;;;30:1;27;20:12;5:2;17306:53:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;17306:53:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;17306:53:0;;;;;;;;;-1:-1:-1;17306:53:0;-1:-1:-1;17368:124:0;17380:13;17395:20;17306:53;;17470:6;17478:13;17368:11;:124::i;:::-;16942:556;;;;;;;:::o;5383:146::-;5457:27;5474:9;5457:5;5463;5457:12;;;;;;;;;;;;;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;;5457:12:0;;;;;-1:-1:-1;5457:12:0;;;;;;;;;;;;-1:-1:-1;;5457:16:0;:27::i;:::-;5506:9;-1:-1:-1;;;;;5496:27:0;;5517:5;5496:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;10494:132:0;10576:7;;;10597;;;;10590:15;;;2745:175;-1:-1:-1;;;;;2816:23:0;;;;2808:32;;;;;;2873:5;;;2852:38;;-1:-1:-1;;;;;2852:38:0;;;;2873:5;;;2852:38;;;2897:5;:17;;-1:-1:-1;;;;;;2897:17:0;-1:-1:-1;;;;;2897:17:0;;;;;;;;;;2745:175::o;578:108::-;-1:-1:-1;;;;;653:19:0;675:5;653:19;;;;;;;;;;;:27;;-1:-1:-1;;653:27:0;;;578:108::o;17504:1268::-;17827:38;17982:26;18168:20;18346:26;17868:50;17894:23;;17868:21;;:25;;:50;;;;:::i;:::-;17827:91;-1:-1:-1;18011:78:0;18030:52;17827:91;18030:16;:6;18041:4;18030:16;:10;:16;:::i;:52::-;18011:6;;:78;:10;:78;:::i;:::-;18096:42;;17982:107;;-1:-1:-1;;;;;;18096:22:0;;;:42;;;;;17982:107;;18096:42;;;;17982:107;18096:22;:42;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;18212:21:0;;18191:43;;:16;:6;18202:4;18191:16;:10;:16;:::i;:43::-;18241:19;;:42;;18168:66;;-1:-1:-1;;;;;;18241:19:0;;:42;;;;;18168:66;;18241:19;:42;:19;:42;18168:66;18241:19;:42;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;18375:48:0;18404:18;18375:24;:6;18386:12;18375:24;:10;:24;:::i;:48::-;18346:77;-1:-1:-1;;;;;;18436:42:0;;;18432:335;;;18558:43;;-1:-1:-1;;;;;18558:23:0;;;:43;;;;;18582:18;;18558:43;;;;18582:18;18558:23;:43;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;18558:43:0;18432:335;;;18624:135;18646:14;18662:21;18685:28;18715:23;18740:18;18624:21;:135::i;:::-;17504:1268;;;;;;;;;;:::o;404:104::-;-1:-1:-1;;;;;476:19:0;:12;:19;;;;;;;;;;;:26;;-1:-1:-1;;476:26:0;498:4;476:26;;;404:104::o;18778:915::-;19010:31;;;;;19044:50;:21;19070:23;19044:50;:25;:50;:::i;:::-;19010:84;-1:-1:-1;19131:35:0;:21;19157:8;19131:35;:25;:35;:::i;:::-;19101:65;-1:-1:-1;19283:48:0;19101:65;19307:23;19283:48;:23;:48;:::i;:::-;19249:82;-1:-1:-1;19380:62:0;19433:8;19380:48;:19;19249:82;19380:48;:23;:48;:::i;:::-;:52;:62;:52;:62;:::i;:::-;19449:54;;19340:102;;-1:-1:-1;;;;;;19449:23:0;;;:54;;;;;19340:102;;19449:54;;;;19340:102;19449:23;:54;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;19555:54:0;:19;19579:29;19555:54;:23;:54;:::i;:::-;19616:71;;19512:97;;-1:-1:-1;;;;;;19616:37:0;;;:71;;;;;19512:97;;19616:71;;;;19512:97;19616:37;:71;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19616:71:0;18778:915;;;;;;;;;;:::o;12650:9443::-;;;;;;;;;;-1:-1:-1;12650:9443:0;;;;;;;;:::o
Swarm Source
bzzr://8d4d7fd32ed4eca24d9a1d29d11672740b9d925a07c7be20199d74510bb6f484
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.