ERC-20
Overview
Max Total Supply
200,005,307 KAAS
Holders
5,281
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
1,039.79 KAASValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KaasyToken
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2018-09-02 */ pragma solidity ^0.4.24; // ---------------------------------------------------------------------------- // 'Kaasy' CROWDSALE token contract // // Deployed to : 0x714c1ef3854591d4118bd6887d4740bc4d5f5412 // Symbol : KAAS // Name : KAASY.AI Token // Total supply: 500000000 // Decimals : 18 // // Enjoy. // // (c) by KAASY AI LTD. The MIT Licence. // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- // Safe maths // ---------------------------------------------------------------------------- contract SafeMath { function safeAdd(uint a, uint b) internal pure returns (uint c) { c = a + b; require(c >= a); } function safeSub(uint a, uint b) internal pure returns (uint c) { require(b <= a); c = a - b; } function safeMul(uint a, uint b) internal pure returns (uint c) { c = a * b; require(a == 0 || c / a == b); } function safeDiv(uint a, uint b) internal pure returns (uint c) { require(b > 0); c = a / b; } } // ---------------------------------------------------------------------------- // ERC Token Standard #20 Interface // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md // ---------------------------------------------------------------------------- contract ERC20Interface { function totalSupply() public constant returns (uint); function balanceOf(address tokenOwner) public constant returns (uint balance); function allowance(address tokenOwner, address spender) public constant 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); } // ---------------------------------------------------------------------------- // Contract function to receive approval and execute function in one call // // Borrowed from MiniMeToken // ---------------------------------------------------------------------------- contract ApproveAndCallFallBack { function receiveApproval(address from, uint256 tokens, address token, bytes data) public; } // ---------------------------------------------------------------------------- // Owned contract // ---------------------------------------------------------------------------- contract Owned { address public owner; address public newOwner; address public ownerAPI; address public newOwnerAPI; event OwnershipTransferred(address indexed _from, address indexed _to); event OwnershipAPITransferred(address indexed _from, address indexed _to); constructor() public { owner = msg.sender; ownerAPI = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } modifier onlyOwnerAPI { require(msg.sender == ownerAPI); _; } modifier onlyOwnerOrOwnerAPI { require(msg.sender == owner || msg.sender == ownerAPI); _; } function transferOwnership(address _newOwner) public onlyOwner { newOwner = _newOwner; } function transferAPIOwnership(address _newOwnerAPI) public onlyOwner { newOwnerAPI = _newOwnerAPI; } function acceptOwnership() public { require(msg.sender == newOwner); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } function acceptOwnershipAPI() public { require(msg.sender == newOwnerAPI); emit OwnershipAPITransferred(ownerAPI, newOwnerAPI); ownerAPI = newOwnerAPI; newOwnerAPI = address(0); } } /** * @title Pausable * @dev Base contract which allows children to implement an emergency stop mechanism. */ contract Pausable is Owned { event Pause(); event Unpause(); bool public isPaused = false; function paused() public view returns (bool currentlyPaused) { return isPaused; } /** * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!isPaused); _; } /** * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(isPaused); _; } /** * @dev called by the owner to pause, triggers stopped state */ function pause() public onlyOwner whenNotPaused { isPaused = true; emit Pause(); } /** * @dev called by the owner to unpause, returns to normal state */ function unpause() public onlyOwner whenPaused { isPaused = false; emit Unpause(); } } // ---------------------------------------------------------------------------- // ERC20 Token, with the addition of symbol, name and decimals and assisted // token transfers // ---------------------------------------------------------------------------- contract KaasyToken is ERC20Interface, Pausable, SafeMath { string public symbol = "KAAS"; string public name = "KAASY.AI Token"; uint8 public decimals = 18; uint public _totalSupply; uint public startDate; uint public bonusEnd20; uint public bonusEnd10; uint public bonusEnd05; uint public endDate; uint public tradingDate; uint public exchangeRate = 25000; // IN Euro cents = 300E uint256 public maxSupply; uint256 public soldSupply; uint256 public maxSellable; uint8 private teamWOVestingPercentage = 5; uint256 public minAmountETH; uint256 public maxAmountETH; address public currentRunningAddress; mapping(address => uint256) balances; //keeps ERC20 balances, in Symbol mapping(address => uint256) ethDeposits; //keeps balances, in ETH mapping(address => bool) kycAddressState; //keeps list of addresses which can send ETH without direct fail mapping(address => mapping(address => uint256)) allowed; mapping(address => uint256) burnedBalances; //keeps ERC20 balances, in Symbol //event KYCStateUpdate(address indexed addr, bool state); event MintingFinished(uint indexed moment); bool isMintingFinished = false; event OwnBlockchainLaunched(uint indexed moment); event TokensBurned(address indexed exOwner, uint256 indexed amount, uint indexed moment); bool isOwnBlockchainLaunched = false; uint momentOwnBlockchainLaunched = 0; uint8 public versionIndex = 1; address addrUniversity; address addrEarlySkills; address addrHackathons; address addrLegal; address addrMarketing; // ------------------------------------------------------------------------ // Constructor // ------------------------------------------------------------------------ constructor() public { maxSupply = 500000000 * (10 ** 18); maxSellable = maxSupply * 60 / 100; currentRunningAddress = address(this); soldSupply = 0; startDate = 1535760000; // September 1st bonusEnd20 = 1536969600; // September 15th bonusEnd10 = 1538179200; // September 29th bonusEnd05 = 1539388800; // October 13th endDate = 1542240000; // November 15th tradingDate = 1543536000;// November 30th minAmountETH = safeDiv(1 ether, 10); maxAmountETH = safeMul(1 ether, 5000); uint256 teamAmount = maxSupply * 150 / 1000; balances[address(this)] = teamAmount * (100 - teamWOVestingPercentage) / 100; //team with vesting emit Transfer(address(0), address(this), balances[address(this)]); balances[owner] = teamAmount * teamWOVestingPercentage / 100; //team without vesting kycAddressState[owner] = true; emit Transfer(address(0), owner, balances[owner]); addrUniversity = 0x20D9846AB6c348AfF24e762150aBfa15D99e4Af5; balances[addrUniversity] = maxSupply * 50 / 1000; //univ kycAddressState[addrUniversity] = true; emit Transfer(address(0), addrUniversity, balances[addrUniversity]); addrEarlySkills = 0x3CF15B214734bB3C9040f18033440a35d18746Ca; balances[addrEarlySkills] = maxSupply * 50 / 1000; //skills kycAddressState[addrEarlySkills] = true; emit Transfer(address(0), addrEarlySkills, balances[addrEarlySkills]); addrHackathons = 0x3ACEB78ff4B064aEE870dcb844cCa43FC6DcBe7d; balances[addrHackathons] = maxSupply * 45 / 1000; //hackathons and bug bounties kycAddressState[addrHackathons] = true; emit Transfer(address(0), addrHackathons, balances[addrHackathons]); addrLegal = 0x65e1af8d76af6d1d3E47F14014F3105286FFBcF2; balances[addrLegal] = maxSupply * 30 / 1000; //legal fees & backup kycAddressState[addrLegal] = true; emit Transfer(address(0), addrLegal, balances[addrLegal]); addrMarketing = 0x3d7Db960837aF96C457bdB481C3De7cE80366b2c; balances[addrMarketing] = maxSupply * 75 / 1000; //marketing kycAddressState[addrMarketing] = true; emit Transfer(address(0), addrMarketing, balances[addrMarketing]); _totalSupply = maxSupply * 40 / 100; } // ------------------------------------------------------------------------ // token minter function // ------------------------------------------------------------------------ function () public payable whenNotPaused { if(now > endDate && isMintingFinished == false) { finishMinting(); msg.sender.transfer(msg.value); //return this transfer, as it is too late. } else { require(now >= startDate && now <= endDate && isMintingFinished == false); require(msg.value >= minAmountETH && msg.value <= maxAmountETH); require(msg.value + ethDeposits[msg.sender] <= maxAmountETH); require(kycAddressState[msg.sender] == true); uint tokens = getAmountToIssue(msg.value); require(safeAdd(soldSupply, tokens) <= maxSellable); soldSupply = safeAdd(soldSupply, tokens); _totalSupply = safeAdd(_totalSupply, tokens); balances[msg.sender] = safeAdd(balances[msg.sender], tokens); ethDeposits[msg.sender] = safeAdd(ethDeposits[msg.sender], msg.value); emit Transfer(address(0), msg.sender, tokens); ownerAPI.transfer(msg.value * 15 / 100); //transfer 15% of the ETH now, the other 85% at the end of the ICO process } } // ------------------------------------------------------------------------ // Burns tokens of `msg.sender` and sets them as redeemable on KAASY blokchain // ------------------------------------------------------------------------ function BurnMyTokensAndSetAmountForNewBlockchain() public { require(isOwnBlockchainLaunched); uint senderBalance = balances[msg.sender]; burnedBalances[msg.sender] = safeAdd(burnedBalances[msg.sender], senderBalance); balances[msg.sender] = 0; emit TokensBurned(msg.sender, senderBalance, now); emit Transfer(msg.sender, address(0), senderBalance); } // ------------------------------------------------------------------------ // Burns tokens of `exOwner` and sets them as redeemable on KAASY blokchain // ------------------------------------------------------------------------ function BurnTokensAndSetAmountForNewBlockchain(address exOwner) onlyOwnerOrOwnerAPI public { require(isOwnBlockchainLaunched); uint exBalance = balances[exOwner]; burnedBalances[exOwner] = safeAdd(burnedBalances[exOwner], exBalance); balances[exOwner] = 0; emit TokensBurned(exOwner, exBalance, now); emit Transfer(exOwner, address(0), exBalance); } // ------------------------------------------------------------------------ // Enables the burning of tokens to move to the new KAASY blockchain // ------------------------------------------------------------------------ function SetNewBlockchainEnabled() onlyOwner public { require(isMintingFinished && isOwnBlockchainLaunched == false); isOwnBlockchainLaunched = true; momentOwnBlockchainLaunched = now; emit OwnBlockchainLaunched(now); } // ------------------------------------------------------------------------ // Evaluates conditions for finishing the ICO and does that if conditions are met // ------------------------------------------------------------------------ function finishMinting() public returns (bool finished) { if(now > endDate && isMintingFinished == false) { internalFinishMinting(); return true; } else if (_totalSupply >= maxSupply) { internalFinishMinting(); return true; } if(now > endDate && address(this).balance > 0) { owner.transfer(address(this).balance); } return false; } // ------------------------------------------------------------------------ // Actually executes the finish of the ICO, // no longer minting tokens, // releasing the 85% of ETH kept by contract and // enables trading 15 days after this moment // ------------------------------------------------------------------------ function internalFinishMinting() internal { tradingDate = now + 3600;// * 24 * 15; // 2 weeks after ICO end moment isMintingFinished = true; emit MintingFinished(now); owner.transfer(address(this).balance); //transfer all ETH left (the 85% not sent instantly) to the owner address } // ------------------------------------------------------------------------ // Calculates amount of KAAS to issue to `msg.sender` for `ethAmount` // Can be called by any interested party, to evaluate the amount of KAAS obtained for `ethAmount` specified // ------------------------------------------------------------------------ function getAmountToIssue(uint256 ethAmount) public view returns(uint256) { //price is 10c/KAAS uint256 euroAmount = exchangeEthToEur(ethAmount); uint256 ret = euroAmount / 10; // 1kaas=0.1EUR, exchange rate is in cents, so *10/100 = /10 if(now < bonusEnd20) { ret = euroAmount * 12 / 100; //weeks 1+2, 20% bonus } else if(now < bonusEnd10) { ret = euroAmount * 11 / 100; //weeks 3+4, 10% bonus } else if(now < bonusEnd05) { ret = euroAmount * 105 / 1000; //weeks 5+6, 5% bonus } //rate is in CENTS, so * 100 if(euroAmount >= 50000 * 100) { ret = ret * 13 / 10; } else if(euroAmount >= 10000 * 100) { ret = ret * 12 / 10; } return ret * (uint256)(10) ** (uint256)(decimals); } // ------------------------------------------------------------------------ // Calculates EUR amount for ethAmount // ------------------------------------------------------------------------ function exchangeEthToEur(uint256 ethAmount) internal view returns(uint256 rate) { return safeDiv(safeMul(ethAmount, exchangeRate), 1 ether); } // ------------------------------------------------------------------------ // Calculates KAAS amount for eurAmount // ------------------------------------------------------------------------ function exchangeEurToEth(uint256 eurAmount) internal view returns(uint256 rate) { return safeDiv(safeMul(safeDiv(safeMul(eurAmount, 1000000000000000000), exchangeRate), 1 ether), 1000000000000000000); } // ------------------------------------------------------------------------ // Calculates and transfers monthly vesting amount to founders, into the balance of `owner` address // ------------------------------------------------------------------------ function transferVestingMonthlyAmount(address destination) public onlyOwner returns (bool) { require(destination != address(0)); uint monthsSinceLaunch = (now - tradingDate) / 3600 / 24 / 30; uint256 totalAmountInVesting = maxSupply * 15 / 100 * (100 - teamWOVestingPercentage) / 100; //15% of total, of which 5% instant and 95% with vesting uint256 releaseableUpToToday = (monthsSinceLaunch + 1) * totalAmountInVesting / 24; // 15% of total, across 24 months //address(this) holds the vestable amount left uint256 alreadyReleased = totalAmountInVesting - balances[address(this)]; uint256 releaseableNow = releaseableUpToToday - alreadyReleased; require (releaseableNow > 0); transferFrom(address(this), destination, releaseableNow); if(now > tradingDate + 3600 * 24 * 365 * 2 ){ transferFrom(address(this), destination, balances[address(this)]); } return true; } // ------------------------------------------------------------------------ // Set KYC state for `depositer` to `isAllowed`, by admins // ------------------------------------------------------------------------ function setAddressKYC(address depositer, bool isAllowed) public onlyOwnerOrOwnerAPI returns (bool) { kycAddressState[depositer] = isAllowed; //emit KYCStateUpdate(depositer, isAllowed); return true; } // ------------------------------------------------------------------------ // Get an addresses KYC state // ------------------------------------------------------------------------ function getAddressKYCState(address depositer) public view returns (bool) { return kycAddressState[depositer]; } // ------------------------------------------------------------------------ // Token name, as seen by the network // ------------------------------------------------------------------------ function name() public view returns (string) { return name; } // ------------------------------------------------------------------------ // Token symbol, as seen by the network // ------------------------------------------------------------------------ function symbol() public view returns (string) { return symbol; } // ------------------------------------------------------------------------ // Token decimals // ------------------------------------------------------------------------ function decimals() public view returns (uint8) { return decimals; } // ------------------------------------------------------------------------ // Total supply // ------------------------------------------------------------------------ function totalSupply() public constant returns (uint) { return _totalSupply - balances[address(0)]; //address(0) represents burned tokens } // ------------------------------------------------------------------------ // Circulating supply // ------------------------------------------------------------------------ function circulatingSupply() public constant returns (uint) { return _totalSupply - balances[address(0)] - balances[address(this)]; //address(0) represents burned tokens } // ------------------------------------------------------------------------ // Get the token balance for account `tokenOwner` // ------------------------------------------------------------------------ function balanceOf(address tokenOwner) public constant returns (uint balance) { return balances[tokenOwner]; } // ------------------------------------------------------------------------ // Get the total ETH deposited by `depositer` // ------------------------------------------------------------------------ function depositsOf(address depositer) public constant returns (uint balance) { return ethDeposits[depositer]; } // ------------------------------------------------------------------------ // Get the total KAAS burned by `exOwner` // ------------------------------------------------------------------------ function burnedBalanceOf(address exOwner) public constant returns (uint balance) { return burnedBalances[exOwner]; } // ------------------------------------------------------------------------ // Transfer the balance from token owner's account to `to` account // - Owner's account must have sufficient balance to transfer // - 0 value transfers are allowed // !! fund source is the address calling this function !! // ------------------------------------------------------------------------ function transfer(address to, uint tokens) public whenNotPaused returns (bool success) { if(now > endDate && isMintingFinished == false) { finishMinting(); } require(now >= tradingDate || kycAddressState[to] == true || msg.sender == addrMarketing); //allow internal transfers before tradingDate balances[msg.sender] = safeSub(balances[msg.sender], tokens); balances[to] = safeAdd(balances[to], tokens); emit Transfer(msg.sender, to, tokens); return true; } // ------------------------------------------------------------------------ // Token owner can approve for `destination` to transferFrom(...) `tokens` // from the token owner's account // // https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md // recommends that there are no checks for the approval double-spend attack // as this should be implemented in user interfaces // !!! When called, the amount of tokens DESTINATION can retrieve from MSG.SENDER is set to AMOUNT // !!! This is used when another account C calls and pays gas for the transfer between A and B, like bank cheques // !!! meaning: Allow DESTINATION to transfer a total AMOUNT from ME=callerOfThisFunction, from this point on, ignoring previous allows // ------------------------------------------------------------------------ function approve(address destination, uint amount) public returns (bool success) { allowed[msg.sender][destination] = amount; emit Approval(msg.sender, destination, amount); return true; } // ------------------------------------------------------------------------ // Transfer `tokens` from the `from` account to the `to` account // // The calling account must already have sufficient tokens approve(...)-d // for spending from the `from` account and // - From account must have sufficient balance to transfer // - Spender must have sufficient allowance to transfer // - 0 value transfers are allowed // ------------------------------------------------------------------------ function transferFrom(address from, address to, uint tokens) public whenNotPaused returns (bool success) { if(now > endDate && isMintingFinished == false) { finishMinting(); } require(now >= tradingDate || kycAddressState[to] == true); //allow internal transfers before tradingDate allowed[from][msg.sender] = safeSub(allowed[from][msg.sender], tokens); balances[from] = safeSub(balances[from], tokens); balances[to] = safeAdd(balances[to], tokens); emit Transfer(from, to, tokens); return true; } // ------------------------------------------------------------------------ // Returns the amount of tokens approved by the owner that can be // transferred to the requester's account // ------------------------------------------------------------------------ function allowance(address tokenOwner, address requester) public constant returns (uint remaining) { return allowed[tokenOwner][requester]; } // ------------------------------------------------------------------------ // Token owner can approve for `requester` to transferFrom(...) `tokens` // from the token owner's account. The `requester` contract function // `receiveApproval(...)` is then executed // ------------------------------------------------------------------------ function approveAndCall(address requester, uint tokens, bytes data) public whenNotPaused returns (bool success) { allowed[msg.sender][requester] = tokens; emit Approval(msg.sender, requester, tokens); ApproveAndCallFallBack(requester).receiveApproval(msg.sender, tokens, this, data); return true; } // ------------------------------------------------------------------------ // Owner can transfer out `tokens` amount of accidentally sent ERC20 tokens // ------------------------------------------------------------------------ function transferAllERC20Token(address tokenAddress, uint tokens) public onlyOwnerOrOwnerAPI returns (bool success) { return ERC20Interface(tokenAddress).transfer(owner, tokens); } // ------------------------------------------------------------------------ // Owner can transfer out all accidentally sent ERC20 tokens // ------------------------------------------------------------------------ function transferAnyERC20Token(address tokenAddress) public onlyOwnerOrOwnerAPI returns (bool success) { return ERC20Interface(tokenAddress).transfer(owner, ERC20Interface(tokenAddress).balanceOf(this)); } // ------------------------------------------------------------------------ // Set the new ETH-EUR exchange rate, in cents // ------------------------------------------------------------------------ function updateExchangeRate(uint newEthEurRate) public onlyOwnerOrOwnerAPI returns (bool success) { exchangeRate = newEthEurRate; return true; } // ------------------------------------------------------------------------ // Get the current ETH-EUR exchange rate, in cents // ------------------------------------------------------------------------ function getExchangeRate() public view returns (uint256 rate) { return exchangeRate; } // ------------------------------------------------------------------------ // Set the new EndDate // ------------------------------------------------------------------------ function updateEndDate(uint256 newDate) public onlyOwnerOrOwnerAPI returns (bool success) { require(!isMintingFinished); require(!isOwnBlockchainLaunched); endDate = newDate; return true; } // ------------------------------------------------------------------------ // Set the new Token name, Symbol, Contract address when updating // ------------------------------------------------------------------------ function updateTokenNameSymbolAddress(string newTokenName, string newSymbol, address newContractAddress) public whenPaused onlyOwnerOrOwnerAPI returns (bool success) { name = newTokenName; symbol = newSymbol; currentRunningAddress = newContractAddress; return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"constant":false,"inputs":[],"name":"acceptOwnershipAPI","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"}],"name":"transferAnyERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"},{"name":"amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"SetNewBlockchainEnabled","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"startDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxSellable","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minAmountETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"exchangeRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"tradingDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerAPI","type":"address"}],"name":"transferAPIOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bonusEnd10","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"currentlyPaused","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"destination","type":"address"}],"name":"transferVestingMonthlyAmount","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"finished","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"currentRunningAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"BurnMyTokensAndSetAmountForNewBlockchain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"exOwner","type":"address"}],"name":"burnedBalanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"circulatingSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bonusEnd20","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newTokenName","type":"string"},{"name":"newSymbol","type":"string"},{"name":"newContractAddress","type":"address"}],"name":"updateTokenNameSymbolAddress","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isPaused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newEthEurRate","type":"uint256"}],"name":"updateExchangeRate","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"bonusEnd05","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"endDate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"ethAmount","type":"uint256"}],"name":"getAmountToIssue","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"requester","type":"address"},{"name":"tokens","type":"uint256"},{"name":"data","type":"bytes"}],"name":"approveAndCall","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ownerAPI","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"tokenAddress","type":"address"},{"name":"tokens","type":"uint256"}],"name":"transferAllERC20Token","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"tokenOwner","type":"address"},{"name":"requester","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"exOwner","type":"address"}],"name":"BurnTokensAndSetAmountForNewBlockchain","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"depositer","type":"address"}],"name":"depositsOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getExchangeRate","outputs":[{"name":"rate","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newDate","type":"uint256"}],"name":"updateEndDate","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"depositer","type":"address"},{"name":"isAllowed","type":"bool"}],"name":"setAddressKYC","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"depositer","type":"address"}],"name":"getAddressKYCState","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"soldSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerAPI","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxAmountETH","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"versionIndex","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"moment","type":"uint256"}],"name":"MintingFinished","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"moment","type":"uint256"}],"name":"OwnBlockchainLaunched","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"exOwner","type":"address"},{"indexed":true,"name":"amount","type":"uint256"},{"indexed":true,"name":"moment","type":"uint256"}],"name":"TokensBurned","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipAPITransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"tokenOwner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Approval","type":"event"}]
Contract Creation Code
60806040526000600360146101000a81548160ff0219169083151502179055506040805190810160405280600481526020017f4b41415300000000000000000000000000000000000000000000000000000000815250600490805190602001906200006c92919062001165565b506040805190810160405280600e81526020017f4b414153592e414920546f6b656e00000000000000000000000000000000000081525060059080519060200190620000ba92919062001165565b506012600660006101000a81548160ff021916908360ff1602179055506161a8600e556005601260006101000a81548160ff021916908360ff1602179055506000601b60006101000a81548160ff0219169083151502179055506000601b60016101000a81548160ff0219169083151502179055506000601c556001601d60006101000a81548160ff021916908360ff1602179055503480156200015d57600080fd5b506000336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b019d971e4fe8401e74000000600f819055506064603c600f54028115156200020657fe5b0460118190555030601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601081905550635b89d680600881905550635b9c4b80600981905550635baec080600a81905550635bc13580600b81905550635becb700600c81905550635c007d80600d81905550620002bc670de0b6b3a7640000600a6200110b640100000000026401000000009004565b601381905550620002e7670de0b6b3a764000061138862001131640100000000026401000000009004565b6014819055506103e86096600f54028115156200030057fe5b0490506064601260009054906101000a900460ff1660640360ff1682028115156200032757fe5b04601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a36064601260009054906101000a900460ff1660ff1682028115156200043157fe5b04601660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001601860008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601660008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a37320d9846ab6c348aff24e762150abfa15d99e4af5601d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e86032600f54028115156200065e57fe5b0460166000601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160186000601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60166000601d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3733cf15b214734bb3c9040f18033440a35d18746ca601e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e86032600f54028115156200088f57fe5b0460166000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160186000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60166000601e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3733aceb78ff4b064aee870dcb844cca43fc6dcbe7d601f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8602d600f540281151562000ac057fe5b0460166000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160186000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60166000601f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a37365e1af8d76af6d1d3e47f14014f3105286ffbcf2602060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8601e600f540281151562000cf157fe5b0460166000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160186000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60166000602060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a3733d7db960837af96c457bdb481c3de7ce80366b2c602160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e8604b600f540281151562000f2257fe5b0460166000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160186000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60166000602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040518082815260200191505060405180910390a360646028600f5402811515620010fd57fe5b046007819055505062001214565b600080821115156200111c57600080fd5b81838115156200112857fe5b04905092915050565b6000818302905060008314806200115357508183828115156200115057fe5b04145b15156200115f57600080fd5b92915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620011a857805160ff1916838001178555620011d9565b82800160010185558215620011d9579182015b82811115620011d8578251825591602001919060010190620011bb565b5b509050620011e89190620011ec565b5090565b6200121191905b808211156200120d576000816000905550600101620011f3565b5090565b90565b613db280620012246000396000f300608060405260043610610288576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063039e9e001461067757806306fdde031461068e57806308b27e3e1461071e578063095ea7b3146107795780630b58dc38146107de5780630b97bc86146107f557806318160ddd1461082057806323b872dd1461084b578063313354dc146108d0578063313ce567146108fb578063350a64291461092c5780633ba0b9a9146109575780633eaaf86b146109825780633f4ba83a146109ad57806343f98a56146109c45780634978ddcc146109ef578063541ee05014610a325780635c975abb14610a5d578063705b5c2714610a8c57806370a0823114610ae757806379ba509714610b3e5780637d64bcb414610b555780638456cb5914610b845780638561d13614610b9b5780638d44c90b14610bf25780638da5cb5b14610c0957806391c1e2c114610c605780639358928b14610cb757806394c70cb114610ce257806395d89b4114610d0d578063a7b2fc0014610d9d578063a9059cbb14610e84578063b187bd2614610ee9578063b9e205ae14610f18578063ba16e00e14610f5d578063c24a0f8b14610f88578063c3f17ae814610fb3578063cae9ca5114610ff4578063cb09b0d01461109f578063d4ee1d90146110f6578063d5abeb011461114d578063d9c1ac2514611178578063dd62ed3e146111dd578063de49bd5414611254578063e3a9db1a14611297578063e6aa216c146112ee578063ef2bbbdf14611319578063f2fde38b1461135e578063f45ce8d7146113a1578063f74c67b314611408578063fa2299ee14611463578063fbaeac891461148e578063fe9b7f2f146114e5578063ff1d271214611510575b6000600360149054906101000a900460ff161515156102a657600080fd5b600c54421180156102ca575060001515601b60009054906101000a900460ff161515145b15610324576102d7611541565b503373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561031e573d6000803e3d6000fd5b50610674565b60085442101580156103385750600c544211155b8015610357575060001515601b60009054906101000a900460ff161515145b151561036257600080fd5b601354341015801561037657506014543411155b151561038157600080fd5b601454601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020543401111515156103d357600080fd5b60011515601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561043257600080fd5b61043b34611650565b905060115461044c60105483611735565b1115151561045957600080fd5b61046560105482611735565b60108190555061047760075482611735565b6007819055506104c6601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610552601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205434611735565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600f340281151561064657fe5b049081150290604051600060405180830381858888f19350505050158015610672573d6000803e3d6000fd5b505b50005b34801561068357600080fd5b5061068c611751565b005b34801561069a57600080fd5b506106a36118f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106e35780820151818401526020810190506106c8565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b5061075f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611994565b604051808215151515815260200191505060405180910390f35b34801561078557600080fd5b506107c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c24565b604051808215151515815260200191505060405180910390f35b3480156107ea57600080fd5b506107f3611d16565b005b34801561080157600080fd5b5061080a611dfc565b6040518082815260200191505060405180910390f35b34801561082c57600080fd5b50610835611e02565b6040518082815260200191505060405180910390f35b34801561085757600080fd5b506108b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e4d565b604051808215151515815260200191505060405180910390f35b3480156108dc57600080fd5b506108e5612198565b6040518082815260200191505060405180910390f35b34801561090757600080fd5b5061091061219e565b604051808260ff1660ff16815260200191505060405180910390f35b34801561093857600080fd5b506109416121b5565b6040518082815260200191505060405180910390f35b34801561096357600080fd5b5061096c6121bb565b6040518082815260200191505060405180910390f35b34801561098e57600080fd5b506109976121c1565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b506109c26121c7565b005b3480156109d057600080fd5b506109d9612286565b6040518082815260200191505060405180910390f35b3480156109fb57600080fd5b50610a30600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061228c565b005b348015610a3e57600080fd5b50610a4761232b565b6040518082815260200191505060405180910390f35b348015610a6957600080fd5b50610a72612331565b604051808215151515815260200191505060405180910390f35b348015610a9857600080fd5b50610acd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612348565b604051808215151515815260200191505060405180910390f35b348015610af357600080fd5b50610b28600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061252c565b6040518082815260200191505060405180910390f35b348015610b4a57600080fd5b50610b53612575565b005b348015610b6157600080fd5b50610b6a611541565b604051808215151515815260200191505060405180910390f35b348015610b9057600080fd5b50610b99612714565b005b348015610ba757600080fd5b50610bb06127d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bfe57600080fd5b50610c076127fa565b005b348015610c1557600080fd5b50610c1e6129d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c6c57600080fd5b50610ca1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129fd565b6040518082815260200191505060405180910390f35b348015610cc357600080fd5b50610ccc612a46565b6040518082815260200191505060405180910390f35b348015610cee57600080fd5b50610cf7612ad2565b6040518082815260200191505060405180910390f35b348015610d1957600080fd5b50610d22612ad8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d62578082015181840152602081019050610d47565b50505050905090810190601f168015610d8f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610da957600080fd5b50610e6a600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b7a565b604051808215151515815260200191505060405180910390f35b348015610e9057600080fd5b50610ecf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cc4565b604051808215151515815260200191505060405180910390f35b348015610ef557600080fd5b50610efe612f60565b604051808215151515815260200191505060405180910390f35b348015610f2457600080fd5b50610f4360048036038101908080359060200190929190505050612f73565b604051808215151515815260200191505060405180910390f35b348015610f6957600080fd5b50610f72613038565b6040518082815260200191505060405180910390f35b348015610f9457600080fd5b50610f9d61303e565b6040518082815260200191505060405180910390f35b348015610fbf57600080fd5b50610fde60048036038101908080359060200190929190505050611650565b6040518082815260200191505060405180910390f35b34801561100057600080fd5b50611085600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613044565b604051808215151515815260200191505060405180910390f35b3480156110ab57600080fd5b506110b46132af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561110257600080fd5b5061110b6132d5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561115957600080fd5b506111626132fb565b6040518082815260200191505060405180910390f35b34801561118457600080fd5b506111c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613301565b604051808215151515815260200191505060405180910390f35b3480156111e957600080fd5b5061123e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134bd565b6040518082815260200191505060405180910390f35b34801561126057600080fd5b50611295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613544565b005b3480156112a357600080fd5b506112d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506137d6565b6040518082815260200191505060405180910390f35b3480156112fa57600080fd5b5061130361381f565b6040518082815260200191505060405180910390f35b34801561132557600080fd5b5061134460048036038101908080359060200190929190505050613829565b604051808215151515815260200191505060405180910390f35b34801561136a57600080fd5b5061139f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613926565b005b3480156113ad57600080fd5b506113ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506139c5565b604051808215151515815260200191505060405180910390f35b34801561141457600080fd5b50611449600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613adb565b604051808215151515815260200191505060405180910390f35b34801561146f57600080fd5b50611478613b31565b6040518082815260200191505060405180910390f35b34801561149a57600080fd5b506114a3613b37565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156114f157600080fd5b506114fa613b5d565b6040518082815260200191505060405180910390f35b34801561151c57600080fd5b50611525613b63565b604051808260ff1660ff16815260200191505060405180910390f35b6000600c5442118015611567575060001515601b60009054906101000a900460ff161515145b1561157d57611574613b76565b6001905061164d565b600f5460075410151561159b57611592613b76565b6001905061164d565b600c54421180156115c3575060003073ffffffffffffffffffffffffffffffffffffffff1631115b15611648576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611646573d6000803e3d6000fd5b505b600090505b90565b600080600061165e84613c4a565b9150600a8281151561166c57fe5b049050600954421015611690576064600c830281151561168857fe5b0490506116d1565b600a544210156116b1576064600b83028115156116a957fe5b0490506116d0565b600b544210156116cf576103e8606983028115156116cb57fe5b0490505b5b5b624c4b40821015156116f457600a600d82028115156116ec57fe5b049050611714565b620f42408210151561171357600a600c820281151561170f57fe5b0490505b5b600660009054906101000a900460ff1660ff16600a0a810292505050919050565b6000818301905082811015151561174b57600080fd5b92915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117ad57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1fd2d1a8cc84fd3ec53680ba1d026371bce2e990ca952143223748a0ee5b170260405160405180910390a3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561198a5780601f1061195f5761010080835404028352916020019161198a565b820191906000526020600020905b81548152906001019060200180831161196d57829003601f168201915b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a3e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611a4957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b2257600080fd5b505af1158015611b36573d6000803e3d6000fd5b505050506040513d6020811015611b4c57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611be257600080fd5b505af1158015611bf6573d6000803e3d6000fd5b505050506040513d6020811015611c0c57600080fd5b81019080805190602001909291905050509050919050565b600081601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7157600080fd5b601b60009054906101000a900460ff168015611da0575060001515601b60019054906101000a900460ff161515145b1515611dab57600080fd5b6001601b60016101000a81548160ff02191690831515021790555042601c81905550427f35faa1e328b369ae53ce7c8a27cacbeeb13c4ebc77e84160b7e96afea7c5867960405160405180910390a2565b60085481565b6000601660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460075403905090565b6000600360149054906101000a900460ff16151515611e6b57600080fd5b600c5442118015611e8f575060001515601b60009054906101000a900460ff161515145b15611e9e57611e9c611541565b505b600d5442101580611eff575060011515601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515611f0a57600080fd5b611f90601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612059601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e5601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611735565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60115481565b6000600660009054906101000a900460ff16905090565b60135481565b600e5481565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561222257600080fd5b600360149054906101000a900460ff16151561223d57600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600d5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122e757600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b6000600360149054906101000a900460ff16905090565b6000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123ac57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141515156123e857600080fd5b601e6018610e10600d5442038115156123fd57fe5b0481151561240757fe5b0481151561241157fe5b0494506064601260009054906101000a900460ff1660640360ff166064600f80540281151561243c57fe5b040281151561244757fe5b049350601884600187010281151561245b57fe5b049250601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548403915081830390506000811115156124b657600080fd5b6124c1308883611e4d565b506303c26700600d540142111561251e5761251c3088601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d565b505b600195505050505050919050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125d157600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561276f57600080fd5b600360149054906101000a900460ff1615151561278b57600080fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b60019054906101000a900460ff16151561281757600080fd5b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506128a2601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042813373ffffffffffffffffffffffffffffffffffffffff167fccbea4088a3b7ae9ca2d15fab9a9742a4075b4d7247768a1eecea917565aba0060405160405180910390a4600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546007540303905090565b60095481565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b705780601f10612b4557610100808354040283529160200191612b70565b820191906000526020600020905b815481529060010190602001808311612b5357829003601f168201915b5050505050905090565b6000600360149054906101000a900460ff161515612b9757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c3f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612c4a57600080fd5b8360059080519060200190612c60929190613ce1565b508260049080519060200190612c77929190613ce1565b5081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190509392505050565b6000600360149054906101000a900460ff16151515612ce257600080fd5b600c5442118015612d06575060001515601b60009054906101000a900460ff161515145b15612d1557612d13611541565b505b600d5442101580612d76575060011515601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80612dce5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612dd957600080fd5b612e22601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eae601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611735565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600360149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061301d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561302857600080fd5b81600e8190555060019050919050565b600b5481565b600c5481565b6000600360149054906101000a900460ff1615151561306257600080fd5b82601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561323d578082015181840152602081019050613222565b50505050905090810190601f16801561326a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561328c57600080fd5b505af11580156132a0573d6000803e3d6000fd5b50505050600190509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806133ab5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156133b657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561347a57600080fd5b505af115801561348e573d6000803e3d6000fd5b505050506040513d60208110156134a457600080fd5b8101908080519060200190929190505050905092915050565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806135ee5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156135f957600080fd5b601b60019054906101000a900460ff16151561361457600080fd5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061369f601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042818373ffffffffffffffffffffffffffffffffffffffff167fccbea4088a3b7ae9ca2d15fab9a9742a4075b4d7247768a1eecea917565aba0060405160405180910390a4600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600e54905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138d35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156138de57600080fd5b601b60009054906101000a900460ff161515156138fa57600080fd5b601b60019054906101000a900460ff1615151561391657600080fd5b81600c8190555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561398157600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613a6f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613a7a57600080fd5b81601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60105481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b601d60009054906101000a900460ff1681565b610e104201600d819055506001601b60006101000a81548160ff021916908315150217905550427ff6af8e1d23f8a5997a11116c1e59bd11c947226b74890b8e0fde60d95a7c076a60405160405180910390a26000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015613c47573d6000803e3d6000fd5b50565b6000613c69613c5b83600e54613c8c565b670de0b6b3a7640000613cbd565b9050919050565b6000828211151515613c8157600080fd5b818303905092915050565b600081830290506000831480613cac5750818382811515613ca957fe5b04145b1515613cb757600080fd5b92915050565b60008082111515613ccd57600080fd5b8183811515613cd857fe5b04905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d2257805160ff1916838001178555613d50565b82800160010185558215613d50579182015b82811115613d4f578251825591602001919060010190613d34565b5b509050613d5d9190613d61565b5090565b613d8391905b80821115613d7f576000816000905550600101613d67565b5090565b905600a165627a7a7230582016637a766d63481a097fb2d90fa501f0c10d58f47f3a9af58d2e508773a1b6be0029
Deployed Bytecode
0x608060405260043610610288576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063039e9e001461067757806306fdde031461068e57806308b27e3e1461071e578063095ea7b3146107795780630b58dc38146107de5780630b97bc86146107f557806318160ddd1461082057806323b872dd1461084b578063313354dc146108d0578063313ce567146108fb578063350a64291461092c5780633ba0b9a9146109575780633eaaf86b146109825780633f4ba83a146109ad57806343f98a56146109c45780634978ddcc146109ef578063541ee05014610a325780635c975abb14610a5d578063705b5c2714610a8c57806370a0823114610ae757806379ba509714610b3e5780637d64bcb414610b555780638456cb5914610b845780638561d13614610b9b5780638d44c90b14610bf25780638da5cb5b14610c0957806391c1e2c114610c605780639358928b14610cb757806394c70cb114610ce257806395d89b4114610d0d578063a7b2fc0014610d9d578063a9059cbb14610e84578063b187bd2614610ee9578063b9e205ae14610f18578063ba16e00e14610f5d578063c24a0f8b14610f88578063c3f17ae814610fb3578063cae9ca5114610ff4578063cb09b0d01461109f578063d4ee1d90146110f6578063d5abeb011461114d578063d9c1ac2514611178578063dd62ed3e146111dd578063de49bd5414611254578063e3a9db1a14611297578063e6aa216c146112ee578063ef2bbbdf14611319578063f2fde38b1461135e578063f45ce8d7146113a1578063f74c67b314611408578063fa2299ee14611463578063fbaeac891461148e578063fe9b7f2f146114e5578063ff1d271214611510575b6000600360149054906101000a900460ff161515156102a657600080fd5b600c54421180156102ca575060001515601b60009054906101000a900460ff161515145b15610324576102d7611541565b503373ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561031e573d6000803e3d6000fd5b50610674565b60085442101580156103385750600c544211155b8015610357575060001515601b60009054906101000a900460ff161515145b151561036257600080fd5b601354341015801561037657506014543411155b151561038157600080fd5b601454601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020543401111515156103d357600080fd5b60011515601860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514151561043257600080fd5b61043b34611650565b905060115461044c60105483611735565b1115151561045957600080fd5b61046560105482611735565b60108190555061047760075482611735565b6007819055506104c6601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610552601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205434611735565b601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6064600f340281151561064657fe5b049081150290604051600060405180830381858888f19350505050158015610672573d6000803e3d6000fd5b505b50005b34801561068357600080fd5b5061068c611751565b005b34801561069a57600080fd5b506106a36118f2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156106e35780820151818401526020810190506106c8565b50505050905090810190601f1680156107105780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561072a57600080fd5b5061075f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611994565b604051808215151515815260200191505060405180910390f35b34801561078557600080fd5b506107c4600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c24565b604051808215151515815260200191505060405180910390f35b3480156107ea57600080fd5b506107f3611d16565b005b34801561080157600080fd5b5061080a611dfc565b6040518082815260200191505060405180910390f35b34801561082c57600080fd5b50610835611e02565b6040518082815260200191505060405180910390f35b34801561085757600080fd5b506108b6600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e4d565b604051808215151515815260200191505060405180910390f35b3480156108dc57600080fd5b506108e5612198565b6040518082815260200191505060405180910390f35b34801561090757600080fd5b5061091061219e565b604051808260ff1660ff16815260200191505060405180910390f35b34801561093857600080fd5b506109416121b5565b6040518082815260200191505060405180910390f35b34801561096357600080fd5b5061096c6121bb565b6040518082815260200191505060405180910390f35b34801561098e57600080fd5b506109976121c1565b6040518082815260200191505060405180910390f35b3480156109b957600080fd5b506109c26121c7565b005b3480156109d057600080fd5b506109d9612286565b6040518082815260200191505060405180910390f35b3480156109fb57600080fd5b50610a30600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061228c565b005b348015610a3e57600080fd5b50610a4761232b565b6040518082815260200191505060405180910390f35b348015610a6957600080fd5b50610a72612331565b604051808215151515815260200191505060405180910390f35b348015610a9857600080fd5b50610acd600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612348565b604051808215151515815260200191505060405180910390f35b348015610af357600080fd5b50610b28600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061252c565b6040518082815260200191505060405180910390f35b348015610b4a57600080fd5b50610b53612575565b005b348015610b6157600080fd5b50610b6a611541565b604051808215151515815260200191505060405180910390f35b348015610b9057600080fd5b50610b99612714565b005b348015610ba757600080fd5b50610bb06127d4565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610bfe57600080fd5b50610c076127fa565b005b348015610c1557600080fd5b50610c1e6129d8565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b348015610c6c57600080fd5b50610ca1600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506129fd565b6040518082815260200191505060405180910390f35b348015610cc357600080fd5b50610ccc612a46565b6040518082815260200191505060405180910390f35b348015610cee57600080fd5b50610cf7612ad2565b6040518082815260200191505060405180910390f35b348015610d1957600080fd5b50610d22612ad8565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610d62578082015181840152602081019050610d47565b50505050905090810190601f168015610d8f5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610da957600080fd5b50610e6a600480360381019080803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612b7a565b604051808215151515815260200191505060405180910390f35b348015610e9057600080fd5b50610ecf600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612cc4565b604051808215151515815260200191505060405180910390f35b348015610ef557600080fd5b50610efe612f60565b604051808215151515815260200191505060405180910390f35b348015610f2457600080fd5b50610f4360048036038101908080359060200190929190505050612f73565b604051808215151515815260200191505060405180910390f35b348015610f6957600080fd5b50610f72613038565b6040518082815260200191505060405180910390f35b348015610f9457600080fd5b50610f9d61303e565b6040518082815260200191505060405180910390f35b348015610fbf57600080fd5b50610fde60048036038101908080359060200190929190505050611650565b6040518082815260200191505060405180910390f35b34801561100057600080fd5b50611085600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050613044565b604051808215151515815260200191505060405180910390f35b3480156110ab57600080fd5b506110b46132af565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561110257600080fd5b5061110b6132d5565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561115957600080fd5b506111626132fb565b6040518082815260200191505060405180910390f35b34801561118457600080fd5b506111c3600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050613301565b604051808215151515815260200191505060405180910390f35b3480156111e957600080fd5b5061123e600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506134bd565b6040518082815260200191505060405180910390f35b34801561126057600080fd5b50611295600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613544565b005b3480156112a357600080fd5b506112d8600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506137d6565b6040518082815260200191505060405180910390f35b3480156112fa57600080fd5b5061130361381f565b6040518082815260200191505060405180910390f35b34801561132557600080fd5b5061134460048036038101908080359060200190929190505050613829565b604051808215151515815260200191505060405180910390f35b34801561136a57600080fd5b5061139f600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613926565b005b3480156113ad57600080fd5b506113ee600480360381019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035151590602001909291905050506139c5565b604051808215151515815260200191505060405180910390f35b34801561141457600080fd5b50611449600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613adb565b604051808215151515815260200191505060405180910390f35b34801561146f57600080fd5b50611478613b31565b6040518082815260200191505060405180910390f35b34801561149a57600080fd5b506114a3613b37565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156114f157600080fd5b506114fa613b5d565b6040518082815260200191505060405180910390f35b34801561151c57600080fd5b50611525613b63565b604051808260ff1660ff16815260200191505060405180910390f35b6000600c5442118015611567575060001515601b60009054906101000a900460ff161515145b1561157d57611574613b76565b6001905061164d565b600f5460075410151561159b57611592613b76565b6001905061164d565b600c54421180156115c3575060003073ffffffffffffffffffffffffffffffffffffffff1631115b15611648576000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015611646573d6000803e3d6000fd5b505b600090505b90565b600080600061165e84613c4a565b9150600a8281151561166c57fe5b049050600954421015611690576064600c830281151561168857fe5b0490506116d1565b600a544210156116b1576064600b83028115156116a957fe5b0490506116d0565b600b544210156116cf576103e8606983028115156116cb57fe5b0490505b5b5b624c4b40821015156116f457600a600d82028115156116ec57fe5b049050611714565b620f42408210151561171357600a600c820281151561170f57fe5b0490505b5b600660009054906101000a900460ff1660ff16600a0a810292505050919050565b6000818301905082811015151561174b57600080fd5b92915050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156117ad57600080fd5b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f1fd2d1a8cc84fd3ec53680ba1d026371bce2e990ca952143223748a0ee5b170260405160405180910390a3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561198a5780601f1061195f5761010080835404028352916020019161198a565b820191906000526020600020905b81548152906001019060200180831161196d57829003601f168201915b5050505050905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480611a3e5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515611a4957600080fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001915050602060405180830381600087803b158015611b2257600080fd5b505af1158015611b36573d6000803e3d6000fd5b505050506040513d6020811015611b4c57600080fd5b81019080805190602001909291905050506040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b158015611be257600080fd5b505af1158015611bf6573d6000803e3d6000fd5b505050506040513d6020811015611c0c57600080fd5b81019080805190602001909291905050509050919050565b600081601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611d7157600080fd5b601b60009054906101000a900460ff168015611da0575060001515601b60019054906101000a900460ff161515145b1515611dab57600080fd5b6001601b60016101000a81548160ff02191690831515021790555042601c81905550427f35faa1e328b369ae53ce7c8a27cacbeeb13c4ebc77e84160b7e96afea7c5867960405160405180910390a2565b60085481565b6000601660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460075403905090565b6000600360149054906101000a900460ff16151515611e6b57600080fd5b600c5442118015611e8f575060001515601b60009054906101000a900460ff161515145b15611e9e57611e9c611541565b505b600d5442101580611eff575060011515601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b1515611f0a57600080fd5b611f90601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612059601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506120e5601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611735565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600190509392505050565b60115481565b6000600660009054906101000a900460ff16905090565b60135481565b600e5481565b60075481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561222257600080fd5b600360149054906101000a900460ff16151561223d57600080fd5b6000600360146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600d5481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156122e757600080fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600a5481565b6000600360149054906101000a900460ff16905090565b6000806000806000806000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156123ac57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff16141515156123e857600080fd5b601e6018610e10600d5442038115156123fd57fe5b0481151561240757fe5b0481151561241157fe5b0494506064601260009054906101000a900460ff1660640360ff166064600f80540281151561243c57fe5b040281151561244757fe5b049350601884600187010281151561245b57fe5b049250601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548403915081830390506000811115156124b657600080fd5b6124c1308883611e4d565b506303c26700600d540142111561251e5761251c3088601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d565b505b600195505050505050919050565b6000601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156125d157600080fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561276f57600080fd5b600360149054906101000a900460ff1615151561278b57600080fd5b6001600360146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601b60019054906101000a900460ff16151561281757600080fd5b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506128a2601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042813373ffffffffffffffffffffffffffffffffffffffff167fccbea4088a3b7ae9ca2d15fab9a9742a4075b4d7247768a1eecea917565aba0060405160405180910390a4600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a350565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000601a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054601660008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546007540303905090565b60095481565b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b705780601f10612b4557610100808354040283529160200191612b70565b820191906000526020600020905b815481529060010190602001808311612b5357829003601f168201915b5050505050905090565b6000600360149054906101000a900460ff161515612b9757600080fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480612c3f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612c4a57600080fd5b8360059080519060200190612c60929190613ce1565b508260049080519060200190612c77929190613ce1565b5081601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600190509392505050565b6000600360149054906101000a900460ff16151515612ce257600080fd5b600c5442118015612d06575060001515601b60009054906101000a900460ff161515145b15612d1557612d13611541565b505b600d5442101580612d76575060011515601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b80612dce5750602160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515612dd957600080fd5b612e22601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483613c70565b601660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612eae601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205483611735565b601660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a36001905092915050565b600360149054906101000a900460ff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061301d5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b151561302857600080fd5b81600e8190555060019050919050565b600b5481565b600c5481565b6000600360149054906101000a900460ff1615151561306257600080fd5b82601960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040518082815260200191505060405180910390a38373ffffffffffffffffffffffffffffffffffffffff16638f4ffcb1338530866040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018481526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561323d578082015181840152602081019050613222565b50505050905090810190601f16801561326a5780820380516001836020036101000a031916815260200191505b5095505050505050600060405180830381600087803b15801561328c57600080fd5b505af11580156132a0573d6000803e3d6000fd5b50505050600190509392505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806133ab5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156133b657600080fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200182815260200192505050602060405180830381600087803b15801561347a57600080fd5b505af115801561348e573d6000803e3d6000fd5b505050506040513d60208110156134a457600080fd5b8101908080519060200190929190505050905092915050565b6000601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806135ee5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156135f957600080fd5b601b60019054906101000a900460ff16151561361457600080fd5b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061369f601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482611735565b601a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555042818373ffffffffffffffffffffffffffffffffffffffff167fccbea4088a3b7ae9ca2d15fab9a9742a4075b4d7247768a1eecea917565aba0060405160405180910390a4600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b6000601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000600e54905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806138d35750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15156138de57600080fd5b601b60009054906101000a900460ff161515156138fa57600080fd5b601b60019054906101000a900460ff1615151561391657600080fd5b81600c8190555060019050919050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561398157600080fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480613a6f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1515613a7a57600080fd5b81601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001905092915050565b6000601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60105481565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60145481565b601d60009054906101000a900460ff1681565b610e104201600d819055506001601b60006101000a81548160ff021916908315150217905550427ff6af8e1d23f8a5997a11116c1e59bd11c947226b74890b8e0fde60d95a7c076a60405160405180910390a26000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015613c47573d6000803e3d6000fd5b50565b6000613c69613c5b83600e54613c8c565b670de0b6b3a7640000613cbd565b9050919050565b6000828211151515613c8157600080fd5b818303905092915050565b600081830290506000831480613cac5750818382811515613ca957fe5b04145b1515613cb757600080fd5b92915050565b60008082111515613ccd57600080fd5b8183811515613cd857fe5b04905092915050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10613d2257805160ff1916838001178555613d50565b82800160010185558215613d50579182015b82811115613d4f578251825591602001919060010190613d34565b5b509050613d5d9190613d61565b5090565b613d8391905b80821115613d7f576000816000905550600101613d67565b5090565b905600a165627a7a7230582016637a766d63481a097fb2d90fa501f0c10d58f47f3a9af58d2e508773a1b6be0029
Swarm Source
bzzr://16637a766d63481a097fb2d90fa501f0c10d58f47f3a9af58d2e508773a1b6be
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.