Overview
ETH Balance
ETH Value
$0.00Latest 16 from a total of 16 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw From Th... | 29527138 | 20 days ago | IN | 0 ETH | 0.00000182 | ||||
| Withdraw From Th... | 29527130 | 20 days ago | IN | 0 ETH | 0.00000172 | ||||
| Withdraw From Th... | 29527123 | 20 days ago | IN | 0 ETH | 0.00000159 | ||||
| Withdraw From Th... | 29527116 | 20 days ago | IN | 0 ETH | 0.00000155 | ||||
| Withdraw From Th... | 29527107 | 20 days ago | IN | 0 ETH | 0.00000176 | ||||
| Withdraw From Th... | 19879893 | 243 days ago | IN | 0 ETH | 0.0000006 | ||||
| Request Deposit ... | 12388668 | 416 days ago | IN | 0 ETH | 0.00000312 | ||||
| Request Deposit ... | 12388625 | 416 days ago | IN | 0 ETH | 0.00000358 | ||||
| Request Deposit ... | 12388574 | 416 days ago | IN | 0 ETH | 0.00000396 | ||||
| Approve Throne | 12254156 | 419 days ago | IN | 0 ETH | 0.00000297 | ||||
| Request Deposit ... | 12254142 | 419 days ago | IN | 0 ETH | 0.00000782 | ||||
| Approve Throne | 12253816 | 419 days ago | IN | 0 ETH | 0.00000191 | ||||
| Request Deposit ... | 12253560 | 419 days ago | IN | 0 ETH | 0.00000487 | ||||
| Approve Throne | 12244707 | 420 days ago | IN | 0 ETH | 0.00000082 | ||||
| Approve Throne | 12243889 | 420 days ago | IN | 0 ETH | 0.0000001 | ||||
| Request Deposit ... | 2761283 | 639 days ago | IN | 0 ETH | 0.00118663 |
View more zero value Internal Transactions in Advanced View mode
Cross-Chain Transactions
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "./IBlast.sol";
import "./IBlastPoints.sol";
import "./IUserHistory.sol";
import "./IOwnerGroupContract.sol";
contract RefThrone {
event ThroneStatus(uint256 throneId, Status status);
enum Status {
InReview,
Owned,
Rejected,
Lost
}
struct Throne {
uint256 id;
string name;
string serviceType;
string benefitType;
uint256 benefitAmount;
address referrer;
string referralCode;
uint256 torAmount;
string linkUrl;
Status status;
uint256 timestamp;
}
IBlast private _blast;
IBlastPoints private _blastPoints;
IERC20 private _torToken;
IUserHistory private _userHistory;
IOwnerGroupContract private _ownerGroupContract;
address private _blastContractAddress;
address private _blastPointsContractAddress;
address private _blastPointsOperatorAddress;
address private _torTokenContractAddress;
address private _userHistoryContractAddress;
address private _ownerGroupContractAddress;
uint256 private _lastThroneId = 0;
mapping(uint256 throneId => Throne) private _thrones;
uint256[] private _throneIds;
uint256 private _totalTorDeposited = 0;
mapping(address => uint256 torAmount) private _torDepositedByAddress;
modifier onlyOwner () {
require(_ownerGroupContract.isOwner(msg.sender), "Only Owner have a permission.");
_;
}
modifier onlyAdmin () {
require(_ownerGroupContract.isAdmin(msg.sender), "Only Admin have a permission.");
_;
}
constructor(
address torTokenContractAddress,
address userHistoryContractAddress,
address ownerGroupContractAddress,
address blastPointsContractAddress,
address blastPointsOperatorAddress
) {
_ownerGroupContractAddress = ownerGroupContractAddress;
_ownerGroupContract = IOwnerGroupContract(ownerGroupContractAddress);
_blastContractAddress = 0x4300000000000000000000000000000000000002;
_blast = IBlast(_blastContractAddress);
_blast.configureClaimableGas();
// BlastPoints Testnet address: 0x2fc95838c71e76ec69ff817983BFf17c710F34E0
// BlastPoints Mainnet address: 0x2536FE9ab3F511540F2f9e2eC2A805005C3Dd800
_blastPointsContractAddress = blastPointsContractAddress;
_blastPointsOperatorAddress = blastPointsOperatorAddress;
_blastPoints = IBlastPoints(_blastPointsContractAddress);
_blastPoints.configurePointsOperator(_blastPointsOperatorAddress);
_setTorTokenContractAddress(torTokenContractAddress);
_setUserHistoryContractAddress(userHistoryContractAddress);
}
function getBlastPointsContractAddress() external view returns (address) {
return _blastPointsContractAddress;
}
function getBlastPointsOperatorAddress() external view returns (address) {
return _blastPointsOperatorAddress;
}
function setTorTokenContractAddress(address torTokenContractAddress) external onlyOwner {
_setTorTokenContractAddress(torTokenContractAddress);
}
function _setTorTokenContractAddress(address torTokenContractAddress) private {
_torTokenContractAddress = torTokenContractAddress;
_torToken = IERC20(_torTokenContractAddress);
}
function getTorTokenContractAddress() external view returns (address) {
return _torTokenContractAddress;
}
function setUserHistoryContractAddress(address userHistoryContractAddress) external onlyOwner {
_setUserHistoryContractAddress(userHistoryContractAddress);
}
function _setUserHistoryContractAddress(address userHistoryContractAddress) private {
_userHistoryContractAddress = userHistoryContractAddress;
_userHistory = IUserHistory(_userHistoryContractAddress);
}
function getUserHistoryContractAddress() external view returns (address) {
return _userHistoryContractAddress;
}
function claimAllGas() external onlyOwner {
// This function is public meaning anyone can claim the gas
_blast.claimAllGas(address(this), _ownerGroupContractAddress);
}
function readGasParams() external view onlyOwner returns (uint256 etherSeconds, uint256 etherBalance, uint256 lastUpdated, GasMode) {
return _blast.readGasParams(address(this));
}
function getTotalTorDeposited() external view returns (uint256 torAmount) {
return _totalTorDeposited;
}
function getTorDepositedByAddress(address address_) external view returns (uint256 torAmount) {
return _torDepositedByAddress[address_];
}
function requestDepositForThrone(
string memory name,
string memory serviceType,
string memory benefitType,
uint256 benefitAmount,
string memory referralCode,
uint256 torAmount,
string memory linkUrl
) external returns (uint256 throneId) {
require(_torToken.balanceOf(msg.sender) >= torAmount, "Not enough TOR balance.");
require(_torToken.allowance(msg.sender, address(this)) >= torAmount, "Insufficient allowance");
require(!_isThroneInReview(msg.sender, name, benefitType), "Already in review");
uint256 ownedThroneId = _findThroneId(Status.Owned, name, benefitType);
if (ownedThroneId > 0) {
_checkUsurpCondition(
_thrones[ownedThroneId].benefitAmount, _thrones[ownedThroneId].torAmount,
benefitAmount, torAmount
);
}
_torToken.transferFrom(msg.sender, address(this), torAmount);
_totalTorDeposited += torAmount;
_torDepositedByAddress[msg.sender] += torAmount;
uint256 newThroneId = _getNewThroneId();
_thrones[newThroneId] = Throne({
name: name,
id: newThroneId,
serviceType: serviceType,
benefitType: benefitType,
benefitAmount: benefitAmount,
referrer: msg.sender,
referralCode: referralCode,
torAmount: torAmount,
linkUrl: linkUrl,
status: Status.InReview,
timestamp: block.timestamp
});
_throneIds.push(newThroneId);
_deleteLostOrRejectedThrone(msg.sender, name, benefitType);
emit ThroneStatus(throneId, Status.InReview);
return newThroneId;
}
function _checkUsurpCondition(
uint256 ownedBenefitAmount, uint256 ownedTorAmount,
uint256 challengerBenefitAmount, uint256 challengerTorAmount
) private pure {
require(challengerTorAmount > 0, "At least 1 TOR is required");
require(
(challengerBenefitAmount > ownedBenefitAmount) ||
((challengerBenefitAmount == ownedBenefitAmount) && (challengerTorAmount > ownedTorAmount)),
"Benefit or TOR amount should be greater than current throne"
);
}
function withdrawFromThrone(uint256 throneId) external returns (bool success) {
require(_thrones[throneId].referrer == msg.sender, "addresses are not match");
require(_thrones[throneId].id > 0, "Invalid id");
require(
_thrones[throneId].status == Status.Owned || _thrones[throneId].status == Status.InReview,
"Not in Owned or InReview state"
);
_withdraw(msg.sender, _thrones[throneId].torAmount);
_deleteThrone(throneId);
_userHistory.setAbandonActivity(msg.sender, block.timestamp);
return true;
}
function cancelThrone(uint256 throneId) external onlyAdmin {
require(_thrones[throneId].id > 0, "Invalid id");
require(
_thrones[throneId].status == Status.Owned,
"Not in Owned state"
);
_withdraw(msg.sender, _thrones[throneId].torAmount);
_deleteThrone(throneId);
}
function _withdraw(address address_, uint256 torAmountToWithdraw) private {
require(address_ != address(0), "Invalid address");
require(torAmountToWithdraw > 0, "Invalid TOR amount to withdraw");
require(_totalTorDeposited >= torAmountToWithdraw, "Not enough total TOR amount");
require(_torDepositedByAddress[address_] >= torAmountToWithdraw, "Not enough TOR deposited");
require(_torToken.balanceOf(address(this)) >= torAmountToWithdraw, "Not enough TOR balance");
_torToken.transfer(address_, torAmountToWithdraw);
_totalTorDeposited -= torAmountToWithdraw;
_torDepositedByAddress[address_] -= torAmountToWithdraw;
}
function modifyThroneInReview(
uint256 throneId,
string memory name,
string memory serviceType,
string memory benefitType,
string memory linkUrl
) external onlyAdmin {
require(
_thrones[throneId].status == Status.InReview,
"Not in InReview state"
);
_thrones[throneId].name = name;
_thrones[throneId].serviceType = serviceType;
_thrones[throneId].benefitType = benefitType;
_thrones[throneId].linkUrl = linkUrl;
}
function approveThrone(uint256 throneId) external onlyAdmin {
address referrer = _thrones[throneId].referrer;
require(referrer != address(0), "Invalid referrer address");
require(
_thrones[throneId].status == Status.InReview,
"Not in InReview state"
);
string memory name = _thrones[throneId].name;
string memory benefitType = _thrones[throneId].benefitType;
uint256 currentThroneId = _findThroneId(Status.Owned, name, benefitType);
if (currentThroneId > 0) {
_checkUsurpCondition(
_thrones[currentThroneId].benefitAmount, _thrones[currentThroneId].torAmount,
_thrones[throneId].benefitAmount, _thrones[throneId].torAmount
);
_lostThrone(currentThroneId);
_userHistory.setUsurpActivity(referrer, block.timestamp);
} else {
_userHistory.setThroneActivity(referrer, block.timestamp);
}
_thrones[throneId].status = Status.Owned;
emit ThroneStatus(throneId, Status.Owned);
}
function rejectThrone(uint256 throneId) external onlyAdmin {
require(_thrones[throneId].id > 0, "Invalid id");
require(_thrones[throneId].status == Status.InReview, "Not in InReview state");
_withdraw(_thrones[throneId].referrer, _thrones[throneId].torAmount);
_thrones[throneId].status = Status.Rejected;
emit ThroneStatus(throneId, Status.Rejected);
}
function _lostThrone(uint256 throneId) private onlyAdmin {
require(_thrones[throneId].id > 0, "Invalid id");
require(_thrones[throneId].status == Status.Owned, "Not in Owned state");
_withdraw(_thrones[throneId].referrer, _thrones[throneId].torAmount);
_thrones[throneId].status = Status.Lost;
emit ThroneStatus(throneId, Status.Lost);
}
function getAllOwnedThrones() external view returns (Throne[] memory) {
uint ownedThroneCount = _getThroneCountInStatus(Status.Owned);
Throne[] memory ownedThrones = new Throne[](ownedThroneCount);
uint256 ownedThroneIndex = 0;
for (uint256 i = 0; i < _throneIds.length; i++) {
if (_isThroneInStatus(_throneIds[i], Status.Owned)) {
ownedThrones[ownedThroneIndex++] = _thrones[_throneIds[i]];
}
}
return ownedThrones;
}
function getAllThronesInReview() external view onlyAdmin returns (Throne[] memory) {
uint throneInReviewCount = _getThroneCountInStatus(Status.InReview);
Throne[] memory thronesInReview = new Throne[](throneInReviewCount);
uint256 throneInReviewIndex = 0;
for (uint256 i = 0; i < _throneIds.length; i++) {
if (_isThroneInStatus(_throneIds[i], Status.InReview)) {
thronesInReview[throneInReviewIndex++] = _thrones[_throneIds[i]];
}
}
return thronesInReview;
}
function getThronesByAddress(address address_) external view returns (Throne[] memory) {
uint throneCount = _getThroneCountOfAddress(address_);
Throne[] memory thrones = new Throne[](throneCount);
uint throneIndex = 0;
for (uint256 i = 0; i < _throneIds.length; i++) {
if (_thrones[_throneIds[i]].referrer == address_) {
thrones[throneIndex++] = _thrones[_throneIds[i]];
}
}
return thrones;
}
function getThroneById(uint256 throneId) external view returns (Throne memory) {
require(_thrones[throneId].id > 0, "Invalid id");
return _thrones[throneId];
}
function getOwnedThroneCount() external view returns (uint256) {
return _getThroneCountInStatus(Status.Owned);
}
function _getNewThroneId() private returns (uint256) {
return ++_lastThroneId;
}
function _findThroneId(
Status status,
string memory name,
string memory benefitType
) private view returns (uint256) {
for (uint i = 0; i < _throneIds.length; i++) {
uint256 throneId = _throneIds[i];
if (_thrones[throneId].status == status &&
_compareStrings(_thrones[throneId].name, name) &&
_compareStrings(_thrones[throneId].benefitType, benefitType)) {
return throneId;
}
}
return 0;
}
function _deleteLostOrRejectedThrone(
address address_,
string memory name,
string memory benefitType
) private {
uint length = _throneIds.length;
for (uint i = 0; i < length; i++) {
uint256 throneId = _throneIds[i];
if ((_thrones[throneId].status == Status.Lost || _thrones[throneId].status == Status.Rejected) &&
_thrones[throneId].referrer == address_ &&
_compareStrings(_thrones[throneId].name, name) &&
_compareStrings(_thrones[throneId].benefitType, benefitType)
) {
_throneIds[i] = _throneIds[length - 1];
_throneIds.pop();
delete _thrones[throneId];
break;
}
}
}
function _deleteThrone(uint256 throneId) private {
uint length = _throneIds.length;
for (uint i = 0; i < length; i++) {
if (_thrones[_throneIds[i]].id == throneId) {
_throneIds[i] = _throneIds[length - 1];
_throneIds.pop();
delete _thrones[throneId];
break;
}
}
}
function _isThroneInReview(
address address_,
string memory name,
string memory benefitType
) private view returns (bool) {
for (uint i = 0; i < _throneIds.length; i++) {
uint256 throneId = _throneIds[i];
if (_thrones[throneId].referrer == address_ &&
_thrones[throneId].status == Status.InReview &&
_compareStrings(_thrones[throneId].name, name) &&
_compareStrings(_thrones[throneId].benefitType, benefitType)) {
return true;
}
}
return false;
}
function _getThroneCountInStatus(Status status) private view returns (uint count) {
uint throneCount = 0;
for (uint256 i = 0; i < _throneIds.length; i++) {
if (_isThroneInStatus(_throneIds[i], status)) {
throneCount++;
}
}
return throneCount;
}
function _getThroneCountOfAddress(address address_) private view returns (uint count) {
uint throneCount = 0;
for (uint256 i = 0; i < _throneIds.length; i++) {
if (_thrones[_throneIds[i]].referrer == address_) {
throneCount++;
}
}
return throneCount;
}
function _isThroneInStatus(uint256 throneId, Status status) private view returns (bool) {
return _thrones[throneId].status == status;
}
function _compareStrings(string memory a, string memory b) private pure returns (bool) {
bytes32 hashA = keccak256(bytes(a));
bytes32 hashB = keccak256(bytes(b));
return hashA == hashB;
}
}// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol)
pragma solidity ^0.8.20;
/**
* @dev Interface of the ERC20 standard as defined in the EIP.
*/
interface IERC20 {
/**
* @dev Emitted when `value` tokens are moved from one account (`from`) to
* another (`to`).
*
* Note that `value` may be zero.
*/
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev Emitted when the allowance of a `spender` for an `owner` is set by
* a call to {approve}. `value` is the new allowance.
*/
event Approval(address indexed owner, address indexed spender, uint256 value);
/**
* @dev Returns the value of tokens in existence.
*/
function totalSupply() external view returns (uint256);
/**
* @dev Returns the value of tokens owned by `account`.
*/
function balanceOf(address account) external view returns (uint256);
/**
* @dev Moves a `value` amount of tokens from the caller's account to `to`.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transfer(address to, uint256 value) external returns (bool);
/**
* @dev Returns the remaining number of tokens that `spender` will be
* allowed to spend on behalf of `owner` through {transferFrom}. This is
* zero by default.
*
* This value changes when {approve} or {transferFrom} are called.
*/
function allowance(address owner, address spender) external view returns (uint256);
/**
* @dev Sets a `value` amount of tokens as the allowance of `spender` over the
* caller's tokens.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* IMPORTANT: Beware that changing an allowance with this method brings the risk
* that someone may use both the old and the new allowance by unfortunate
* transaction ordering. One possible solution to mitigate this race
* condition is to first reduce the spender's allowance to 0 and set the
* desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
*
* Emits an {Approval} event.
*/
function approve(address spender, uint256 value) external returns (bool);
/**
* @dev Moves a `value` amount of tokens from `from` to `to` using the
* allowance mechanism. `value` is then deducted from the caller's
* allowance.
*
* Returns a boolean value indicating whether the operation succeeded.
*
* Emits a {Transfer} event.
*/
function transferFrom(address from, address to, uint256 value) external returns (bool);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
enum YieldMode {
AUTOMATIC,
VOID,
CLAIMABLE
}
enum GasMode {
VOID,
CLAIMABLE
}
interface IBlast{
// configure
function configureContract(address contractAddress, YieldMode _yield, GasMode gasMode, address governor) external;
function configure(YieldMode _yield, GasMode gasMode, address governor) external;
// base configuration options
function configureClaimableYield() external;
function configureClaimableYieldOnBehalf(address contractAddress) external;
function configureAutomaticYield() external;
function configureAutomaticYieldOnBehalf(address contractAddress) external;
function configureVoidYield() external;
function configureVoidYieldOnBehalf(address contractAddress) external;
function configureClaimableGas() external;
function configureClaimableGasOnBehalf(address contractAddress) external;
function configureVoidGas() external;
function configureVoidGasOnBehalf(address contractAddress) external;
function configureGovernor(address _governor) external;
function configureGovernorOnBehalf(address _newGovernor, address contractAddress) external;
// claim yield
function claimYield(address contractAddress, address recipientOfYield, uint256 amount) external returns (uint256);
function claimAllYield(address contractAddress, address recipientOfYield) external returns (uint256);
// claim gas
function claimAllGas(address contractAddress, address recipientOfGas) external returns (uint256);
function claimGasAtMinClaimRate(address contractAddress, address recipientOfGas, uint256 minClaimRateBips) external returns (uint256);
function claimMaxGas(address contractAddress, address recipientOfGas) external returns (uint256);
function claimGas(address contractAddress, address recipientOfGas, uint256 gasToClaim, uint256 gasSecondsToConsume) external returns (uint256);
// read functions
function readClaimableYield(address contractAddress) external view returns (uint256);
function readYieldConfiguration(address contractAddress) external view returns (uint8);
function readGasParams(address contractAddress) external view returns (uint256 etherSeconds, uint256 etherBalance, uint256 lastUpdated, GasMode);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IBlastPoints {
function configurePointsOperator(address operator) external;
function configurePointsOperatorOnBehalf(address contractAddress, address operator) external;
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IOwnerGroupContract {
function isOwner(address owenerAddress) external view returns (bool);
function isAdmin(address adminAddress) external view returns (bool);
function getOwnerCount() external view returns (uint);
function getAdminCount() external view returns (uint);
function isTrustedContract(address contractAddress) external view returns (bool);
}// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IUserHistory {
function setDepositActivity(address account, uint timestamp, uint256 tor_changes, uint256 tor_balance) external;
function setWithdrawActivity(address account, uint timestamp, uint256 tor_changes, uint256 tor_balance) external;
function setInviterActivity(address account, uint timestamp) external;
function setInviteeActivity(address account, uint timestamp) external;
function setGenCodeActivity(address account, uint timestamp) external;
function setThroneActivity(address account, uint timestamp) external;
function setUsurpActivity(address account, uint timestamp) external;
function setAbandonActivity(address account, uint timestamp) external;
}{
"evmVersion": "paris",
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"torTokenContractAddress","type":"address"},{"internalType":"address","name":"userHistoryContractAddress","type":"address"},{"internalType":"address","name":"ownerGroupContractAddress","type":"address"},{"internalType":"address","name":"blastPointsContractAddress","type":"address"},{"internalType":"address","name":"blastPointsOperatorAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"throneId","type":"uint256"},{"indexed":false,"internalType":"enum RefThrone.Status","name":"status","type":"uint8"}],"name":"ThroneStatus","type":"event"},{"inputs":[{"internalType":"uint256","name":"throneId","type":"uint256"}],"name":"approveThrone","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"throneId","type":"uint256"}],"name":"cancelThrone","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimAllGas","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getAllOwnedThrones","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"serviceType","type":"string"},{"internalType":"string","name":"benefitType","type":"string"},{"internalType":"uint256","name":"benefitAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"string","name":"referralCode","type":"string"},{"internalType":"uint256","name":"torAmount","type":"uint256"},{"internalType":"string","name":"linkUrl","type":"string"},{"internalType":"enum RefThrone.Status","name":"status","type":"uint8"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct RefThrone.Throne[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAllThronesInReview","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"serviceType","type":"string"},{"internalType":"string","name":"benefitType","type":"string"},{"internalType":"uint256","name":"benefitAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"string","name":"referralCode","type":"string"},{"internalType":"uint256","name":"torAmount","type":"uint256"},{"internalType":"string","name":"linkUrl","type":"string"},{"internalType":"enum RefThrone.Status","name":"status","type":"uint8"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct RefThrone.Throne[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlastPointsContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlastPointsOperatorAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwnedThroneCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"throneId","type":"uint256"}],"name":"getThroneById","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"serviceType","type":"string"},{"internalType":"string","name":"benefitType","type":"string"},{"internalType":"uint256","name":"benefitAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"string","name":"referralCode","type":"string"},{"internalType":"uint256","name":"torAmount","type":"uint256"},{"internalType":"string","name":"linkUrl","type":"string"},{"internalType":"enum RefThrone.Status","name":"status","type":"uint8"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct RefThrone.Throne","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"getThronesByAddress","outputs":[{"components":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"serviceType","type":"string"},{"internalType":"string","name":"benefitType","type":"string"},{"internalType":"uint256","name":"benefitAmount","type":"uint256"},{"internalType":"address","name":"referrer","type":"address"},{"internalType":"string","name":"referralCode","type":"string"},{"internalType":"uint256","name":"torAmount","type":"uint256"},{"internalType":"string","name":"linkUrl","type":"string"},{"internalType":"enum RefThrone.Status","name":"status","type":"uint8"},{"internalType":"uint256","name":"timestamp","type":"uint256"}],"internalType":"struct RefThrone.Throne[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"address_","type":"address"}],"name":"getTorDepositedByAddress","outputs":[{"internalType":"uint256","name":"torAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTorTokenContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalTorDeposited","outputs":[{"internalType":"uint256","name":"torAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUserHistoryContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"throneId","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"serviceType","type":"string"},{"internalType":"string","name":"benefitType","type":"string"},{"internalType":"string","name":"linkUrl","type":"string"}],"name":"modifyThroneInReview","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"readGasParams","outputs":[{"internalType":"uint256","name":"etherSeconds","type":"uint256"},{"internalType":"uint256","name":"etherBalance","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"},{"internalType":"enum GasMode","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"throneId","type":"uint256"}],"name":"rejectThrone","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"serviceType","type":"string"},{"internalType":"string","name":"benefitType","type":"string"},{"internalType":"uint256","name":"benefitAmount","type":"uint256"},{"internalType":"string","name":"referralCode","type":"string"},{"internalType":"uint256","name":"torAmount","type":"uint256"},{"internalType":"string","name":"linkUrl","type":"string"}],"name":"requestDepositForThrone","outputs":[{"internalType":"uint256","name":"throneId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"torTokenContractAddress","type":"address"}],"name":"setTorTokenContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"userHistoryContractAddress","type":"address"}],"name":"setUserHistoryContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"throneId","type":"uint256"}],"name":"withdrawFromThrone","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60806040526000600b556000600e553480156200001b57600080fd5b506040516200642538038062006425833981810160405281019062000041919062000579565b82600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734300000000000000000000000000000000000002600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634e606c476040518163ffffffff1660e01b8152600401600060405180830381600087803b158015620001e357600080fd5b505af1158015620001f8573d6000803e3d6000fd5b5050505081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166336b91f2b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040162000360919062000612565b600060405180830381600087803b1580156200037b57600080fd5b505af115801562000390573d6000803e3d6000fd5b50505050620003a585620003c160201b60201c565b620003b6846200046860201b60201c565b50505050506200062f565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620005418262000514565b9050919050565b620005538162000534565b81146200055f57600080fd5b50565b600081519050620005738162000548565b92915050565b600080600080600060a086880312156200059857620005976200050f565b5b6000620005a88882890162000562565b9550506020620005bb8882890162000562565b9450506040620005ce8882890162000562565b9350506060620005e18882890162000562565b9250506080620005f48882890162000562565b9150509295509295909350565b6200060c8162000534565b82525050565b600060208201905062000629600083018462000601565b92915050565b615de6806200063f6000396000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c80637c7a61d5116100b8578063b5394d1f1161007c578063b5394d1f1461032b578063b762ee7914610347578063baf5470814610365578063cdb219c514610395578063e19d62b8146103b3578063e6c227ce146103d157610137565b80637c7a61d5146102635780639b174dc01461027f5780639d443a00146102af578063a3b6710c146102df578063b0b8a591146102fb57610137565b8063491ae348116100ff578063491ae348146101e05780634b36859e146102015780635992df6b1461021d5780636100f9511461023b578063645dd1fa1461025957610137565b806303ca540b1461013c578063057d82ad14610158578063092b2410146101765780630ee524e2146101945780632cfebe0a146101c4575b600080fd5b610156600480360381019061015191906146a8565b6103ef565b005b6101606104d6565b60405161016d91906146e4565b60405180910390f35b61017e610500565b60405161018b9190614718565b60405180910390f35b6101ae60048036038101906101a9919061475f565b610511565b6040516101bb91906149bc565b60405180910390f35b6101de60048036038101906101d9919061475f565b61092b565b005b6101e8610eaa565b6040516101f89493929190614a26565b60405180910390f35b61021b6004803603810190610216919061475f565b611033565b005b6102256112c3565b6040516102329190614c38565b60405180910390f35b610243611857565b60405161025091906146e4565b60405180910390f35b610261611881565b005b61027d600480360381019061027891906146a8565b611a1f565b005b610299600480360381019061029491906146a8565b611b06565b6040516102a69190614c38565b60405180910390f35b6102c960048036038101906102c491906146a8565b612019565b6040516102d69190614718565b60405180910390f35b6102f960048036038101906102f4919061475f565b612062565b005b61031560048036038101906103109190614d8f565b61224c565b6040516103229190614718565b60405180910390f35b61034560048036038101906103409190614ebd565b6127e0565b005b61034f6129dc565b60405161035c9190614c38565b60405180910390f35b61037f600480360381019061037a919061475f565b612e95565b60405161038c9190614fc3565b60405180910390f35b61039d613131565b6040516103aa91906146e4565b60405180910390f35b6103bb61315b565b6040516103c891906146e4565b60405180910390f35b6103d9613185565b6040516103e69190614718565b60405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b815260040161044a91906146e4565b602060405180830381865afa158015610467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048b919061500a565b6104ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c190615094565b60405180910390fd5b6104d38161318f565b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061050c6001613236565b905090565b610519614557565b6000600c60008481526020019081526020016000206000015411610572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056990615100565b60405180910390fd5b600c600083815260200190815260200160002060405180610160016040529081600082015481526020016001820180546105ab9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546105d79061514f565b80156106245780601f106105f957610100808354040283529160200191610624565b820191906000526020600020905b81548152906001019060200180831161060757829003601f168201915b5050505050815260200160028201805461063d9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546106699061514f565b80156106b65780601f1061068b576101008083540402835291602001916106b6565b820191906000526020600020905b81548152906001019060200180831161069957829003601f168201915b505050505081526020016003820180546106cf9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb9061514f565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b50505050508152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820180546107c19061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546107ed9061514f565b801561083a5780601f1061080f5761010080835404028352916020019161083a565b820191906000526020600020905b81548152906001019060200180831161081d57829003601f168201915b505050505081526020016007820154815260200160088201805461085d9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546108899061514f565b80156108d65780601f106108ab576101008083540402835291602001916108d6565b820191906000526020600020905b8154815290600101906020018083116108b957829003601f168201915b505050505081526020016009820160009054906101000a900460ff1660038111156109045761090361483a565b5b60038111156109165761091561483a565b5b8152602001600a820154815250509050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161098691906146e4565b602060405180830381865afa1580156109a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c7919061500a565b610a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fd906151cc565b60405180910390fd5b6000600c600083815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790615238565b60405180910390fd5b60006003811115610ac457610ac361483a565b5b600c600084815260200190815260200160002060090160009054906101000a900460ff166003811115610afa57610af961483a565b5b14610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b31906152a4565b60405180910390fd5b6000600c60008481526020019081526020016000206001018054610b5d9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b899061514f565b8015610bd65780601f10610bab57610100808354040283529160200191610bd6565b820191906000526020600020905b815481529060010190602001808311610bb957829003601f168201915b505050505090506000600c60008581526020019081526020016000206003018054610c009061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2c9061514f565b8015610c795780601f10610c4e57610100808354040283529160200191610c79565b820191906000526020600020905b815481529060010190602001808311610c5c57829003601f168201915b505050505090506000610c8e600184846132a0565b90506000811115610d9a57610cfd600c600083815260200190815260200160002060040154600c600084815260200190815260200160002060070154600c600089815260200190815260200160002060040154600c60008a8152602001908152602001600020600701546134ac565b610d068161354c565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166319e9ee7585426040518363ffffffff1660e01b8152600401610d639291906152c4565b600060405180830381600087803b158015610d7d57600080fd5b505af1158015610d91573d6000803e3d6000fd5b50505050610e2a565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166372316ef385426040518363ffffffff1660e01b8152600401610df79291906152c4565b600060405180830381600087803b158015610e1157600080fd5b505af1158015610e25573d6000803e3d6000fd5b505050505b6001600c600087815260200190815260200160002060090160006101000a81548160ff02191690836003811115610e6457610e6361483a565b5b02179055507fbf010aba48e49020ed90d2f6b9ae36c27e06a48f276aa44d6594e44347cb5cad856001604051610e9b9291906152fc565b60405180910390a15050505050565b600080600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401610f0b91906146e4565b602060405180830381865afa158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c919061500a565b610f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8290615094565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dde798a4306040518263ffffffff1660e01b8152600401610fe491906146e4565b608060405180830381865afa158015611001573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611025919061535f565b935093509350935090919293565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161108e91906146e4565b602060405180830381865afa1580156110ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cf919061500a565b61110e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611105906151cc565b60405180910390fd5b6000600c60008381526020019081526020016000206000015411611167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115e90615100565b60405180910390fd5b6000600381111561117b5761117a61483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff1660038111156111b1576111b061483a565b5b146111f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e8906152a4565b60405180910390fd5b611247600c600083815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000848152602001908152602001600020600701546137dc565b6002600c600083815260200190815260200160002060090160006101000a81548160ff021916908360038111156112815761128061483a565b5b02179055507fbf010aba48e49020ed90d2f6b9ae36c27e06a48f276aa44d6594e44347cb5cad8160026040516112b89291906152fc565b60405180910390a150565b6060600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161132091906146e4565b602060405180830381865afa15801561133d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611361919061500a565b6113a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611397906151cc565b60405180910390fd5b60006113ac6000613236565b905060008167ffffffffffffffff8111156113ca576113c9614c64565b5b60405190808252806020026020018201604052801561140357816020015b6113f0614557565b8152602001906001900390816113e85790505b5090506000805b600d8054905081101561184d57611440600d828154811061142e5761142d6153c6565b5b90600052602060002001546000613b47565b1561184057600c6000600d838154811061145d5761145c6153c6565b5b90600052602060002001548152602001908152602001600020604051806101600160405290816000820154815260200160018201805461149c9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546114c89061514f565b80156115155780601f106114ea57610100808354040283529160200191611515565b820191906000526020600020905b8154815290600101906020018083116114f857829003601f168201915b5050505050815260200160028201805461152e9061514f565b80601f016020809104026020016040519081016040528092919081815260200182805461155a9061514f565b80156115a75780601f1061157c576101008083540402835291602001916115a7565b820191906000526020600020905b81548152906001019060200180831161158a57829003601f168201915b505050505081526020016003820180546115c09061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546115ec9061514f565b80156116395780601f1061160e57610100808354040283529160200191611639565b820191906000526020600020905b81548152906001019060200180831161161c57829003601f168201915b50505050508152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820180546116b29061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546116de9061514f565b801561172b5780601f106117005761010080835404028352916020019161172b565b820191906000526020600020905b81548152906001019060200180831161170e57829003601f168201915b505050505081526020016007820154815260200160088201805461174e9061514f565b80601f016020809104026020016040519081016040528092919081815260200182805461177a9061514f565b80156117c75780601f1061179c576101008083540402835291602001916117c7565b820191906000526020600020905b8154815290600101906020018083116117aa57829003601f168201915b505050505081526020016009820160009054906101000a900460ff1660038111156117f5576117f461483a565b5b60038111156118075761180661483a565b5b8152602001600a8201548152505083838061182190615424565b945081518110611834576118336153c6565b5b60200260200101819052505b808060010191505061140a565b5081935050505090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b81526004016118dc91906146e4565b602060405180830381865afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d919061500a565b61195c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195390615094565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663954fa5ee30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016119d992919061546c565b6020604051808303816000875af11580156119f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1c9190615495565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401611a7a91906146e4565b602060405180830381865afa158015611a97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abb919061500a565b611afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af190615094565b60405180910390fd5b611b0381613b9b565b50565b60606000611b1383613c42565b905060008167ffffffffffffffff811115611b3157611b30614c64565b5b604051908082528060200260200182016040528015611b6a57816020015b611b57614557565b815260200190600190039081611b4f5790505b5090506000805b600d8054905081101561200d578573ffffffffffffffffffffffffffffffffffffffff16600c6000600d8481548110611bad57611bac6153c6565b5b9060005260206000200154815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361200057600c6000600d8381548110611c1d57611c1c6153c6565b5b906000526020600020015481526020019081526020016000206040518061016001604052908160008201548152602001600182018054611c5c9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054611c889061514f565b8015611cd55780601f10611caa57610100808354040283529160200191611cd5565b820191906000526020600020905b815481529060010190602001808311611cb857829003601f168201915b50505050508152602001600282018054611cee9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1a9061514f565b8015611d675780601f10611d3c57610100808354040283529160200191611d67565b820191906000526020600020905b815481529060010190602001808311611d4a57829003601f168201915b50505050508152602001600382018054611d809061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054611dac9061514f565b8015611df95780601f10611dce57610100808354040283529160200191611df9565b820191906000526020600020905b815481529060010190602001808311611ddc57829003601f168201915b50505050508152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600682018054611e729061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9e9061514f565b8015611eeb5780601f10611ec057610100808354040283529160200191611eeb565b820191906000526020600020905b815481529060010190602001808311611ece57829003601f168201915b5050505050815260200160078201548152602001600882018054611f0e9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3a9061514f565b8015611f875780601f10611f5c57610100808354040283529160200191611f87565b820191906000526020600020905b815481529060010190602001808311611f6a57829003601f168201915b505050505081526020016009820160009054906101000a900460ff166003811115611fb557611fb461483a565b5b6003811115611fc757611fc661483a565b5b8152602001600a82015481525050838380611fe190615424565b945081518110611ff457611ff36153c6565b5b60200260200101819052505b8080600101915050611b71565b50819350505050919050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b81526004016120bd91906146e4565b602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe919061500a565b61213d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612134906151cc565b60405180910390fd5b6000600c60008381526020019081526020016000206000015411612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218d90615100565b60405180910390fd5b600160038111156121aa576121a961483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff1660038111156121e0576121df61483a565b5b14612220576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122179061550e565b60405180910390fd5b61224033600c6000848152602001908152602001600020600701546137dc565b61224981613d06565b50565b600082600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016122aa91906146e4565b602060405180830381865afa1580156122c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122eb9190615495565b101561232c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123239061557a565b60405180910390fd5b82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161238a92919061546c565b602060405180830381865afa1580156123a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123cb9190615495565b101561240c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612403906155e6565b60405180910390fd5b612417338988613ea3565b15612457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244e90615652565b60405180910390fd5b600061246560018a896132a0565b905060008111156124a9576124a8600c600083815260200190815260200160002060040154600c60008481526020019081526020016000206007015488876134ac565b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b815260040161250893929190615672565b6020604051808303816000875af1158015612527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254b919061500a565b5083600e600082825461255e91906156a9565b9250508190555083600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125b491906156a9565b9250508190555060006125c561411e565b90506040518061016001604052808281526020018b81526020018a81526020018981526020018881526020013373ffffffffffffffffffffffffffffffffffffffff168152602001878152602001868152602001858152602001600060038111156126335761263261483a565b5b815260200142815250600c600083815260200190815260200160002060008201518160000155602082015181600101908161266e9190615889565b5060408201518160020190816126849190615889565b50606082015181600301908161269a9190615889565b506080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160060190816127019190615889565b5060e082015181600701556101008201518160080190816127229190615889565b506101208201518160090160006101000a81548160ff0219169083600381111561274f5761274e61483a565b5b021790555061014082015181600a0155905050600d819080600181540180825580915050600190039060005260206000200160009091909190915055612796338b8a61413a565b7fbf010aba48e49020ed90d2f6b9ae36c27e06a48f276aa44d6594e44347cb5cad8360006040516127c89291906152fc565b60405180910390a18092505050979650505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161283b91906146e4565b602060405180830381865afa158015612858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287c919061500a565b6128bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b2906151cc565b60405180910390fd5b600060038111156128cf576128ce61483a565b5b600c600087815260200190815260200160002060090160009054906101000a900460ff1660038111156129055761290461483a565b5b14612945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293c906152a4565b60405180910390fd5b83600c600087815260200190815260200160002060010190816129689190615889565b5082600c6000878152602001908152602001600020600201908161298c9190615889565b5081600c600087815260200190815260200160002060030190816129b09190615889565b5080600c600087815260200190815260200160002060080190816129d49190615889565b505050505050565b606060006129ea6001613236565b905060008167ffffffffffffffff811115612a0857612a07614c64565b5b604051908082528060200260200182016040528015612a4157816020015b612a2e614557565b815260200190600190039081612a265790505b5090506000805b600d80549050811015612e8b57612a7e600d8281548110612a6c57612a6b6153c6565b5b90600052602060002001546001613b47565b15612e7e57600c6000600d8381548110612a9b57612a9a6153c6565b5b906000526020600020015481526020019081526020016000206040518061016001604052908160008201548152602001600182018054612ada9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054612b069061514f565b8015612b535780601f10612b2857610100808354040283529160200191612b53565b820191906000526020600020905b815481529060010190602001808311612b3657829003601f168201915b50505050508152602001600282018054612b6c9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054612b989061514f565b8015612be55780601f10612bba57610100808354040283529160200191612be5565b820191906000526020600020905b815481529060010190602001808311612bc857829003601f168201915b50505050508152602001600382018054612bfe9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054612c2a9061514f565b8015612c775780601f10612c4c57610100808354040283529160200191612c77565b820191906000526020600020905b815481529060010190602001808311612c5a57829003601f168201915b50505050508152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600682018054612cf09061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054612d1c9061514f565b8015612d695780601f10612d3e57610100808354040283529160200191612d69565b820191906000526020600020905b815481529060010190602001808311612d4c57829003601f168201915b5050505050815260200160078201548152602001600882018054612d8c9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054612db89061514f565b8015612e055780601f10612dda57610100808354040283529160200191612e05565b820191906000526020600020905b815481529060010190602001808311612de857829003601f168201915b505050505081526020016009820160009054906101000a900460ff166003811115612e3357612e3261483a565b5b6003811115612e4557612e4461483a565b5b8152602001600a82015481525050838380612e5f90615424565b945081518110612e7257612e716153c6565b5b60200260200101819052505b8080600101915050612a48565b5081935050505090565b60003373ffffffffffffffffffffffffffffffffffffffff16600c600084815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f32906159a7565b60405180910390fd5b6000600c60008481526020019081526020016000206000015411612f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8b90615100565b60405180910390fd5b60016003811115612fa857612fa761483a565b5b600c600084815260200190815260200160002060090160009054906101000a900460ff166003811115612fde57612fdd61483a565b5b1480613031575060006003811115612ff957612ff861483a565b5b600c600084815260200190815260200160002060090160009054906101000a900460ff16600381111561302f5761302e61483a565b5b145b613070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306790615a13565b60405180910390fd5b61309033600c6000858152602001908152602001600020600701546137dc565b61309982613d06565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c04143ec33426040518363ffffffff1660e01b81526004016130f69291906152c4565b600060405180830381600087803b15801561311057600080fd5b505af1158015613124573d6000803e3d6000fd5b5050505060019050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600e54905090565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000905060005b600d8054905081101561329657613275600d8281548110613264576132636153c6565b5b906000526020600020015485613b47565b1561328957818061328590615424565b9250505b8080600101915050613240565b5080915050919050565b600080600090505b600d8054905081101561349f576000600d82815481106132cb576132ca6153c6565b5b906000526020600020015490508560038111156132eb576132ea61483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff1660038111156133215761332061483a565b5b1480156133d257506133d1600c6000838152602001908152602001600020600101805461334d9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546133799061514f565b80156133c65780601f1061339b576101008083540402835291602001916133c6565b820191906000526020600020905b8154815290600101906020018083116133a957829003601f168201915b505050505086614531565b5b80156134825750613481600c600083815260200190815260200160002060030180546133fd9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546134299061514f565b80156134765780601f1061344b57610100808354040283529160200191613476565b820191906000526020600020905b81548152906001019060200180831161345957829003601f168201915b505050505085614531565b5b156134915780925050506134a5565b5080806001019150506132a8565b50600090505b9392505050565b600081116134ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134e690615a7f565b60405180910390fd5b838211806135075750838214801561350657508281115b5b613546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353d90615b11565b60405180910390fd5b50505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b81526004016135a791906146e4565b602060405180830381865afa1580156135c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135e8919061500a565b613627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161361e906151cc565b60405180910390fd5b6000600c60008381526020019081526020016000206000015411613680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161367790615100565b60405180910390fd5b600160038111156136945761369361483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff1660038111156136ca576136c961483a565b5b1461370a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137019061550e565b60405180910390fd5b613760600c600083815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000848152602001908152602001600020600701546137dc565b6003600c600083815260200190815260200160002060090160006101000a81548160ff0219169083600381111561379a5761379961483a565b5b02179055507fbf010aba48e49020ed90d2f6b9ae36c27e06a48f276aa44d6594e44347cb5cad8160036040516137d19291906152fc565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361384b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161384290615b7d565b60405180910390fd5b6000811161388e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388590615be9565b60405180910390fd5b80600e5410156138d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138ca90615c55565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394c90615cc1565b60405180910390fd5b80600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016139b191906146e4565b602060405180830381865afa1580156139ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f29190615495565b1015613a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a2a90615d2d565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401613a909291906152c4565b6020604051808303816000875af1158015613aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ad3919061500a565b5080600e6000828254613ae69190615d4d565b9250508190555080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613b3c9190615d4d565b925050819055505050565b6000816003811115613b5c57613b5b61483a565b5b600c600085815260200190815260200160002060090160009054906101000a900460ff166003811115613b9257613b9161483a565b5b14905092915050565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000905060005b600d80549050811015613cfc578373ffffffffffffffffffffffffffffffffffffffff16600c6000600d8481548110613c8857613c876153c6565b5b9060005260206000200154815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603613cef578180613ceb90615424565b9250505b8080600101915050613c4c565b5080915050919050565b6000600d80549050905060005b81811015613e9e5782600c6000600d8481548110613d3457613d336153c6565b5b906000526020600020015481526020019081526020016000206000015403613e9157600d600183613d659190615d4d565b81548110613d7657613d756153c6565b5b9060005260206000200154600d8281548110613d9557613d946153c6565b5b9060005260206000200181905550600d805480613db557613db4615d81565b5b60019003818190600052602060002001600090559055600c6000848152602001908152602001600020600080820160009055600182016000613df791906145d9565b600282016000613e0791906145d9565b600382016000613e1791906145d9565b60048201600090556005820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600682016000613e5691906145d9565b6007820160009055600882016000613e6e91906145d9565b6009820160006101000a81549060ff0219169055600a8201600090555050613e9e565b8080600101915050613d13565b505050565b600080600090505b600d80549050811015614111576000600d8281548110613ece57613ecd6153c6565b5b906000526020600020015490508573ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015613f93575060006003811115613f5b57613f5a61483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff166003811115613f9157613f9061483a565b5b145b80156140435750614042600c60008381526020019081526020016000206001018054613fbe9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054613fea9061514f565b80156140375780601f1061400c57610100808354040283529160200191614037565b820191906000526020600020905b81548152906001019060200180831161401a57829003601f168201915b505050505086614531565b5b80156140f357506140f2600c6000838152602001908152602001600020600301805461406e9061514f565b80601f016020809104026020016040519081016040528092919081815260200182805461409a9061514f565b80156140e75780601f106140bc576101008083540402835291602001916140e7565b820191906000526020600020905b8154815290600101906020018083116140ca57829003601f168201915b505050505085614531565b5b1561410357600192505050614117565b508080600101915050613eab565b50600090505b9392505050565b6000600b6000815461412f90615424565b919050819055905090565b6000600d80549050905060005b8181101561452a576000600d8281548110614165576141646153c6565b5b906000526020600020015490506003808111156141855761418461483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff1660038111156141bb576141ba61483a565b5b148061420e5750600260038111156141d6576141d561483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff16600381111561420c5761420b61483a565b5b145b801561427b57508573ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b801561432b575061432a600c600083815260200190815260200160002060010180546142a69061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546142d29061514f565b801561431f5780601f106142f45761010080835404028352916020019161431f565b820191906000526020600020905b81548152906001019060200180831161430257829003601f168201915b505050505086614531565b5b80156143db57506143da600c600083815260200190815260200160002060030180546143569061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546143829061514f565b80156143cf5780601f106143a4576101008083540402835291602001916143cf565b820191906000526020600020905b8154815290600101906020018083116143b257829003601f168201915b505050505085614531565b5b1561451c57600d6001846143ef9190615d4d565b81548110614400576143ff6153c6565b5b9060005260206000200154600d838154811061441f5761441e6153c6565b5b9060005260206000200181905550600d80548061443f5761443e615d81565b5b60019003818190600052602060002001600090559055600c600082815260200190815260200160002060008082016000905560018201600061448191906145d9565b60028201600061449191906145d9565b6003820160006144a191906145d9565b60048201600090556005820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556006820160006144e091906145d9565b60078201600090556008820160006144f891906145d9565b6009820160006101000a81549060ff0219169055600a82016000905550505061452a565b508080600101915050614147565b5050505050565b600080838051906020012090506000838051906020012090508082149250505092915050565b6040518061016001604052806000815260200160608152602001606081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016000815260200160608152602001600060038111156145cc576145cb61483a565b5b8152602001600081525090565b5080546145e59061514f565b6000825580601f106145f75750614616565b601f0160209004906000526020600020908101906146159190614619565b5b50565b5b8082111561463257600081600090555060010161461a565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006146758261464a565b9050919050565b6146858161466a565b811461469057600080fd5b50565b6000813590506146a28161467c565b92915050565b6000602082840312156146be576146bd614640565b5b60006146cc84828501614693565b91505092915050565b6146de8161466a565b82525050565b60006020820190506146f960008301846146d5565b92915050565b6000819050919050565b614712816146ff565b82525050565b600060208201905061472d6000830184614709565b92915050565b61473c816146ff565b811461474757600080fd5b50565b60008135905061475981614733565b92915050565b60006020828403121561477557614774614640565b5b60006147838482850161474a565b91505092915050565b614795816146ff565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156147d55780820151818401526020810190506147ba565b60008484015250505050565b6000601f19601f8301169050919050565b60006147fd8261479b565b61480781856147a6565b93506148178185602086016147b7565b614820816147e1565b840191505092915050565b6148348161466a565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061487a5761487961483a565b5b50565b600081905061488b82614869565b919050565b600061489b8261487d565b9050919050565b6148ab81614890565b82525050565b6000610160830160008301516148ca600086018261478c565b50602083015184820360208601526148e282826147f2565b915050604083015184820360408601526148fc82826147f2565b9150506060830151848203606086015261491682826147f2565b915050608083015161492b608086018261478c565b5060a083015161493e60a086018261482b565b5060c083015184820360c086015261495682826147f2565b91505060e083015161496b60e086018261478c565b5061010083015184820361010086015261498582826147f2565b91505061012083015161499c6101208601826148a2565b506101408301516149b161014086018261478c565b508091505092915050565b600060208201905081810360008301526149d681846148b1565b905092915050565b600281106149ef576149ee61483a565b5b50565b6000819050614a00826149de565b919050565b6000614a10826149f2565b9050919050565b614a2081614a05565b82525050565b6000608082019050614a3b6000830187614709565b614a486020830186614709565b614a556040830185614709565b614a626060830184614a17565b95945050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061016083016000830151614ab0600086018261478c565b5060208301518482036020860152614ac882826147f2565b91505060408301518482036040860152614ae282826147f2565b91505060608301518482036060860152614afc82826147f2565b9150506080830151614b11608086018261478c565b5060a0830151614b2460a086018261482b565b5060c083015184820360c0860152614b3c82826147f2565b91505060e0830151614b5160e086018261478c565b50610100830151848203610100860152614b6b82826147f2565b915050610120830151614b826101208601826148a2565b50610140830151614b9761014086018261478c565b508091505092915050565b6000614bae8383614a97565b905092915050565b6000602082019050919050565b6000614bce82614a6b565b614bd88185614a76565b935083602082028501614bea85614a87565b8060005b85811015614c265784840389528151614c078582614ba2565b9450614c1283614bb6565b925060208a01995050600181019050614bee565b50829750879550505050505092915050565b60006020820190508181036000830152614c528184614bc3565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614c9c826147e1565b810181811067ffffffffffffffff82111715614cbb57614cba614c64565b5b80604052505050565b6000614cce614636565b9050614cda8282614c93565b919050565b600067ffffffffffffffff821115614cfa57614cf9614c64565b5b614d03826147e1565b9050602081019050919050565b82818337600083830152505050565b6000614d32614d2d84614cdf565b614cc4565b905082815260208101848484011115614d4e57614d4d614c5f565b5b614d59848285614d10565b509392505050565b600082601f830112614d7657614d75614c5a565b5b8135614d86848260208601614d1f565b91505092915050565b600080600080600080600060e0888a031215614dae57614dad614640565b5b600088013567ffffffffffffffff811115614dcc57614dcb614645565b5b614dd88a828b01614d61565b975050602088013567ffffffffffffffff811115614df957614df8614645565b5b614e058a828b01614d61565b965050604088013567ffffffffffffffff811115614e2657614e25614645565b5b614e328a828b01614d61565b9550506060614e438a828b0161474a565b945050608088013567ffffffffffffffff811115614e6457614e63614645565b5b614e708a828b01614d61565b93505060a0614e818a828b0161474a565b92505060c088013567ffffffffffffffff811115614ea257614ea1614645565b5b614eae8a828b01614d61565b91505092959891949750929550565b600080600080600060a08688031215614ed957614ed8614640565b5b6000614ee78882890161474a565b955050602086013567ffffffffffffffff811115614f0857614f07614645565b5b614f1488828901614d61565b945050604086013567ffffffffffffffff811115614f3557614f34614645565b5b614f4188828901614d61565b935050606086013567ffffffffffffffff811115614f6257614f61614645565b5b614f6e88828901614d61565b925050608086013567ffffffffffffffff811115614f8f57614f8e614645565b5b614f9b88828901614d61565b9150509295509295909350565b60008115159050919050565b614fbd81614fa8565b82525050565b6000602082019050614fd86000830184614fb4565b92915050565b614fe781614fa8565b8114614ff257600080fd5b50565b60008151905061500481614fde565b92915050565b6000602082840312156150205761501f614640565b5b600061502e84828501614ff5565b91505092915050565b600082825260208201905092915050565b7f4f6e6c79204f776e657220686176652061207065726d697373696f6e2e000000600082015250565b600061507e601d83615037565b915061508982615048565b602082019050919050565b600060208201905081810360008301526150ad81615071565b9050919050565b7f496e76616c696420696400000000000000000000000000000000000000000000600082015250565b60006150ea600a83615037565b91506150f5826150b4565b602082019050919050565b60006020820190508181036000830152615119816150dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061516757607f821691505b60208210810361517a57615179615120565b5b50919050565b7f4f6e6c792041646d696e20686176652061207065726d697373696f6e2e000000600082015250565b60006151b6601d83615037565b91506151c182615180565b602082019050919050565b600060208201905081810360008301526151e5816151a9565b9050919050565b7f496e76616c696420726566657272657220616464726573730000000000000000600082015250565b6000615222601883615037565b915061522d826151ec565b602082019050919050565b6000602082019050818103600083015261525181615215565b9050919050565b7f4e6f7420696e20496e5265766965772073746174650000000000000000000000600082015250565b600061528e601583615037565b915061529982615258565b602082019050919050565b600060208201905081810360008301526152bd81615281565b9050919050565b60006040820190506152d960008301856146d5565b6152e66020830184614709565b9392505050565b6152f681614890565b82525050565b60006040820190506153116000830185614709565b61531e60208301846152ed565b9392505050565b60008151905061533481614733565b92915050565b6002811061534757600080fd5b50565b6000815190506153598161533a565b92915050565b6000806000806080858703121561537957615378614640565b5b600061538787828801615325565b945050602061539887828801615325565b93505060406153a987828801615325565b92505060606153ba8782880161534a565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061542f826146ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615461576154606153f5565b5b600182019050919050565b600060408201905061548160008301856146d5565b61548e60208301846146d5565b9392505050565b6000602082840312156154ab576154aa614640565b5b60006154b984828501615325565b91505092915050565b7f4e6f7420696e204f776e65642073746174650000000000000000000000000000600082015250565b60006154f8601283615037565b9150615503826154c2565b602082019050919050565b60006020820190508181036000830152615527816154eb565b9050919050565b7f4e6f7420656e6f75676820544f522062616c616e63652e000000000000000000600082015250565b6000615564601783615037565b915061556f8261552e565b602082019050919050565b6000602082019050818103600083015261559381615557565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b60006155d0601683615037565b91506155db8261559a565b602082019050919050565b600060208201905081810360008301526155ff816155c3565b9050919050565b7f416c726561647920696e20726576696577000000000000000000000000000000600082015250565b600061563c601183615037565b915061564782615606565b602082019050919050565b6000602082019050818103600083015261566b8161562f565b9050919050565b600060608201905061568760008301866146d5565b61569460208301856146d5565b6156a16040830184614709565b949350505050565b60006156b4826146ff565b91506156bf836146ff565b92508282019050808211156156d7576156d66153f5565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261573f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615702565b6157498683615702565b95508019841693508086168417925050509392505050565b6000819050919050565b600061578661578161577c846146ff565b615761565b6146ff565b9050919050565b6000819050919050565b6157a08361576b565b6157b46157ac8261578d565b84845461570f565b825550505050565b600090565b6157c96157bc565b6157d4818484615797565b505050565b5b818110156157f8576157ed6000826157c1565b6001810190506157da565b5050565b601f82111561583d5761580e816156dd565b615817846156f2565b81016020851015615826578190505b61583a615832856156f2565b8301826157d9565b50505b505050565b600082821c905092915050565b600061586060001984600802615842565b1980831691505092915050565b6000615879838361584f565b9150826002028217905092915050565b6158928261479b565b67ffffffffffffffff8111156158ab576158aa614c64565b5b6158b5825461514f565b6158c08282856157fc565b600060209050601f8311600181146158f357600084156158e1578287015190505b6158eb858261586d565b865550615953565b601f198416615901866156dd565b60005b8281101561592957848901518255600182019150602085019450602081019050615904565b868310156159465784890151615942601f89168261584f565b8355505b6001600288020188555050505b505050505050565b7f61646472657373657320617265206e6f74206d61746368000000000000000000600082015250565b6000615991601783615037565b915061599c8261595b565b602082019050919050565b600060208201905081810360008301526159c081615984565b9050919050565b7f4e6f7420696e204f776e6564206f7220496e5265766965772073746174650000600082015250565b60006159fd601e83615037565b9150615a08826159c7565b602082019050919050565b60006020820190508181036000830152615a2c816159f0565b9050919050565b7f4174206c65617374203120544f52206973207265717569726564000000000000600082015250565b6000615a69601a83615037565b9150615a7482615a33565b602082019050919050565b60006020820190508181036000830152615a9881615a5c565b9050919050565b7f42656e65666974206f7220544f5220616d6f756e742073686f756c642062652060008201527f67726561746572207468616e2063757272656e74207468726f6e650000000000602082015250565b6000615afb603b83615037565b9150615b0682615a9f565b604082019050919050565b60006020820190508181036000830152615b2a81615aee565b9050919050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000615b67600f83615037565b9150615b7282615b31565b602082019050919050565b60006020820190508181036000830152615b9681615b5a565b9050919050565b7f496e76616c696420544f5220616d6f756e7420746f2077697468647261770000600082015250565b6000615bd3601e83615037565b9150615bde82615b9d565b602082019050919050565b60006020820190508181036000830152615c0281615bc6565b9050919050565b7f4e6f7420656e6f75676820746f74616c20544f5220616d6f756e740000000000600082015250565b6000615c3f601b83615037565b9150615c4a82615c09565b602082019050919050565b60006020820190508181036000830152615c6e81615c32565b9050919050565b7f4e6f7420656e6f75676820544f52206465706f73697465640000000000000000600082015250565b6000615cab601883615037565b9150615cb682615c75565b602082019050919050565b60006020820190508181036000830152615cda81615c9e565b9050919050565b7f4e6f7420656e6f75676820544f522062616c616e636500000000000000000000600082015250565b6000615d17601683615037565b9150615d2282615ce1565b602082019050919050565b60006020820190508181036000830152615d4681615d0a565b9050919050565b6000615d58826146ff565b9150615d63836146ff565b9250828203905081811115615d7b57615d7a6153f5565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220891c3ee6c3192faee61859aa5e9c87e029d25b3ed9e907a1a82548d6a98a599864736f6c634300081800330000000000000000000000001e4dc6472e51f35f2b48c060db4b07a288ec1d4c000000000000000000000000ddbf28f68cd72eb7e84fe0951909dcd02fbb995c000000000000000000000000b4006ccac99b73f227b314fd1d0274daaab8021f0000000000000000000000002536fe9ab3f511540f2f9e2ec2a805005c3dd8000000000000000000000000005b50de0439c6ecf939856d2fdcfe191659aa4ee7
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101375760003560e01c80637c7a61d5116100b8578063b5394d1f1161007c578063b5394d1f1461032b578063b762ee7914610347578063baf5470814610365578063cdb219c514610395578063e19d62b8146103b3578063e6c227ce146103d157610137565b80637c7a61d5146102635780639b174dc01461027f5780639d443a00146102af578063a3b6710c146102df578063b0b8a591146102fb57610137565b8063491ae348116100ff578063491ae348146101e05780634b36859e146102015780635992df6b1461021d5780636100f9511461023b578063645dd1fa1461025957610137565b806303ca540b1461013c578063057d82ad14610158578063092b2410146101765780630ee524e2146101945780632cfebe0a146101c4575b600080fd5b610156600480360381019061015191906146a8565b6103ef565b005b6101606104d6565b60405161016d91906146e4565b60405180910390f35b61017e610500565b60405161018b9190614718565b60405180910390f35b6101ae60048036038101906101a9919061475f565b610511565b6040516101bb91906149bc565b60405180910390f35b6101de60048036038101906101d9919061475f565b61092b565b005b6101e8610eaa565b6040516101f89493929190614a26565b60405180910390f35b61021b6004803603810190610216919061475f565b611033565b005b6102256112c3565b6040516102329190614c38565b60405180910390f35b610243611857565b60405161025091906146e4565b60405180910390f35b610261611881565b005b61027d600480360381019061027891906146a8565b611a1f565b005b610299600480360381019061029491906146a8565b611b06565b6040516102a69190614c38565b60405180910390f35b6102c960048036038101906102c491906146a8565b612019565b6040516102d69190614718565b60405180910390f35b6102f960048036038101906102f4919061475f565b612062565b005b61031560048036038101906103109190614d8f565b61224c565b6040516103229190614718565b60405180910390f35b61034560048036038101906103409190614ebd565b6127e0565b005b61034f6129dc565b60405161035c9190614c38565b60405180910390f35b61037f600480360381019061037a919061475f565b612e95565b60405161038c9190614fc3565b60405180910390f35b61039d613131565b6040516103aa91906146e4565b60405180910390f35b6103bb61315b565b6040516103c891906146e4565b60405180910390f35b6103d9613185565b6040516103e69190614718565b60405180910390f35b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b815260040161044a91906146e4565b602060405180830381865afa158015610467573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061048b919061500a565b6104ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104c190615094565b60405180910390fd5b6104d38161318f565b50565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600061050c6001613236565b905090565b610519614557565b6000600c60008481526020019081526020016000206000015411610572576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161056990615100565b60405180910390fd5b600c600083815260200190815260200160002060405180610160016040529081600082015481526020016001820180546105ab9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546105d79061514f565b80156106245780601f106105f957610100808354040283529160200191610624565b820191906000526020600020905b81548152906001019060200180831161060757829003601f168201915b5050505050815260200160028201805461063d9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546106699061514f565b80156106b65780601f1061068b576101008083540402835291602001916106b6565b820191906000526020600020905b81548152906001019060200180831161069957829003601f168201915b505050505081526020016003820180546106cf9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546106fb9061514f565b80156107485780601f1061071d57610100808354040283529160200191610748565b820191906000526020600020905b81548152906001019060200180831161072b57829003601f168201915b50505050508152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820180546107c19061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546107ed9061514f565b801561083a5780601f1061080f5761010080835404028352916020019161083a565b820191906000526020600020905b81548152906001019060200180831161081d57829003601f168201915b505050505081526020016007820154815260200160088201805461085d9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546108899061514f565b80156108d65780601f106108ab576101008083540402835291602001916108d6565b820191906000526020600020905b8154815290600101906020018083116108b957829003601f168201915b505050505081526020016009820160009054906101000a900460ff1660038111156109045761090361483a565b5b60038111156109165761091561483a565b5b8152602001600a820154815250509050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161098691906146e4565b602060405180830381865afa1580156109a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109c7919061500a565b610a06576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109fd906151cc565b60405180910390fd5b6000600c600083815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa790615238565b60405180910390fd5b60006003811115610ac457610ac361483a565b5b600c600084815260200190815260200160002060090160009054906101000a900460ff166003811115610afa57610af961483a565b5b14610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b31906152a4565b60405180910390fd5b6000600c60008481526020019081526020016000206001018054610b5d9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b899061514f565b8015610bd65780601f10610bab57610100808354040283529160200191610bd6565b820191906000526020600020905b815481529060010190602001808311610bb957829003601f168201915b505050505090506000600c60008581526020019081526020016000206003018054610c009061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054610c2c9061514f565b8015610c795780601f10610c4e57610100808354040283529160200191610c79565b820191906000526020600020905b815481529060010190602001808311610c5c57829003601f168201915b505050505090506000610c8e600184846132a0565b90506000811115610d9a57610cfd600c600083815260200190815260200160002060040154600c600084815260200190815260200160002060070154600c600089815260200190815260200160002060040154600c60008a8152602001908152602001600020600701546134ac565b610d068161354c565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166319e9ee7585426040518363ffffffff1660e01b8152600401610d639291906152c4565b600060405180830381600087803b158015610d7d57600080fd5b505af1158015610d91573d6000803e3d6000fd5b50505050610e2a565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166372316ef385426040518363ffffffff1660e01b8152600401610df79291906152c4565b600060405180830381600087803b158015610e1157600080fd5b505af1158015610e25573d6000803e3d6000fd5b505050505b6001600c600087815260200190815260200160002060090160006101000a81548160ff02191690836003811115610e6457610e6361483a565b5b02179055507fbf010aba48e49020ed90d2f6b9ae36c27e06a48f276aa44d6594e44347cb5cad856001604051610e9b9291906152fc565b60405180910390a15050505050565b600080600080600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401610f0b91906146e4565b602060405180830381865afa158015610f28573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4c919061500a565b610f8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8290615094565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dde798a4306040518263ffffffff1660e01b8152600401610fe491906146e4565b608060405180830381865afa158015611001573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611025919061535f565b935093509350935090919293565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161108e91906146e4565b602060405180830381865afa1580156110ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110cf919061500a565b61110e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611105906151cc565b60405180910390fd5b6000600c60008381526020019081526020016000206000015411611167576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115e90615100565b60405180910390fd5b6000600381111561117b5761117a61483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff1660038111156111b1576111b061483a565b5b146111f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e8906152a4565b60405180910390fd5b611247600c600083815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000848152602001908152602001600020600701546137dc565b6002600c600083815260200190815260200160002060090160006101000a81548160ff021916908360038111156112815761128061483a565b5b02179055507fbf010aba48e49020ed90d2f6b9ae36c27e06a48f276aa44d6594e44347cb5cad8160026040516112b89291906152fc565b60405180910390a150565b6060600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161132091906146e4565b602060405180830381865afa15801561133d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611361919061500a565b6113a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611397906151cc565b60405180910390fd5b60006113ac6000613236565b905060008167ffffffffffffffff8111156113ca576113c9614c64565b5b60405190808252806020026020018201604052801561140357816020015b6113f0614557565b8152602001906001900390816113e85790505b5090506000805b600d8054905081101561184d57611440600d828154811061142e5761142d6153c6565b5b90600052602060002001546000613b47565b1561184057600c6000600d838154811061145d5761145c6153c6565b5b90600052602060002001548152602001908152602001600020604051806101600160405290816000820154815260200160018201805461149c9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546114c89061514f565b80156115155780601f106114ea57610100808354040283529160200191611515565b820191906000526020600020905b8154815290600101906020018083116114f857829003601f168201915b5050505050815260200160028201805461152e9061514f565b80601f016020809104026020016040519081016040528092919081815260200182805461155a9061514f565b80156115a75780601f1061157c576101008083540402835291602001916115a7565b820191906000526020600020905b81548152906001019060200180831161158a57829003601f168201915b505050505081526020016003820180546115c09061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546115ec9061514f565b80156116395780601f1061160e57610100808354040283529160200191611639565b820191906000526020600020905b81548152906001019060200180831161161c57829003601f168201915b50505050508152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016006820180546116b29061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546116de9061514f565b801561172b5780601f106117005761010080835404028352916020019161172b565b820191906000526020600020905b81548152906001019060200180831161170e57829003601f168201915b505050505081526020016007820154815260200160088201805461174e9061514f565b80601f016020809104026020016040519081016040528092919081815260200182805461177a9061514f565b80156117c75780601f1061179c576101008083540402835291602001916117c7565b820191906000526020600020905b8154815290600101906020018083116117aa57829003601f168201915b505050505081526020016009820160009054906101000a900460ff1660038111156117f5576117f461483a565b5b60038111156118075761180661483a565b5b8152602001600a8201548152505083838061182190615424565b945081518110611834576118336153c6565b5b60200260200101819052505b808060010191505061140a565b5081935050505090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b81526004016118dc91906146e4565b602060405180830381865afa1580156118f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061191d919061500a565b61195c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195390615094565b60405180910390fd5b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663954fa5ee30600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518363ffffffff1660e01b81526004016119d992919061546c565b6020604051808303816000875af11580156119f8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a1c9190615495565b50565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e336040518263ffffffff1660e01b8152600401611a7a91906146e4565b602060405180830381865afa158015611a97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abb919061500a565b611afa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af190615094565b60405180910390fd5b611b0381613b9b565b50565b60606000611b1383613c42565b905060008167ffffffffffffffff811115611b3157611b30614c64565b5b604051908082528060200260200182016040528015611b6a57816020015b611b57614557565b815260200190600190039081611b4f5790505b5090506000805b600d8054905081101561200d578573ffffffffffffffffffffffffffffffffffffffff16600c6000600d8481548110611bad57611bac6153c6565b5b9060005260206000200154815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361200057600c6000600d8381548110611c1d57611c1c6153c6565b5b906000526020600020015481526020019081526020016000206040518061016001604052908160008201548152602001600182018054611c5c9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054611c889061514f565b8015611cd55780601f10611caa57610100808354040283529160200191611cd5565b820191906000526020600020905b815481529060010190602001808311611cb857829003601f168201915b50505050508152602001600282018054611cee9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054611d1a9061514f565b8015611d675780601f10611d3c57610100808354040283529160200191611d67565b820191906000526020600020905b815481529060010190602001808311611d4a57829003601f168201915b50505050508152602001600382018054611d809061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054611dac9061514f565b8015611df95780601f10611dce57610100808354040283529160200191611df9565b820191906000526020600020905b815481529060010190602001808311611ddc57829003601f168201915b50505050508152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600682018054611e729061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054611e9e9061514f565b8015611eeb5780601f10611ec057610100808354040283529160200191611eeb565b820191906000526020600020905b815481529060010190602001808311611ece57829003601f168201915b5050505050815260200160078201548152602001600882018054611f0e9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054611f3a9061514f565b8015611f875780601f10611f5c57610100808354040283529160200191611f87565b820191906000526020600020905b815481529060010190602001808311611f6a57829003601f168201915b505050505081526020016009820160009054906101000a900460ff166003811115611fb557611fb461483a565b5b6003811115611fc757611fc661483a565b5b8152602001600a82015481525050838380611fe190615424565b945081518110611ff457611ff36153c6565b5b60200260200101819052505b8080600101915050611b71565b50819350505050919050565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b81526004016120bd91906146e4565b602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe919061500a565b61213d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612134906151cc565b60405180910390fd5b6000600c60008381526020019081526020016000206000015411612196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218d90615100565b60405180910390fd5b600160038111156121aa576121a961483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff1660038111156121e0576121df61483a565b5b14612220576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122179061550e565b60405180910390fd5b61224033600c6000848152602001908152602001600020600701546137dc565b61224981613d06565b50565b600082600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b81526004016122aa91906146e4565b602060405180830381865afa1580156122c7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122eb9190615495565b101561232c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123239061557a565b60405180910390fd5b82600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e33306040518363ffffffff1660e01b815260040161238a92919061546c565b602060405180830381865afa1580156123a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123cb9190615495565b101561240c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612403906155e6565b60405180910390fd5b612417338988613ea3565b15612457576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244e90615652565b60405180910390fd5b600061246560018a896132a0565b905060008111156124a9576124a8600c600083815260200190815260200160002060040154600c60008481526020019081526020016000206007015488876134ac565b5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330876040518463ffffffff1660e01b815260040161250893929190615672565b6020604051808303816000875af1158015612527573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061254b919061500a565b5083600e600082825461255e91906156a9565b9250508190555083600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125b491906156a9565b9250508190555060006125c561411e565b90506040518061016001604052808281526020018b81526020018a81526020018981526020018881526020013373ffffffffffffffffffffffffffffffffffffffff168152602001878152602001868152602001858152602001600060038111156126335761263261483a565b5b815260200142815250600c600083815260200190815260200160002060008201518160000155602082015181600101908161266e9190615889565b5060408201518160020190816126849190615889565b50606082015181600301908161269a9190615889565b506080820151816004015560a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c08201518160060190816127019190615889565b5060e082015181600701556101008201518160080190816127229190615889565b506101208201518160090160006101000a81548160ff0219169083600381111561274f5761274e61483a565b5b021790555061014082015181600a0155905050600d819080600181540180825580915050600190039060005260206000200160009091909190915055612796338b8a61413a565b7fbf010aba48e49020ed90d2f6b9ae36c27e06a48f276aa44d6594e44347cb5cad8360006040516127c89291906152fc565b60405180910390a18092505050979650505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b815260040161283b91906146e4565b602060405180830381865afa158015612858573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061287c919061500a565b6128bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128b2906151cc565b60405180910390fd5b600060038111156128cf576128ce61483a565b5b600c600087815260200190815260200160002060090160009054906101000a900460ff1660038111156129055761290461483a565b5b14612945576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161293c906152a4565b60405180910390fd5b83600c600087815260200190815260200160002060010190816129689190615889565b5082600c6000878152602001908152602001600020600201908161298c9190615889565b5081600c600087815260200190815260200160002060030190816129b09190615889565b5080600c600087815260200190815260200160002060080190816129d49190615889565b505050505050565b606060006129ea6001613236565b905060008167ffffffffffffffff811115612a0857612a07614c64565b5b604051908082528060200260200182016040528015612a4157816020015b612a2e614557565b815260200190600190039081612a265790505b5090506000805b600d80549050811015612e8b57612a7e600d8281548110612a6c57612a6b6153c6565b5b90600052602060002001546001613b47565b15612e7e57600c6000600d8381548110612a9b57612a9a6153c6565b5b906000526020600020015481526020019081526020016000206040518061016001604052908160008201548152602001600182018054612ada9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054612b069061514f565b8015612b535780601f10612b2857610100808354040283529160200191612b53565b820191906000526020600020905b815481529060010190602001808311612b3657829003601f168201915b50505050508152602001600282018054612b6c9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054612b989061514f565b8015612be55780601f10612bba57610100808354040283529160200191612be5565b820191906000526020600020905b815481529060010190602001808311612bc857829003601f168201915b50505050508152602001600382018054612bfe9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054612c2a9061514f565b8015612c775780601f10612c4c57610100808354040283529160200191612c77565b820191906000526020600020905b815481529060010190602001808311612c5a57829003601f168201915b50505050508152602001600482015481526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600682018054612cf09061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054612d1c9061514f565b8015612d695780601f10612d3e57610100808354040283529160200191612d69565b820191906000526020600020905b815481529060010190602001808311612d4c57829003601f168201915b5050505050815260200160078201548152602001600882018054612d8c9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054612db89061514f565b8015612e055780601f10612dda57610100808354040283529160200191612e05565b820191906000526020600020905b815481529060010190602001808311612de857829003601f168201915b505050505081526020016009820160009054906101000a900460ff166003811115612e3357612e3261483a565b5b6003811115612e4557612e4461483a565b5b8152602001600a82015481525050838380612e5f90615424565b945081518110612e7257612e716153c6565b5b60200260200101819052505b8080600101915050612a48565b5081935050505090565b60003373ffffffffffffffffffffffffffffffffffffffff16600c600084815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f32906159a7565b60405180910390fd5b6000600c60008481526020019081526020016000206000015411612f94576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f8b90615100565b60405180910390fd5b60016003811115612fa857612fa761483a565b5b600c600084815260200190815260200160002060090160009054906101000a900460ff166003811115612fde57612fdd61483a565b5b1480613031575060006003811115612ff957612ff861483a565b5b600c600084815260200190815260200160002060090160009054906101000a900460ff16600381111561302f5761302e61483a565b5b145b613070576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161306790615a13565b60405180910390fd5b61309033600c6000858152602001908152602001600020600701546137dc565b61309982613d06565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c04143ec33426040518363ffffffff1660e01b81526004016130f69291906152c4565b600060405180830381600087803b15801561311057600080fd5b505af1158015613124573d6000803e3d6000fd5b5050505060019050919050565b6000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600e54905090565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000905060005b600d8054905081101561329657613275600d8281548110613264576132636153c6565b5b906000526020600020015485613b47565b1561328957818061328590615424565b9250505b8080600101915050613240565b5080915050919050565b600080600090505b600d8054905081101561349f576000600d82815481106132cb576132ca6153c6565b5b906000526020600020015490508560038111156132eb576132ea61483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff1660038111156133215761332061483a565b5b1480156133d257506133d1600c6000838152602001908152602001600020600101805461334d9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546133799061514f565b80156133c65780601f1061339b576101008083540402835291602001916133c6565b820191906000526020600020905b8154815290600101906020018083116133a957829003601f168201915b505050505086614531565b5b80156134825750613481600c600083815260200190815260200160002060030180546133fd9061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546134299061514f565b80156134765780601f1061344b57610100808354040283529160200191613476565b820191906000526020600020905b81548152906001019060200180831161345957829003601f168201915b505050505085614531565b5b156134915780925050506134a5565b5080806001019150506132a8565b50600090505b9392505050565b600081116134ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134e690615a7f565b60405180910390fd5b838211806135075750838214801561350657508281115b5b613546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161353d90615b11565b60405180910390fd5b50505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166324d7806c336040518263ffffffff1660e01b81526004016135a791906146e4565b602060405180830381865afa1580156135c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135e8919061500a565b613627576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161361e906151cc565b60405180910390fd5b6000600c60008381526020019081526020016000206000015411613680576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161367790615100565b60405180910390fd5b600160038111156136945761369361483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff1660038111156136ca576136c961483a565b5b1461370a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137019061550e565b60405180910390fd5b613760600c600083815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600c6000848152602001908152602001600020600701546137dc565b6003600c600083815260200190815260200160002060090160006101000a81548160ff0219169083600381111561379a5761379961483a565b5b02179055507fbf010aba48e49020ed90d2f6b9ae36c27e06a48f276aa44d6594e44347cb5cad8160036040516137d19291906152fc565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361384b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161384290615b7d565b60405180910390fd5b6000811161388e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161388590615be9565b60405180910390fd5b80600e5410156138d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138ca90615c55565b60405180910390fd5b80600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015613955576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161394c90615cc1565b60405180910390fd5b80600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016139b191906146e4565b602060405180830381865afa1580156139ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139f29190615495565b1015613a33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a2a90615d2d565b60405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b8152600401613a909291906152c4565b6020604051808303816000875af1158015613aaf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ad3919061500a565b5080600e6000828254613ae69190615d4d565b9250508190555080600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613b3c9190615d4d565b925050819055505050565b6000816003811115613b5c57613b5b61483a565b5b600c600085815260200190815260200160002060090160009054906101000a900460ff166003811115613b9257613b9161483a565b5b14905092915050565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000806000905060005b600d80549050811015613cfc578373ffffffffffffffffffffffffffffffffffffffff16600c6000600d8481548110613c8857613c876153c6565b5b9060005260206000200154815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603613cef578180613ceb90615424565b9250505b8080600101915050613c4c565b5080915050919050565b6000600d80549050905060005b81811015613e9e5782600c6000600d8481548110613d3457613d336153c6565b5b906000526020600020015481526020019081526020016000206000015403613e9157600d600183613d659190615d4d565b81548110613d7657613d756153c6565b5b9060005260206000200154600d8281548110613d9557613d946153c6565b5b9060005260206000200181905550600d805480613db557613db4615d81565b5b60019003818190600052602060002001600090559055600c6000848152602001908152602001600020600080820160009055600182016000613df791906145d9565b600282016000613e0791906145d9565b600382016000613e1791906145d9565b60048201600090556005820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055600682016000613e5691906145d9565b6007820160009055600882016000613e6e91906145d9565b6009820160006101000a81549060ff0219169055600a8201600090555050613e9e565b8080600101915050613d13565b505050565b600080600090505b600d80549050811015614111576000600d8281548110613ece57613ecd6153c6565b5b906000526020600020015490508573ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148015613f93575060006003811115613f5b57613f5a61483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff166003811115613f9157613f9061483a565b5b145b80156140435750614042600c60008381526020019081526020016000206001018054613fbe9061514f565b80601f0160208091040260200160405190810160405280929190818152602001828054613fea9061514f565b80156140375780601f1061400c57610100808354040283529160200191614037565b820191906000526020600020905b81548152906001019060200180831161401a57829003601f168201915b505050505086614531565b5b80156140f357506140f2600c6000838152602001908152602001600020600301805461406e9061514f565b80601f016020809104026020016040519081016040528092919081815260200182805461409a9061514f565b80156140e75780601f106140bc576101008083540402835291602001916140e7565b820191906000526020600020905b8154815290600101906020018083116140ca57829003601f168201915b505050505085614531565b5b1561410357600192505050614117565b508080600101915050613eab565b50600090505b9392505050565b6000600b6000815461412f90615424565b919050819055905090565b6000600d80549050905060005b8181101561452a576000600d8281548110614165576141646153c6565b5b906000526020600020015490506003808111156141855761418461483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff1660038111156141bb576141ba61483a565b5b148061420e5750600260038111156141d6576141d561483a565b5b600c600083815260200190815260200160002060090160009054906101000a900460ff16600381111561420c5761420b61483a565b5b145b801561427b57508573ffffffffffffffffffffffffffffffffffffffff16600c600083815260200190815260200160002060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b801561432b575061432a600c600083815260200190815260200160002060010180546142a69061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546142d29061514f565b801561431f5780601f106142f45761010080835404028352916020019161431f565b820191906000526020600020905b81548152906001019060200180831161430257829003601f168201915b505050505086614531565b5b80156143db57506143da600c600083815260200190815260200160002060030180546143569061514f565b80601f01602080910402602001604051908101604052809291908181526020018280546143829061514f565b80156143cf5780601f106143a4576101008083540402835291602001916143cf565b820191906000526020600020905b8154815290600101906020018083116143b257829003601f168201915b505050505085614531565b5b1561451c57600d6001846143ef9190615d4d565b81548110614400576143ff6153c6565b5b9060005260206000200154600d838154811061441f5761441e6153c6565b5b9060005260206000200181905550600d80548061443f5761443e615d81565b5b60019003818190600052602060002001600090559055600c600082815260200190815260200160002060008082016000905560018201600061448191906145d9565b60028201600061449191906145d9565b6003820160006144a191906145d9565b60048201600090556005820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556006820160006144e091906145d9565b60078201600090556008820160006144f891906145d9565b6009820160006101000a81549060ff0219169055600a82016000905550505061452a565b508080600101915050614147565b5050505050565b600080838051906020012090506000838051906020012090508082149250505092915050565b6040518061016001604052806000815260200160608152602001606081526020016060815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001606081526020016000815260200160608152602001600060038111156145cc576145cb61483a565b5b8152602001600081525090565b5080546145e59061514f565b6000825580601f106145f75750614616565b601f0160209004906000526020600020908101906146159190614619565b5b50565b5b8082111561463257600081600090555060010161461a565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006146758261464a565b9050919050565b6146858161466a565b811461469057600080fd5b50565b6000813590506146a28161467c565b92915050565b6000602082840312156146be576146bd614640565b5b60006146cc84828501614693565b91505092915050565b6146de8161466a565b82525050565b60006020820190506146f960008301846146d5565b92915050565b6000819050919050565b614712816146ff565b82525050565b600060208201905061472d6000830184614709565b92915050565b61473c816146ff565b811461474757600080fd5b50565b60008135905061475981614733565b92915050565b60006020828403121561477557614774614640565b5b60006147838482850161474a565b91505092915050565b614795816146ff565b82525050565b600081519050919050565b600082825260208201905092915050565b60005b838110156147d55780820151818401526020810190506147ba565b60008484015250505050565b6000601f19601f8301169050919050565b60006147fd8261479b565b61480781856147a6565b93506148178185602086016147b7565b614820816147e1565b840191505092915050565b6148348161466a565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6004811061487a5761487961483a565b5b50565b600081905061488b82614869565b919050565b600061489b8261487d565b9050919050565b6148ab81614890565b82525050565b6000610160830160008301516148ca600086018261478c565b50602083015184820360208601526148e282826147f2565b915050604083015184820360408601526148fc82826147f2565b9150506060830151848203606086015261491682826147f2565b915050608083015161492b608086018261478c565b5060a083015161493e60a086018261482b565b5060c083015184820360c086015261495682826147f2565b91505060e083015161496b60e086018261478c565b5061010083015184820361010086015261498582826147f2565b91505061012083015161499c6101208601826148a2565b506101408301516149b161014086018261478c565b508091505092915050565b600060208201905081810360008301526149d681846148b1565b905092915050565b600281106149ef576149ee61483a565b5b50565b6000819050614a00826149de565b919050565b6000614a10826149f2565b9050919050565b614a2081614a05565b82525050565b6000608082019050614a3b6000830187614709565b614a486020830186614709565b614a556040830185614709565b614a626060830184614a17565b95945050505050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600061016083016000830151614ab0600086018261478c565b5060208301518482036020860152614ac882826147f2565b91505060408301518482036040860152614ae282826147f2565b91505060608301518482036060860152614afc82826147f2565b9150506080830151614b11608086018261478c565b5060a0830151614b2460a086018261482b565b5060c083015184820360c0860152614b3c82826147f2565b91505060e0830151614b5160e086018261478c565b50610100830151848203610100860152614b6b82826147f2565b915050610120830151614b826101208601826148a2565b50610140830151614b9761014086018261478c565b508091505092915050565b6000614bae8383614a97565b905092915050565b6000602082019050919050565b6000614bce82614a6b565b614bd88185614a76565b935083602082028501614bea85614a87565b8060005b85811015614c265784840389528151614c078582614ba2565b9450614c1283614bb6565b925060208a01995050600181019050614bee565b50829750879550505050505092915050565b60006020820190508181036000830152614c528184614bc3565b905092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b614c9c826147e1565b810181811067ffffffffffffffff82111715614cbb57614cba614c64565b5b80604052505050565b6000614cce614636565b9050614cda8282614c93565b919050565b600067ffffffffffffffff821115614cfa57614cf9614c64565b5b614d03826147e1565b9050602081019050919050565b82818337600083830152505050565b6000614d32614d2d84614cdf565b614cc4565b905082815260208101848484011115614d4e57614d4d614c5f565b5b614d59848285614d10565b509392505050565b600082601f830112614d7657614d75614c5a565b5b8135614d86848260208601614d1f565b91505092915050565b600080600080600080600060e0888a031215614dae57614dad614640565b5b600088013567ffffffffffffffff811115614dcc57614dcb614645565b5b614dd88a828b01614d61565b975050602088013567ffffffffffffffff811115614df957614df8614645565b5b614e058a828b01614d61565b965050604088013567ffffffffffffffff811115614e2657614e25614645565b5b614e328a828b01614d61565b9550506060614e438a828b0161474a565b945050608088013567ffffffffffffffff811115614e6457614e63614645565b5b614e708a828b01614d61565b93505060a0614e818a828b0161474a565b92505060c088013567ffffffffffffffff811115614ea257614ea1614645565b5b614eae8a828b01614d61565b91505092959891949750929550565b600080600080600060a08688031215614ed957614ed8614640565b5b6000614ee78882890161474a565b955050602086013567ffffffffffffffff811115614f0857614f07614645565b5b614f1488828901614d61565b945050604086013567ffffffffffffffff811115614f3557614f34614645565b5b614f4188828901614d61565b935050606086013567ffffffffffffffff811115614f6257614f61614645565b5b614f6e88828901614d61565b925050608086013567ffffffffffffffff811115614f8f57614f8e614645565b5b614f9b88828901614d61565b9150509295509295909350565b60008115159050919050565b614fbd81614fa8565b82525050565b6000602082019050614fd86000830184614fb4565b92915050565b614fe781614fa8565b8114614ff257600080fd5b50565b60008151905061500481614fde565b92915050565b6000602082840312156150205761501f614640565b5b600061502e84828501614ff5565b91505092915050565b600082825260208201905092915050565b7f4f6e6c79204f776e657220686176652061207065726d697373696f6e2e000000600082015250565b600061507e601d83615037565b915061508982615048565b602082019050919050565b600060208201905081810360008301526150ad81615071565b9050919050565b7f496e76616c696420696400000000000000000000000000000000000000000000600082015250565b60006150ea600a83615037565b91506150f5826150b4565b602082019050919050565b60006020820190508181036000830152615119816150dd565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061516757607f821691505b60208210810361517a57615179615120565b5b50919050565b7f4f6e6c792041646d696e20686176652061207065726d697373696f6e2e000000600082015250565b60006151b6601d83615037565b91506151c182615180565b602082019050919050565b600060208201905081810360008301526151e5816151a9565b9050919050565b7f496e76616c696420726566657272657220616464726573730000000000000000600082015250565b6000615222601883615037565b915061522d826151ec565b602082019050919050565b6000602082019050818103600083015261525181615215565b9050919050565b7f4e6f7420696e20496e5265766965772073746174650000000000000000000000600082015250565b600061528e601583615037565b915061529982615258565b602082019050919050565b600060208201905081810360008301526152bd81615281565b9050919050565b60006040820190506152d960008301856146d5565b6152e66020830184614709565b9392505050565b6152f681614890565b82525050565b60006040820190506153116000830185614709565b61531e60208301846152ed565b9392505050565b60008151905061533481614733565b92915050565b6002811061534757600080fd5b50565b6000815190506153598161533a565b92915050565b6000806000806080858703121561537957615378614640565b5b600061538787828801615325565b945050602061539887828801615325565b93505060406153a987828801615325565b92505060606153ba8782880161534a565b91505092959194509250565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061542f826146ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203615461576154606153f5565b5b600182019050919050565b600060408201905061548160008301856146d5565b61548e60208301846146d5565b9392505050565b6000602082840312156154ab576154aa614640565b5b60006154b984828501615325565b91505092915050565b7f4e6f7420696e204f776e65642073746174650000000000000000000000000000600082015250565b60006154f8601283615037565b9150615503826154c2565b602082019050919050565b60006020820190508181036000830152615527816154eb565b9050919050565b7f4e6f7420656e6f75676820544f522062616c616e63652e000000000000000000600082015250565b6000615564601783615037565b915061556f8261552e565b602082019050919050565b6000602082019050818103600083015261559381615557565b9050919050565b7f496e73756666696369656e7420616c6c6f77616e636500000000000000000000600082015250565b60006155d0601683615037565b91506155db8261559a565b602082019050919050565b600060208201905081810360008301526155ff816155c3565b9050919050565b7f416c726561647920696e20726576696577000000000000000000000000000000600082015250565b600061563c601183615037565b915061564782615606565b602082019050919050565b6000602082019050818103600083015261566b8161562f565b9050919050565b600060608201905061568760008301866146d5565b61569460208301856146d5565b6156a16040830184614709565b949350505050565b60006156b4826146ff565b91506156bf836146ff565b92508282019050808211156156d7576156d66153f5565b5b92915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830261573f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82615702565b6157498683615702565b95508019841693508086168417925050509392505050565b6000819050919050565b600061578661578161577c846146ff565b615761565b6146ff565b9050919050565b6000819050919050565b6157a08361576b565b6157b46157ac8261578d565b84845461570f565b825550505050565b600090565b6157c96157bc565b6157d4818484615797565b505050565b5b818110156157f8576157ed6000826157c1565b6001810190506157da565b5050565b601f82111561583d5761580e816156dd565b615817846156f2565b81016020851015615826578190505b61583a615832856156f2565b8301826157d9565b50505b505050565b600082821c905092915050565b600061586060001984600802615842565b1980831691505092915050565b6000615879838361584f565b9150826002028217905092915050565b6158928261479b565b67ffffffffffffffff8111156158ab576158aa614c64565b5b6158b5825461514f565b6158c08282856157fc565b600060209050601f8311600181146158f357600084156158e1578287015190505b6158eb858261586d565b865550615953565b601f198416615901866156dd565b60005b8281101561592957848901518255600182019150602085019450602081019050615904565b868310156159465784890151615942601f89168261584f565b8355505b6001600288020188555050505b505050505050565b7f61646472657373657320617265206e6f74206d61746368000000000000000000600082015250565b6000615991601783615037565b915061599c8261595b565b602082019050919050565b600060208201905081810360008301526159c081615984565b9050919050565b7f4e6f7420696e204f776e6564206f7220496e5265766965772073746174650000600082015250565b60006159fd601e83615037565b9150615a08826159c7565b602082019050919050565b60006020820190508181036000830152615a2c816159f0565b9050919050565b7f4174206c65617374203120544f52206973207265717569726564000000000000600082015250565b6000615a69601a83615037565b9150615a7482615a33565b602082019050919050565b60006020820190508181036000830152615a9881615a5c565b9050919050565b7f42656e65666974206f7220544f5220616d6f756e742073686f756c642062652060008201527f67726561746572207468616e2063757272656e74207468726f6e650000000000602082015250565b6000615afb603b83615037565b9150615b0682615a9f565b604082019050919050565b60006020820190508181036000830152615b2a81615aee565b9050919050565b7f496e76616c696420616464726573730000000000000000000000000000000000600082015250565b6000615b67600f83615037565b9150615b7282615b31565b602082019050919050565b60006020820190508181036000830152615b9681615b5a565b9050919050565b7f496e76616c696420544f5220616d6f756e7420746f2077697468647261770000600082015250565b6000615bd3601e83615037565b9150615bde82615b9d565b602082019050919050565b60006020820190508181036000830152615c0281615bc6565b9050919050565b7f4e6f7420656e6f75676820746f74616c20544f5220616d6f756e740000000000600082015250565b6000615c3f601b83615037565b9150615c4a82615c09565b602082019050919050565b60006020820190508181036000830152615c6e81615c32565b9050919050565b7f4e6f7420656e6f75676820544f52206465706f73697465640000000000000000600082015250565b6000615cab601883615037565b9150615cb682615c75565b602082019050919050565b60006020820190508181036000830152615cda81615c9e565b9050919050565b7f4e6f7420656e6f75676820544f522062616c616e636500000000000000000000600082015250565b6000615d17601683615037565b9150615d2282615ce1565b602082019050919050565b60006020820190508181036000830152615d4681615d0a565b9050919050565b6000615d58826146ff565b9150615d63836146ff565b9250828203905081811115615d7b57615d7a6153f5565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea2646970667358221220891c3ee6c3192faee61859aa5e9c87e029d25b3ed9e907a1a82548d6a98a599864736f6c63430008180033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000001e4dc6472e51f35f2b48c060db4b07a288ec1d4c000000000000000000000000ddbf28f68cd72eb7e84fe0951909dcd02fbb995c000000000000000000000000b4006ccac99b73f227b314fd1d0274daaab8021f0000000000000000000000002536fe9ab3f511540f2f9e2ec2a805005c3dd8000000000000000000000000005b50de0439c6ecf939856d2fdcfe191659aa4ee7
-----Decoded View---------------
Arg [0] : torTokenContractAddress (address): 0x1e4dc6472e51F35F2b48c060DB4B07A288ec1D4C
Arg [1] : userHistoryContractAddress (address): 0xDDbf28f68cD72Eb7e84Fe0951909dCD02fbb995c
Arg [2] : ownerGroupContractAddress (address): 0xB4006ccac99b73F227B314fD1d0274DAAAB8021F
Arg [3] : blastPointsContractAddress (address): 0x2536FE9ab3F511540F2f9e2eC2A805005C3Dd800
Arg [4] : blastPointsOperatorAddress (address): 0x5b50De0439C6ecF939856d2FDcFE191659Aa4ee7
-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000001e4dc6472e51f35f2b48c060db4b07a288ec1d4c
Arg [1] : 000000000000000000000000ddbf28f68cd72eb7e84fe0951909dcd02fbb995c
Arg [2] : 000000000000000000000000b4006ccac99b73f227b314fd1d0274daaab8021f
Arg [3] : 0000000000000000000000002536fe9ab3f511540f2f9e2ec2a805005c3dd800
Arg [4] : 0000000000000000000000005b50de0439c6ecf939856d2fdcfe191659aa4ee7
Net Worth in USD
Net Worth in ETH
Multichain Portfolio | 35 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.