More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 256 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Register | 13169964 | 1228 days ago | IN | 0.01 ETH | 0.00273296 | ||||
Register | 13169779 | 1228 days ago | IN | 0.01 ETH | 0.00293329 | ||||
Register | 13169771 | 1228 days ago | IN | 0.01 ETH | 0.0036095 | ||||
Register | 13169750 | 1228 days ago | IN | 0.01 ETH | 0.0081733 | ||||
Register | 13169743 | 1228 days ago | IN | 0.01 ETH | 0.00344166 | ||||
Register | 13169736 | 1228 days ago | IN | 0.01 ETH | 0.00560497 | ||||
Register | 13169731 | 1228 days ago | IN | 0.01 ETH | 0.0044261 | ||||
Register | 13169725 | 1228 days ago | IN | 0.01 ETH | 0.00605456 | ||||
Register | 13169717 | 1228 days ago | IN | 0.01 ETH | 0.00667501 | ||||
Register | 13169710 | 1228 days ago | IN | 0.01 ETH | 0.00336446 | ||||
Register | 13169705 | 1228 days ago | IN | 0.01 ETH | 0.00352989 | ||||
Register | 13169698 | 1228 days ago | IN | 0.01 ETH | 0.00327259 | ||||
Register | 13169651 | 1228 days ago | IN | 0.01 ETH | 0.00478558 | ||||
Register | 13169641 | 1228 days ago | IN | 0.01 ETH | 0.0046987 | ||||
Register | 13169634 | 1228 days ago | IN | 0.01 ETH | 0.00714458 | ||||
Register | 13169618 | 1228 days ago | IN | 0.01 ETH | 0.00550876 | ||||
Register | 13169611 | 1228 days ago | IN | 0.01 ETH | 0.00508995 | ||||
Register | 13169605 | 1228 days ago | IN | 0.01 ETH | 0.00351626 | ||||
Register | 13169595 | 1228 days ago | IN | 0.01 ETH | 0.00379635 | ||||
Register | 13169583 | 1228 days ago | IN | 0.01 ETH | 0.00381817 | ||||
Register | 13169566 | 1228 days ago | IN | 0.01 ETH | 0.00435097 | ||||
Register | 13169557 | 1228 days ago | IN | 0.01 ETH | 0.00515848 | ||||
Register | 13169549 | 1228 days ago | IN | 0.01 ETH | 0.00485655 | ||||
Register | 13169542 | 1228 days ago | IN | 0.01 ETH | 0.00421202 | ||||
Register | 13168304 | 1228 days ago | IN | 0.01 ETH | 0.00281141 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block |
From
|
To
|
|||
---|---|---|---|---|---|---|
12344744 | 1356 days ago | 0.03 ETH | ||||
11726101 | 1452 days ago | 0.0085 ETH | ||||
11511050 | 1485 days ago | 0.12 ETH | ||||
11387839 | 1504 days ago | 0.005 ETH | ||||
11387839 | 1504 days ago | 0.00375 ETH | ||||
11387839 | 1504 days ago | 0.00375 ETH | ||||
11387839 | 1504 days ago | 0.005 ETH | ||||
11387839 | 1504 days ago | 0.00375 ETH | ||||
11387839 | 1504 days ago | 0.00375 ETH | ||||
11387839 | 1504 days ago | 0.015 ETH | ||||
11387839 | 1504 days ago | 0.00025 ETH | ||||
11387839 | 1504 days ago | 0.00025 ETH | ||||
11387839 | 1504 days ago | 0.00025 ETH | ||||
11387839 | 1504 days ago | 0.00025 ETH | ||||
11387839 | 1504 days ago | 0.001 ETH | ||||
11387839 | 1504 days ago | 0.001 ETH | ||||
11387839 | 1504 days ago | 0.001 ETH | ||||
11387839 | 1504 days ago | 0.001 ETH | ||||
11387839 | 1504 days ago | 0.005 ETH | ||||
11306449 | 1516 days ago | 0.005 ETH | ||||
11306449 | 1516 days ago | 0.0075 ETH | ||||
11306449 | 1516 days ago | 0.00875 ETH | ||||
11306449 | 1516 days ago | 0.00375 ETH | ||||
11306449 | 1516 days ago | 0.015 ETH | ||||
11306449 | 1516 days ago | 0.00025 ETH |
Loading...
Loading
Contract Name:
HPEASYETH
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-01 */ // SPDX-License-Identifier: None pragma solidity ^0.6.12; abstract contract ERC20 { function transfer(address to, uint tokens) virtual public returns (bool success); } contract Owned { address public owner; address public newOwner; event OwnershipTransferred(address indexed _from, address indexed _to); constructor(address ownerAddress) public { owner = ownerAddress; } modifier onlyOwner { require(msg.sender == owner); _; } function transferOwnership(address _newOwner) public onlyOwner { newOwner = _newOwner; } function acceptOwnership() public { require(msg.sender == newOwner); emit OwnershipTransferred(owner, newOwner); owner = newOwner; newOwner = address(0); } } contract HPEASYETH is Owned { struct User { uint id; address referrer; uint matrices_cnt; uint current_matrix; uint last_matrix; uint hpeasy_cooldown_time; uint hpeasy_cooldown_num; uint direct_referrals; } struct Matrix { uint id; address owner; uint referrals_cnt; mapping(uint => uint) referrals; uint matrix_referrer; address direct_referrer; uint from_hpeasy; uint cycles; uint bunch_cycles; } struct HpEasyLine { address owner; uint matrix_id; } struct PaymentStatus { bool is_eth_paid; bool is_tokens_paid; uint matrix_to_renew; address referrer; } struct JackpotPaymentStatus { bool is_eth_paid; bool is_tokens_paid; uint line; uint bet_size; } string public name = "HPEASY ETH"; uint public regCost; address public tokenAddress; uint public lastUserId = 1; uint public lastMatrixId = 1; uint public lastHpEasyId = 1; bool public useTokenPayment = true; uint public skippedHpEasysOffset; uint public bunchCyclesLimit; address[] private founders; uint private seed = 1; mapping(address => User) public users; mapping(uint => address) public usersById; mapping(uint => Matrix) public matrices; mapping(uint => mapping(uint => uint)) public usersMatrices; mapping(uint => HpEasyLine) public HpEasy; mapping (address => PaymentStatus) public paymentQueue; mapping(uint => mapping(uint => address[])) private bets; mapping (address => JackpotPaymentStatus) public jackpotQueue; event Registration(address indexed user, address indexed referrer, uint indexed userId, uint referrerId); event Transfer(address indexed user, uint indexed userId, uint indexed amount); event SkipMatrix(uint matrixId); event ChangeUseTokenPayment(bool useTokenPayment); event ChangeRegistrationCost(uint newCost); event ChangeTokenAddress(address newTokenAddress); event ChangeBunchCyclesLimit(uint newCoolDown); event NewJackpotWinner(uint line, uint betSize, uint jackpot, address winnerAddress); constructor(address ownerAddress, address _tokenAddress, address[] memory _founders) Owned (ownerAddress) public { founders = _founders; tokenAddress = _tokenAddress; users[ownerAddress] = User({ id: lastUserId, referrer: address(0), matrices_cnt: 0, current_matrix: 0, last_matrix: 0, hpeasy_cooldown_time: 0, hpeasy_cooldown_num: 0, direct_referrals: 0 }); usersById[lastUserId] = ownerAddress; matrices[lastMatrixId] = Matrix({ id: lastUserId, owner: ownerAddress, referrals_cnt: 0, matrix_referrer: 0, direct_referrer: address(0), from_hpeasy: 0, cycles: 0, bunch_cycles: 0 }); usersMatrices[users[ownerAddress].id][users[ownerAddress].matrices_cnt] = lastMatrixId; users[ownerAddress].matrices_cnt++; users[ownerAddress].current_matrix = 0; HpEasy[lastHpEasyId] = HpEasyLine({ matrix_id: lastMatrixId, owner: ownerAddress }); lastHpEasyId++; lastMatrixId++; lastUserId++; regCost = 0.05 ether; bunchCyclesLimit = 6; } function isUserExists(address user) public view returns (bool) { return (users[user].id != 0); } function matrixReferrals(uint matrixId, uint index) public view returns (uint) { return matrices[matrixId].referrals[index]; } function changeUseTokenPayment() public onlyOwner returns (bool success) { useTokenPayment = !useTokenPayment; emit ChangeUseTokenPayment(useTokenPayment); return true; } function changeRegistrationCost(uint newCost) public onlyOwner returns (bool success) { regCost = newCost; emit ChangeRegistrationCost(newCost); return true; } function changeTokenAddress (address newTokenAddress) public onlyOwner returns (bool success) { tokenAddress = newTokenAddress; emit ChangeTokenAddress(newTokenAddress); return true; } function changeBunchCyclesLimit (uint newLimit) public onlyOwner returns (bool success) { require (newLimit > 0, "the value must be greater than 0"); bunchCyclesLimit = newLimit; emit ChangeBunchCyclesLimit(newLimit); return true; } function transferFunds(address to, uint amount) public onlyOwner returns (bool success) { require (amount <= address(this).balance, "Not enough funds"); address(uint160(to)).transfer(amount); return true; } function receiveTransfer(address from, uint tokens, bytes memory data) public returns (string memory status) { require(msg.sender == tokenAddress, "Unknown token"); string memory result; if (data.length == 0) { //registration, purchase or renew cost require(tokens == regCost, "Wrong token amount"); require(!paymentQueue[from].is_tokens_paid, "tokens paid, ETH awaiting"); if (!isUserExists(from)) { if (!paymentQueue[from].is_eth_paid) { paymentQueue[from].is_tokens_paid = true; result = "Tokens accepted. Waiting ETH payment for registration completion"; } else { paymentQueue[from].is_eth_paid = false; registration(from, paymentQueue[from].referrer); result = "Registration is completed"; } } else { require(users[from].matrices_cnt < 150 || paymentQueue[from].matrix_to_renew != 0, "max 150 hpeasy allowed"); if (!paymentQueue[from].is_eth_paid) { paymentQueue[from].is_tokens_paid = true; result = "Tokens accepted. Waiting ETH payment for HpEasy purchase/renew"; } else { paymentQueue[from].is_eth_paid = false; if (paymentQueue[from].matrix_to_renew != 0) { renew(from, paymentQueue[from].matrix_to_renew); paymentQueue[from].matrix_to_renew = 0; result = "Renew is completed"; } else { purchase(from); result = "Purchase is completed"; } } } } else { //jackpot require(!jackpotQueue[from].is_tokens_paid, "already paid jackpot cost in tokens, ETH awaiting"); uint line = deserializeUint32(data); if (!jackpotQueue[from].is_eth_paid) { require(tokens == 0.001 ether || tokens == 0.005 ether || tokens == 0.015 ether || tokens == 0.05 ether || tokens == 0.15 ether || tokens == 0.5 ether, "No such bet size"); require(line == 10 || line == 50 || line == 200 || line == 500, "No such bet line"); jackpotQueue[from].is_tokens_paid = true; jackpotQueue[from].line = line; jackpotQueue[from].bet_size = tokens; result = "Waiting ETH payment for jackpot bet acceptance"; } else { require(jackpotQueue[from].line == line && jackpotQueue[from].bet_size == tokens, "wrong line or bet size"); result = addJackpotBet(jackpotQueue[from].line, jackpotQueue[from].bet_size); delete jackpotQueue[from]; } } return result; } function register(address referrer) public payable { require(msg.value == regCost, "not correct registration cost"); require(!isUserExists(msg.sender), "user exists"); require(isUserExists(referrer), "referrer not exists"); require(!paymentQueue[msg.sender].is_eth_paid, "already paid registration cost in ETH, tokens awaiting"); if (!useTokenPayment) { registration(msg.sender, referrer); } else if (!paymentQueue[msg.sender].is_tokens_paid) { paymentQueue[msg.sender].is_eth_paid = true; paymentQueue[msg.sender].referrer = referrer; } else { paymentQueue[msg.sender].is_tokens_paid = false; registration(msg.sender, referrer); } } function purchaseHpEasyPosition() public payable { require(msg.value == regCost, "not correct purchase cost"); require(isUserExists(msg.sender), "user not exists"); require(users[msg.sender].matrices_cnt < 150, "max 150 hpeasy allowed"); require(!paymentQueue[msg.sender].is_eth_paid, "already paid in ETH, tokens awaiting"); if (!useTokenPayment) { purchase(msg.sender); } else if(!paymentQueue[msg.sender].is_tokens_paid) { paymentQueue[msg.sender].is_eth_paid = true; } else { paymentQueue[msg.sender].is_tokens_paid = false; purchase(msg.sender); } } function renewMatrix(uint matrixToRenew) public payable { require(msg.value == regCost, "not correct renew cost"); require(matrices[matrixToRenew].bunch_cycles >= bunchCyclesLimit, "matrix is active"); require(isUserExists(msg.sender), "user not exists"); require(!paymentQueue[msg.sender].is_eth_paid, "already paid in ETH, token payment awaiting"); require(matrices[matrixToRenew].owner == msg.sender, "not user's matrix"); if (!useTokenPayment) { renew(msg.sender, matrixToRenew); } else if(!paymentQueue[msg.sender].is_tokens_paid) { paymentQueue[msg.sender].is_eth_paid = true; paymentQueue[msg.sender].matrix_to_renew = matrixToRenew; } else { paymentQueue[msg.sender].is_tokens_paid = false; renew(msg.sender, matrixToRenew); } } function registration(address userAddress, address referrerAddress) private { users[userAddress] = User({ id: lastUserId, referrer: referrerAddress, matrices_cnt: 0, current_matrix: 0, last_matrix: 0, hpeasy_cooldown_time: 0, hpeasy_cooldown_num: 0, direct_referrals: 0 }); usersById[lastUserId] = userAddress; lastUserId++; users[referrerAddress].direct_referrals++; payUser(referrerAddress, regCost * 10 / 100); payFounders(regCost * 10 / 100); joinHpEasy(lastMatrixId, userAddress, false); fillMatrix(userAddress, referrerAddress, 0); emit Registration(userAddress, referrerAddress, users[userAddress].id, users[referrerAddress].id); } function purchase(address userAddress) private { if (users[userAddress].hpeasy_cooldown_time < now - 86400) { users[userAddress].hpeasy_cooldown_time = now; users[userAddress].hpeasy_cooldown_num = 1; } else { if (users[userAddress].hpeasy_cooldown_num < 3) { users[userAddress].hpeasy_cooldown_num++; } else { revert("24h purchase limit"); } } payUser(users[userAddress].referrer, regCost * 10 / 100); payFounders(regCost * 10 / 100); joinHpEasy(lastMatrixId, userAddress, false); fillMatrix(userAddress, users[userAddress].referrer, 1); } function renew(address userAddress, uint matrixToRenew) private { payUser(users[userAddress].referrer, regCost * 10 / 100); payFounders(regCost * 10 / 100); joinHpEasy(matrixToRenew, userAddress, true); payForMatrix(matrices[matrixToRenew].matrix_referrer); } function joinHpEasy(uint matrixId, address matrixOwner, bool isRenew) private { HpEasy[lastHpEasyId] = HpEasyLine({ matrix_id: matrixId, owner: matrixOwner }); lastHpEasyId++; if (matrices[matrixId].id != 0) { if (isRenew) { matrices[matrixId].bunch_cycles = 0; } else { matrices[matrixId].cycles++; matrices[matrixId].bunch_cycles++; } } if (lastHpEasyId % 2 == 0) { if (lastHpEasyId > 2) { uint currentHp = skippedHpEasysOffset + lastHpEasyId / 2 - 1; while (matrices[HpEasy[currentHp].matrix_id].bunch_cycles >= bunchCyclesLimit && (lastHpEasyId / 2 + skippedHpEasysOffset < lastHpEasyId - 2)) { emit SkipMatrix(HpEasy[currentHp].matrix_id); skippedHpEasysOffset++; currentHp++; } payHpEasy(HpEasy[currentHp].owner); joinHpEasy(HpEasy[currentHp].matrix_id, HpEasy[currentHp].owner, false); payForMatrix(matrices[HpEasy[currentHp].matrix_id].matrix_referrer); } else { payHpEasy(owner); payForMatrix(0); } } } function payForMatrix(uint slotId) private { if (slotId == 0) { payUser(matrices[1].owner, regCost * 25 / 100); return; } uint unspent = 0; address lastEligible; uint level1 = slotId; if (users[matrices[level1].owner].direct_referrals < 4 || matrices[level1].bunch_cycles >= bunchCyclesLimit) { unspent = regCost * 25 / 1000; } else { payUser(matrices[level1].owner, regCost * 25 / 1000); lastEligible = matrices[level1].owner; } uint level2 = matrices[level1].matrix_referrer; if (level2 == 0) { if (lastEligible != address(0)) { payUser(lastEligible, regCost * 225 / 1000); } else { payUser(matrices[1].owner, regCost * 25 / 100); } return; } else if (users[matrices[level2].owner].direct_referrals < 4 || matrices[level2].bunch_cycles >= bunchCyclesLimit) { unspent += regCost * 5 / 100; } else { payUser(matrices[level2].owner, unspent + regCost * 5 / 100); lastEligible = matrices[level2].owner; unspent = 0; } uint level3 = matrices[level2].matrix_referrer; if (level3 == 0) { if (lastEligible != address(0)) { payUser(lastEligible, regCost * 175 / 1000 + unspent); } else { payUser(matrices[1].owner, regCost * 25 / 100); } return; } else if (users[matrices[level3].owner].direct_referrals < 4 || matrices[level3].bunch_cycles >= bunchCyclesLimit) { unspent += regCost * 75 / 1000; } else { payUser(matrices[level3].owner, unspent + regCost * 75 / 1000); lastEligible = matrices[level3].owner; unspent = 0; } uint level4 = matrices[level3].matrix_referrer; if (level4 == 0) { if (lastEligible != address(0)) { payUser(lastEligible, regCost * 10 / 100 + unspent); } else { payUser(matrices[1].owner, regCost * 25 / 100); } return; } else if (users[matrices[level4].owner].direct_referrals < 4 || matrices[level4].bunch_cycles >= bunchCyclesLimit) { unspent += regCost * 10 / 100; } else { payUser(matrices[level4].owner, unspent + regCost * 10 / 100); lastEligible = matrices[level4].owner; unspent = 0; } if (unspent == regCost * 25 / 100) { while (users[matrices[level4].owner].direct_referrals < 4 || matrices[level4].bunch_cycles >= bunchCyclesLimit) { if (level4 == 0) { payUser(matrices[1].owner, unspent); return; } level4 = matrices[level4].matrix_referrer; } payUser(matrices[level4].owner, unspent); } else if (unspent != 0) { payUser(lastEligible, unspent); } } function fillMatrix(address user, address referrer, uint from_hpeasy) private { if (referrer == address(0)) { referrer = usersById[1]; } uint slotId = findSlot(usersMatrices[users[referrer].id][users[referrer].current_matrix], 1, 4); if (slotId == 0) { if (users[referrer].current_matrix == users[referrer].matrices_cnt-1) { revert("all matrices are full"); } users[referrer].current_matrix++; slotId = findSlot(usersMatrices[users[referrer].id][users[referrer].current_matrix], 1, 4); } payForMatrix(slotId); matrices[lastMatrixId] = Matrix({ id: lastMatrixId, owner: user, referrals_cnt: 0, matrix_referrer: slotId, from_hpeasy: from_hpeasy, direct_referrer: referrer, cycles: 0, bunch_cycles: 0 }); usersMatrices[users[user].id][users[user].matrices_cnt] = lastMatrixId; users[user].matrices_cnt++; users[user].last_matrix = lastMatrixId; matrices[lastMatrixId].matrix_referrer = slotId; lastMatrixId++; matrices[slotId].referrals[matrices[slotId].referrals_cnt] = lastMatrixId-1; matrices[slotId].referrals_cnt++; } function findSlot(uint matrix, uint level, uint maxLevel) private returns (uint) { if (level > maxLevel) { return(0); } if (matrices[matrix].referrals_cnt < 4) { return(matrix); } uint tmpMaxLevel = level+1; while (tmpMaxLevel <= maxLevel) { uint i=0; do { uint slot = findSlot(matrices[matrix].referrals[i], level+1, tmpMaxLevel); if (slot != 0) { return(slot); } i++; } while (i<4); tmpMaxLevel++; } return(0); } function payUser(address user, uint amount) private { emit Transfer(user, users[user].id, amount); address(uint160(user)).transfer(amount); if (useTokenPayment) { require(payInTokens(user, amount)); } } function payHpEasy(address user) private { emit Transfer(user, users[user].id, regCost * 30 / 100); address(uint160(user)).transfer(regCost * 30 / 100); if (useTokenPayment) { require(payInTokens(user, regCost * 30 / 100)); } } function payFounders(uint amount) private { uint founderAmount; for (uint i=0; i < founders.length; i++) { if (i < 4 ) { founderAmount = amount * 20 / 100; } else { founderAmount = amount * 5 / 100; } emit Transfer(founders[i], 0, founderAmount); address(uint160(founders[i])).transfer(founderAmount); if (useTokenPayment) { payInTokens(founders[i], founderAmount); } } } function payInTokens(address to, uint amount) private returns (bool success) { return ERC20(tokenAddress).transfer(to, amount); } function joinJackpot(uint line) public payable returns(string memory status) { require(!jackpotQueue[msg.sender].is_eth_paid, "already paid ETH, tokens awaiting"); string memory result; if (!useTokenPayment) { result = addJackpotBet(line, msg.value); } else if (!jackpotQueue[msg.sender].is_tokens_paid) { require(msg.value == 0.001 ether || msg.value == 0.005 ether || msg.value == 0.015 ether || msg.value == 0.05 ether || msg.value == 0.15 ether || msg.value == 0.5 ether, "No such bet size"); require(line == 10 || line == 50 || line == 200 || line == 500, "No such bet line"); jackpotQueue[msg.sender].line = line; jackpotQueue[msg.sender].is_eth_paid = true; jackpotQueue[msg.sender].bet_size = msg.value; result = "Waiting token payment for jackpot bet acceptance"; } else { require(jackpotQueue[msg.sender].line == line && jackpotQueue[msg.sender].bet_size == msg.value, "wrong line or bet size"); result = addJackpotBet(jackpotQueue[msg.sender].line, jackpotQueue[msg.sender].bet_size); delete jackpotQueue[msg.sender]; } return result; } function addJackpotBet(uint line, uint betSize) private returns(string memory status) { bets[line][betSize].push(msg.sender); if (bets[line][betSize].length == line) { defineWinner(line); return ("This line winner is defined"); } else { return ("Your bet is accepted"); } } function betsLineFilling(uint line, uint betSize) public view returns (uint length) { return bets[line][betSize].length; } function betsLineAddresses(uint line, uint betSize) public view returns (address[] memory participants) { return bets[line][betSize]; } function defineWinner(uint line) private { uint additionalSeed = uint(blockhash(block.number - 1)); uint rnd = 0; while(rnd < line) { rnd += additionalSeed * seed; } address winnerAddress = bets[line][msg.value][rnd % line]; uint winnerAmount = line * msg.value * 9 / 10; uint transactionalCost = line * msg.value / 10; address(uint160(winnerAddress)).transfer(winnerAmount); payInTokens(winnerAddress, winnerAmount); emit NewJackpotWinner(line, msg.value, winnerAmount, winnerAddress); payFounders(transactionalCost); delete bets[line][msg.value]; seed = additionalSeed; } function deserializeUint32(bytes memory data) private pure returns (uint) { uint32 res = 0; for (uint i = 0; i < 4; i++) { uint32 temp = uint32(uint8(data[i])); temp <<= 8 * i; res ^= temp; } return uint(res); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"ownerAddress","type":"address"},{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address[]","name":"_founders","type":"address[]"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newCoolDown","type":"uint256"}],"name":"ChangeBunchCyclesLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newCost","type":"uint256"}],"name":"ChangeRegistrationCost","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newTokenAddress","type":"address"}],"name":"ChangeTokenAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"useTokenPayment","type":"bool"}],"name":"ChangeUseTokenPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"line","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"betSize","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"jackpot","type":"uint256"},{"indexed":false,"internalType":"address","name":"winnerAddress","type":"address"}],"name":"NewJackpotWinner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"address","name":"referrer","type":"address"},{"indexed":true,"internalType":"uint256","name":"userId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"referrerId","type":"uint256"}],"name":"Registration","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"matrixId","type":"uint256"}],"name":"SkipMatrix","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"userId","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"HpEasy","outputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"matrix_id","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"acceptOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"line","type":"uint256"},{"internalType":"uint256","name":"betSize","type":"uint256"}],"name":"betsLineAddresses","outputs":[{"internalType":"address[]","name":"participants","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"line","type":"uint256"},{"internalType":"uint256","name":"betSize","type":"uint256"}],"name":"betsLineFilling","outputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bunchCyclesLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLimit","type":"uint256"}],"name":"changeBunchCyclesLimit","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newCost","type":"uint256"}],"name":"changeRegistrationCost","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newTokenAddress","type":"address"}],"name":"changeTokenAddress","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"changeUseTokenPayment","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"isUserExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"jackpotQueue","outputs":[{"internalType":"bool","name":"is_eth_paid","type":"bool"},{"internalType":"bool","name":"is_tokens_paid","type":"bool"},{"internalType":"uint256","name":"line","type":"uint256"},{"internalType":"uint256","name":"bet_size","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"line","type":"uint256"}],"name":"joinJackpot","outputs":[{"internalType":"string","name":"status","type":"string"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"lastHpEasyId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastMatrixId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastUserId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"matrices","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"referrals_cnt","type":"uint256"},{"internalType":"uint256","name":"matrix_referrer","type":"uint256"},{"internalType":"address","name":"direct_referrer","type":"address"},{"internalType":"uint256","name":"from_hpeasy","type":"uint256"},{"internalType":"uint256","name":"cycles","type":"uint256"},{"internalType":"uint256","name":"bunch_cycles","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"matrixId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"name":"matrixReferrals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"newOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"paymentQueue","outputs":[{"internalType":"bool","name":"is_eth_paid","type":"bool"},{"internalType":"bool","name":"is_tokens_paid","type":"bool"},{"internalType":"uint256","name":"matrix_to_renew","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"purchaseHpEasyPosition","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"receiveTransfer","outputs":[{"internalType":"string","name":"status","type":"string"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"regCost","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"referrer","type":"address"}],"name":"register","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"matrixToRenew","type":"uint256"}],"name":"renewMatrix","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"skippedHpEasysOffset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFunds","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"useTokenPayment","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"users","outputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"uint256","name":"matrices_cnt","type":"uint256"},{"internalType":"uint256","name":"current_matrix","type":"uint256"},{"internalType":"uint256","name":"last_matrix","type":"uint256"},{"internalType":"uint256","name":"hpeasy_cooldown_time","type":"uint256"},{"internalType":"uint256","name":"hpeasy_cooldown_num","type":"uint256"},{"internalType":"uint256","name":"direct_referrals","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"usersById","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"usersMatrices","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]
Contract Creation Code
60c0604052600a608081905269090a08a82a6b2408aa8960b31b60a09081526200002d91600291906200053f565b5060016005819055600681905560078190556008805460ff191682179055600c553480156200005b57600080fd5b5060405162003cbe38038062003cbe833981810160405260608110156200008157600080fd5b81516020830151604080850180519151939592948301929184640100000000821115620000ad57600080fd5b908301906020820185811115620000c357600080fd5b8251866020820283011164010000000082111715620000e157600080fd5b82525081516020918201928201910280838360005b8381101562000110578181015183820152602001620000f6565b50505050919091016040525050600080546001600160a01b0319166001600160a01b038716179055505080516200014f90600b906020840190620005c4565b5081600460006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604051806101000160405280600554815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250600d6000856001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015590505082600e6000600554815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055506040518061010001604052806005548152602001846001600160a01b03168152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815250600f600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816004015560808201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816006015560c0820151816007015560e0820151816008015590505060065460106000600d6000876001600160a01b03166001600160a01b031681526020019081526020016000206000015481526020019081526020016000206000600d6000876001600160a01b03166001600160a01b0316815260200190815260200160002060020154815260200190815260200160002081905550600d6000846001600160a01b03166001600160a01b03168152602001908152602001600020600201600081548092919060010191905055506000600d6000856001600160a01b03166001600160a01b03168152602001908152602001600020600301819055506040518060400160405280846001600160a01b0316815260200160065481525060116000600754815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b031602179055506020820151816001015590505060076000815480929190600101919050555060066000815480929190600101919050555060056000815480929190600101919050555066b1a2bc2ec500006003819055506006600a8190555050505062000662565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200058257805160ff1916838001178555620005b2565b82800160010185558215620005b2579182015b82811115620005b257825182559160200191906001019062000595565b50620005c09291506200062a565b5090565b8280548282559060005260206000209081019282156200061c579160200282015b828111156200061c57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620005e5565b50620005c092915062000641565b5b80821115620005c057600081556001016200062b565b5b80821115620005c05780546001600160a01b031916815560010162000642565b61364c80620006726000396000f3fe6080604052600436106101f95760003560e01c806358da85ad1161010d578063990dc9db116100a0578063b1240ed11161006f578063b1240ed1146108be578063c9cda91f146108d3578063d4ee1d9014610906578063f2fde38b1461091b578063f6c824591461094e576101f9565b8063990dc9db146107a75780639d76ea58146107e0578063a87430ba146107f5578063afe8a05714610871576101f9565b8063730ea9e1116100dc578063730ea9e11461070457806379ba509714610719578063893c130c1461072e5780638da5cb5b14610792576101f9565b806358da85ad146105cf5780635a7138fd1461064f5780636341203114610664578063665527ee146106e7576101f9565b806331ff6f7c116101905780634420e4861161015f5780634420e486146104e657806344ef7c3f1461050c578063509222cd1461053c5780635336f2001461056f578063557b1e0b1461059f576101f9565b806331ff6f7c14610444578063348d44871461046157806339c8326614610476578063426b5382146104a0576101f9565b80631de2e40d116101cc5780631de2e40d146103d25780632a3d72cc146103dc5780632d1fb0a7146103f157806331a18f7d1461042f576101f9565b806306fdde03146101fe5780630910a390146102885780630c3aab9f146102af57806311142de814610377575b600080fd5b34801561020a57600080fd5b50610213610963565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024d578181015183820152602001610235565b50505050905090810190601f16801561027a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029457600080fd5b5061029d6109ee565b60408051918252519081900360200190f35b3480156102bb57600080fd5b50610213600480360360608110156102d257600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561030257600080fd5b82018360208201111561031457600080fd5b8035906020019184600183028401116401000000008311171561033657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506109f4945050505050565b34801561038357600080fd5b506103aa6004803603602081101561039a57600080fd5b50356001600160a01b031661109d565b6040805194151585529215156020850152838301919091526060830152519081900360800190f35b6103da6110ca565b005b3480156103e857600080fd5b5061029d611291565b3480156103fd57600080fd5b5061041b6004803603602081101561041457600080fd5b5035611297565b604080519115158252519081900360200190f35b34801561043b57600080fd5b5061029d611344565b6103da6004803603602081101561045a57600080fd5b503561134a565b34801561046d57600080fd5b5061029d611570565b34801561048257600080fd5b5061041b6004803603602081101561049957600080fd5b5035611576565b3480156104ac57600080fd5b506104ca600480360360208110156104c357600080fd5b50356115ce565b604080516001600160a01b039092168252519081900360200190f35b6103da600480360360208110156104fc57600080fd5b50356001600160a01b03166115e9565b34801561051857600080fd5b5061029d6004803603604081101561052f57600080fd5b50803590602001356117b6565b34801561054857600080fd5b5061041b6004803603602081101561055f57600080fd5b50356001600160a01b03166117da565b34801561057b57600080fd5b5061029d6004803603604081101561059257600080fd5b50803590602001356117f7565b3480156105ab57600080fd5b5061029d600480360360408110156105c257600080fd5b5080359060200135611814565b3480156105db57600080fd5b506105ff600480360360408110156105f257600080fd5b5080359060200135611831565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561063b578181015183820152602001610623565b505050509050019250505060405180910390f35b34801561065b57600080fd5b5061029d6118a6565b34801561067057600080fd5b5061068e6004803603602081101561068757600080fd5b50356118ac565b60405180898152602001886001600160a01b03168152602001878152602001868152602001856001600160a01b031681526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610213600480360360208110156106fd57600080fd5b50356118fc565b34801561071057600080fd5b5061041b611ba9565b34801561072557600080fd5b506103da611c12565b34801561073a57600080fd5b506107616004803603602081101561075157600080fd5b50356001600160a01b0316611c8d565b6040805194151585529215156020850152838301919091526001600160a01b03166060830152519081900360800190f35b34801561079e57600080fd5b506104ca611cc3565b3480156107b357600080fd5b5061041b600480360360408110156107ca57600080fd5b506001600160a01b038135169060200135611cd2565b3480156107ec57600080fd5b506104ca611d72565b34801561080157600080fd5b506108286004803603602081101561081857600080fd5b50356001600160a01b0316611d81565b604080519889526001600160a01b039097166020890152878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34801561087d57600080fd5b5061089b6004803603602081101561089457600080fd5b5035611dce565b604080516001600160a01b03909316835260208301919091528051918290030190f35b3480156108ca57600080fd5b5061029d611df3565b3480156108df57600080fd5b5061041b600480360360208110156108f657600080fd5b50356001600160a01b0316611df9565b34801561091257600080fd5b506104ca611e6a565b34801561092757600080fd5b506103da6004803603602081101561093e57600080fd5b50356001600160a01b0316611e79565b34801561095a57600080fd5b5061041b611eb2565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156109e65780601f106109bb576101008083540402835291602001916109e6565b820191906000526020600020905b8154815290600101906020018083116109c957829003601f168201915b505050505081565b60075481565b6004546060906001600160a01b03163314610a46576040805162461bcd60e51b815260206004820152600d60248201526c2ab735b737bbb7103a37b5b2b760991b604482015290519081900360640190fd5b6060825160001415610dba576003548414610a9d576040805162461bcd60e51b815260206004820152601260248201527115dc9bdb99c81d1bdad95b88185b5bdd5b9d60721b604482015290519081900360640190fd5b6001600160a01b038516600090815260126020526040902054610100900460ff1615610b10576040805162461bcd60e51b815260206004820152601960248201527f746f6b656e7320706169642c20455448206177616974696e6700000000000000604482015290519081900360640190fd5b610b19856117da565b610bed576001600160a01b03851660009081526012602052604090205460ff16610b81576001600160a01b038516600090815260126020908152604091829020805461ff0019166101001790558151606081018352828152919061346f908301399050610be8565b6001600160a01b038086166000908152601260205260409020805460ff1916815560020154610bb291879116611ebb565b5060408051808201909152601981527f526567697374726174696f6e20697320636f6d706c657465640000000000000060208201525b610db5565b6001600160a01b0385166000908152600d602052604090206002015460961180610c3157506001600160a01b03851660009081526012602052604090206001015415155b610c7b576040805162461bcd60e51b81526020600482015260166024820152751b585e080c4d4c081a1c19585cde48185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b03851660009081526012602052604090205460ff16610ce1576001600160a01b038516600090815260126020908152604091829020805461ff001916610100179055815160608101909252603e808352906135b9908301399050610db5565b6001600160a01b0385166000908152601260205260409020805460ff191681556001015415610d7e576001600160a01b038516600090815260126020526040902060010154610d319086906120d1565b506001600160a01b03841660009081526012602081815260408084206001019390935582518084019093529082527114995b995dc81a5cc818dbdb5c1b195d195960721b90820152610db5565b610d8785612142565b50604080518082019091526015815274141d5c98da185cd9481a5cc818dbdb5c1b195d1959605a1b60208201525b611093565b6001600160a01b038516600090815260146020526040902054610100900460ff1615610e175760405162461bcd60e51b81526004018080602001828103825260318152602001806135526031913960400191505060405180910390fd5b6000610e22846122a4565b6001600160a01b03871660009081526014602052604090205490915060ff16610fa7578466038d7ea4c680001480610e605750846611c37937e08000145b80610e7157508466354a6ba7a18000145b80610e8257508466b1a2bc2ec50000145b80610e94575084670214e8348c4f0000145b80610ea65750846706f05b59d3b20000145b610eea576040805162461bcd60e51b815260206004820152601060248201526f4e6f2073756368206265742073697a6560801b604482015290519081900360640190fd5b80600a1480610ef95750806032145b80610f0457508060c8145b80610f105750806101f4145b610f54576040805162461bcd60e51b815260206004820152601060248201526f4e6f207375636820626574206c696e6560801b604482015290519081900360640190fd5b6001600160a01b038616600090815260146020908152604091829020805461ff00191661010017815560018101849055600201879055815160608101909252602e80835290613524908301399150611091565b6001600160a01b03861660009081526014602052604090206001015481148015610feb57506001600160a01b03861660009081526014602052604090206002015485145b611035576040805162461bcd60e51b815260206004820152601660248201527577726f6e67206c696e65206f72206265742073697a6560501b604482015290519081900360640190fd5b6001600160a01b0386166000908152601460205260409020600181015460029091015461106291906122e8565b6001600160a01b0387166000908152601460205260408120805461ffff19168155600181018290556002015591505b505b90505b9392505050565b60146020526000908152604090208054600182015460029092015460ff8083169361010090930416919084565b6003543414611120576040805162461bcd60e51b815260206004820152601960248201527f6e6f7420636f727265637420707572636861736520636f737400000000000000604482015290519081900360640190fd5b611129336117da565b61116c576040805162461bcd60e51b815260206004820152600f60248201526e75736572206e6f742065786973747360881b604482015290519081900360640190fd5b336000908152600d60205260409020600201546096116111cc576040805162461bcd60e51b81526020600482015260166024820152751b585e080c4d4c081a1c19585cde48185b1b1bddd95960521b604482015290519081900360640190fd5b3360009081526012602052604090205460ff161561121b5760405162461bcd60e51b81526004018080602001828103825260248152602001806135006024913960400191505060405180910390fd5b60085460ff166112335761122e33612142565b61128f565b33600090815260126020526040902054610100900460ff1661126e57336000908152601260205260409020805460ff1916600117905561128f565b336000818152601260205260409020805461ff001916905561128f90612142565b565b60065481565b600080546001600160a01b031633146112af57600080fd5b60008211611304576040805162461bcd60e51b815260206004820181905260248201527f7468652076616c7565206d7573742062652067726561746572207468616e2030604482015290519081900360640190fd5b600a8290556040805183815290517fc70250db233a49507c4e64006e2a3adbbeffccb661eb803dd0af7097c614db199181900360200190a1506001919050565b60035481565b6003543414611399576040805162461bcd60e51b81526020600482015260166024820152751b9bdd0818dbdc9c9958dd081c995b995dc818dbdcdd60521b604482015290519081900360640190fd5b600a546000828152600f602052604090206008015410156113f4576040805162461bcd60e51b815260206004820152601060248201526f6d61747269782069732061637469766560801b604482015290519081900360640190fd5b6113fd336117da565b611440576040805162461bcd60e51b815260206004820152600f60248201526e75736572206e6f742065786973747360881b604482015290519081900360640190fd5b3360009081526012602052604090205460ff161561148f5760405162461bcd60e51b815260040180806020018281038252602b815260200180613444602b913960400191505060405180910390fd5b6000818152600f60205260409020600101546001600160a01b031633146114f1576040805162461bcd60e51b81526020600482015260116024820152700dcdee840eae6cae44ee640dac2e8e4d2f607b1b604482015290519081900360640190fd5b60085460ff1661150a5761150533826120d1565b61156d565b33600090815260126020526040902054610100900460ff1661154b57336000908152601260205260409020805460ff1916600190811782550181905561156d565b336000818152601260205260409020805461ff001916905561156d90826120d1565b50565b60055481565b600080546001600160a01b0316331461158e57600080fd5b60038290556040805183815290517fc8955dd66b05754a6d215a0b011ce2d49ff30792074a3a1a95ae2af0bac00c249181900360200190a1506001919050565b600e602052600090815260409020546001600160a01b031681565b600354341461163f576040805162461bcd60e51b815260206004820152601d60248201527f6e6f7420636f727265637420726567697374726174696f6e20636f7374000000604482015290519081900360640190fd5b611648336117da565b15611688576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b611691816117da565b6116d8576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b3360009081526012602052604090205460ff16156117275760405162461bcd60e51b81526004018080602001828103825260368152602001806135836036913960400191505060405180910390fd5b60085460ff1661173b576115053382611ebb565b33600090815260126020526040902054610100900460ff1661179457336000908152601260205260409020805460ff1916600117815560020180546001600160a01b0383166001600160a01b031990911617905561156d565b336000818152601260205260409020805461ff001916905561156d9082611ebb565b6000828152600f602090815260408083208484526003019091529020545b92915050565b6001600160a01b03166000908152600d6020526040902054151590565b600091825260136020908152604080842092845291905290205490565b601060209081526000928352604080842090915290825290205481565b600082815260136020908152604080832084845282529182902080548351818402810184019094528084526060939283018282801561189957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161187b575b5050505050905092915050565b600a5481565b600f602052600090815260409020805460018201546002830154600484015460058501546006860154600787015460089097015495966001600160a01b0395861696949593949290931692909188565b3360009081526014602052604090205460609060ff161561194e5760405162461bcd60e51b81526004018080602001828103825260218152602001806134df6021913960400191505060405180910390fd5b60085460609060ff1661196c5761196583346122e8565b90506117d4565b33600090815260146020526040902054610100900460ff16611adf573466038d7ea4c6800014806119a35750346611c37937e08000145b806119b457503466354a6ba7a18000145b806119c557503466b1a2bc2ec50000145b806119d7575034670214e8348c4f0000145b806119e95750346706f05b59d3b20000145b611a2d576040805162461bcd60e51b815260206004820152601060248201526f4e6f2073756368206265742073697a6560801b604482015290519081900360640190fd5b82600a1480611a3c5750826032145b80611a4757508260c8145b80611a535750826101f4145b611a97576040805162461bcd60e51b815260206004820152601060248201526f4e6f207375636820626574206c696e6560801b604482015290519081900360640190fd5b336000908152601460209081526040918290206001808201879055815460ff1916178155346002909101558151606081019092526030808352906134af9083013990506117d4565b3360009081526014602052604090206001015483148015611b1157503360009081526014602052604090206002015434145b611b5b576040805162461bcd60e51b815260206004820152601660248201527577726f6e67206c696e65206f72206265742073697a6560501b604482015290519081900360640190fd5b3360009081526014602052604090206001810154600290910154611b7f91906122e8565b336000908152601460205260408120805461ffff1916815560018101829055600201559392505050565b600080546001600160a01b03163314611bc157600080fd5b6008805460ff19811660ff918216151791829055604080519290911615158252517f197bfab08988d34e9b168bb2c72a48b13b14c7d4a8138a03222d334c32d4b2bf9181900360200190a150600190565b6001546001600160a01b03163314611c2957600080fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60126020526000908152604090208054600182015460029092015460ff808316936101009093041691906001600160a01b031684565b6000546001600160a01b031681565b600080546001600160a01b03163314611cea57600080fd5b47821115611d32576040805162461bcd60e51b815260206004820152601060248201526f4e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b6040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015611d68573d6000803e3d6000fd5b5060019392505050565b6004546001600160a01b031681565b600d602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460079097015495966001600160a01b0390951695939492939192909188565b601160205260009081526040902080546001909101546001600160a01b039091169082565b60095481565b600080546001600160a01b03163314611e1157600080fd5b600480546001600160a01b0384166001600160a01b0319909116811790915560408051918252517fd748f8ce408cb6a8eb253867241dbebc4f3071c25189bc56cb9bd79378e82b579181900360200190a1506001919050565b6001546001600160a01b031681565b6000546001600160a01b03163314611e9057600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60085460ff1681565b6040518061010001604052806005548152602001826001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250600d6000846001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015590505081600e6000600554815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600560008154809291906001019190505550600d6000826001600160a01b03166001600160a01b031681526020019081526020016000206007016000815480929190600101919050555061203e816064600354600a028161203857fe5b046123a6565b6120566064600354600a028161205057fe5b0461243e565b61206460065483600061254d565b6120708282600061276b565b6001600160a01b038083166000818152600d60209081526040808320549486168084529281902054815190815290519293927f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a929181900390910190a45050565b6001600160a01b038083166000908152600d6020526040902060010154600354612105929190911690606490600a02612038565b6121176064600354600a028161205057fe5b6121238183600161254d565b6000818152600f602052604090206004015461213e90612b46565b5050565b6001600160a01b0381166000908152600d60205260409020600501546201517f1942011115612196576001600160a01b0381166000908152600d602052604090204260058201556001600690910155612223565b6001600160a01b0381166000908152600d6020526040902060060154600311156121e1576001600160a01b0381166000908152600d6020526040902060060180546001019055612223565b6040805162461bcd60e51b81526020600482015260126024820152710c8d1a081c1d5c98da185cd9481b1a5b5a5d60721b604482015290519081900360640190fd5b6001600160a01b038082166000908152600d6020526040902060010154600354612257929190911690606490600a02612038565b6122696064600354600a028161205057fe5b61227760065482600061254d565b6001600160a01b038082166000908152600d6020526040902060019081015461156d92849291169061276b565b600080805b60048110156122db5760008482815181106122c057fe5b016020015160f81c600883021b9290921891506001016122a9565b5063ffffffff1692915050565b600082815260136020908152604080832084845280835290832080546001810182558185528385200180546001600160a01b03191633179055928490529052546060908314156123755761233b836130eb565b5060408051808201909152601b81527f54686973206c696e652077696e6e657220697320646566696e6564000000000060208201526117d4565b50604080518082019091526014815273165bdd5c8818995d081a5cc81858d8d95c1d195960621b60208201526117d4565b6001600160a01b0382166000818152600d6020526040808220549051849391927f7fa9aafeb8bb803d77de5d84bc2f2edbd842ca91b20cd5020aa21dfe26ab0be991a46040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561241f573d6000803e3d6000fd5b5060085460ff161561213e57612435828261321a565b61213e57600080fd5b6000805b600b548110156125485760048110156124635760646014840204915061246d565b6064600584020491505b816000600b838154811061247d57fe5b60009182526020822001546040516001600160a01b03909116917f7fa9aafeb8bb803d77de5d84bc2f2edbd842ca91b20cd5020aa21dfe26ab0be991a4600b81815481106124c757fe5b60009182526020822001546040516001600160a01b039091169184156108fc02918591818181858888f19350505050158015612507573d6000803e3d6000fd5b5060085460ff16156125405761253e600b828154811061252357fe5b6000918252602090912001546001600160a01b03168361321a565b505b600101612442565b505050565b6040805180820182526001600160a01b038481168252602080830187815260078054600090815260118452868120955186546001600160a01b031916951694909417855590516001948501558054909301909255858152600f9091522054156125f65780156125cd576000838152600f60205260408120600801556125f6565b6000838152600f6020526040902060078101805460019081019091556008909101805490910190555b60026007548161260257fe5b06612548576002600754111561274c576000600160026007548161262257fe5b04600954010390505b600a546000828152601160209081526040808320600101548352600f90915290206008015410801590612672575060026007540360095460026007548161266e57fe5b0401105b156126d05760008181526011602090815260409182902060010154825190815291517f6a24ac15712084204f9802a3c7e3004967d3fe3cde124d7fd218c0d3974b2ca39281900390910190a16009805460019081019091550161262b565b6000818152601160205260409020546126f1906001600160a01b03166132a8565b60008181526011602052604081206001810154905461271b926001600160a01b039091169061254d565b6000818152601160209081526040808320600101548352600f90915290206004015461274690612b46565b50612548565b600054612761906001600160a01b03166132a8565b6125486000612b46565b6001600160a01b0382166127b1576001600052600e6020527fa7c5ba7114a813b50159add3a36832908dc83db71d0b9a24c2ad0f83be958207546001600160a01b031691505b6001600160a01b0382166000908152600d60209081526040808320805484526010835281842060039091015484529091528120546127f29060016004613372565b9050806128ba576001600160a01b0383166000908152600d602052604090206002810154600390910154600019909101141561286d576040805162461bcd60e51b8152602060048201526015602482015274185b1b081b585d1c9a58d95cc8185c9948199d5b1b605a1b604482015290519081900360640190fd5b6001600160a01b0383166000908152600d602090815260408083206003810180546001908101918290559154855260108452828520908552909252909120546128b7916004613372565b90505b6128c381612b46565b6040518061010001604052806006548152602001856001600160a01b0316815260200160008152602001828152602001846001600160a01b03168152602001838152602001600081526020016000815250600f600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816004015560808201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816006015560c0820151816007015560e0820151816008015590505060065460106000600d6000886001600160a01b03166001600160a01b031681526020019081526020016000206000015481526020019081526020016000206000600d6000886001600160a01b03166001600160a01b0316815260200190815260200160002060020154815260200190815260200160002081905550600d6000856001600160a01b03166001600160a01b0316815260200190815260200160002060020160008154809291906001019190505550600654600d6000866001600160a01b03166001600160a01b031681526020019081526020016000206004018190555080600f6000600654815260200190815260200160002060040181905550600660008154809291906001019190505550600160065403600f60008381526020019081526020016000206003016000600f600085815260200190815260200160002060020154815260200190815260200160002081905550600f60008281526020019081526020016000206002016000815480929190600101919050555050505050565b80612b81576001600052600f6020526000805160206135f783398151915254600354611505916001600160a01b031690606490601902612038565b6000818152600f60209081526040808320600101546001600160a01b03168352600d9091528120600701548190839060041180612bd15750600a546000828152600f602052604090206008015410155b15612bee576103e860035460190281612be657fe5b049250612c3b565b6000818152600f6020526040902060010154600354612c1d916001600160a01b0316906103e890601902612038565b6000818152600f60205260409020600101546001600160a01b031691505b6000818152600f602052604090206004015480612cb9576001600160a01b03831615612c7a57612c75836103e860035460e1028161203857fe5b612cb0565b6001600052600f6020526000805160206135f783398151915254600354612cb0916001600160a01b031690606490601902612038565b5050505061156d565b6000818152600f60209081526040808320600101546001600160a01b03168352600d90915290206007015460041180612d055750600a546000828152600f602052604090206008015410155b15612d2357606460035460050281612d1957fe5b0484019350612d75565b6000818152600f6020526040902060010154600354612d54916001600160a01b0316906064906005020486016123a6565b6000818152600f60205260408120600101549094506001600160a01b031692505b6000818152600f602052604090206004015480612dfc576001600160a01b03841615612dbc57612db784866103e860035460af0281612db057fe5b04016123a6565b612df2565b6001600052600f6020526000805160206135f783398151915254600354612df2916001600160a01b031690606490601902612038565b505050505061156d565b6000818152600f60209081526040808320600101546001600160a01b03168352600d90915290206007015460041180612e485750600a546000828152600f602052604090206008015410155b15612e67576103e8600354604b0281612e5d57fe5b0485019450612eba565b6000818152600f6020526040902060010154600354612e99916001600160a01b0316906103e890604b020487016123a6565b6000818152600f60205260408120600101549095506001600160a01b031693505b6000818152600f602052604090206004015480612f3a576001600160a01b03851615612ef957612ef485876064600354600a0281612db057fe5b612f2f565b6001600052600f6020526000805160206135f783398151915254600354612f2f916001600160a01b031690606490601902612038565b50505050505061156d565b6000818152600f60209081526040808320600101546001600160a01b03168352600d90915290206007015460041180612f865750600a546000828152600f602052604090206008015410155b15612fa4576064600354600a0281612f9a57fe5b0486019550612ff6565b6000818152600f6020526040902060010154600354612fd5916001600160a01b031690606490600a020488016123a6565b6000818152600f60205260408120600101549096506001600160a01b031694505b60646003546019028161300557fe5b048614156130d2575b6000818152600f60209081526040808320600101546001600160a01b03168352600d9091529020600701546004118061305a5750600a546000828152600f602052604090206008015410155b156130a85780613091576001600052600f6020526000805160206135f783398151915254612f2f906001600160a01b0316876123a6565b6000908152600f602052604090206004015461300e565b6000818152600f60205260409020600101546130cd906001600160a01b0316876123a6565b6130e2565b85156130e2576130e285876123a6565b50505050505050565b60001943014060005b8281101561310757600c548202016130f4565b6000838152601360209081526040808320348452909152812084838161312957fe5b068154811061313457fe5b60009182526020822001546040516001600160a01b039091169250600a348702600981028290049391900491849184156108fc02918591818181858888f19350505050158015613188573d6000803e3d6000fd5b50613193838361321a565b50604080518781523460208201528082018490526001600160a01b038516606082015290517f7296e398d52f324d467f90024fac6fcecc0dd7419bafa1203f67c20a0c9761c49181900360800190a16131eb8161243e565b6000868152601360209081526040808320348452909152812061320d91613411565b505050600c919091555050565b600480546040805163a9059cbb60e01b81526001600160a01b03868116948201949094526024810185905290516000939092169163a9059cbb9160448082019260209290919082900301818787803b15801561327557600080fd5b505af1158015613289573d6000803e3d6000fd5b505050506040513d602081101561329f57600080fd5b50519392505050565b6064600354601e02816132b757fe5b6001600160a01b0383166000818152600d602052604080822054905194909304937f7fa9aafeb8bb803d77de5d84bc2f2edbd842ca91b20cd5020aa21dfe26ab0be99190a4806001600160a01b03166108fc6064600354601e028161331857fe5b049081150290604051600060405180830381858888f19350505050158015613344573d6000803e3d6000fd5b5060085460ff161561156d57613369816064600354601e028161336357fe5b0461321a565b61156d57600080fd5b60008183111561338457506000611096565b6000848152600f6020526040902060020154600411156133a5575082611096565b600183015b8281116134065760005b6000868152600f602090815260408083208484526003019091528120546133df906001880185613372565b905080156133f1579250611096915050565b50600101600481106133b457506001016133aa565b506000949350505050565b508054600082559060005260206000209081019061156d91905b8082111561343f576000815560010161342b565b509056fe616c7265616479207061696420696e204554482c20746f6b656e207061796d656e74206177616974696e67546f6b656e732061636365707465642e2057616974696e6720455448207061796d656e7420666f7220726567697374726174696f6e20636f6d706c6574696f6e57616974696e6720746f6b656e207061796d656e7420666f72206a61636b706f742062657420616363657074616e6365616c72656164792070616964204554482c20746f6b656e73206177616974696e67616c7265616479207061696420696e204554482c20746f6b656e73206177616974696e6757616974696e6720455448207061796d656e7420666f72206a61636b706f742062657420616363657074616e6365616c72656164792070616964206a61636b706f7420636f737420696e20746f6b656e732c20455448206177616974696e67616c7265616479207061696420726567697374726174696f6e20636f737420696e204554482c20746f6b656e73206177616974696e67546f6b656e732061636365707465642e2057616974696e6720455448207061796d656e7420666f72204870456173792070757263686173652f72656e6577169f97de0d9a84d840042b17d3c6b9638b3d6fd9024c9eb0c7a306a17b49f890a2646970667358221220b6984df243ad098ca5cd593ac85ae8201991fde9b57a71fcb8279ea96221bbca64736f6c634300060c0033000000000000000000000000803c698f680e702609fb09f7782bea2ccd3cbda00000000000000000000000009e43f77f2484d2b9b1e2f88b2ce186147bcf459000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000008000000000000000000000000b01e70b4d1775335364d16467009062f2259ec6c0000000000000000000000001ff60a59e4e349c55cf133cc95a9a6cf3a5085f7000000000000000000000000115a844fabb3d725f7da4aaf1bc78b196faaff5700000000000000000000000007a778d40f87977c65f74983e731c32a6d8b4b25000000000000000000000000d8835cb071aaf9b56b1ad296415e5e3a17a9ad8e0000000000000000000000007b820202e85ba5927d77999c205f1d90a139ef1f000000000000000000000000e7b3c2c91f80517ddeff6ad4c9701e28a192f02f000000000000000000000000e8bb290eead75e1b4f616bf0c99b7f60cf20ba93
Deployed Bytecode
0x6080604052600436106101f95760003560e01c806358da85ad1161010d578063990dc9db116100a0578063b1240ed11161006f578063b1240ed1146108be578063c9cda91f146108d3578063d4ee1d9014610906578063f2fde38b1461091b578063f6c824591461094e576101f9565b8063990dc9db146107a75780639d76ea58146107e0578063a87430ba146107f5578063afe8a05714610871576101f9565b8063730ea9e1116100dc578063730ea9e11461070457806379ba509714610719578063893c130c1461072e5780638da5cb5b14610792576101f9565b806358da85ad146105cf5780635a7138fd1461064f5780636341203114610664578063665527ee146106e7576101f9565b806331ff6f7c116101905780634420e4861161015f5780634420e486146104e657806344ef7c3f1461050c578063509222cd1461053c5780635336f2001461056f578063557b1e0b1461059f576101f9565b806331ff6f7c14610444578063348d44871461046157806339c8326614610476578063426b5382146104a0576101f9565b80631de2e40d116101cc5780631de2e40d146103d25780632a3d72cc146103dc5780632d1fb0a7146103f157806331a18f7d1461042f576101f9565b806306fdde03146101fe5780630910a390146102885780630c3aab9f146102af57806311142de814610377575b600080fd5b34801561020a57600080fd5b50610213610963565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561024d578181015183820152602001610235565b50505050905090810190601f16801561027a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561029457600080fd5b5061029d6109ee565b60408051918252519081900360200190f35b3480156102bb57600080fd5b50610213600480360360608110156102d257600080fd5b6001600160a01b038235169160208101359181019060608101604082013564010000000081111561030257600080fd5b82018360208201111561031457600080fd5b8035906020019184600183028401116401000000008311171561033657600080fd5b91908080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152509295506109f4945050505050565b34801561038357600080fd5b506103aa6004803603602081101561039a57600080fd5b50356001600160a01b031661109d565b6040805194151585529215156020850152838301919091526060830152519081900360800190f35b6103da6110ca565b005b3480156103e857600080fd5b5061029d611291565b3480156103fd57600080fd5b5061041b6004803603602081101561041457600080fd5b5035611297565b604080519115158252519081900360200190f35b34801561043b57600080fd5b5061029d611344565b6103da6004803603602081101561045a57600080fd5b503561134a565b34801561046d57600080fd5b5061029d611570565b34801561048257600080fd5b5061041b6004803603602081101561049957600080fd5b5035611576565b3480156104ac57600080fd5b506104ca600480360360208110156104c357600080fd5b50356115ce565b604080516001600160a01b039092168252519081900360200190f35b6103da600480360360208110156104fc57600080fd5b50356001600160a01b03166115e9565b34801561051857600080fd5b5061029d6004803603604081101561052f57600080fd5b50803590602001356117b6565b34801561054857600080fd5b5061041b6004803603602081101561055f57600080fd5b50356001600160a01b03166117da565b34801561057b57600080fd5b5061029d6004803603604081101561059257600080fd5b50803590602001356117f7565b3480156105ab57600080fd5b5061029d600480360360408110156105c257600080fd5b5080359060200135611814565b3480156105db57600080fd5b506105ff600480360360408110156105f257600080fd5b5080359060200135611831565b60408051602080825283518183015283519192839290830191858101910280838360005b8381101561063b578181015183820152602001610623565b505050509050019250505060405180910390f35b34801561065b57600080fd5b5061029d6118a6565b34801561067057600080fd5b5061068e6004803603602081101561068757600080fd5b50356118ac565b60405180898152602001886001600160a01b03168152602001878152602001868152602001856001600160a01b031681526020018481526020018381526020018281526020019850505050505050505060405180910390f35b610213600480360360208110156106fd57600080fd5b50356118fc565b34801561071057600080fd5b5061041b611ba9565b34801561072557600080fd5b506103da611c12565b34801561073a57600080fd5b506107616004803603602081101561075157600080fd5b50356001600160a01b0316611c8d565b6040805194151585529215156020850152838301919091526001600160a01b03166060830152519081900360800190f35b34801561079e57600080fd5b506104ca611cc3565b3480156107b357600080fd5b5061041b600480360360408110156107ca57600080fd5b506001600160a01b038135169060200135611cd2565b3480156107ec57600080fd5b506104ca611d72565b34801561080157600080fd5b506108286004803603602081101561081857600080fd5b50356001600160a01b0316611d81565b604080519889526001600160a01b039097166020890152878701959095526060870193909352608086019190915260a085015260c084015260e083015251908190036101000190f35b34801561087d57600080fd5b5061089b6004803603602081101561089457600080fd5b5035611dce565b604080516001600160a01b03909316835260208301919091528051918290030190f35b3480156108ca57600080fd5b5061029d611df3565b3480156108df57600080fd5b5061041b600480360360208110156108f657600080fd5b50356001600160a01b0316611df9565b34801561091257600080fd5b506104ca611e6a565b34801561092757600080fd5b506103da6004803603602081101561093e57600080fd5b50356001600160a01b0316611e79565b34801561095a57600080fd5b5061041b611eb2565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156109e65780601f106109bb576101008083540402835291602001916109e6565b820191906000526020600020905b8154815290600101906020018083116109c957829003601f168201915b505050505081565b60075481565b6004546060906001600160a01b03163314610a46576040805162461bcd60e51b815260206004820152600d60248201526c2ab735b737bbb7103a37b5b2b760991b604482015290519081900360640190fd5b6060825160001415610dba576003548414610a9d576040805162461bcd60e51b815260206004820152601260248201527115dc9bdb99c81d1bdad95b88185b5bdd5b9d60721b604482015290519081900360640190fd5b6001600160a01b038516600090815260126020526040902054610100900460ff1615610b10576040805162461bcd60e51b815260206004820152601960248201527f746f6b656e7320706169642c20455448206177616974696e6700000000000000604482015290519081900360640190fd5b610b19856117da565b610bed576001600160a01b03851660009081526012602052604090205460ff16610b81576001600160a01b038516600090815260126020908152604091829020805461ff0019166101001790558151606081018352828152919061346f908301399050610be8565b6001600160a01b038086166000908152601260205260409020805460ff1916815560020154610bb291879116611ebb565b5060408051808201909152601981527f526567697374726174696f6e20697320636f6d706c657465640000000000000060208201525b610db5565b6001600160a01b0385166000908152600d602052604090206002015460961180610c3157506001600160a01b03851660009081526012602052604090206001015415155b610c7b576040805162461bcd60e51b81526020600482015260166024820152751b585e080c4d4c081a1c19585cde48185b1b1bddd95960521b604482015290519081900360640190fd5b6001600160a01b03851660009081526012602052604090205460ff16610ce1576001600160a01b038516600090815260126020908152604091829020805461ff001916610100179055815160608101909252603e808352906135b9908301399050610db5565b6001600160a01b0385166000908152601260205260409020805460ff191681556001015415610d7e576001600160a01b038516600090815260126020526040902060010154610d319086906120d1565b506001600160a01b03841660009081526012602081815260408084206001019390935582518084019093529082527114995b995dc81a5cc818dbdb5c1b195d195960721b90820152610db5565b610d8785612142565b50604080518082019091526015815274141d5c98da185cd9481a5cc818dbdb5c1b195d1959605a1b60208201525b611093565b6001600160a01b038516600090815260146020526040902054610100900460ff1615610e175760405162461bcd60e51b81526004018080602001828103825260318152602001806135526031913960400191505060405180910390fd5b6000610e22846122a4565b6001600160a01b03871660009081526014602052604090205490915060ff16610fa7578466038d7ea4c680001480610e605750846611c37937e08000145b80610e7157508466354a6ba7a18000145b80610e8257508466b1a2bc2ec50000145b80610e94575084670214e8348c4f0000145b80610ea65750846706f05b59d3b20000145b610eea576040805162461bcd60e51b815260206004820152601060248201526f4e6f2073756368206265742073697a6560801b604482015290519081900360640190fd5b80600a1480610ef95750806032145b80610f0457508060c8145b80610f105750806101f4145b610f54576040805162461bcd60e51b815260206004820152601060248201526f4e6f207375636820626574206c696e6560801b604482015290519081900360640190fd5b6001600160a01b038616600090815260146020908152604091829020805461ff00191661010017815560018101849055600201879055815160608101909252602e80835290613524908301399150611091565b6001600160a01b03861660009081526014602052604090206001015481148015610feb57506001600160a01b03861660009081526014602052604090206002015485145b611035576040805162461bcd60e51b815260206004820152601660248201527577726f6e67206c696e65206f72206265742073697a6560501b604482015290519081900360640190fd5b6001600160a01b0386166000908152601460205260409020600181015460029091015461106291906122e8565b6001600160a01b0387166000908152601460205260408120805461ffff19168155600181018290556002015591505b505b90505b9392505050565b60146020526000908152604090208054600182015460029092015460ff8083169361010090930416919084565b6003543414611120576040805162461bcd60e51b815260206004820152601960248201527f6e6f7420636f727265637420707572636861736520636f737400000000000000604482015290519081900360640190fd5b611129336117da565b61116c576040805162461bcd60e51b815260206004820152600f60248201526e75736572206e6f742065786973747360881b604482015290519081900360640190fd5b336000908152600d60205260409020600201546096116111cc576040805162461bcd60e51b81526020600482015260166024820152751b585e080c4d4c081a1c19585cde48185b1b1bddd95960521b604482015290519081900360640190fd5b3360009081526012602052604090205460ff161561121b5760405162461bcd60e51b81526004018080602001828103825260248152602001806135006024913960400191505060405180910390fd5b60085460ff166112335761122e33612142565b61128f565b33600090815260126020526040902054610100900460ff1661126e57336000908152601260205260409020805460ff1916600117905561128f565b336000818152601260205260409020805461ff001916905561128f90612142565b565b60065481565b600080546001600160a01b031633146112af57600080fd5b60008211611304576040805162461bcd60e51b815260206004820181905260248201527f7468652076616c7565206d7573742062652067726561746572207468616e2030604482015290519081900360640190fd5b600a8290556040805183815290517fc70250db233a49507c4e64006e2a3adbbeffccb661eb803dd0af7097c614db199181900360200190a1506001919050565b60035481565b6003543414611399576040805162461bcd60e51b81526020600482015260166024820152751b9bdd0818dbdc9c9958dd081c995b995dc818dbdcdd60521b604482015290519081900360640190fd5b600a546000828152600f602052604090206008015410156113f4576040805162461bcd60e51b815260206004820152601060248201526f6d61747269782069732061637469766560801b604482015290519081900360640190fd5b6113fd336117da565b611440576040805162461bcd60e51b815260206004820152600f60248201526e75736572206e6f742065786973747360881b604482015290519081900360640190fd5b3360009081526012602052604090205460ff161561148f5760405162461bcd60e51b815260040180806020018281038252602b815260200180613444602b913960400191505060405180910390fd5b6000818152600f60205260409020600101546001600160a01b031633146114f1576040805162461bcd60e51b81526020600482015260116024820152700dcdee840eae6cae44ee640dac2e8e4d2f607b1b604482015290519081900360640190fd5b60085460ff1661150a5761150533826120d1565b61156d565b33600090815260126020526040902054610100900460ff1661154b57336000908152601260205260409020805460ff1916600190811782550181905561156d565b336000818152601260205260409020805461ff001916905561156d90826120d1565b50565b60055481565b600080546001600160a01b0316331461158e57600080fd5b60038290556040805183815290517fc8955dd66b05754a6d215a0b011ce2d49ff30792074a3a1a95ae2af0bac00c249181900360200190a1506001919050565b600e602052600090815260409020546001600160a01b031681565b600354341461163f576040805162461bcd60e51b815260206004820152601d60248201527f6e6f7420636f727265637420726567697374726174696f6e20636f7374000000604482015290519081900360640190fd5b611648336117da565b15611688576040805162461bcd60e51b815260206004820152600b60248201526a757365722065786973747360a81b604482015290519081900360640190fd5b611691816117da565b6116d8576040805162461bcd60e51b81526020600482015260136024820152727265666572726572206e6f742065786973747360681b604482015290519081900360640190fd5b3360009081526012602052604090205460ff16156117275760405162461bcd60e51b81526004018080602001828103825260368152602001806135836036913960400191505060405180910390fd5b60085460ff1661173b576115053382611ebb565b33600090815260126020526040902054610100900460ff1661179457336000908152601260205260409020805460ff1916600117815560020180546001600160a01b0383166001600160a01b031990911617905561156d565b336000818152601260205260409020805461ff001916905561156d9082611ebb565b6000828152600f602090815260408083208484526003019091529020545b92915050565b6001600160a01b03166000908152600d6020526040902054151590565b600091825260136020908152604080842092845291905290205490565b601060209081526000928352604080842090915290825290205481565b600082815260136020908152604080832084845282529182902080548351818402810184019094528084526060939283018282801561189957602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161187b575b5050505050905092915050565b600a5481565b600f602052600090815260409020805460018201546002830154600484015460058501546006860154600787015460089097015495966001600160a01b0395861696949593949290931692909188565b3360009081526014602052604090205460609060ff161561194e5760405162461bcd60e51b81526004018080602001828103825260218152602001806134df6021913960400191505060405180910390fd5b60085460609060ff1661196c5761196583346122e8565b90506117d4565b33600090815260146020526040902054610100900460ff16611adf573466038d7ea4c6800014806119a35750346611c37937e08000145b806119b457503466354a6ba7a18000145b806119c557503466b1a2bc2ec50000145b806119d7575034670214e8348c4f0000145b806119e95750346706f05b59d3b20000145b611a2d576040805162461bcd60e51b815260206004820152601060248201526f4e6f2073756368206265742073697a6560801b604482015290519081900360640190fd5b82600a1480611a3c5750826032145b80611a4757508260c8145b80611a535750826101f4145b611a97576040805162461bcd60e51b815260206004820152601060248201526f4e6f207375636820626574206c696e6560801b604482015290519081900360640190fd5b336000908152601460209081526040918290206001808201879055815460ff1916178155346002909101558151606081019092526030808352906134af9083013990506117d4565b3360009081526014602052604090206001015483148015611b1157503360009081526014602052604090206002015434145b611b5b576040805162461bcd60e51b815260206004820152601660248201527577726f6e67206c696e65206f72206265742073697a6560501b604482015290519081900360640190fd5b3360009081526014602052604090206001810154600290910154611b7f91906122e8565b336000908152601460205260408120805461ffff1916815560018101829055600201559392505050565b600080546001600160a01b03163314611bc157600080fd5b6008805460ff19811660ff918216151791829055604080519290911615158252517f197bfab08988d34e9b168bb2c72a48b13b14c7d4a8138a03222d334c32d4b2bf9181900360200190a150600190565b6001546001600160a01b03163314611c2957600080fd5b600154600080546040516001600160a01b0393841693909116917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a360018054600080546001600160a01b03199081166001600160a01b03841617909155169055565b60126020526000908152604090208054600182015460029092015460ff808316936101009093041691906001600160a01b031684565b6000546001600160a01b031681565b600080546001600160a01b03163314611cea57600080fd5b47821115611d32576040805162461bcd60e51b815260206004820152601060248201526f4e6f7420656e6f7567682066756e647360801b604482015290519081900360640190fd5b6040516001600160a01b0384169083156108fc029084906000818181858888f19350505050158015611d68573d6000803e3d6000fd5b5060019392505050565b6004546001600160a01b031681565b600d602052600090815260409020805460018201546002830154600384015460048501546005860154600687015460079097015495966001600160a01b0390951695939492939192909188565b601160205260009081526040902080546001909101546001600160a01b039091169082565b60095481565b600080546001600160a01b03163314611e1157600080fd5b600480546001600160a01b0384166001600160a01b0319909116811790915560408051918252517fd748f8ce408cb6a8eb253867241dbebc4f3071c25189bc56cb9bd79378e82b579181900360200190a1506001919050565b6001546001600160a01b031681565b6000546001600160a01b03163314611e9057600080fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60085460ff1681565b6040518061010001604052806005548152602001826001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081526020016000815250600d6000846001600160a01b03166001600160a01b031681526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e0820151816007015590505081600e6000600554815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b03160217905550600560008154809291906001019190505550600d6000826001600160a01b03166001600160a01b031681526020019081526020016000206007016000815480929190600101919050555061203e816064600354600a028161203857fe5b046123a6565b6120566064600354600a028161205057fe5b0461243e565b61206460065483600061254d565b6120708282600061276b565b6001600160a01b038083166000818152600d60209081526040808320549486168084529281902054815190815290519293927f309bb360e8b69c23937ccc5fb01f9aeeead1c95a99604e175113ff82f2b1723a929181900390910190a45050565b6001600160a01b038083166000908152600d6020526040902060010154600354612105929190911690606490600a02612038565b6121176064600354600a028161205057fe5b6121238183600161254d565b6000818152600f602052604090206004015461213e90612b46565b5050565b6001600160a01b0381166000908152600d60205260409020600501546201517f1942011115612196576001600160a01b0381166000908152600d602052604090204260058201556001600690910155612223565b6001600160a01b0381166000908152600d6020526040902060060154600311156121e1576001600160a01b0381166000908152600d6020526040902060060180546001019055612223565b6040805162461bcd60e51b81526020600482015260126024820152710c8d1a081c1d5c98da185cd9481b1a5b5a5d60721b604482015290519081900360640190fd5b6001600160a01b038082166000908152600d6020526040902060010154600354612257929190911690606490600a02612038565b6122696064600354600a028161205057fe5b61227760065482600061254d565b6001600160a01b038082166000908152600d6020526040902060019081015461156d92849291169061276b565b600080805b60048110156122db5760008482815181106122c057fe5b016020015160f81c600883021b9290921891506001016122a9565b5063ffffffff1692915050565b600082815260136020908152604080832084845280835290832080546001810182558185528385200180546001600160a01b03191633179055928490529052546060908314156123755761233b836130eb565b5060408051808201909152601b81527f54686973206c696e652077696e6e657220697320646566696e6564000000000060208201526117d4565b50604080518082019091526014815273165bdd5c8818995d081a5cc81858d8d95c1d195960621b60208201526117d4565b6001600160a01b0382166000818152600d6020526040808220549051849391927f7fa9aafeb8bb803d77de5d84bc2f2edbd842ca91b20cd5020aa21dfe26ab0be991a46040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561241f573d6000803e3d6000fd5b5060085460ff161561213e57612435828261321a565b61213e57600080fd5b6000805b600b548110156125485760048110156124635760646014840204915061246d565b6064600584020491505b816000600b838154811061247d57fe5b60009182526020822001546040516001600160a01b03909116917f7fa9aafeb8bb803d77de5d84bc2f2edbd842ca91b20cd5020aa21dfe26ab0be991a4600b81815481106124c757fe5b60009182526020822001546040516001600160a01b039091169184156108fc02918591818181858888f19350505050158015612507573d6000803e3d6000fd5b5060085460ff16156125405761253e600b828154811061252357fe5b6000918252602090912001546001600160a01b03168361321a565b505b600101612442565b505050565b6040805180820182526001600160a01b038481168252602080830187815260078054600090815260118452868120955186546001600160a01b031916951694909417855590516001948501558054909301909255858152600f9091522054156125f65780156125cd576000838152600f60205260408120600801556125f6565b6000838152600f6020526040902060078101805460019081019091556008909101805490910190555b60026007548161260257fe5b06612548576002600754111561274c576000600160026007548161262257fe5b04600954010390505b600a546000828152601160209081526040808320600101548352600f90915290206008015410801590612672575060026007540360095460026007548161266e57fe5b0401105b156126d05760008181526011602090815260409182902060010154825190815291517f6a24ac15712084204f9802a3c7e3004967d3fe3cde124d7fd218c0d3974b2ca39281900390910190a16009805460019081019091550161262b565b6000818152601160205260409020546126f1906001600160a01b03166132a8565b60008181526011602052604081206001810154905461271b926001600160a01b039091169061254d565b6000818152601160209081526040808320600101548352600f90915290206004015461274690612b46565b50612548565b600054612761906001600160a01b03166132a8565b6125486000612b46565b6001600160a01b0382166127b1576001600052600e6020527fa7c5ba7114a813b50159add3a36832908dc83db71d0b9a24c2ad0f83be958207546001600160a01b031691505b6001600160a01b0382166000908152600d60209081526040808320805484526010835281842060039091015484529091528120546127f29060016004613372565b9050806128ba576001600160a01b0383166000908152600d602052604090206002810154600390910154600019909101141561286d576040805162461bcd60e51b8152602060048201526015602482015274185b1b081b585d1c9a58d95cc8185c9948199d5b1b605a1b604482015290519081900360640190fd5b6001600160a01b0383166000908152600d602090815260408083206003810180546001908101918290559154855260108452828520908552909252909120546128b7916004613372565b90505b6128c381612b46565b6040518061010001604052806006548152602001856001600160a01b0316815260200160008152602001828152602001846001600160a01b03168152602001838152602001600081526020016000815250600f600060065481526020019081526020016000206000820151816000015560208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550604082015181600201556060820151816004015560808201518160050160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060a0820151816006015560c0820151816007015560e0820151816008015590505060065460106000600d6000886001600160a01b03166001600160a01b031681526020019081526020016000206000015481526020019081526020016000206000600d6000886001600160a01b03166001600160a01b0316815260200190815260200160002060020154815260200190815260200160002081905550600d6000856001600160a01b03166001600160a01b0316815260200190815260200160002060020160008154809291906001019190505550600654600d6000866001600160a01b03166001600160a01b031681526020019081526020016000206004018190555080600f6000600654815260200190815260200160002060040181905550600660008154809291906001019190505550600160065403600f60008381526020019081526020016000206003016000600f600085815260200190815260200160002060020154815260200190815260200160002081905550600f60008281526020019081526020016000206002016000815480929190600101919050555050505050565b80612b81576001600052600f6020526000805160206135f783398151915254600354611505916001600160a01b031690606490601902612038565b6000818152600f60209081526040808320600101546001600160a01b03168352600d9091528120600701548190839060041180612bd15750600a546000828152600f602052604090206008015410155b15612bee576103e860035460190281612be657fe5b049250612c3b565b6000818152600f6020526040902060010154600354612c1d916001600160a01b0316906103e890601902612038565b6000818152600f60205260409020600101546001600160a01b031691505b6000818152600f602052604090206004015480612cb9576001600160a01b03831615612c7a57612c75836103e860035460e1028161203857fe5b612cb0565b6001600052600f6020526000805160206135f783398151915254600354612cb0916001600160a01b031690606490601902612038565b5050505061156d565b6000818152600f60209081526040808320600101546001600160a01b03168352600d90915290206007015460041180612d055750600a546000828152600f602052604090206008015410155b15612d2357606460035460050281612d1957fe5b0484019350612d75565b6000818152600f6020526040902060010154600354612d54916001600160a01b0316906064906005020486016123a6565b6000818152600f60205260408120600101549094506001600160a01b031692505b6000818152600f602052604090206004015480612dfc576001600160a01b03841615612dbc57612db784866103e860035460af0281612db057fe5b04016123a6565b612df2565b6001600052600f6020526000805160206135f783398151915254600354612df2916001600160a01b031690606490601902612038565b505050505061156d565b6000818152600f60209081526040808320600101546001600160a01b03168352600d90915290206007015460041180612e485750600a546000828152600f602052604090206008015410155b15612e67576103e8600354604b0281612e5d57fe5b0485019450612eba565b6000818152600f6020526040902060010154600354612e99916001600160a01b0316906103e890604b020487016123a6565b6000818152600f60205260408120600101549095506001600160a01b031693505b6000818152600f602052604090206004015480612f3a576001600160a01b03851615612ef957612ef485876064600354600a0281612db057fe5b612f2f565b6001600052600f6020526000805160206135f783398151915254600354612f2f916001600160a01b031690606490601902612038565b50505050505061156d565b6000818152600f60209081526040808320600101546001600160a01b03168352600d90915290206007015460041180612f865750600a546000828152600f602052604090206008015410155b15612fa4576064600354600a0281612f9a57fe5b0486019550612ff6565b6000818152600f6020526040902060010154600354612fd5916001600160a01b031690606490600a020488016123a6565b6000818152600f60205260408120600101549096506001600160a01b031694505b60646003546019028161300557fe5b048614156130d2575b6000818152600f60209081526040808320600101546001600160a01b03168352600d9091529020600701546004118061305a5750600a546000828152600f602052604090206008015410155b156130a85780613091576001600052600f6020526000805160206135f783398151915254612f2f906001600160a01b0316876123a6565b6000908152600f602052604090206004015461300e565b6000818152600f60205260409020600101546130cd906001600160a01b0316876123a6565b6130e2565b85156130e2576130e285876123a6565b50505050505050565b60001943014060005b8281101561310757600c548202016130f4565b6000838152601360209081526040808320348452909152812084838161312957fe5b068154811061313457fe5b60009182526020822001546040516001600160a01b039091169250600a348702600981028290049391900491849184156108fc02918591818181858888f19350505050158015613188573d6000803e3d6000fd5b50613193838361321a565b50604080518781523460208201528082018490526001600160a01b038516606082015290517f7296e398d52f324d467f90024fac6fcecc0dd7419bafa1203f67c20a0c9761c49181900360800190a16131eb8161243e565b6000868152601360209081526040808320348452909152812061320d91613411565b505050600c919091555050565b600480546040805163a9059cbb60e01b81526001600160a01b03868116948201949094526024810185905290516000939092169163a9059cbb9160448082019260209290919082900301818787803b15801561327557600080fd5b505af1158015613289573d6000803e3d6000fd5b505050506040513d602081101561329f57600080fd5b50519392505050565b6064600354601e02816132b757fe5b6001600160a01b0383166000818152600d602052604080822054905194909304937f7fa9aafeb8bb803d77de5d84bc2f2edbd842ca91b20cd5020aa21dfe26ab0be99190a4806001600160a01b03166108fc6064600354601e028161331857fe5b049081150290604051600060405180830381858888f19350505050158015613344573d6000803e3d6000fd5b5060085460ff161561156d57613369816064600354601e028161336357fe5b0461321a565b61156d57600080fd5b60008183111561338457506000611096565b6000848152600f6020526040902060020154600411156133a5575082611096565b600183015b8281116134065760005b6000868152600f602090815260408083208484526003019091528120546133df906001880185613372565b905080156133f1579250611096915050565b50600101600481106133b457506001016133aa565b506000949350505050565b508054600082559060005260206000209081019061156d91905b8082111561343f576000815560010161342b565b509056fe616c7265616479207061696420696e204554482c20746f6b656e207061796d656e74206177616974696e67546f6b656e732061636365707465642e2057616974696e6720455448207061796d656e7420666f7220726567697374726174696f6e20636f6d706c6574696f6e57616974696e6720746f6b656e207061796d656e7420666f72206a61636b706f742062657420616363657074616e6365616c72656164792070616964204554482c20746f6b656e73206177616974696e67616c7265616479207061696420696e204554482c20746f6b656e73206177616974696e6757616974696e6720455448207061796d656e7420666f72206a61636b706f742062657420616363657074616e6365616c72656164792070616964206a61636b706f7420636f737420696e20746f6b656e732c20455448206177616974696e67616c7265616479207061696420726567697374726174696f6e20636f737420696e204554482c20746f6b656e73206177616974696e67546f6b656e732061636365707465642e2057616974696e6720455448207061796d656e7420666f72204870456173792070757263686173652f72656e6577169f97de0d9a84d840042b17d3c6b9638b3d6fd9024c9eb0c7a306a17b49f890a2646970667358221220b6984df243ad098ca5cd593ac85ae8201991fde9b57a71fcb8279ea96221bbca64736f6c634300060c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000803c698f680e702609fb09f7782bea2ccd3cbda00000000000000000000000009e43f77f2484d2b9b1e2f88b2ce186147bcf459000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000008000000000000000000000000b01e70b4d1775335364d16467009062f2259ec6c0000000000000000000000001ff60a59e4e349c55cf133cc95a9a6cf3a5085f7000000000000000000000000115a844fabb3d725f7da4aaf1bc78b196faaff5700000000000000000000000007a778d40f87977c65f74983e731c32a6d8b4b25000000000000000000000000d8835cb071aaf9b56b1ad296415e5e3a17a9ad8e0000000000000000000000007b820202e85ba5927d77999c205f1d90a139ef1f000000000000000000000000e7b3c2c91f80517ddeff6ad4c9701e28a192f02f000000000000000000000000e8bb290eead75e1b4f616bf0c99b7f60cf20ba93
-----Decoded View---------------
Arg [0] : ownerAddress (address): 0x803c698f680e702609fb09F7782bEA2Ccd3CbdA0
Arg [1] : _tokenAddress (address): 0x9e43f77F2484D2b9b1e2F88B2ce186147bCf4590
Arg [2] : _founders (address[]): 0xb01e70b4d1775335364D16467009062F2259ec6c,0x1FF60A59E4E349C55cf133cC95a9a6CF3A5085f7,0x115A844fAbb3D725f7Da4aaF1BC78b196FaAFF57,0x07a778d40F87977C65F74983E731c32A6D8b4b25,0xD8835cB071AaF9B56b1aD296415e5e3a17a9aD8e,0x7B820202e85ba5927D77999c205F1d90a139Ef1f,0xE7b3C2C91f80517dDEfF6Ad4c9701e28a192F02f,0xe8Bb290eeAD75E1b4f616bF0c99B7f60cf20ba93
-----Encoded View---------------
12 Constructor Arguments found :
Arg [0] : 000000000000000000000000803c698f680e702609fb09f7782bea2ccd3cbda0
Arg [1] : 0000000000000000000000009e43f77f2484d2b9b1e2f88b2ce186147bcf4590
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [4] : 000000000000000000000000b01e70b4d1775335364d16467009062f2259ec6c
Arg [5] : 0000000000000000000000001ff60a59e4e349c55cf133cc95a9a6cf3a5085f7
Arg [6] : 000000000000000000000000115a844fabb3d725f7da4aaf1bc78b196faaff57
Arg [7] : 00000000000000000000000007a778d40f87977c65f74983e731c32a6d8b4b25
Arg [8] : 000000000000000000000000d8835cb071aaf9b56b1ad296415e5e3a17a9ad8e
Arg [9] : 0000000000000000000000007b820202e85ba5927d77999c205f1d90a139ef1f
Arg [10] : 000000000000000000000000e7b3c2c91f80517ddeff6ad4c9701e28a192f02f
Arg [11] : 000000000000000000000000e8bb290eead75e1b4f616bf0c99b7f60cf20ba93
Deployed Bytecode Sourcemap
832:23355:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1800:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1968:28;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;6006:2962;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6006:2962:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6006:2962:0;;-1:-1:-1;6006:2962:0;;-1:-1:-1;;;;;6006:2962:0:i;2572:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2572:61:0;-1:-1:-1;;;;;2572:61:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9774:686;;;:::i;:::-;;1933:28;;;;;;;;;;;;;:::i;5472:274::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5472:274:0;;:::i;:::-;;;;;;;;;;;;;;;;;;1840:19;;;;;;;;;;;;;:::i;10472:891::-;;;;;;;;;;;;;;;;-1:-1:-1;10472:891:0;;:::i;1900:26::-;;;;;;;;;;;;;:::i;5044:192::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5044:192:0;;:::i;2236:41::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2236:41:0;;:::i;:::-;;;;-1:-1:-1;;;;;2236:41:0;;;;;;;;;;;;;;8981:785;;;;;;;;;;;;;;;;-1:-1:-1;8981:785:0;-1:-1:-1;;;;;8981:785:0;;:::i;4661:140::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4661:140:0;;;;;;;:::i;4543:110::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4543:110:0;-1:-1:-1;;;;;4543:110:0;;:::i;22815:137::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22815:137:0;;;;;;;:::i;2330:59::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2330:59:0;;;;;;;:::i;22960:150::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22960:150:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2085:28;;;;;;;;;;;;;:::i;2284:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2284:39:0;;:::i;:::-;;;;;;;;;;-1:-1:-1;;;;;2284:39:0;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2284:39:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21171:1260;;;;;;;;;;;;;;;;-1:-1:-1;21171:1260:0;;:::i;4829:203::-;;;;;;;;;;;;;:::i;628:197::-;;;;;;;;;;;;;:::i;2444:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2444:54:0;-1:-1:-1;;;;;2444:54:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2444:54:0;;;;;;;;;;;;;;206:20;;;;;;;;;;;;;:::i;5754:238::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5754:238:0;;;;;;;;:::i;1866:27::-;;;;;;;;;;;;;:::i;2192:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2192:37:0;-1:-1:-1;;;;;2192:37:0;;:::i;:::-;;;;;;;-1:-1:-1;;;;;2192:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2396:41;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2396:41:0;;:::i;:::-;;;;-1:-1:-1;;;;;2396:41:0;;;;;;;;;;;;;;;;;;;;;2046:32;;;;;;;;;;;;;:::i;5248:216::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5248:216:0;-1:-1:-1;;;;;5248:216:0;;:::i;233:23::-;;;;;;;;;;;;;:::i;518:102::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;518:102:0;-1:-1:-1;;;;;518:102:0;;:::i;2003:34::-;;;;;;;;;;;;;:::i;1800:33::-;;;;;;;;;;;;;;-1:-1:-1;;1800:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1968:28::-;;;;:::o;6006:2962::-;6148:12;;6093:20;;-1:-1:-1;;;;;6148:12:0;6134:10;:26;6126:52;;;;;-1:-1:-1;;;6126:52:0;;;;;;;;;;;;-1:-1:-1;;;6126:52:0;;;;;;;;;;;;;;;6191:20;6226:4;:11;6241:1;6226:16;6222:2713;;;6316:7;;6306:6;:17;6298:48;;;;;-1:-1:-1;;;6298:48:0;;;;;;;;;;;;-1:-1:-1;;;6298:48:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;6370:18:0;;;;;;:12;:18;;;;;:33;;;;;;6369:34;6361:72;;;;;-1:-1:-1;;;6361:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;6455:18;6468:4;6455:12;:18::i;:::-;6450:1381;;-1:-1:-1;;;;;6499:18:0;;;;;;:12;:18;;;;;:30;;;6494:434;;-1:-1:-1;;;;;6554:18:0;;;;;;:12;:18;;;;;;;;;:40;;-1:-1:-1;;6554:40:0;;;;;6617:75;;;;;;;;;;;6554:18;6617:75;;;;;;;6494:434;;;-1:-1:-1;;;;;6741:18:0;;;6774:5;6741:18;;;:12;:18;;;;;:38;;-1:-1:-1;;6741:38:0;;;6821:27;;;6802:47;;6754:4;;6821:27;6802:12;:47::i;:::-;-1:-1:-1;6872:36:0;;;;;;;;;;;;;;;;;6494:434;6450:1381;;;-1:-1:-1;;;;;6976:11:0;;;;;;:5;:11;;;;;:24;;;7003:3;-1:-1:-1;6976:30:0;:73;;-1:-1:-1;;;;;;7010:18:0;;;;;;:12;:18;;;;;:34;;;:39;;6976:73;6968:108;;;;;-1:-1:-1;;;6968:108:0;;;;;;;;;;;;-1:-1:-1;;;6968:108:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;7102:18:0;;;;;;:12;:18;;;;;:30;;;7097:719;;-1:-1:-1;;;;;7157:18:0;;;;;;:12;:18;;;;;;;;;:40;;-1:-1:-1;;7157:40:0;;;;;7220:73;;;;;;;;;;;;;;;;;;;;7097:719;;;-1:-1:-1;;;;;7342:18:0;;7375:5;7342:18;;;:12;:18;;;;;:38;;-1:-1:-1;;7342:38:0;;;;7407:34;;:39;7403:394;;-1:-1:-1;;;;;7487:18:0;;;;;;:12;:18;;;;;:34;;;7475:47;;7481:4;;7475:5;:47::i;:::-;-1:-1:-1;;;;;;7549:18:0;;7586:1;7549:18;;;:12;:18;;;;;;;;:34;;:38;;;;7614:29;;;;;;;;;;;-1:-1:-1;;;7614:29:0;;;;7403:394;;;7700:14;7709:4;7700:8;:14::i;:::-;-1:-1:-1;7741:32:0;;;;;;;;;;;;-1:-1:-1;;;7741:32:0;;;;7403:394;6222:2713;;;-1:-1:-1;;;;;7883:18:0;;;;;;:12;:18;;;;;:33;;;;;;7882:34;7874:96;;;;-1:-1:-1;;;7874:96:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7999:9;8011:23;8029:4;8011:17;:23::i;:::-;-1:-1:-1;;;;;8056:18:0;;;;;;:12;:18;;;;;:30;7999:35;;-1:-1:-1;8056:30:0;;8051:873;;8115:6;8125:11;8115:21;:46;;;;8140:6;8150:11;8140:21;8115:46;:71;;;;8165:6;8175:11;8165:21;8115:71;:95;;;;8190:6;8200:10;8190:20;8115:95;:119;;;;8214:6;8224:10;8214:20;8115:119;:142;;;;8238:6;8248:9;8238:19;8115:142;8107:171;;;;;-1:-1:-1;;;8107:171:0;;;;;;;;;;;;-1:-1:-1;;;8107:171:0;;;;;;;;;;;;;;;8306:4;8314:2;8306:10;:24;;;;8320:4;8328:2;8320:10;8306:24;:39;;;;8334:4;8342:3;8334:11;8306:39;:54;;;;8349:4;8357:3;8349:11;8306:54;8298:83;;;;;-1:-1:-1;;;8298:83:0;;;;;;;;;;;;-1:-1:-1;;;8298:83:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8401:18:0;;;;;;:12;:18;;;;;;;;;:40;;-1:-1:-1;;8401:40:0;;;;;8437:4;8460:23;;:30;;;8509:27;;:36;;;8564:57;;;;;;;;;;;;;;;;;;;;8051:873;;;-1:-1:-1;;;;;8670:18:0;;;;;;:12;:18;;;;;:23;;;:31;;:72;;;;-1:-1:-1;;;;;;8705:18:0;;;;;;:12;:18;;;;;:27;;;:37;;8670:72;8662:107;;;;;-1:-1:-1;;;8662:107:0;;;;;;;;;;;;-1:-1:-1;;;8662:107:0;;;;;;;;;;;;;;;-1:-1:-1;;;;;8811:18:0;;;;;;:12;:18;;;;;:23;;;;8836:27;;;;;8797:67;;8811:23;8797:13;:67::i;:::-;-1:-1:-1;;;;;8890:18:0;;;;;;:12;:18;;;;;8883:25;;-1:-1:-1;;8883:25:0;;;;;;;;;;;;8788:76;-1:-1:-1;8051:873:0;6222:2713;;8954:6;-1:-1:-1;6006:2962:0;;;;;;:::o;2572:61::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9774:686::-;9855:7;;9842:9;:20;9834:58;;;;;-1:-1:-1;;;9834:58:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9912:24;9925:10;9912:12;:24::i;:::-;9904:52;;;;;-1:-1:-1;;;9904:52:0;;;;;;;;;;;;-1:-1:-1;;;9904:52:0;;;;;;;;;;;;;;;9981:10;9975:17;;;;:5;:17;;;;;:30;;;10008:3;-1:-1:-1;9967:71:0;;;;;-1:-1:-1;;;9967:71:0;;;;;;;;;;;;-1:-1:-1;;;9967:71:0;;;;;;;;;;;;;;;10071:10;10058:24;;;;:12;:24;;;;;:36;;;10057:37;10049:86;;;;-1:-1:-1;;;10049:86:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10153:15;;;;10148:305;;10185:20;10194:10;10185:8;:20::i;:::-;10148:305;;;10240:10;10227:24;;;;:12;:24;;;;;:39;;;;;;10223:230;;10296:10;10283:24;;;;:12;:24;;;;;:43;;-1:-1:-1;;10283:43:0;10322:4;10283:43;;;10223:230;;;10372:10;10401:5;10359:24;;;:12;:24;;;;;:47;;-1:-1:-1;;10359:47:0;;;10421:20;;:8;:20::i;:::-;9774:686::o;1933:28::-;;;;:::o;5472:274::-;5546:12;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:28;;;;;;5592:1:::1;5581:8;:12;5572:58;;;::::0;;-1:-1:-1;;;5572:58:0;;::::1;;::::0;::::1;::::0;;;;;;;::::1;::::0;;;;;;;;;;;;;::::1;;5641:16;:27:::0;;;5684:32:::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;-1:-1:-1::0;5734:4:0::1;5472:274:::0;;;:::o;1840:19::-;;;;:::o;10472:891::-;10560:7;;10547:9;:20;10539:55;;;;;-1:-1:-1;;;10539:55:0;;;;;;;;;;;;-1:-1:-1;;;10539:55:0;;;;;;;;;;;;;;;10654:16;;10614:23;;;;:8;:23;;;;;:36;;;:56;;10606:85;;;;;-1:-1:-1;;;10606:85:0;;;;;;;;;;;;-1:-1:-1;;;10606:85:0;;;;;;;;;;;;;;;10710:24;10723:10;10710:12;:24::i;:::-;10702:52;;;;;-1:-1:-1;;;10702:52:0;;;;;;;;;;;;-1:-1:-1;;;10702:52:0;;;;;;;;;;;;;;;10787:10;10774:24;;;;:12;:24;;;;;:36;;;10773:37;10765:93;;;;-1:-1:-1;;;10765:93:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10877:23;;;;:8;:23;;;;;:29;;;-1:-1:-1;;;;;10877:29:0;10910:10;10877:43;10869:73;;;;;-1:-1:-1;;;10869:73:0;;;;;;;;;;;;-1:-1:-1;;;10869:73:0;;;;;;;;;;;;;;;10960:15;;;;10955:401;;10993:32;10999:10;11011:13;10993:5;:32::i;:::-;10955:401;;;11060:10;11047:24;;;;:12;:24;;;;;:39;;;;;;11043:313;;11116:10;11103:24;;;;:12;:24;;;;;:43;;-1:-1:-1;;11103:43:0;11142:4;11103:43;;;;;11161:40;:56;;;11043:313;;;11263:10;11292:5;11250:24;;;:12;:24;;;;;:47;;-1:-1:-1;;11250:47:0;;;11312:32;;11330:13;11312:5;:32::i;:::-;10472:891;:::o;1900:26::-;;;;:::o;5044:192::-;5117:12;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:28;;;;;;5142:7:::1;:17:::0;;;5175:31:::1;::::0;;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;-1:-1:-1::0;5224:4:0::1;5044:192:::0;;;:::o;2236:41::-;;;;;;;;;;;;-1:-1:-1;;;;;2236:41:0;;:::o;8981:785::-;9064:7;;9051:9;:20;9043:62;;;;;-1:-1:-1;;;9043:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9125:24;9138:10;9125:12;:24::i;:::-;9124:25;9116:49;;;;;-1:-1:-1;;;9116:49:0;;;;;;;;;;;;-1:-1:-1;;;9116:49:0;;;;;;;;;;;;;;;9184:22;9197:8;9184:12;:22::i;:::-;9176:54;;;;;-1:-1:-1;;;9176:54:0;;;;;;;;;;;;-1:-1:-1;;;9176:54:0;;;;;;;;;;;;;;;9263:10;9250:24;;;;:12;:24;;;;;:36;;;9249:37;9241:104;;;;-1:-1:-1;;;9241:104:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9371:15;;;;9366:393;;9403:34;9416:10;9428:8;9403:12;:34::i;9366:393::-;9473:10;9460:24;;;;:12;:24;;;;;:39;;;;;;9455:304;;9529:10;9516:24;;;;:12;:24;;;;;:43;;-1:-1:-1;;9516:43:0;9555:4;9516:43;;;9574:33;;:44;;-1:-1:-1;;;;;9574:44:0;;-1:-1:-1;;;;;;9574:44:0;;;;;;9455:304;;;9664:10;9693:5;9651:24;;;:12;:24;;;;;:47;;-1:-1:-1;;9651:47:0;;;9713:34;;9738:8;9713:12;:34::i;4661:140::-;4734:4;4758:18;;;:8;:18;;;;;;;;:35;;;:28;;:35;;;;;;4661:140;;;;;:::o;4543:110::-;-1:-1:-1;;;;;4625:11:0;4600:4;4625:11;;;:5;:11;;;;;:14;:19;;;4543:110::o;22815:137::-;22886:11;22918:10;;;:4;:10;;;;;;;;:19;;;;;;;;:26;;22815:137::o;2330:59::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;22960:150::-;23083:10;;;;:4;:10;;;;;;;;:19;;;;;;;;;23076:26;;;;;;;;;;;;;;;;;23033:29;;23076:26;;;23083:19;23076:26;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23076:26:0;;;;;;;;;;;;;;;;;;;;;;;22960:150;;;;:::o;2085:28::-;;;;:::o;2284:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2284:39:0;;;;;;;;;;;;;;;;:::o;21171:1260::-;21281:10;21268:24;;;;:12;:24;;;;;:36;21226:20;;21268:36;;21267:37;21259:83;;;;-1:-1:-1;;;21259:83:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21399:15;;21363:20;;21399:15;;21394:1004;;21440:30;21454:4;21460:9;21440:13;:30::i;:::-;21431:39;;21394:1004;;;21506:10;21493:24;;;;:12;:24;;;;;:39;;;;;;21488:910;;21557:9;21570:11;21557:24;:52;;;;21585:9;21598:11;21585:24;21557:52;:80;;;;21613:9;21626:11;21613:24;21557:80;:107;;;;21641:9;21654:10;21641:23;21557:107;:134;;;;21668:9;21681:10;21668:23;21557:134;:160;;;;21695:9;21708;21695:22;21557:160;21549:189;;;;;-1:-1:-1;;;21549:189:0;;;;;;;;;;;;-1:-1:-1;;;21549:189:0;;;;;;;;;;;;;;;21762:4;21770:2;21762:10;:24;;;;21776:4;21784:2;21776:10;21762:24;:39;;;;21790:4;21798:3;21790:11;21762:39;:54;;;;21805:4;21813:3;21805:11;21762:54;21754:83;;;;;-1:-1:-1;;;21754:83:0;;;;;;;;;;;;-1:-1:-1;;;21754:83:0;;;;;;;;;;;;;;;21867:10;21854:24;;;;:12;:24;;;;;;;;;:29;;;;:36;;;21905:43;;-1:-1:-1;;21905:43:0;;;;21999:9;21963:33;;;;:45;22023:59;;;;;;;;;;;;;;;;;;;;21488:910;;;22136:10;22123:24;;;;:12;:24;;;;;:29;;;:37;;:87;;;;-1:-1:-1;22177:10:0;22164:24;;;;:12;:24;;;;;:33;;;22201:9;22164:46;22123:87;22115:122;;;;;-1:-1:-1;;;22115:122:0;;;;;;;;;;;;-1:-1:-1;;;22115:122:0;;;;;;;;;;;;;;;22288:10;22275:24;;;;:12;:24;;;;;:29;;;;22306:33;;;;;22261:79;;22275:29;22261:13;:79::i;:::-;22375:10;22362:24;;;;:12;:24;;;;;22355:31;;-1:-1:-1;;22355:31:0;;;-1:-1:-1;22355:31:0;;;;;;;;22252:88;22417:6;-1:-1:-1;;;21171:1260:0:o;4829:203::-;4889:12;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:28;;;;;;4933:15:::1;::::0;;-1:-1:-1;;4914:34:0;::::1;4933:15;::::0;;::::1;4932:16;4914:34;::::0;;;;4964:38:::1;::::0;;4986:15;;;::::1;4964:38;;::::0;;;::::1;::::0;;;;::::1;::::0;;::::1;-1:-1:-1::0;5020:4:0::1;4829:203:::0;:::o;628:197::-;696:8;;-1:-1:-1;;;;;696:8:0;682:10;:22;674:31;;;;;;749:8;;;742:5;;721:37;;-1:-1:-1;;;;;749:8:0;;;;742:5;;;;721:37;;;777:8;;;;769:16;;-1:-1:-1;;;;;;769:16:0;;;-1:-1:-1;;;;;777:8:0;;769:16;;;;796:21;;;628:197::o;2444:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2444:54:0;;:::o;206:20::-;;;-1:-1:-1;;;;;206:20:0;;:::o;5754:238::-;5828:12;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:28;;;;;;5872:21:::1;5862:6;:31;;5853:61;;;::::0;;-1:-1:-1;;;5853:61:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;5853:61:0;;;;;;;;;;;;;::::1;;5925:37;::::0;-1:-1:-1;;;;;5925:29:0;::::1;::::0;:37;::::1;;;::::0;5955:6;;5925:37:::1;::::0;;;5955:6;5925:29;:37;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;5980:4:0::1;::::0;5754:238;-1:-1:-1;;;5754:238:0:o;1866:27::-;;;-1:-1:-1;;;;;1866:27:0;;:::o;2192:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2192:37:0;;;;;;;;;;;;;:::o;2396:41::-;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2396:41:0;;;;;:::o;2046:32::-;;;;:::o;5248:216::-;5328:12;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:28;;;;;;5353:12:::1;:30:::0;;-1:-1:-1;;;;;5353:30:0;::::1;-1:-1:-1::0;;;;;;5353:30:0;;::::1;::::0;::::1;::::0;;;5399:35:::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;::::1;-1:-1:-1::0;5452:4:0::1;5248:216:::0;;;:::o;233:23::-;;;-1:-1:-1;;;;;233:23:0;;:::o;518:102::-;484:5;;-1:-1:-1;;;;;484:5:0;470:10;:19;462:28;;;;;;592:8:::1;:20:::0;;-1:-1:-1;;;;;;592:20:0::1;-1:-1:-1::0;;;;;592:20:0;;;::::1;::::0;;;::::1;::::0;;518:102::o;2003:34::-;;;;;;:::o;11377:861::-;11485:290;;;;;;;;11509:10;;11485:290;;;;11544:15;-1:-1:-1;;;;;11485:290:0;;;;;11588:1;11485:290;;;;11620:1;11485:290;;;;11649:1;11485:290;;;;11687:1;11485:290;;;;11724:1;11485:290;;;;11758:1;11485:290;;;11464:5;:18;11470:11;-1:-1:-1;;;;;11464:18:0;-1:-1:-1;;;;;11464:18:0;;;;;;;;;;;;:311;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11464:311:0;;;;;-1:-1:-1;;;;;11464:311:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11812:11;11788:9;:21;11798:10;;11788:21;;;;;;;;;;;;:35;;;;;-1:-1:-1;;;;;11788:35:0;;;;;-1:-1:-1;;;;;11788:35:0;;;;;;11836:10;;:12;;;;;;;;;;;;;11861:5;:22;11867:15;-1:-1:-1;;;;;11861:22:0;-1:-1:-1;;;;;11861:22:0;;;;;;;;;;;;:39;;;:41;;;;;;;;;;;;;11915:44;11923:15;11955:3;11940:7;;11950:2;11940:12;:18;;;;;;11915:7;:44::i;:::-;11971:31;11998:3;11983:7;;11993:2;11983:12;:18;;;;;;11971:11;:31::i;:::-;12014:44;12025:12;;12039:11;12052:5;12014:10;:44::i;:::-;12069:43;12080:11;12093:15;12110:1;12069:10;:43::i;:::-;-1:-1:-1;;;;;12181:18:0;;;;;;;:5;:18;;;;;;;;:21;12138:92;;;12204:22;;;;;;;:25;12138:92;;;;;;;;;12181:18;12138:92;;;;;;;;;;;11377:861;;:::o;12967:304::-;-1:-1:-1;;;;;13051:18:0;;;;;;;:5;:18;;;;;:27;;;13080:7;;13043:56;;13051:27;;;;;13095:3;;13090:2;13080:12;:18;;13043:56;13111:31;13138:3;13123:7;;13133:2;13123:12;:18;;;;13111:31;13154:44;13165:13;13180:11;13193:4;13154:10;:44::i;:::-;13223:23;;;;:8;:23;;;;;:39;;;13210:53;;:12;:53::i;:::-;12967:304;;:::o;12246:713::-;-1:-1:-1;;;;;12309:18:0;;;;;;:5;:18;;;;;:39;;;-1:-1:-1;;12351:3:0;:11;-1:-1:-1;12305:412:0;;;-1:-1:-1;;;;;12379:18:0;;;;;;:5;:18;;;;;12421:3;12379:39;;;:45;12480:1;12439:38;;;;:42;12305:412;;;-1:-1:-1;;;;;12518:18:0;;;;;;:5;:18;;;;;:38;;;12559:1;-1:-1:-1;12514:192:0;;;-1:-1:-1;;;;;12581:18:0;;;;;;:5;:18;;;;;:38;;:40;;;;;;12514:192;;;12662:28;;;-1:-1:-1;;;12662:28:0;;;;;;;;;;;;-1:-1:-1;;;12662:28:0;;;;;;;;;;;;;;12514:192;-1:-1:-1;;;;;12737:18:0;;;;;;;:5;:18;;;;;:27;;;12766:7;;12729:56;;12737:27;;;;;12781:3;;12776:2;12766:12;:18;;12729:56;12797:31;12824:3;12809:7;;12819:2;12809:12;:18;;;;12797:31;12840:44;12851:12;;12865:11;12878:5;12840:10;:44::i;:::-;-1:-1:-1;;;;;12920:18:0;;;;;;;:5;:18;;;;;:27;;;;;12896:55;;12907:11;;12920:27;;;12896:10;:55::i;23875:309::-;23943:4;;;23992:156;24013:1;24009;:5;23992:156;;;24045:11;24072:4;24077:1;24072:7;;;;;;;;;;;;;;24105:1;:5;;24096:14;24125:11;;;;;-1:-1:-1;24016:3:0;;23992:156;;;-1:-1:-1;24167:9:0;;;23875:309;-1:-1:-1;;23875:309:0:o;22439:364::-;22536:10;;;;:4;:10;;;;;;;;:19;;;;;;;;;:36;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;22536:36:0;22561:10;22536:36;;;22597:19;;;;;;:26;22503:20;;22597:34;;22593:203;;;22649:18;22662:4;22649:12;:18::i;:::-;-1:-1:-1;22682:38:0;;;;;;;;;;;;;;;;;;;22593:203;-1:-1:-1;22753:31:0;;;;;;;;;;;;-1:-1:-1;;;22753:31:0;;;;;;19921:256;-1:-1:-1;;;;;20004:11:0;;;;;;:5;:11;;;;;;:14;19989:38;;20020:6;;20004:14;;19989:38;;;20038:39;;-1:-1:-1;;;;;20038:31:0;;;:39;;;;;20070:6;;20038:39;;;;20070:6;20038:31;:39;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20092:15:0;;;;20088:82;;;20132:25;20144:4;20150:6;20132:11;:25::i;:::-;20124:34;;;;;20475:527;20528:18;;20553:442;20572:8;:15;20568:19;;20553:442;;;20608:1;20604;:5;20600:153;;;20661:3;20656:2;20647:11;;:17;20631:33;;20600:153;;;20734:3;20730:1;20721:10;;:16;20705:32;;20600:153;20797:13;20794:1;20781:8;20790:1;20781:11;;;;;;;;;;;;;;;;;20772:39;;-1:-1:-1;;;;;20781:11:0;;;;20772:39;;;20842:8;20851:1;20842:11;;;;;;;;;;;;;;;;;20826:53;;-1:-1:-1;;;;;20842:11:0;;;;20826:53;;;;;20865:13;;20826:53;20842:11;20826:53;20865:13;20842:11;20826:53;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20898:15:0;;;;20894:96;;;20935:39;20947:8;20956:1;20947:11;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20947:11:0;20960:13;20935:11;:39::i;:::-;;20894:96;20589:3;;20553:442;;;;20475:527;;:::o;13279:1397::-;13391:94;;;;;;;;-1:-1:-1;;;;;13391:94:0;;;;;;;;;;;;13375:12;;;-1:-1:-1;13368:20:0;;;:6;:20;;;;;:117;;;;-1:-1:-1;;;;;;13368:117:0;;;;;;;;;;;-1:-1:-1;13368:117:0;;;;13496:14;;;;;;;;13527:18;;;:8;:18;;;;:21;:26;13523:263;;13574:7;13570:205;;;13636:1;13602:18;;;:8;:18;;;;;:31;;:35;13570:205;;;13679:18;;;;:8;:18;;;;;:25;;;:27;;;;;;;;;13725:31;;;;:33;;;;;;;13570:205;13825:1;13810:12;;:16;;;;;;13806:863;;13867:1;13852:12;;:16;13848:810;;;13889:14;13948:1;13944;13929:12;;:16;;;;;;13906:20;;:39;:43;13889:60;;13986:335;14047:16;;13993:37;14002:17;;;:6;:17;;;;;;;;:27;;;13993:37;;:8;:37;;;;;:50;;;:70;;;;:159;;;14150:1;14135:12;;:16;14112:20;;14108:1;14093:12;;:16;;;;;;:39;:58;13993:159;13986:335;;;14194:17;;;;:6;:17;;;;;;;;;:27;;;14183:39;;;;;;;;;;;;;;;;;14245:20;:22;;;;;;;;;14290:11;13986:335;;;14351:17;;;;:6;:17;;;;;:23;14341:34;;-1:-1:-1;;;;;14351:23:0;14341:9;:34::i;:::-;14405:17;;;;:6;:17;;;;;:27;;;;14434:23;;14394:71;;-1:-1:-1;;;;;14434:23:0;;;;14394:10;:71::i;:::-;14497:37;14506:17;;;:6;:17;;;;;;;;:27;;;14497:37;;:8;:37;;;;;:53;;;14484:67;;:12;:67::i;:::-;13848:810;;;;14602:5;;14592:16;;-1:-1:-1;;;;;14602:5:0;14592:9;:16::i;:::-;14627:15;14640:1;14627:12;:15::i;17866:1367::-;-1:-1:-1;;;;;17959:22:0;;17955:78;;18019:1;18009:12;;:9;:12;;;;-1:-1:-1;;;;;18009:12:0;;-1:-1:-1;17955:78:0;-1:-1:-1;;;;;18082:15:0;;18045:11;18082:15;;;:5;:15;;;;;;;;:18;;18068:33;;:13;:33;;;;;18102:30;;;;;18068:65;;;;;;;;18059:81;;18135:1;18138;18059:8;:81::i;:::-;18045:95;-1:-1:-1;18157:11:0;18153:333;;-1:-1:-1;;;;;18223:15:0;;;;;;:5;:15;;;;;:28;;;;18189:30;;;;;-1:-1:-1;;18223:30:0;;;18189:64;18185:136;;;18274:31;;;-1:-1:-1;;;18274:31:0;;;;;;;;;;;;-1:-1:-1;;;18274:31:0;;;;;;;;;;;;;;18185:136;-1:-1:-1;;;;;18337:15:0;;;;;;:5;:15;;;;;;;;:30;;;:32;;;;;;;;;;18416:18;;18402:33;;:13;:33;;;;;:65;;;;;;;;;;18393:81;;18472:1;18393:8;:81::i;:::-;18384:90;;18153:333;18498:20;18511:6;18498:12;:20::i;:::-;18556:282;;;;;;;;18582:12;;18556:282;;;;18616:4;-1:-1:-1;;;;;18556:282:0;;;;;18650:1;18556:282;;;;18683:6;18556:282;;;;18760:8;-1:-1:-1;;;;;18556:282:0;;;;;18717:11;18556:282;;;;18791:1;18556:282;;;;18821:1;18556:282;;;18531:8;:22;18540:12;;18531:22;;;;;;;;;;;:307;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18531:307:0;;;;;-1:-1:-1;;;;;18531:307:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;18531:307:0;;;;;-1:-1:-1;;;;;18531:307:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18909:12;;18851:13;:29;18865:5;:11;18871:4;-1:-1:-1;;;;;18865:11:0;-1:-1:-1;;;;;18865:11:0;;;;;;;;;;;;:14;;;18851:29;;;;;;;;;;;:55;18881:5;:11;18887:4;-1:-1:-1;;;;;18881:11:0;-1:-1:-1;;;;;18881:11:0;;;;;;;;;;;;:24;;;18851:55;;;;;;;;;;;:70;;;;18932:5;:11;18938:4;-1:-1:-1;;;;;18932:11:0;-1:-1:-1;;;;;18932:11:0;;;;;;;;;;;;:24;;;:26;;;;;;;;;;;;;18995:12;;18969:5;:11;18975:4;-1:-1:-1;;;;;18969:11:0;-1:-1:-1;;;;;18969:11:0;;;;;;;;;;;;:23;;:38;;;;19061:6;19020:8;:22;19029:12;;19020:22;;;;;;;;;;;:38;;:47;;;;19080:12;;:14;;;;;;;;;;;;;19181:1;19168:12;;:14;19107:8;:16;19116:6;19107:16;;;;;;;;;;;:26;;:58;19134:8;:16;19143:6;19134:16;;;;;;;;;;;:30;;;19107:58;;;;;;;;;;;:75;;;;19193:8;:16;19202:6;19193:16;;;;;;;;;;;:30;;;:32;;;;;;;;;;;;;17866:1367;;;;:::o;14684:3174::-;14742:11;14738:112;;14787:1;14778:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;14778:17:0;14797:7;;14770:46;;-1:-1:-1;;;;;14778:17:0;;14812:3;;14807:2;14797:12;:18;;14738:112;14862:12;14963:16;;;:8;:16;;;;;;;;:22;;;-1:-1:-1;;;;;14963:22:0;14957:29;;:5;:29;;;;;:46;;;14862:12;;14934:6;;15006:1;-1:-1:-1;14957:50:0;:103;;-1:-1:-1;15044:16:0;;15011;;;;:8;:16;;;;;:29;;;:49;;14957:103;14953:303;;;15103:4;15088:7;;15098:2;15088:12;:19;;;;;;15078:29;;14953:303;;;15148:16;;;;:8;:16;;;;;:22;;;15172:7;;15140:52;;-1:-1:-1;;;;;15148:22:0;;15187:4;;15182:2;15172:12;:19;;15140:52;15222:16;;;;:8;:16;;;;;:22;;;-1:-1:-1;;;;;15222:22:0;;-1:-1:-1;14953:303:0;15268:11;15282:16;;;:8;:16;;;;;:32;;;15331:11;15327:605;;-1:-1:-1;;;;;15363:26:0;;;15359:199;;15410:43;15418:12;15448:4;15432:7;;15442:3;15432:13;:20;;;;15410:43;15359:199;;;15512:1;15503:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;15503:17:0;15522:7;;15495:46;;-1:-1:-1;;;;;15503:17:0;;15537:3;;15532:2;15522:12;:18;;15495:46;15572:7;;;;;;15327:605;15600:29;15606:16;;;:8;:16;;;;;;;;:22;;;-1:-1:-1;;;;;15606:22:0;15600:29;;:5;:29;;;;;:46;;;15649:1;-1:-1:-1;15600:50:0;:103;;-1:-1:-1;15687:16:0;;15654;;;;:8;:16;;;;;:29;;;:49;;15600:103;15596:336;;;15746:3;15732:7;;15742:1;15732:11;:17;;;;;;15721:28;;;;15596:336;;;15790:16;;;;:8;:16;;;;;:22;;;15824:7;;15782:60;;-1:-1:-1;;;;;15790:22:0;;15838:3;;15834:1;15824:11;:17;15814:7;:27;15782:7;:60::i;:::-;15872:16;;;;:8;:16;;;;;:22;;;:16;;-1:-1:-1;;;;;;15872:22:0;;-1:-1:-1;15596:336:0;15944:11;15958:16;;;:8;:16;;;;;:32;;;16007:11;16003:619;;-1:-1:-1;;;;;16039:26:0;;;16035:209;;16086:53;16094:12;16131:7;16124:4;16108:7;;16118:3;16108:13;:20;;;;;;:30;16086:7;:53::i;:::-;16035:209;;;16198:1;16189:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;16189:17:0;16208:7;;16181:46;;-1:-1:-1;;;;;16189:17:0;;16223:3;;16218:2;16208:12;:18;;16181:46;16258:7;;;;;;;16003:619;16286:29;16292:16;;;:8;:16;;;;;;;;:22;;;-1:-1:-1;;;;;16292:22:0;16286:29;;:5;:29;;;;;:46;;;16335:1;-1:-1:-1;16286:50:0;:103;;-1:-1:-1;16373:16:0;;16340;;;;:8;:16;;;;;:29;;;:49;;16286:103;16282:340;;;16433:4;16418:7;;16428:2;16418:12;:19;;;;;;16407:30;;;;16282:340;;;16478:16;;;;:8;:16;;;;;:22;;;16512:7;;16470:62;;-1:-1:-1;;;;;16478:22:0;;16527:4;;16522:2;16512:12;:19;16502:7;:29;16470:7;:62::i;:::-;16562:16;;;;:8;:16;;;;;:22;;;:16;;-1:-1:-1;;;;;;16562:22:0;;-1:-1:-1;16282:340:0;16634:11;16648:16;;;:8;:16;;;;;:32;;;16697:11;16693:615;;-1:-1:-1;;;;;16729:26:0;;;16725:207;;16776:51;16784:12;16819:7;16813:3;16798:7;;16808:2;16798:12;:18;;;;16776:51;16725:207;;;16886:1;16877:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;16877:17:0;16896:7;;16869:46;;-1:-1:-1;;;;;16877:17:0;;16911:3;;16906:2;16896:12;:18;;16869:46;16946:7;;;;;;;;16693:615;16974:29;16980:16;;;:8;:16;;;;;;;;:22;;;-1:-1:-1;;;;;16980:22:0;16974:29;;:5;:29;;;;;:46;;;17023:1;-1:-1:-1;16974:50:0;:103;;-1:-1:-1;17061:16:0;;17028;;;;:8;:16;;;;;:29;;;:49;;16974:103;16970:338;;;17121:3;17106:7;;17116:2;17106:12;:18;;;;;;17095:29;;;;16970:338;;;17165:16;;;;:8;:16;;;;;:22;;;17199:7;;17157:61;;-1:-1:-1;;;;;17165:22:0;;17214:3;;17209:2;17199:12;:18;17189:7;:28;17157:7;:61::i;:::-;17248:16;;;;:8;:16;;;;;:22;;;:16;;-1:-1:-1;;;;;;17248:22:0;;-1:-1:-1;16970:338:0;17350:3;17335:7;;17345:2;17335:12;:18;;;;;;17324:7;:29;17320:531;;;17370:332;17377:29;17383:16;;;:8;:16;;;;;;;;:22;;;-1:-1:-1;;;;;17383:22:0;17377:29;;:5;:29;;;;;:46;;;17426:1;-1:-1:-1;17377:50:0;:103;;-1:-1:-1;17464:16:0;;17431;;;;:8;:16;;;;;:29;;;:49;;17377:103;17370:332;;;17505:11;17501:124;;17558:1;17549:11;;:8;:11;;-1:-1:-1;;;;;;;;;;;17549:17:0;17541:35;;-1:-1:-1;;;;;17549:17:0;17568:7;17541;:35::i;17501:124::-;17654:16;;;;:8;:16;;;;;:32;;;17370:332;;;17726:16;;;;:8;:16;;;;;:22;;;17718:40;;-1:-1:-1;;;;;17726:22:0;17750:7;17718;:40::i;:::-;17320:531;;;17780:12;;17776:75;;17809:30;17817:12;17831:7;17809;:30::i;:::-;14684:3174;;;;;;;:::o;23118:749::-;-1:-1:-1;;23209:12:0;:16;23199:27;23172:19;23272:74;23284:4;23278:3;:10;23272:74;;;23330:4;;23313:21;;23306:28;23272:74;;;23366:21;23390:10;;;:4;:10;;;;;;;;23401:9;23390:21;;;;;;;23395:4;23412:3;23395:4;23412:10;;;;;23390:33;;;;;;;;;;;;;;;;;23557:54;;-1:-1:-1;;;;;23390:33:0;;;;-1:-1:-1;23477:2:0;23461:9;23454:16;;23473:1;23454:20;;:25;;;;23515:21;;;;23390:33;;23557:54;;;;;23454:25;;23557:54;23390:33;23557:54;23454:25;23390:33;23557:54;;;;;;;;;;;;;;;;;;;;;23622:40;23634:13;23649:12;23622:11;:40::i;:::-;-1:-1:-1;23678:62:0;;;;;;23701:9;23678:62;;;;;;;;;;-1:-1:-1;;;;;23678:62:0;;;;;;;;;;;;;;;;;23753:30;23765:17;23753:11;:30::i;:::-;23803:10;;;;:4;:10;;;;;;;;23814:9;23803:21;;;;;;;23796:28;;;:::i;:::-;-1:-1:-1;;;23838:4:0;:21;;;;-1:-1:-1;;23118:749:0:o;21010:143::-;21111:12;;;21105:40;;;-1:-1:-1;;;21105:40:0;;-1:-1:-1;;;;;21105:40:0;;;;;;;;;;;;;;;;;;21073:12;;21111;;;;21105:28;;:40;;;;;;;;;;;;;;;21073:12;21111;21105:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;21105:40:0;;21010:143;-1:-1:-1;;;21010:143:0:o;20185:282::-;20288:3;20273:7;;20283:2;20273:12;:18;;;;;-1:-1:-1;;;;;20257:11:0;;;;;;:5;:11;;;;;;:14;20242:50;;20273:18;;;;;20242:50;;20257:11;20242:50;20319:4;-1:-1:-1;;;;;20303:31:0;:51;20350:3;20335:7;;20345:2;20335:12;:18;;;;;;20303:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20369:15:0;;;;20365:95;;;20409:37;20421:4;20442:3;20427:7;;20437:2;20427:12;:18;;;;;;20409:11;:37::i;:::-;20401:46;;;;;19241:672;19316:4;19345:8;19337:5;:16;19333:58;;;-1:-1:-1;19377:1:0;19370:9;;19333:58;19407:16;;;;:8;:16;;;;;:30;;;19440:1;-1:-1:-1;19403:81:0;;;-1:-1:-1;19465:6:0;19458:14;;19403:81;19521:1;19515:7;;19535:349;19557:8;19542:11;:23;19535:349;;19582:6;19607:236;19629:9;19650:16;;;:8;:16;;;;;;;;:29;;;:26;;:29;;;;;;19641:61;;19687:1;19681:7;;19690:11;19641:8;:61::i;:::-;19629:73;-1:-1:-1;19725:9:0;;19721:70;;19766:4;-1:-1:-1;19759:12:0;;-1:-1:-1;;19759:12:0;19721:70;-1:-1:-1;19811:3:0;;19840:1;19838:3;;19607:236;;-1:-1:-1;19859:13:0;;19535:349;;;-1:-1:-1;19903:1:0;;19241:672;-1:-1:-1;;;;19241:672:0:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o
Swarm Source
ipfs://b6984df243ad098ca5cd593ac85ae8201991fde9b57a71fcb8279ea96221bbca
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.