Feature Tip: Add private address tag to any address under My Name Tag !
QARK Token of QAN Platform token contract has migrated to a new address.
ERC-20
Old Contract
Overview
Max Total Supply
333,333,000 QARK
Holders
5,935 (0.00%)
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
QARK
Compiler Version
v0.5.12+commit.7709ece9
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2019-12-10 */ pragma solidity ^0.5.0; contract ERC20Interface { function totalSupply() public view returns (uint); function balanceOf(address tokenOwner) public view returns (uint balance); function allowance(address tokenOwner, address spender) public view returns (uint remaining); function transfer(address to, uint tokens) public returns (bool success); function approve(address spender, uint tokens) public returns (bool success); function transferFrom(address from, address to, uint tokens) public returns (bool success); event Transfer(address indexed from, address indexed to, uint tokens); event Approval(address indexed tokenOwner, address indexed spender, uint tokens); event LockBalance(address indexed from, address indexed to, uint tokens); event FreezeBalance(address indexed from, uint tokens, uint until); event LogUint(string key, uint value); event LogString(string key, string value); event LogAddress(string key, address value); } contract Owned { address public owner; address public newOwner; event OwnershipTransferred(address indexed _from, address indexed _to); constructor() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address _newOwner) public onlyOwner { newOwner = _newOwner; } function acceptOwnership() public { require(msg.sender == newOwner); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } library SafeMath { function add(uint a, uint b) internal pure returns (uint c) { c = a + b; require(c >= a); } function sub(uint a, uint b) internal pure returns (uint c) { require(b <= a); c = a - b; } function mul(uint a, uint b) internal pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); } function div(uint a, uint b) internal pure returns (uint c) { require(b > 0); c = a / b; } } contract QARK is ERC20Interface, Owned { /* * Use SafeMath Library * for uint operations. */ using SafeMath for uint; /* * Token symbol listed * on exchanges. */ string public symbol; /* * Token name displayed * on block explorers */ string public name; /* * Atomic unit of the token. */ uint8 public decimals; /* * Total supply available * of the token. */ uint _totalSupply; /* * Stores token holder * balances. */ mapping(address => uint) balances; /* * Stores allowances * of tokens holders to * each other. */ mapping(address => mapping(address => uint)) allowed; /* * Method to claim unsold * private sale tokens into * the reserve. */ function claimReserve() public { //ONLY RESERVE ADDRESS CAN CLAIM require(msg.sender == roles[4], 'Only reserve address can claim!'); //RESERVE CAN ONLY BE CLAIMED AFTER END OF PUBLIC SALE if(block.timestamp < pubSaleEnd + 7 * 24 * 60 * 60){ revert('Reserve can not be claimed before end of public sale!'); } //CLAIM FUNDS balances[roles[4]] = balances[roles[4]].add(balances[roles[0]]); //EMIT TRANSFER EVENTS emit Transfer(roles[0], roles[4], balances[roles[0]]); //DEDUCT BALANCES OF EXCHANGE AND PRIV SELLER balances[roles[0]] = 0; } /* * Mapping for roles * to addresses: * 0 => Private seller * 1 => Exchange * 2 => Management * 3 => Centrum Circle * 4 => Reserve * 5 => Rate updater */ mapping(uint => address) roles; /* * Get the current address * for a given role. */ function getRoleAddress(uint _roleId) public view returns (address) { return roles[_roleId]; } /* * Sets an address * for a given role. */ function setRoleAddress(uint _roleId, address _newAddress) public onlyOwner { //ENSURE THAT ONLY ADDRESSES WITHOUT BALANCE CAN BE ASSIGNED require(balances[_newAddress] == 0, 'Only zero balance addresses can be assigned!'); //GET OLD ADDRESS OF THE ROLE address _oldAddress = roles[_roleId]; //IF TRYING TO UPDATE EXCHANGE ADDRESS, REVERT if(_roleId == 1 && _oldAddress != address(0)){ revert('Exchange address MUST not be updated!'); } //IF THIS IS THE INITIALIZATION OF THE ADDRESS if(_oldAddress == address(0)){ //INITIALIZATION BALANCE uint initBalance = 0; //PRIVATE SELLER if(_roleId == 0){ initBalance = 133333200; } //EXCHANGE if(_roleId == 1){ initBalance = 88888800; } //MANAGEMENT if(_roleId == 2){ initBalance = 44444400; } //CENTRUM if(_roleId == 3){ initBalance = 44444400; } //RESERVE if(_roleId == 4){ initBalance = 22222200; } //5 = RATE UPDATER //IF THERE IS BALANCE TO BE INITIALIZED, DO IT if(initBalance > 0){ initBalance = initBalance * 10**uint(decimals); balances[_newAddress] = initBalance; emit Transfer(address(0), _newAddress, initBalance); //FOR MANAGEMENT AND RESERVE, APPLY FREEZE TO THE INIT BALANCE if(_roleId == 2 || _roleId == 4){ frozenBalances[_newAddress] = initBalance; frozenTiming[_newAddress] = block.timestamp + 180 * 24 * 60 * 60; emit FreezeBalance(_newAddress, initBalance, frozenTiming[_newAddress]); } } } //IF CURRENT ACCOUNT HAS BALANCE if(balances[_oldAddress] > 0){ //MOVE FUNDS OF OLD ACCOUNT TO NEW ACCOUNT balances[_newAddress] = balances[_oldAddress]; //EMIT TRANSFER EVENT emit Transfer(_oldAddress, _newAddress, balances[_oldAddress]); //REMOVE OLD BALANCE balances[_oldAddress] = 0; //TRANSFER FROZEN BALANCES AS WELL if(frozenBalances[_oldAddress] > 0){ frozenBalances[_newAddress] = frozenBalances[_oldAddress]; frozenTiming[_newAddress] = frozenTiming[_oldAddress]; emit FreezeBalance(_newAddress, frozenBalances[_newAddress], frozenTiming[_newAddress]); frozenBalances[_oldAddress] = 0; frozenTiming[_oldAddress] = 0; } } //ASSIGN NEW ADDRESS roles[_roleId] = _newAddress; } /* * The current conversion rate of * 1 QARK => USD cents. */ uint public conversionRate; function setRate(uint _newConversionRate) public { require(msg.sender == roles[5], 'Only rate updater is allowed to perform this!'); conversionRate = _newConversionRate; } /* * Stores the locked balances * of those who bought during * private sale and are restricted * from selling after public sale. */ mapping(address => uint256) lockedBalances; /* * UNIX timestamp of the start * time of the public sale. */ uint public pubSaleStart; /* * UNIX timestamp of the end * time of the public sale. */ uint public pubSaleEnd; /* * UNIX timestamp of the end * time of the private buyers' * restrictions. */ uint public restrictionEnd; /* * Sets the public sale and * restrictions related timings. */ function setTiming(uint _pubSaleStart, uint _pubSaleEnd, uint _restrictionEnd) public onlyOwner { require(pubSaleStart == 0 && pubSaleEnd == 0 && restrictionEnd == 0, 'Timing only can be set once'); pubSaleStart = _pubSaleStart; pubSaleEnd = _pubSaleEnd; restrictionEnd = _restrictionEnd; } /* * Constructs the contract * with 333,333,300 QARK tokens * with 18 decimals. */ constructor() public { symbol = "QARK"; name = "QARK Token of QAN Platform"; decimals = 18; _totalSupply = 333333000 * 10**uint(decimals); } /* * Returns the total supply * minus the amounts of burned tokens. */ function totalSupply() public view returns (uint) { return _totalSupply.sub(balances[address(0)]); } /* * Returns the balance * of a given token holder. */ function balanceOf(address tokenOwner) public view returns (uint balance) { return balances[tokenOwner]; } /* * Returns the locked balance * of a given token holder. */ function lockedBalanceOf(address tokenOwner) public view returns (uint lockedBalance) { return lockedBalances[tokenOwner]; } /* * Stores the frozen balances * of those who bought have * frozen their own balances * until a certain UNIX timestamp. */ mapping(address => uint) frozenBalances; /* * Stores the UNIX timestamps * until when a certain token * holders' tokens have frozen * their own tokens. */ mapping(address => uint) frozenTiming; /* * Method to freeze own * tokens until a certain time. */ function freezeOwnTokens(uint amount, uint until) public { //FIRST AUTO UNFREEZE ANY PREVIOUSLY LOCKED TOKENS _autoUnfreeze(); //AVAIL BALANCE MUST BE GREATER THAN TOKENS TO BE LOCKED require(balances[msg.sender] - lockedBalances[msg.sender] > amount); //ALSO CURRENTLY LOCKED AMOUNT MUST BE LESS THAN TOKENS TO BE LOCKED require(frozenBalances[msg.sender] < amount); //LOCK PERIOD MUST BE FUTURE, AND GREATER THAN CURRENT LOCK require(until > block.timestamp && until > frozenTiming[msg.sender]); //MAKE FREEZE frozenBalances[msg.sender] = amount; frozenTiming[msg.sender] = until; } /* * Returns the frozen balance * of a given token holder. */ function frozenBalanceOf(address tokenOwner) public view returns (uint frozenBalance) { return frozenBalances[tokenOwner]; } /* * Returns the UNIX timestamp * until when some tokens * of a given token holder * are frozen. */ function frozenTimingOf(address tokenOwner) public view returns (uint until) { return frozenTiming[tokenOwner]; } /* * Automatically unfreezes * all tokens of msg.sender * if freeze time has passed. */ function _autoUnfreeze() private { if(frozenBalances[msg.sender] > 0 && block.timestamp > frozenTiming[msg.sender]){ frozenBalances[msg.sender] = 0; } } /* * Private method to handle private * sale transfers. */ function _privTransfer(address to, uint tokens) private returns (bool success) { //ONLY PRIVATE SELLER CAN EXECUTE PRIVATE SALE TRANSACTION require(msg.sender == roles[0], 'Only private seller can make private sale TX!'); //NO PRIVATE SALE TRANSACTION CAN BE MADE AFTER PUBLIC SALE CLOSED require(block.timestamp < pubSaleEnd, 'No transfer from private seller after public sale!'); //LOCK THE TOKEN AMOUNT OF THE BUYER lockedBalances[to] = lockedBalances[to].add(tokens); emit LockBalance(msg.sender, to, tokens); emit LogAddress('PrivateSaleFrom', msg.sender); //MAKE A REGULAR TRANSFER return _regularTransfer(to, tokens); } /* * Private method to handle public * sale (IEO) transfers. */ function _pubTransfer(address to, uint tokens) private returns (bool success) { //MAKE SURE PRIVATE AND RESTRICTED TRANSACTIONS ARE NOT HANDLED HERE require(msg.sender != roles[0], 'Public transfer not allowed from private seller'); //MAKE SURE THAT ONLY REGULAR TRANSACTIONS CAN BE EXECUTED NOT INVOLVING LOCKED TOKENS require(balances[msg.sender].sub(lockedBalances[msg.sender]) >= tokens, 'Not enough unlocked tokens!'); emit LogAddress('PublicSaleFrom', msg.sender); //MAKE A REGULAR TRANSFER return _regularTransfer(to, tokens); } /* * Private method to handle secondary * market transfers (after IEO). */ function _postPubTransfer(address to, uint tokens) private returns (bool success) { //IF PUBLIC SALE ENDED AND EXCHANGE OR PRIVATE SELLER TRIES TO MAKE A TRANSFER if(block.timestamp > pubSaleEnd + 7 * 24 * 60 * 60 && (msg.sender == roles[1] || msg.sender == roles[0])){ revert('No transfer from exchange / private seller after public sale!'); } //IF PRIVATE SALE RESTRICTIONS DID NOT END YET AND SENDER IS A PRIVATE SALE BUYER if(block.timestamp < restrictionEnd && lockedBalances[msg.sender] > 0){ emit LogAddress('RestrictedSaleFrom', msg.sender); return _restrictedTransfer(to, tokens); } emit LogAddress('PostPublicSaleFrom', msg.sender); //ELSE MAKE A REGULAR TRANSFER return _regularTransfer(to, tokens); } /* * Makes sure that private sale buyers * can withdraw unsold tokens on exchanges * even if restrictions are active. */ mapping(address => address) withdrawMap; /* * Private method to handle transactions * of private sale buyers to whom certain * restrictions apply to protect market prices. */ function _restrictedTransfer(address to, uint tokens) private returns (bool success) { //DECLARE CURRENT BALANCES uint totalBalance = balances[msg.sender]; uint lockedBalance = lockedBalances[msg.sender]; uint unlockedBalance = totalBalance.sub(lockedBalance); //IF PRICE IS LOW, THIS ADDRESS IS RESTRICTED, AND IS NOT TRYING TO WITHDRAW TO HIS PREVIOUS ACCOUNT if(conversionRate < 39 && unlockedBalance < tokens && to != withdrawMap[msg.sender]){ revert('Private token trading halted because of low market prices!'); } //IF THERE IS NOT ENOUGH UNLOCKED BALANCE TO SEND TOKENS if(unlockedBalance < tokens){ //CALCULATE TOKENS TO BE LOCKED ON RECIPIENT'S ACCOUNT uint lockables = tokens.sub(unlockedBalance); //LOCK THEM lockedBalances[to] = lockedBalances[to].add(lockables); emit LockBalance(msg.sender, to, lockables); //RELEASE LOCK ON SENDER lockedBalances[msg.sender] = lockedBalances[msg.sender].sub(lockables); //UPDATE WITHDRAW MAP TO ENABLE SENDER TO SEND FUNDS BACK TO HIMSELF LATER withdrawMap[to] = msg.sender; } //PERFORM A REGULAR TRANSFER return _regularTransfer(to, tokens); } /* * Performs a regular * ERC20 transfer. */ function _regularTransfer(address to, uint tokens) private returns (bool success) { //DEDUCT FROM SENDER, CREDIT BENEFICIARY balances[msg.sender] = balances[msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(msg.sender, to, tokens); return true; } /* * Transfer logic to handle * all possible scenarios: * - Private sale * - Public sale (IEO) * - Secondary market trading */ function transfer(address to, uint tokens) public returns (bool success) { //AUTOMATICALLY UNFREEZE ANY UNFREEZABLE TOKENS _autoUnfreeze(); //IF THE SENDER STILL HAS FROZEN BALANCE, CHECK FOR LIQUIDITY if(frozenBalances[msg.sender] > 0 && balances[msg.sender] - frozenBalances[msg.sender] < tokens){ revert('Frozen balance can not be spent yet, insufficient tokens!'); } //REQUIRE THAT SENDER HAS THE BALANCE TO MAKE THE TRANSFER require(balances[msg.sender] >= tokens, 'Not enough liquid tokens!'); //IF RESERVE IS TRYING TO MAKE A TRANSFER AND 1 YEAR FREEZE NOT PASSED YET, REVERT if(msg.sender == roles[4] && block.timestamp < pubSaleEnd + 60 * 60 * 24 * 30 * 12){ revert('Reserve can not be accessed before the 1 year freeze period'); } //HANDLE PRIVATE SALE TRANSACTIONS if(msg.sender == roles[0]){ return _privTransfer(to, tokens); } //HANDLE PUBLIC SALE TRANSACTIONS if(block.timestamp > pubSaleStart && block.timestamp < pubSaleEnd){ return _pubTransfer(to, tokens); } //HANDLE TRANSACTIONS AFTER PUBLIC SALE ENDED if(block.timestamp > pubSaleEnd){ return _postPubTransfer(to, tokens); } //NO CASES MATCHED return false; } /* * Grant spend ability * of tokens to a third party. */ function approve(address spender, uint tokens) public returns (bool success) { //DURING RESTRICTION PERIOD, NO APPROVAL TRANSFERS FOR PRIV BUYERS if(block.timestamp < restrictionEnd){ require(lockedBalances[msg.sender] == 0, 'This address MUST not start approval related transactions!'); require(lockedBalances[spender] == 0, 'This address MUST not start approval related transactions!'); } allowed[msg.sender][spender] = tokens; emit Approval(msg.sender, spender, tokens); return true; } /* * Transfer tokens from another * address given they granted approval * to msg.sender of the current call. */ function transferFrom(address from, address to, uint tokens) public returns (bool success) { //DURING RESTRICTION PERIOD, NO APPROVAL TRANSFERS FOR PRIV BUYERS if(block.timestamp < restrictionEnd){ require(lockedBalances[msg.sender] == 0, 'This address MUST not start approval related transactions!'); require(lockedBalances[from] == 0, 'This address MUST not start approval related transactions!'); require(lockedBalances[to] == 0, 'This address MUST not start approval related transactions!'); } balances[from] = balances[from].sub(tokens); allowed[from][msg.sender] = allowed[from][msg.sender].sub(tokens); balances[to] = balances[to].add(tokens); emit Transfer(from, to, tokens); return true; } /* * Returns the amount of tokens a * spender is allowed to spend * from tokenOwner's balance. */ function allowance(address tokenOwner, address spender) public view returns (uint remaining) { return allowed[tokenOwner][spender]; } function () external payable { //DON'T ACCEPT ETH revert(); } /* * Enables the contract owner * to retrieve other ERC20 tokens * sent to the contract. */ function transferAnyERC20Token(address tokenAddress, uint tokens) public onlyOwner returns (bool success) { return ERC20Interface(tokenAddress).transfer(owner, tokens); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"until","type":"uint256"}],"name":"FreezeBalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"LockBalance","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"key","type":"string"},{"indexed":false,"internalType":"address","name":"value","type":"address"}],"name":"LogAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"key","type":"string"},{"indexed":false,"internalType":"string","name":"value","type":"string"}],"name":"LogString","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"key","type":"string"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"LogUint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimReserve","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"conversionRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"until","type":"uint256"}],"name":"freezeOwnTokens","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"frozenBalanceOf","outputs":[{"internalType":"uint256","name":"frozenBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"frozenTimingOf","outputs":[{"internalType":"uint256","name":"until","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"_roleId","type":"uint256"}],"name":"getRoleAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"tokenOwner","type":"address"}],"name":"lockedBalanceOf","outputs":[{"internalType":"uint256","name":"lockedBalance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pubSaleEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"pubSaleStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"restrictionEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_newConversionRate","type":"uint256"}],"name":"setRate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_roleId","type":"uint256"},{"internalType":"address","name":"_newAddress","type":"address"}],"name":"setRoleAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"_pubSaleStart","type":"uint256"},{"internalType":"uint256","name":"_pubSaleEnd","type":"uint256"},{"internalType":"uint256","name":"_restrictionEnd","type":"uint256"}],"name":"setTiming","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferAnyERC20Token","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040523480156200001157600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600481526020017f5141524b00000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000132565b506040518060400160405280601a81526020017f5141524b20546f6b656e206f662051414e20506c6174666f726d00000000000081525060039080519060200190620000ed92919062000132565b506012600460006101000a81548160ff021916908360ff160217905550600460009054906101000a900460ff1660ff16600a0a6313de420802600581905550620001e1565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200017557805160ff1916838001178555620001a6565b82800160010185558215620001a6579182015b82811115620001a557825182559160200191906001019062000188565b5b509050620001b59190620001b9565b5090565b620001de91905b80821115620001da576000816000905550600101620001c0565b5090565b90565b613e5b80620001f16000396000f3fe60806040526004361061019c5760003560e01c806379ba5097116100ec578063cfd9480b1161008a578063dc39d06d11610064578063dc39d06d146108fc578063dd62ed3e1461096f578063e5d382ed146109f4578063f2fde38b14610a4f5761019c565b8063cfd9480b1461084f578063d4ee1d901461087a578063dacec154146108d15761019c565b806395d89b41116100c657806395d89b41146106a2578063a238b62d14610732578063a9059cbb14610777578063be91de53146107ea5761019c565b806379ba5097146106095780637ffdf53e146106205780638da5cb5b1461064b5761019c565b806334fcf43711610159578063593557361161013357806359355736146104995780635ea8d05d146104fe57806370a0823114610529578063789a670b1461058e5761019c565b806334fcf437146103f85780633fe5f054146104335780634445f0991461044a5761019c565b806306fdde03146101a1578063095ea7b31461023157806318160ddd146102a45780631a864d1d146102cf57806323b872dd14610334578063313ce567146103c7575b600080fd5b3480156101ad57600080fd5b506101b6610aa0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b5061028a6004803603604081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b3e565b604051808215151515815260200191505060405180910390f35b3480156102b057600080fd5b506102b9610d6b565b6040518082815260200191505060405180910390f35b3480156102db57600080fd5b5061031e600480360360208110156102f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc6565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b506103ad6004803603606081101561035757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e0f565b604051808215151515815260200191505060405180910390f35b3480156103d357600080fd5b506103dc61128d565b604051808260ff1660ff16815260200191505060405180910390f35b34801561040457600080fd5b506104316004803603602081101561041b57600080fd5b81019080803590602001909291905050506112a0565b005b34801561043f57600080fd5b50610448611362565b005b34801561045657600080fd5b506104976004803603606081101561046d57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506117be565b005b3480156104a557600080fd5b506104e8600480360360208110156104bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118c5565b6040518082815260200191505060405180910390f35b34801561050a57600080fd5b5061051361190e565b6040518082815260200191505060405180910390f35b34801561053557600080fd5b506105786004803603602081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611914565b6040518082815260200191505060405180910390f35b34801561059a57600080fd5b506105c7600480360360208110156105b157600080fd5b810190808035906020019092919050505061195d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061557600080fd5b5061061e61199a565b005b34801561062c57600080fd5b50610635611b37565b6040518082815260200191505060405180910390f35b34801561065757600080fd5b50610660611b3d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ae57600080fd5b506106b7611b62565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f75780820151818401526020810190506106dc565b50505050905090810190601f1680156107245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561073e57600080fd5b506107756004803603604081101561075557600080fd5b810190808035906020019092919080359060200190929190505050611c00565b005b34801561078357600080fd5b506107d06004803603604081101561079a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dc1565b604051808215151515815260200191505060405180910390f35b3480156107f657600080fd5b506108396004803603602081101561080d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612136565b6040518082815260200191505060405180910390f35b34801561085b57600080fd5b5061086461217f565b6040518082815260200191505060405180910390f35b34801561088657600080fd5b5061088f612185565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108dd57600080fd5b506108e66121ab565b6040518082815260200191505060405180910390f35b34801561090857600080fd5b506109556004803603604081101561091f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121b1565b604051808215151515815260200191505060405180910390f35b34801561097b57600080fd5b506109de6004803603604081101561099257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122f7565b6040518082815260200191505060405180910390f35b348015610a0057600080fd5b50610a4d60048036036040811015610a1757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061237e565b005b348015610a5b57600080fd5b50610a9e60048036036020811015610a7257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c89565b005b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b365780601f10610b0b57610100808354040283529160200191610b36565b820191906000526020600020905b815481529060010190602001808311610b1957829003601f168201915b505050505081565b6000600d54421015610c7b576000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610be2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cb0603a913960400191505060405180910390fd5b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cb0603a913960400191505060405180910390fd5b5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610dc1600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600554612d2690919063ffffffff16565b905090565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600d54421015610fe4576000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610eb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cb0603a913960400191505060405180910390fd5b6000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cb0603a913960400191505060405180910390fd5b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fe3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cb0603a913960400191505060405180910390fd5b5b61103682600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2690919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061110882600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2690919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111da82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b600860006005815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180613d1c602d913960400191505060405180910390fd5b8060098190555050565b600860006004815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4f6e6c79207265736572766520616464726573732063616e20636c61696d210081525060200191505060405180910390fd5b62093a80600c5401421015611497576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613c7b6035913960400191505060405180910390fd5b61158f600660006008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460066000600860006004815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4090919063ffffffff16565b60066000600860006004815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860006004815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600660006008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36000600660006008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461181757600080fd5b6000600b5414801561182b57506000600c54145b801561183957506000600d54145b6118ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f54696d696e67206f6e6c792063616e20626520736574206f6e6365000000000081525060200191505060405180910390fd5b82600b8190555081600c8190555080600d81905550505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119f457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bf85780601f10611bcd57610100808354040283529160200191611bf8565b820191906000526020600020905b815481529060010190602001808311611bdb57829003601f168201915b505050505081565b611c08612d5a565b81600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540311611c9457600080fd5b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611cdf57600080fd5b4281118015611d2c5750600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481115b611d3557600080fd5b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000611dcb612d5a565b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611e99575081600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403105b15611eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180613bc16039913960400191505060405180910390fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611fa4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4e6f7420656e6f756768206c697175696420746f6b656e73210000000000000081525060200191505060405180910390fd5b600860006004815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561201a57506301da9c00600c540142105b15612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180613d83603b913960400191505060405180910390fd5b6008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156120e8576120e18383612e34565b9050612130565b600b54421180156120fa5750600c5442105b156121105761210983836130ef565b9050612130565b600c5442111561212b57612124838361335d565b9050612130565b600090505b92915050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461220c57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156122b457600080fd5b505af11580156122c8573d6000803e3d6000fd5b505050506040513d60208110156122de57600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123d757600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461246f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613dfb602c913960400191505060405180910390fd5b60006008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001831480156124e45750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561253a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613c276025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127d05760008090506000841415612585576307f280d090505b60018414156125965763054c55e090505b60028414156125a7576302a62af090505b60038414156125b8576302a62af090505b60048414156125c957630153157890505b60008111156127ce57600460009054906101000a900460ff1660ff16600a0a8102905080600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360028414806126a55750600484145b156127cd5780600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062ed4e004201600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167fc11cbbff64e22615735928e4b268605ecf66b6f7df3beb072453343af1d3eae982600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808381526020018281526020019250505060405180910390a25b5b505b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612c3257600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612c3157600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fc11cbbff64e22615735928e4b268605ecf66b6f7df3beb072453343af1d3eae9600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808381526020018281526020019250505060405180910390a26000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b816008600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ce257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115612d3557600080fd5b818303905092915050565b6000818301905082811015612d5457600080fd5b92915050565b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015612de75750600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b15612e32576000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b565b60006008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612eed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180613bfa602d913960400191505060405180910390fd5b600c544210612f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180613cea6032913960400191505060405180910390fd5b612f9982600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4090919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f890e7ae9c3352ecc07d1748fdf39104b2982d8b502cacc2b0c57f0134a60c6e0846040518082815260200191505060405180910390a37f62ddffe5b5108385f7a590f100e1ee414ad9551a31f089e64e82998440785e1e3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252600f8152602001807f5072697661746553616c6546726f6d00000000000000000000000000000000008152506020019250505060405180910390a16130e78383613644565b905092915050565b60006008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156131a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613c4c602f913960400191505060405180910390fd5b8161323b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2690919063ffffffff16565b10156132af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4e6f7420656e6f75676820756e6c6f636b656420746f6b656e7321000000000081525060200191505060405180910390fd5b7f62ddffe5b5108385f7a590f100e1ee414ad9551a31f089e64e82998440785e1e3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252600e8152602001807f5075626c696353616c6546726f6d0000000000000000000000000000000000008152506020019250505060405180910390a16133558383613644565b905092915050565b600062093a80600c54014211801561343d5750600860006001815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061343c57506008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b5b15613493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180613dbe603d913960400191505060405180910390fd5b600d54421080156134e357506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613595577f62ddffe5b5108385f7a590f100e1ee414ad9551a31f089e64e82998440785e1e3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825260128152602001807f5265737472696374656453616c6546726f6d00000000000000000000000000008152506020019250505060405180910390a161358e83836137df565b905061363e565b7f62ddffe5b5108385f7a590f100e1ee414ad9551a31f089e64e82998440785e1e3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825260128152602001807f506f73745075626c696353616c6546726f6d00000000000000000000000000008152506020019250505060405180910390a161363b8383613644565b90505b92915050565b600061369882600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2690919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061372d82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061387d8284612d2690919063ffffffff16565b9050602760095410801561389057508481105b80156139275750601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561397d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613d49603a913960400191505060405180910390fd5b84811015613bab57600061399a8287612d2690919063ffffffff16565b90506139ee81600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4090919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f890e7ae9c3352ecc07d1748fdf39104b2982d8b502cacc2b0c57f0134a60c6e0836040518082815260200191505060405180910390a3613ae881600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2690919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b613bb58686613644565b93505050509291505056fe46726f7a656e2062616c616e63652063616e206e6f74206265207370656e74207965742c20696e73756666696369656e7420746f6b656e73214f6e6c7920707269766174652073656c6c65722063616e206d616b6520707269766174652073616c652054582145786368616e67652061646472657373204d555354206e6f742062652075706461746564215075626c6963207472616e73666572206e6f7420616c6c6f7765642066726f6d20707269766174652073656c6c6572526573657276652063616e206e6f7420626520636c61696d6564206265666f726520656e64206f66207075626c69632073616c6521546869732061646472657373204d555354206e6f7420737461727420617070726f76616c2072656c61746564207472616e73616374696f6e73214e6f207472616e736665722066726f6d20707269766174652073656c6c6572206166746572207075626c69632073616c65214f6e6c792072617465207570646174657220697320616c6c6f77656420746f20706572666f726d2074686973215072697661746520746f6b656e2074726164696e672068616c7465642062656361757365206f66206c6f77206d61726b65742070726963657321526573657276652063616e206e6f74206265206163636573736564206265666f7265207468652031207965617220667265657a6520706572696f644e6f207472616e736665722066726f6d2065786368616e6765202f20707269766174652073656c6c6572206166746572207075626c69632073616c65214f6e6c79207a65726f2062616c616e6365206164647265737365732063616e2062652061737369676e656421a265627a7a723158206db395f728c0e52cbf364b05a79c620e9214933e428c1f89663fdc7d55ed614864736f6c634300050c0032
Deployed Bytecode
0x60806040526004361061019c5760003560e01c806379ba5097116100ec578063cfd9480b1161008a578063dc39d06d11610064578063dc39d06d146108fc578063dd62ed3e1461096f578063e5d382ed146109f4578063f2fde38b14610a4f5761019c565b8063cfd9480b1461084f578063d4ee1d901461087a578063dacec154146108d15761019c565b806395d89b41116100c657806395d89b41146106a2578063a238b62d14610732578063a9059cbb14610777578063be91de53146107ea5761019c565b806379ba5097146106095780637ffdf53e146106205780638da5cb5b1461064b5761019c565b806334fcf43711610159578063593557361161013357806359355736146104995780635ea8d05d146104fe57806370a0823114610529578063789a670b1461058e5761019c565b806334fcf437146103f85780633fe5f054146104335780634445f0991461044a5761019c565b806306fdde03146101a1578063095ea7b31461023157806318160ddd146102a45780631a864d1d146102cf57806323b872dd14610334578063313ce567146103c7575b600080fd5b3480156101ad57600080fd5b506101b6610aa0565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101f65780820151818401526020810190506101db565b50505050905090810190601f1680156102235780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023d57600080fd5b5061028a6004803603604081101561025457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b3e565b604051808215151515815260200191505060405180910390f35b3480156102b057600080fd5b506102b9610d6b565b6040518082815260200191505060405180910390f35b3480156102db57600080fd5b5061031e600480360360208110156102f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610dc6565b6040518082815260200191505060405180910390f35b34801561034057600080fd5b506103ad6004803603606081101561035757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e0f565b604051808215151515815260200191505060405180910390f35b3480156103d357600080fd5b506103dc61128d565b604051808260ff1660ff16815260200191505060405180910390f35b34801561040457600080fd5b506104316004803603602081101561041b57600080fd5b81019080803590602001909291905050506112a0565b005b34801561043f57600080fd5b50610448611362565b005b34801561045657600080fd5b506104976004803603606081101561046d57600080fd5b810190808035906020019092919080359060200190929190803590602001909291905050506117be565b005b3480156104a557600080fd5b506104e8600480360360208110156104bc57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506118c5565b6040518082815260200191505060405180910390f35b34801561050a57600080fd5b5061051361190e565b6040518082815260200191505060405180910390f35b34801561053557600080fd5b506105786004803603602081101561054c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611914565b6040518082815260200191505060405180910390f35b34801561059a57600080fd5b506105c7600480360360208110156105b157600080fd5b810190808035906020019092919050505061195d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561061557600080fd5b5061061e61199a565b005b34801561062c57600080fd5b50610635611b37565b6040518082815260200191505060405180910390f35b34801561065757600080fd5b50610660611b3d565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156106ae57600080fd5b506106b7611b62565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106f75780820151818401526020810190506106dc565b50505050905090810190601f1680156107245780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561073e57600080fd5b506107756004803603604081101561075557600080fd5b810190808035906020019092919080359060200190929190505050611c00565b005b34801561078357600080fd5b506107d06004803603604081101561079a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611dc1565b604051808215151515815260200191505060405180910390f35b3480156107f657600080fd5b506108396004803603602081101561080d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612136565b6040518082815260200191505060405180910390f35b34801561085b57600080fd5b5061086461217f565b6040518082815260200191505060405180910390f35b34801561088657600080fd5b5061088f612185565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156108dd57600080fd5b506108e66121ab565b6040518082815260200191505060405180910390f35b34801561090857600080fd5b506109556004803603604081101561091f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506121b1565b604051808215151515815260200191505060405180910390f35b34801561097b57600080fd5b506109de6004803603604081101561099257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506122f7565b6040518082815260200191505060405180910390f35b348015610a0057600080fd5b50610a4d60048036036040811015610a1757600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061237e565b005b348015610a5b57600080fd5b50610a9e60048036036020811015610a7257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612c89565b005b60038054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b365780601f10610b0b57610100808354040283529160200191610b36565b820191906000526020600020905b815481529060010190602001808311610b1957829003601f168201915b505050505081565b6000600d54421015610c7b576000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610be2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cb0603a913960400191505060405180910390fd5b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610c7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cb0603a913960400191505060405180910390fd5b5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000610dc1600660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600554612d2690919063ffffffff16565b905090565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600d54421015610fe4576000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610eb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cb0603a913960400191505060405180910390fd5b6000600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610f4b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cb0603a913960400191505060405180910390fd5b6000600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610fe3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613cb0603a913960400191505060405180910390fd5b5b61103682600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2690919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061110882600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2690919063ffffffff16565b600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506111da82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b600460009054906101000a900460ff1681565b600860006005815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180613d1c602d913960400191505060405180910390fd5b8060098190555050565b600860006004815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f4f6e6c79207265736572766520616464726573732063616e20636c61696d210081525060200191505060405180910390fd5b62093a80600c5401421015611497576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526035815260200180613c7b6035913960400191505060405180910390fd5b61158f600660006008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460066000600860006004815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4090919063ffffffff16565b60066000600860006004815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860006004815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600660006008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36000600660006008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461181757600080fd5b6000600b5414801561182b57506000600c54145b801561183957506000600d54145b6118ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f54696d696e67206f6e6c792063616e20626520736574206f6e6365000000000081525060200191505060405180910390fd5b82600b8190555081600c8190555080600d81905550505050565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600c5481565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60006008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146119f457600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60095481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60028054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611bf85780601f10611bcd57610100808354040283529160200191611bf8565b820191906000526020600020905b815481529060010190602001808311611bdb57829003601f168201915b505050505081565b611c08612d5a565b81600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540311611c9457600080fd5b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410611cdf57600080fd5b4281118015611d2c5750600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205481115b611d3557600080fd5b81600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000611dcb612d5a565b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015611e99575081600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205403105b15611eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526039815260200180613bc16039913960400191505060405180910390fd5b81600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611fa4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4e6f7420656e6f756768206c697175696420746f6b656e73210000000000000081525060200191505060405180910390fd5b600860006004815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614801561201a57506301da9c00600c540142105b15612070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603b815260200180613d83603b913960400191505060405180910390fd5b6008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156120e8576120e18383612e34565b9050612130565b600b54421180156120fa5750600c5442105b156121105761210983836130ef565b9050612130565b600c5442111561212b57612124838361335d565b9050612130565b600090505b92915050565b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600b5481565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600d5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461220c57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b1580156122b457600080fd5b505af11580156122c8573d6000803e3d6000fd5b505050506040513d60208110156122de57600080fd5b8101908080519060200190929190505050905092915050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123d757600080fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461246f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613dfb602c913960400191505060405180910390fd5b60006008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001831480156124e45750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b1561253a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613c276025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156127d05760008090506000841415612585576307f280d090505b60018414156125965763054c55e090505b60028414156125a7576302a62af090505b60038414156125b8576302a62af090505b60048414156125c957630153157890505b60008111156127ce57600460009054906101000a900460ff1660ff16600a0a8102905080600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a360028414806126a55750600484145b156127cd5780600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555062ed4e004201600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167fc11cbbff64e22615735928e4b268605ecf66b6f7df3beb072453343af1d3eae982600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808381526020018281526020019250505060405180910390a25b5b505b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612c3257600660008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115612c3157600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167fc11cbbff64e22615735928e4b268605ecf66b6f7df3beb072453343af1d3eae9600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808381526020018281526020019250505060405180910390a26000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b816008600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ce257600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600082821115612d3557600080fd5b818303905092915050565b6000818301905082811015612d5457600080fd5b92915050565b6000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054118015612de75750600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205442115b15612e32576000600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b565b60006008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612eed576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602d815260200180613bfa602d913960400191505060405180910390fd5b600c544210612f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526032815260200180613cea6032913960400191505060405180910390fd5b612f9982600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4090919063ffffffff16565b600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f890e7ae9c3352ecc07d1748fdf39104b2982d8b502cacc2b0c57f0134a60c6e0846040518082815260200191505060405180910390a37f62ddffe5b5108385f7a590f100e1ee414ad9551a31f089e64e82998440785e1e3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252600f8152602001807f5072697661746553616c6546726f6d00000000000000000000000000000000008152506020019250505060405180910390a16130e78383613644565b905092915050565b60006008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156131a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180613c4c602f913960400191505060405180910390fd5b8161323b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2690919063ffffffff16565b10156132af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4e6f7420656e6f75676820756e6c6f636b656420746f6b656e7321000000000081525060200191505060405180910390fd5b7f62ddffe5b5108385f7a590f100e1ee414ad9551a31f089e64e82998440785e1e3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281038252600e8152602001807f5075626c696353616c6546726f6d0000000000000000000000000000000000008152506020019250505060405180910390a16133558383613644565b905092915050565b600062093a80600c54014211801561343d5750600860006001815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061343c57506008600080815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b5b15613493576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603d815260200180613dbe603d913960400191505060405180910390fd5b600d54421080156134e357506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613595577f62ddffe5b5108385f7a590f100e1ee414ad9551a31f089e64e82998440785e1e3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825260128152602001807f5265737472696374656453616c6546726f6d00000000000000000000000000008152506020019250505060405180910390a161358e83836137df565b905061363e565b7f62ddffe5b5108385f7a590f100e1ee414ad9551a31f089e64e82998440785e1e3360405180806020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001828103825260128152602001807f506f73745075626c696353616c6546726f6d00000000000000000000000000008152506020019250505060405180910390a161363b8383613644565b90505b92915050565b600061369882600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2690919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061372d82600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4090919063ffffffff16565b600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600080600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600061387d8284612d2690919063ffffffff16565b9050602760095410801561389057508481105b80156139275750601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614155b1561397d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603a815260200180613d49603a913960400191505060405180910390fd5b84811015613bab57600061399a8287612d2690919063ffffffff16565b90506139ee81600a60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d4090919063ffffffff16565b600a60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f890e7ae9c3352ecc07d1748fdf39104b2982d8b502cacc2b0c57f0134a60c6e0836040518082815260200191505060405180910390a3613ae881600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d2690919063ffffffff16565b600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555033601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505b613bb58686613644565b93505050509291505056fe46726f7a656e2062616c616e63652063616e206e6f74206265207370656e74207965742c20696e73756666696369656e7420746f6b656e73214f6e6c7920707269766174652073656c6c65722063616e206d616b6520707269766174652073616c652054582145786368616e67652061646472657373204d555354206e6f742062652075706461746564215075626c6963207472616e73666572206e6f7420616c6c6f7765642066726f6d20707269766174652073656c6c6572526573657276652063616e206e6f7420626520636c61696d6564206265666f726520656e64206f66207075626c69632073616c6521546869732061646472657373204d555354206e6f7420737461727420617070726f76616c2072656c61746564207472616e73616374696f6e73214e6f207472616e736665722066726f6d20707269766174652073656c6c6572206166746572207075626c69632073616c65214f6e6c792072617465207570646174657220697320616c6c6f77656420746f20706572666f726d2074686973215072697661746520746f6b656e2074726164696e672068616c7465642062656361757365206f66206c6f77206d61726b65742070726963657321526573657276652063616e206e6f74206265206163636573736564206265666f7265207468652031207965617220667265657a6520706572696f644e6f207472616e736665722066726f6d2065786368616e6765202f20707269766174652073656c6c6572206166746572207075626c69632073616c65214f6e6c79207a65726f2062616c616e6365206164647265737365732063616e2062652061737369676e656421a265627a7a723158206db395f728c0e52cbf364b05a79c620e9214933e428c1f89663fdc7d55ed614864736f6c634300050c0032
Deployed Bytecode Sourcemap
2153:17833:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19654:8;;;2477:19;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2477:19:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2477:19:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17750:577;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17750:577:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;17750:577:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8932:114;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8932:114:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11048:127;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11048:127:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11048:127:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18476:818;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18476:818:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;18476:818:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2556:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2556:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7312:194;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7312:194:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;7312:194:0;;;;;;;;;;;;;;;;;:::i;:::-;;3042:664;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3042:664:0;;;:::i;:::-;;8198:331;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8198:331:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;8198:331:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9345:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9345:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9345:138:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7935:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7935:22:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9132:120;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9132:120:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9132:120:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4042:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4042:108:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4042:108:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1432:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1432:196:0;;;:::i;:::-;;7277:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7277:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1034:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1034:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2375;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2375:20:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;2375:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9976:698;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9976:698:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9976:698:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16256:1405;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16256:1405:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16256:1405:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10767:138;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10767:138:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10767:138:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;7818:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7818:24:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1061:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1061:23:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;8075:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8075:26:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;19799:184;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19799:184:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19799:184:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;19429:147;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19429:147:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19429:147:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4225:2959;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4225:2959:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;4225:2959:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1324:102;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1324:102:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1324:102:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;2477:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;17750:577::-;17813:12;17937:14;;17919:15;:32;17916:279;;;18005:1;17975:14;:26;17990:10;17975:26;;;;;;;;;;;;;;;;:31;17967:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18119:1;18092:14;:23;18107:7;18092:23;;;;;;;;;;;;;;;;:28;18084:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17916:279;18238:6;18207:7;:19;18215:10;18207:19;;;;;;;;;;;;;;;:28;18227:7;18207:28;;;;;;;;;;;;;;;:37;;;;18281:7;18260:37;;18269:10;18260:37;;;18290:6;18260:37;;;;;;;;;;;;;;;;;;18315:4;18308:11;;17750:577;;;;:::o;8932:114::-;8976:4;9000:38;9017:8;:20;9034:1;9017:20;;;;;;;;;;;;;;;;9000:12;;:16;;:38;;;;:::i;:::-;8993:45;;8932:114;:::o;11048:127::-;11113:10;11143:12;:24;11156:10;11143:24;;;;;;;;;;;;;;;;11136:31;;11048:127;;;:::o;18476:818::-;18553:12;18677:14;;18659:15;:32;18656:385;;;18745:1;18715:14;:26;18730:10;18715:26;;;;;;;;;;;;;;;;:31;18707:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18856:1;18832:14;:20;18847:4;18832:20;;;;;;;;;;;;;;;;:25;18824:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18965:1;18943:14;:18;18958:2;18943:18;;;;;;;;;;;;;;;;:23;18935:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18656:385;19070:26;19089:6;19070:8;:14;19079:4;19070:14;;;;;;;;;;;;;;;;:18;;:26;;;;:::i;:::-;19053:8;:14;19062:4;19053:14;;;;;;;;;;;;;;;:43;;;;19135:37;19165:6;19135:7;:13;19143:4;19135:13;;;;;;;;;;;;;;;:25;19149:10;19135:25;;;;;;;;;;;;;;;;:29;;:37;;;;:::i;:::-;19107:7;:13;19115:4;19107:13;;;;;;;;;;;;;;;:25;19121:10;19107:25;;;;;;;;;;;;;;;:65;;;;19198:24;19215:6;19198:8;:12;19207:2;19198:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;19183:8;:12;19192:2;19183:12;;;;;;;;;;;;;;;:39;;;;19253:2;19238:26;;19247:4;19238:26;;;19257:6;19238:26;;;;;;;;;;;;;;;;;;19282:4;19275:11;;18476:818;;;;;:::o;2556:21::-;;;;;;;;;;;;;:::o;7312:194::-;7394:5;:8;7400:1;7394:8;;;;;;;;;;;;;;;;;;;;;7380:22;;:10;:22;;;7372:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7480:18;7463:14;:35;;;;7312:194;:::o;3042:664::-;3150:5;:8;3156:1;3150:8;;;;;;;;;;;;;;;;;;;;;3136:22;;:10;:22;;;3128:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3305:16;3292:10;;:29;3274:15;:47;3271:141;;;3337:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3271:141;3468:42;3491:8;:18;3500:5;:8;3506:1;3500:8;;;;;;;;;;;;;;;;;;;;;3491:18;;;;;;;;;;;;;;;;3468:8;:18;3477:5;:8;3483:1;3477:8;;;;;;;;;;;;;;;;;;;;;3468:18;;;;;;;;;;;;;;;;:22;;:42;;;;:::i;:::-;3447:8;:18;3456:5;:8;3462:1;3456:8;;;;;;;;;;;;;;;;;;;;;3447:18;;;;;;;;;;;;;;;:63;;;;3579:5;:8;3585:1;3579:8;;;;;;;;;;;;;;;;;;;;;3560:48;;3569:5;:8;3575:1;3569:8;;;;;;;;;;;;;;;;;;;;;3560:48;;;3589:8;:18;3598:5;:8;3604:1;3598:8;;;;;;;;;;;;;;;;;;;;;3589:18;;;;;;;;;;;;;;;;3560:48;;;;;;;;;;;;;;;;;;3697:1;3676:8;:18;3685:5;:8;3691:1;3685:8;;;;;;;;;;;;;;;;;;;;;3676:18;;;;;;;;;;;;;;;:22;;;;3042:664::o;8198:331::-;1290:5;;;;;;;;;;;1276:19;;:10;:19;;;1268:28;;;;;;8329:1;8313:12;;:17;:36;;;;;8348:1;8334:10;;:15;8313:36;:59;;;;;8371:1;8353:14;;:19;8313:59;8305:99;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8430:13;8415:12;:28;;;;8467:11;8454:10;:24;;;;8506:15;8489:14;:32;;;;8198:331;;;:::o;9345:138::-;9411:18;9449:14;:26;9464:10;9449:26;;;;;;;;;;;;;;;;9442:33;;9345:138;;;:::o;7935:22::-;;;;:::o;9132:120::-;9192:12;9224:8;:20;9233:10;9224:20;;;;;;;;;;;;;;;;9217:27;;9132:120;;;:::o;4042:108::-;4101:7;4128:5;:14;4134:7;4128:14;;;;;;;;;;;;;;;;;;;;;4121:21;;4042:108;;;:::o;1432:196::-;1499:8;;;;;;;;;;;1485:22;;:10;:22;;;1477:31;;;;;;1552:8;;;;;;;;;;;1524:37;;1545:5;;;;;;;;;;;1524:37;;;;;;;;;;;;1580:8;;;;;;;;;;;1572:5;;:16;;;;;;;;;;;;;;;;;;1618:1;1599:8;;:21;;;;;;;;;;;;;;;;;;1432:196::o;7277:26::-;;;;:::o;1034:20::-;;;;;;;;;;;;;:::o;2375:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9976:698::-;10106:15;:13;:15::i;:::-;10260:6;10231:14;:26;10246:10;10231:26;;;;;;;;;;;;;;;;10208:8;:20;10217:10;10208:20;;;;;;;;;;;;;;;;:49;:58;10200:67;;;;;;10395:6;10366:14;:26;10381:10;10366:26;;;;;;;;;;;;;;;;:35;10358:44;;;;;;10500:15;10492:5;:23;:59;;;;;10527:12;:24;10540:10;10527:24;;;;;;;;;;;;;;;;10519:5;:32;10492:59;10484:68;;;;;;10617:6;10588:14;:26;10603:10;10588:26;;;;;;;;;;;;;;;:35;;;;10661:5;10634:12;:24;10647:10;10634:24;;;;;;;;;;;;;;;:32;;;;9976:698;;:::o;16256:1405::-;16315:12;16399:15;:13;:15::i;:::-;16530:1;16501:14;:26;16516:10;16501:26;;;;;;;;;;;;;;;;:30;:92;;;;;16587:6;16558:14;:26;16573:10;16558:26;;;;;;;;;;;;;;;;16535:8;:20;16544:10;16535:20;;;;;;;;;;;;;;;;:49;:58;16501:92;16498:190;;;16609:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16498:190;16800:6;16776:8;:20;16785:10;16776:20;;;;;;;;;;;;;;;;:30;;16768:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16958:5;:8;16964:1;16958:8;;;;;;;;;;;;;;;;;;;;;16944:22;;:10;:22;;;:79;;;;;17001:22;16988:10;;:35;16970:15;:53;16944:79;16941:179;;;17039:69;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16941:179;17193:5;:8;17199:1;17193:8;;;;;;;;;;;;;;;;;;;;;17179:22;;:10;:22;;;17176:85;;;17224:25;17238:2;17242:6;17224:13;:25::i;:::-;17217:32;;;;17176:85;17337:12;;17319:15;:30;:62;;;;;17371:10;;17353:15;:28;17319:62;17316:124;;;17404:24;17417:2;17421:6;17404:12;:24::i;:::-;17397:31;;;;17316:124;17528:10;;17510:15;:28;17507:94;;;17561:28;17578:2;17582:6;17561:16;:28::i;:::-;17554:35;;;;17507:94;17648:5;17641:12;;16256:1405;;;;;:::o;10767:138::-;10833:18;10871:14;:26;10886:10;10871:26;;;;;;;;;;;;;;;;10864:33;;10767:138;;;:::o;7818:24::-;;;;:::o;1061:23::-;;;;;;;;;;;;;:::o;8075:26::-;;;;:::o;19799:184::-;19891:12;1290:5;;;;;;;;;;;1276:19;;:10;:19;;;1268:28;;;;;;19938:12;19923:37;;;19961:5;;;;;;;;;;;19968:6;19923:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19923:52:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;19923:52:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;19923:52:0;;;;;;;;;;;;;;;;19916:59;;19799:184;;;;:::o;19429:147::-;19506:14;19540:7;:19;19548:10;19540:19;;;;;;;;;;;;;;;:28;19560:7;19540:28;;;;;;;;;;;;;;;;19533:35;;19429:147;;;;:::o;4225:2959::-;1290:5;;;;;;;;;;;1276:19;;:10;:19;;;1268:28;;;;;;4417:1;4392:8;:21;4401:11;4392:21;;;;;;;;;;;;;;;;:26;4384:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4519:19;4541:5;:14;4547:7;4541:14;;;;;;;;;;;;;;;;;;;;;4519:36;;4638:1;4627:7;:12;:41;;;;;4666:1;4643:25;;:11;:25;;;;4627:41;4624:119;;;4684:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4624:119;4837:1;4814:25;;:11;:25;;;4811:1419;;;4895:16;4914:1;4895:20;;4976:1;4965:7;:12;4962:74;;;5011:9;4997:23;;4962:74;5090:1;5079:7;:12;5076:73;;;5125:8;5111:22;;5076:73;5205:1;5194:7;:12;5191:73;;;5240:8;5226:22;;5191:73;5317:1;5306:7;:12;5303:73;;;5352:8;5338:22;;5303:73;5429:1;5418:7;:12;5415:73;;;5464:8;5450:22;;5415:73;5615:1;5601:11;:15;5598:621;;;5673:8;;;;;;;;;;;5668:14;;5664:2;:18;5650:11;:32;5636:46;;5725:11;5701:8;:21;5710:11;5701:21;;;;;;;;;;;;;;;:35;;;;5781:11;5760:46;;5777:1;5760:46;;;5794:11;5760:46;;;;;;;;;;;;;;;;;;5921:1;5910:7;:12;:28;;;;5937:1;5926:7;:12;5910:28;5907:297;;;5992:11;5962:14;:27;5977:11;5962:27;;;;;;;;;;;;;;;:41;;;;6072:18;6054:15;:36;6026:12;:25;6039:11;6026:25;;;;;;;;;;;;;;;:64;;;;6132:11;6118:66;;;6145:11;6158:12;:25;6171:11;6158:25;;;;;;;;;;;;;;;;6118:66;;;;;;;;;;;;;;;;;;;;;;;;5907:297;5598:621;4811:1419;;6311:1;6287:8;:21;6296:11;6287:21;;;;;;;;;;;;;;;;:25;6284:822;;;6410:8;:21;6419:11;6410:21;;;;;;;;;;;;;;;;6386:8;:21;6395:11;6386:21;;;;;;;;;;;;;;;:45;;;;6510:11;6488:57;;6497:11;6488:57;;;6523:8;:21;6532:11;6523:21;;;;;;;;;;;;;;;;6488:57;;;;;;;;;;;;;;;;;;6620:1;6596:8;:21;6605:11;6596:21;;;;;;;;;;;;;;;:25;;;;6719:1;6689:14;:27;6704:11;6689:27;;;;;;;;;;;;;;;;:31;6686:409;;;6772:14;:27;6787:11;6772:27;;;;;;;;;;;;;;;;6742:14;:27;6757:11;6742:27;;;;;;;;;;;;;;;:57;;;;6846:12;:25;6859:11;6846:25;;;;;;;;;;;;;;;;6818:12;:25;6831:11;6818:25;;;;;;;;;;;;;;;:53;;;;6911:11;6897:82;;;6924:14;:27;6939:11;6924:27;;;;;;;;;;;;;;;;6953:12;:25;6966:11;6953:25;;;;;;;;;;;;;;;;6897:82;;;;;;;;;;;;;;;;;;;;;;;;7030:1;7000:14;:27;7015:11;7000:27;;;;;;;;;;;;;;;:31;;;;7078:1;7050:12;:25;7063:11;7050:25;;;;;;;;;;;;;;;:29;;;;6686:409;6284:822;7165:11;7148:5;:14;7154:7;7148:14;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;1307:1;4225:2959;;:::o;1324:102::-;1290:5;;;;;;;;;;;1276:19;;:10;:19;;;1268:28;;;;;;1409:9;1398:8;;:20;;;;;;;;;;;;;;;;;;1324:102;:::o;1779:114::-;1831:6;1863:1;1858;:6;;1850:15;;;;;;1884:1;1880;:5;1876:9;;1779:114;;;;:::o;1659:::-;1711:6;1738:1;1734;:5;1730:9;;1763:1;1758;:6;;1750:15;;;;;;1659:114;;;;:::o;11300:190::-;11378:1;11349:14;:26;11364:10;11349:26;;;;;;;;;;;;;;;;:30;:76;;;;;11401:12;:24;11414:10;11401:24;;;;;;;;;;;;;;;;11383:15;:42;11349:76;11346:137;;;11470:1;11441:14;:26;11456:10;11441:26;;;;;;;;;;;;;;;:30;;;;11346:137;11300:190::o;11580:727::-;11645:12;11762:5;:8;11768:1;11762:8;;;;;;;;;;;;;;;;;;;;;11748:22;;:10;:22;;;11740:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11935:10;;11917:15;:28;11909:91;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12080:30;12103:6;12080:14;:18;12095:2;12080:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;12059:14;:18;12074:2;12059:18;;;;;;;;;;;;;;;:51;;;;12150:2;12126:35;;12138:10;12126:35;;;12154:6;12126:35;;;;;;;;;;;;;;;;;;12177:41;12207:10;12177:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12271:28;12288:2;12292:6;12271:16;:28::i;:::-;12264:35;;11580:727;;;;:::o;12402:607::-;12466:12;12593:5;:8;12599:1;12593:8;;;;;;;;;;;;;;;;;;;;;12579:22;;:10;:22;;;;12571:82;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12826:6;12770:52;12795:14;:26;12810:10;12795:26;;;;;;;;;;;;;;;;12770:8;:20;12779:10;12770:20;;;;;;;;;;;;;;;;:24;;:52;;;;:::i;:::-;:62;;12762:102;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12880:40;12909:10;12880:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12973:28;12990:2;12994:6;12973:16;:28::i;:::-;12966:35;;12402:607;;;;:::o;13115:841::-;13183:12;13332:16;13319:10;;:29;13301:15;:47;:101;;;;;13367:5;:8;13373:1;13367:8;;;;;;;;;;;;;;;;;;;;;13353:22;;:10;:22;;;:48;;;;13393:5;:8;13399:1;13393:8;;;;;;;;;;;;;;;;;;;;;13379:22;;:10;:22;;;13353:48;13301:101;13298:203;;;13418:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13298:203;13625:14;;13607:15;:32;:66;;;;;13672:1;13643:14;:26;13658:10;13643:26;;;;;;;;;;;;;;;;:30;13607:66;13604:199;;;13694:44;13727:10;13694:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13760:31;13780:2;13784:6;13760:19;:31::i;:::-;13753:38;;;;13604:199;13818:44;13851:10;13818:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13920:28;13937:2;13941:6;13920:16;:28::i;:::-;13913:35;;13115:841;;;;;:::o;15752:328::-;15820:12;15920:32;15945:6;15920:8;:20;15929:10;15920:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;15897:8;:20;15906:10;15897:20;;;;;;;;;;;;;;;:55;;;;15978:24;15995:6;15978:8;:12;15987:2;15978:12;;;;;;;;;;;;;;;;:16;;:24;;;;:::i;:::-;15963:8;:12;15972:2;15963:12;;;;;;;;;;;;;;;:39;;;;16039:2;16018:32;;16027:10;16018:32;;;16043:6;16018:32;;;;;;;;;;;;;;;;;;16068:4;16061:11;;15752:328;;;;:::o;14325:1351::-;14396:12;14459:17;14479:8;:20;14488:10;14479:20;;;;;;;;;;;;;;;;14459:40;;14510:18;14531:14;:26;14546:10;14531:26;;;;;;;;;;;;;;;;14510:47;;14568:20;14591:31;14608:13;14591:12;:16;;:31;;;;:::i;:::-;14568:54;;14765:2;14748:14;;:19;:47;;;;;14789:6;14771:15;:24;14748:47;:80;;;;;14805:11;:23;14817:10;14805:23;;;;;;;;;;;;;;;;;;;;;;;;;14799:29;;:2;:29;;;;14748:80;14745:179;;;14844:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14745:179;15023:6;15005:15;:24;15002:581;;;15115:14;15132:27;15143:15;15132:6;:10;;:27;;;;:::i;:::-;15115:44;;15222:33;15245:9;15222:14;:18;15237:2;15222:18;;;;;;;;;;;;;;;;:22;;:33;;;;:::i;:::-;15201:14;:18;15216:2;15201:18;;;;;;;;;;;;;;;:54;;;;15299:2;15275:38;;15287:10;15275:38;;;15303:9;15275:38;;;;;;;;;;;;;;;;;;15397:41;15428:9;15397:14;:26;15412:10;15397:26;;;;;;;;;;;;;;;;:30;;:41;;;;:::i;:::-;15368:14;:26;15383:10;15368:26;;;;;;;;;;;;;;;:70;;;;15561:10;15543:11;:15;15555:2;15543:15;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;15002:581;;15640:28;15657:2;15661:6;15640:16;:28::i;:::-;15633:35;;;;;14325:1351;;;;:::o
Swarm Source
bzzr://6db395f728c0e52cbf364b05a79c620e9214933e428c1f89663fdc7d55ed6148
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.