Source Code
Latest 6 from a total of 6 transactions
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ZER0Staking
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2025-12-26
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.10;
interface IERC20 {
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
event Transfer(address indexed from, address indexed to, uint256 value);
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address owner) external view returns (uint256);
function allowance(
address owner,
address spender
) external view returns (uint256);
function approve(address spender, uint256 value) external;
function transfer(address to, uint256 value) external;
function transferFrom(address from, address to, uint256 value) external;
}
contract ZER0Staking {
using SafeMath for uint256;
IERC20 public stakeToken;
address payable public owner;
uint256 public totalStakedToken;
uint256 public totalUnStakedToken;
uint256 public totalWithdrawanToken;
uint256 public totalClaimedRewardToken;
uint256 public totalStakers;
uint256 public percentDivider;
uint256[3] public Duration = [30 days, 60 days, 90 days];
uint256[3] public Bonus = [150, 250, 350];
uint256[3] public totalStakedPerPlan;
uint256[3] public totalStakersPerPlan;
struct Stake {
uint256 plan;
uint256 withdrawtime;
uint256 staketime;
uint256 amount;
uint256 reward;
uint256 persecondreward;
bool withdrawan;
bool unstaked;
}
struct User {
uint256 totalStakedTokenUser;
uint256 totalWithdrawanTokenUser;
uint256 totalUnStakedTokenUser;
uint256 totalClaimedRewardTokenUser;
uint256 stakeCount;
bool alreadyExists;
}
mapping(address => User) public Stakers;
mapping(uint256 => address) public StakersID;
mapping(address => mapping(uint256 => Stake)) public stakersRecord;
mapping(address => mapping(uint256 => uint256)) public userStakedPerPlan;
event STAKE(address Staker, uint256 amount);
event UNSTAKE(address Staker, uint256 amount);
event WITHDRAW(address Staker, uint256 amount);
modifier onlyowner() {
require(owner == msg.sender, "only owner");
_;
}
constructor(address _owner, address _token) {
owner = payable(_owner);
stakeToken = IERC20(_token);
percentDivider = 1000;
}
function stake(uint256 amount, uint256 planIndex) public {
require(planIndex >= 0 && planIndex < 3, "Invalid Time Period");
require(amount >= 0, "stake more than 0");
if (!Stakers[msg.sender].alreadyExists) {
Stakers[msg.sender].alreadyExists = true;
StakersID[totalStakers] = msg.sender;
totalStakers++;
}
stakeToken.transferFrom(msg.sender, address(this), amount);
uint256 index = Stakers[msg.sender].stakeCount;
Stakers[msg.sender].totalStakedTokenUser = Stakers[msg.sender]
.totalStakedTokenUser
.add(amount);
totalStakedToken = totalStakedToken.add(amount);
stakersRecord[msg.sender][index].withdrawtime = block.timestamp.add(
Duration[planIndex]
);
stakersRecord[msg.sender][index].staketime = block.timestamp;
stakersRecord[msg.sender][index].amount = amount;
stakersRecord[msg.sender][index].reward = amount
.mul(Bonus[planIndex])
.div(percentDivider);
stakersRecord[msg.sender][index].persecondreward = stakersRecord[
msg.sender
][index].reward.div(Duration[planIndex]);
stakersRecord[msg.sender][index].plan = planIndex;
Stakers[msg.sender].stakeCount++;
userStakedPerPlan[msg.sender][planIndex] = userStakedPerPlan[
msg.sender
][planIndex].add(amount);
totalStakedPerPlan[planIndex] = totalStakedPerPlan[planIndex].add(
amount
);
totalStakersPerPlan[planIndex]++;
emit STAKE(msg.sender, amount);
}
function unstake(uint256 index) public {
require(
!stakersRecord[msg.sender][index].withdrawan,
"already withdrawan"
);
require(!stakersRecord[msg.sender][index].unstaked, "already unstaked");
require(index < Stakers[msg.sender].stakeCount, "Invalid index");
stakersRecord[msg.sender][index].unstaked = true;
stakeToken.transfer(
msg.sender,
(stakersRecord[msg.sender][index].amount)
);
totalUnStakedToken = totalUnStakedToken.add(
stakersRecord[msg.sender][index].amount
);
Stakers[msg.sender].totalUnStakedTokenUser = Stakers[msg.sender]
.totalUnStakedTokenUser
.add(stakersRecord[msg.sender][index].amount);
uint256 planIndex = stakersRecord[msg.sender][index].plan;
userStakedPerPlan[msg.sender][planIndex] = userStakedPerPlan[
msg.sender
][planIndex].sub(stakersRecord[msg.sender][index].amount, "user stake");
totalStakedPerPlan[planIndex] = totalStakedPerPlan[planIndex].sub(
stakersRecord[msg.sender][index].amount,
"total stake"
);
totalStakersPerPlan[planIndex]--;
emit UNSTAKE(msg.sender, stakersRecord[msg.sender][index].amount);
}
function withdraw(uint256 index) public {
require(
!stakersRecord[msg.sender][index].withdrawan,
"already withdrawan"
);
require(!stakersRecord[msg.sender][index].unstaked, "already unstaked");
require(
stakersRecord[msg.sender][index].withdrawtime < block.timestamp,
"cannot withdraw before stake duration"
);
require(index < Stakers[msg.sender].stakeCount, "Invalid index");
stakersRecord[msg.sender][index].withdrawan = true;
stakeToken.transfer(
msg.sender,
stakersRecord[msg.sender][index].amount
);
stakeToken.transferFrom(
owner,
msg.sender,
stakersRecord[msg.sender][index].reward
);
totalWithdrawanToken = totalWithdrawanToken.add(
stakersRecord[msg.sender][index].amount
);
totalClaimedRewardToken = totalClaimedRewardToken.add(
stakersRecord[msg.sender][index].reward
);
Stakers[msg.sender].totalWithdrawanTokenUser = Stakers[msg.sender]
.totalWithdrawanTokenUser
.add(stakersRecord[msg.sender][index].amount);
Stakers[msg.sender].totalClaimedRewardTokenUser = Stakers[msg.sender]
.totalClaimedRewardTokenUser
.add(stakersRecord[msg.sender][index].reward);
uint256 planIndex = stakersRecord[msg.sender][index].plan;
userStakedPerPlan[msg.sender][planIndex] = userStakedPerPlan[
msg.sender
][planIndex].sub(stakersRecord[msg.sender][index].amount, "user stake");
totalStakedPerPlan[planIndex] = totalStakedPerPlan[planIndex].sub(
stakersRecord[msg.sender][index].amount,
"total stake"
);
totalStakersPerPlan[planIndex]--;
emit WITHDRAW(
msg.sender,
stakersRecord[msg.sender][index].reward.add(
stakersRecord[msg.sender][index].amount
)
);
}
function SetStakeDuration(
uint256 first,
uint256 second,
uint256 third
) external onlyowner {
Duration[0] = first;
Duration[1] = second;
Duration[2] = third;
}
function SetStakeBonus(
uint256 first,
uint256 second,
uint256 third
) external onlyowner {
Bonus[0] = first;
Bonus[1] = second;
Bonus[2] = third;
}
function SetDivider(uint256 percent) external onlyowner {
percentDivider = percent;
}
function SetOwner(address payable newOwner) external onlyowner {
owner = newOwner;
}
function realtimeReward(address user) public view returns (uint256) {
uint256 ret;
for (uint256 i; i < Stakers[user].stakeCount; i++) {
if (
!stakersRecord[user][i].withdrawan &&
!stakersRecord[user][i].unstaked
) {
uint256 val;
val = block.timestamp - stakersRecord[user][i].staketime;
val = val.mul(stakersRecord[user][i].persecondreward);
if (val < stakersRecord[user][i].reward) {
ret += val;
} else {
ret += stakersRecord[user][i].reward;
}
}
}
return ret;
}
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
// Gas optimization: this is cheaper than requiring 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_token","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"STAKE","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UNSTAKE","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"Staker","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WITHDRAW","type":"event"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"Bonus","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"Duration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"SetDivider","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"SetOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"first","type":"uint256"},{"internalType":"uint256","name":"second","type":"uint256"},{"internalType":"uint256","name":"third","type":"uint256"}],"name":"SetStakeBonus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"first","type":"uint256"},{"internalType":"uint256","name":"second","type":"uint256"},{"internalType":"uint256","name":"third","type":"uint256"}],"name":"SetStakeDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"Stakers","outputs":[{"internalType":"uint256","name":"totalStakedTokenUser","type":"uint256"},{"internalType":"uint256","name":"totalWithdrawanTokenUser","type":"uint256"},{"internalType":"uint256","name":"totalUnStakedTokenUser","type":"uint256"},{"internalType":"uint256","name":"totalClaimedRewardTokenUser","type":"uint256"},{"internalType":"uint256","name":"stakeCount","type":"uint256"},{"internalType":"bool","name":"alreadyExists","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"StakersID","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentDivider","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"name":"realtimeReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"planIndex","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stakeToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakersRecord","outputs":[{"internalType":"uint256","name":"plan","type":"uint256"},{"internalType":"uint256","name":"withdrawtime","type":"uint256"},{"internalType":"uint256","name":"staketime","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"reward","type":"uint256"},{"internalType":"uint256","name":"persecondreward","type":"uint256"},{"internalType":"bool","name":"withdrawan","type":"bool"},{"internalType":"bool","name":"unstaked","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalClaimedRewardToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalStakedPerPlan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakedToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakers","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"totalStakersPerPlan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUnStakedToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalWithdrawanToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"userStakedPerPlan","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052604051806060016040528062278d0062ffffff168152602001624f1a0062ffffff1681526020016276a70062ffffff168152506008906003620000499291906200014a565b506040518060600160405280609661ffff16815260200160fa61ffff16815260200161015e61ffff16815250600b9060036200008792919062000196565b5034801562000094575f80fd5b50604051620035d8380380620035d88339818101604052810190620000ba919062000263565b8160015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506103e86007819055505050620002a8565b826003810192821562000183579160200282015b8281111562000182578251829062ffffff169055916020019190600101906200015e565b5b509050620001929190620001e1565b5090565b8260038101928215620001ce579160200282015b82811115620001cd578251829061ffff16905591602001919060010190620001aa565b5b509050620001dd9190620001e1565b5090565b5b80821115620001fa575f815f905550600101620001e2565b5090565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200022d8262000202565b9050919050565b6200023f8162000221565b81146200024a575f80fd5b50565b5f815190506200025d8162000234565b92915050565b5f80604083850312156200027c576200027b620001fe565b5b5f6200028b858286016200024d565b92505060206200029e858286016200024d565b9150509250929050565b61332280620002b65f395ff3fe608060405234801561000f575f80fd5b5060043610610156575f3560e01c80639845db70116100c1578063c7c695f01161007a578063c7c695f0146103ed578063cb6d8ee61461040b578063d287de4e14610429578063da04197e14610447578063ede85eb714610477578063fe6f1b05146104ac57610156565b80639845db7014610300578063991aa0de146103375780639e19401a14610353578063c0102e1614610383578063c0372838146103b3578063c13d3c8b146103d157610156565b80636356cdac116101135780636356cdac1461022c578063649493571461025c5780637b0472f01461028c5780637f0b3d7f146102a857806386989038146102c45780638da5cb5b146102e257610156565b80630db192e81461015a578063167d3e9c1461018a57806317827cbf146101a65780632e17de78146101d65780632e1a7d4d146101f257806351ed6a301461020e575b5f80fd5b610174600480360381019061016f9190612835565b6104ca565b6040516101819190612878565b60405180910390f35b6101a4600480360381019061019f91906128cc565b610787565b005b6101c060048036038101906101bb9190612921565b610859565b6040516101cd9190612878565b60405180910390f35b6101f060048036038101906101eb9190612921565b610872565b005b61020c60048036038101906102079190612921565b610fbf565b005b610216611a46565b60405161022391906129a7565b60405180910390f35b61024660048036038101906102419190612921565b611a69565b6040516102539190612878565b60405180910390f35b61027660048036038101906102719190612921565b611a82565b60405161028391906129cf565b60405180910390f35b6102a660048036038101906102a191906129e8565b611ab2565b005b6102c260048036038101906102bd9190612a26565b61224f565b005b6102cc612333565b6040516102d99190612878565b60405180910390f35b6102ea612339565b6040516102f79190612a85565b60405180910390f35b61031a60048036038101906103159190612a9e565b61235e565b60405161032e989796959493929190612af6565b60405180910390f35b610351600480360381019061034c9190612a26565b6123c6565b005b61036d60048036038101906103689190612921565b6124aa565b60405161037a9190612878565b60405180910390f35b61039d60048036038101906103989190612a9e565b6124c3565b6040516103aa9190612878565b60405180910390f35b6103bb6124e3565b6040516103c89190612878565b60405180910390f35b6103eb60048036038101906103e69190612921565b6124e9565b005b6103f5612582565b6040516104029190612878565b60405180910390f35b610413612588565b6040516104209190612878565b60405180910390f35b61043161258e565b60405161043e9190612878565b60405180910390f35b610461600480360381019061045c9190612921565b612594565b60405161046e9190612878565b60405180910390f35b610491600480360381019061048c9190612835565b6125ad565b6040516104a396959493929190612b72565b60405180910390f35b6104b46125f1565b6040516104c19190612878565b60405180910390f35b5f805f5b60145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015481101561077d5760165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f206006015f9054906101000a900460ff161580156105d9575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f2060060160019054906101000a900460ff16155b1561076a575f60165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20600201544261063a9190612bfe565b905061069e60165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f2060050154826125f790919063ffffffff16565b905060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206004015481101561070a5780836107039190612c31565b9250610768565b60165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2060040154836107659190612c31565b92505b505b808061077590612c64565b9150506104ce565b5080915050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d90612d05565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e8160038110610868575f80fd5b015f915090505481565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f206006015f9054906101000a900460ff161561090e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090590612d6d565b60405180910390fd5b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f2060060160019054906101000a900460ff16156109ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a290612dd5565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600401548110610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490612e3d565b60405180910390fd5b600160165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2060060160016101000a81548160ff0219169083151502179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20600301546040518363ffffffff1660e01b8152600401610b3e929190612e5b565b5f604051808303815f87803b158015610b55575f80fd5b505af1158015610b67573d5f803e3d5ffd5b50505050610bcf60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206003015460035461266e90919063ffffffff16565b600381905550610c7760165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206003015460145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015461266e90919063ffffffff16565b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600201819055505f60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f01549050610df260165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20600301546040518060400160405280600a81526020017f75736572207374616b650000000000000000000000000000000000000000000081525060175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20546126cb9092919063ffffffff16565b60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2081905550610ef060165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20600301546040518060400160405280600b81526020017f746f74616c207374616b65000000000000000000000000000000000000000000815250600e8460038110610edf57610ede612e82565b5b01546126cb9092919063ffffffff16565b600e8260038110610f0457610f03612e82565b5b018190555060118160038110610f1d57610f1c612e82565b5b015f815480929190610f2e90612eaf565b91905055507fdd932dbf4936c18597ed8cf0290c4866ee0974179a6a475acd677b06bec81c603360165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f2060030154604051610fb3929190612e5b565b60405180910390a15050565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f206006015f9054906101000a900460ff161561105b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105290612d6d565b60405180910390fd5b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f2060060160019054906101000a900460ff16156110f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ef90612dd5565b60405180910390fd5b4260165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206001015410611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090612f46565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060040154811061120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612e3d565b60405180910390fd5b600160165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206006015f6101000a81548160ff0219169083151502179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20600301546040518363ffffffff1660e01b815260040161131b929190612e5b565b5f604051808303815f87803b158015611332575f80fd5b505af1158015611344573d5f803e3d5ffd5b505050505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163360165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8681526020019081526020015f20600401546040518463ffffffff1660e01b815260040161141493929190612f84565b5f604051808303815f87803b15801561142b575f80fd5b505af115801561143d573d5f803e3d5ffd5b505050506114a560165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206003015460045461266e90919063ffffffff16565b60048190555061150f60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206004015460055461266e90919063ffffffff16565b6005819055506115b760165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206003015460145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015461266e90919063ffffffff16565b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001018190555061169d60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206004015460145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015461266e90919063ffffffff16565b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600301819055505f60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f0154905061181860165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20600301546040518060400160405280600a81526020017f75736572207374616b650000000000000000000000000000000000000000000081525060175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20546126cb9092919063ffffffff16565b60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f208190555061191660165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20600301546040518060400160405280600b81526020017f746f74616c207374616b65000000000000000000000000000000000000000000815250600e846003811061190557611904612e82565b5b01546126cb9092919063ffffffff16565b600e826003811061192a57611929612e82565b5b01819055506011816003811061194357611942612e82565b5b015f81548092919061195490612eaf565b91905055507f4f14ea4e43cc569e4fb4d8fa171366f2f6925bfade37c5cc93334e373a4c984733611a2c60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8681526020019081526020015f206003015460165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8781526020019081526020015f206004015461266e90919063ffffffff16565b604051611a3a929190612e5b565b60405180910390a15050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b8160038110611a78575f80fd5b015f915090505481565b6015602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8110158015611ac25750600381105b611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af890613003565b60405180910390fd5b5f821015611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b9061306b565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206005015f9054906101000a900460ff16611c5657600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206005015f6101000a81548160ff0219169083151502179055503360155f60065481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f815480929190611c5090612c64565b91905055505b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611cb293929190613089565b5f604051808303815f87803b158015611cc9575f80fd5b505af1158015611cdb573d5f803e3d5ffd5b505050505f60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600401549050611d758360145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015461266e90919063ffffffff16565b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0181905550611dcd8360025461266e90919063ffffffff16565b600281905550611dfb60088360038110611dea57611de9612e82565b5b01544261266e90919063ffffffff16565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20600101819055504260165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20600201819055508260165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2060030181905550611f32600754611f24600b8560038110611f1357611f12612e82565b5b0154866125f790919063ffffffff16565b61272d90919063ffffffff16565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2060040181905550611ffc60088360038110611f9c57611f9b612e82565b5b015460165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f206004015461272d90919063ffffffff16565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20600501819055508160165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f018190555060145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f8154809291906120f290612c64565b91905055506121568360175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205461266e90919063ffffffff16565b60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055506121ce83600e84600381106121be576121bd612e82565b5b015461266e90919063ffffffff16565b600e83600381106121e2576121e1612e82565b5b0181905550601182600381106121fb576121fa612e82565b5b015f81548092919061220c90612c64565b91905055507fa4e109bb7f03a3cbe671105ffecfc362319eaa88ecaf35997a4d3a2328d66d6c3384604051612242929190612e5b565b60405180910390a1505050565b3373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d590612d05565b60405180910390fd5b8260085f600381106122f3576122f2612e82565b5b018190555081600860016003811061230e5761230d612e82565b5b018190555080600860026003811061232957612328612e82565b5b0181905550505050565b60065481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6016602052815f5260405f20602052805f5260405f205f9150915050805f015490806001015490806002015490806003015490806004015490806005015490806006015f9054906101000a900460ff16908060060160019054906101000a900460ff16905088565b3373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244c90612d05565b60405180910390fd5b82600b5f6003811061246a57612469612e82565b5b018190555081600b60016003811061248557612484612e82565b5b018190555080600b6002600381106124a05761249f612e82565b5b0181905550505050565b601181600381106124b9575f80fd5b015f915090505481565b6017602052815f5260405f20602052805f5260405f205f91509150505481565b60055481565b3373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256f90612d05565b60405180910390fd5b8060078190555050565b60045481565b60025481565b60035481565b600881600381106125a3575f80fd5b015f915090505481565b6014602052805f5260405f205f91509050805f015490806001015490806002015490806003015490806004015490806005015f9054906101000a900460ff16905086565b60075481565b5f808303612607575f9050612668565b5f828461261491906130be565b9050828482612623919061312c565b14612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a906131cc565b60405180910390fd5b809150505b92915050565b5f80828461267c9190612c31565b9050838110156126c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b890613234565b60405180910390fd5b8091505092915050565b5f838311158290612712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270991906132cc565b60405180910390fd5b505f83856127209190612bfe565b9050809150509392505050565b5f61276e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612776565b905092915050565b5f80831182906127bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b391906132cc565b60405180910390fd5b505f83856127ca919061312c565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612804826127db565b9050919050565b612814816127fa565b811461281e575f80fd5b50565b5f8135905061282f8161280b565b92915050565b5f6020828403121561284a576128496127d7565b5b5f61285784828501612821565b91505092915050565b5f819050919050565b61287281612860565b82525050565b5f60208201905061288b5f830184612869565b92915050565b5f61289b826127db565b9050919050565b6128ab81612891565b81146128b5575f80fd5b50565b5f813590506128c6816128a2565b92915050565b5f602082840312156128e1576128e06127d7565b5b5f6128ee848285016128b8565b91505092915050565b61290081612860565b811461290a575f80fd5b50565b5f8135905061291b816128f7565b92915050565b5f60208284031215612936576129356127d7565b5b5f6129438482850161290d565b91505092915050565b5f819050919050565b5f61296f61296a612965846127db565b61294c565b6127db565b9050919050565b5f61298082612955565b9050919050565b5f61299182612976565b9050919050565b6129a181612987565b82525050565b5f6020820190506129ba5f830184612998565b92915050565b6129c9816127fa565b82525050565b5f6020820190506129e25f8301846129c0565b92915050565b5f80604083850312156129fe576129fd6127d7565b5b5f612a0b8582860161290d565b9250506020612a1c8582860161290d565b9150509250929050565b5f805f60608486031215612a3d57612a3c6127d7565b5b5f612a4a8682870161290d565b9350506020612a5b8682870161290d565b9250506040612a6c8682870161290d565b9150509250925092565b612a7f81612891565b82525050565b5f602082019050612a985f830184612a76565b92915050565b5f8060408385031215612ab457612ab36127d7565b5b5f612ac185828601612821565b9250506020612ad28582860161290d565b9150509250929050565b5f8115159050919050565b612af081612adc565b82525050565b5f61010082019050612b0a5f83018b612869565b612b17602083018a612869565b612b246040830189612869565b612b316060830188612869565b612b3e6080830187612869565b612b4b60a0830186612869565b612b5860c0830185612ae7565b612b6560e0830184612ae7565b9998505050505050505050565b5f60c082019050612b855f830189612869565b612b926020830188612869565b612b9f6040830187612869565b612bac6060830186612869565b612bb96080830185612869565b612bc660a0830184612ae7565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c0882612860565b9150612c1383612860565b9250828203905081811115612c2b57612c2a612bd1565b5b92915050565b5f612c3b82612860565b9150612c4683612860565b9250828201905080821115612c5e57612c5d612bd1565b5b92915050565b5f612c6e82612860565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ca057612c9f612bd1565b5b600182019050919050565b5f82825260208201905092915050565b7f6f6e6c79206f776e6572000000000000000000000000000000000000000000005f82015250565b5f612cef600a83612cab565b9150612cfa82612cbb565b602082019050919050565b5f6020820190508181035f830152612d1c81612ce3565b9050919050565b7f616c7265616479207769746864726177616e00000000000000000000000000005f82015250565b5f612d57601283612cab565b9150612d6282612d23565b602082019050919050565b5f6020820190508181035f830152612d8481612d4b565b9050919050565b7f616c726561647920756e7374616b6564000000000000000000000000000000005f82015250565b5f612dbf601083612cab565b9150612dca82612d8b565b602082019050919050565b5f6020820190508181035f830152612dec81612db3565b9050919050565b7f496e76616c696420696e646578000000000000000000000000000000000000005f82015250565b5f612e27600d83612cab565b9150612e3282612df3565b602082019050919050565b5f6020820190508181035f830152612e5481612e1b565b9050919050565b5f604082019050612e6e5f8301856129c0565b612e7b6020830184612869565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612eb982612860565b91505f8203612ecb57612eca612bd1565b5b600182039050919050565b7f63616e6e6f74207769746864726177206265666f7265207374616b65206475725f8201527f6174696f6e000000000000000000000000000000000000000000000000000000602082015250565b5f612f30602583612cab565b9150612f3b82612ed6565b604082019050919050565b5f6020820190508181035f830152612f5d81612f24565b9050919050565b5f612f6e82612976565b9050919050565b612f7e81612f64565b82525050565b5f606082019050612f975f830186612f75565b612fa460208301856129c0565b612fb16040830184612869565b949350505050565b7f496e76616c69642054696d6520506572696f64000000000000000000000000005f82015250565b5f612fed601383612cab565b9150612ff882612fb9565b602082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b7f7374616b65206d6f7265207468616e20300000000000000000000000000000005f82015250565b5f613055601183612cab565b915061306082613021565b602082019050919050565b5f6020820190508181035f83015261308281613049565b9050919050565b5f60608201905061309c5f8301866129c0565b6130a960208301856129c0565b6130b66040830184612869565b949350505050565b5f6130c882612860565b91506130d383612860565b92508282026130e181612860565b915082820484148315176130f8576130f7612bd1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61313682612860565b915061314183612860565b925082613151576131506130ff565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b6602183612cab565b91506131c18261315c565b604082019050919050565b5f6020820190508181035f8301526131e3816131aa565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61321e601b83612cab565b9150613229826131ea565b602082019050919050565b5f6020820190508181035f83015261324b81613212565b9050919050565b5f81519050919050565b5f5b8381101561327957808201518184015260208101905061325e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61329e82613252565b6132a88185612cab565b93506132b881856020860161325c565b6132c181613284565b840191505092915050565b5f6020820190508181035f8301526132e48184613294565b90509291505056fea2646970667358221220f0c1f73ba2e44858a947d3950ac00462f0512b8b57a6bd1a389d0086ac0635b464736f6c63430008140033000000000000000000000000afe1c5e50992005b1ffaad9011b989eb49737f1f0000000000000000000000001fb637c2774572ee76772d57a386d49d24d7ab5b
Deployed Bytecode
0x608060405234801561000f575f80fd5b5060043610610156575f3560e01c80639845db70116100c1578063c7c695f01161007a578063c7c695f0146103ed578063cb6d8ee61461040b578063d287de4e14610429578063da04197e14610447578063ede85eb714610477578063fe6f1b05146104ac57610156565b80639845db7014610300578063991aa0de146103375780639e19401a14610353578063c0102e1614610383578063c0372838146103b3578063c13d3c8b146103d157610156565b80636356cdac116101135780636356cdac1461022c578063649493571461025c5780637b0472f01461028c5780637f0b3d7f146102a857806386989038146102c45780638da5cb5b146102e257610156565b80630db192e81461015a578063167d3e9c1461018a57806317827cbf146101a65780632e17de78146101d65780632e1a7d4d146101f257806351ed6a301461020e575b5f80fd5b610174600480360381019061016f9190612835565b6104ca565b6040516101819190612878565b60405180910390f35b6101a4600480360381019061019f91906128cc565b610787565b005b6101c060048036038101906101bb9190612921565b610859565b6040516101cd9190612878565b60405180910390f35b6101f060048036038101906101eb9190612921565b610872565b005b61020c60048036038101906102079190612921565b610fbf565b005b610216611a46565b60405161022391906129a7565b60405180910390f35b61024660048036038101906102419190612921565b611a69565b6040516102539190612878565b60405180910390f35b61027660048036038101906102719190612921565b611a82565b60405161028391906129cf565b60405180910390f35b6102a660048036038101906102a191906129e8565b611ab2565b005b6102c260048036038101906102bd9190612a26565b61224f565b005b6102cc612333565b6040516102d99190612878565b60405180910390f35b6102ea612339565b6040516102f79190612a85565b60405180910390f35b61031a60048036038101906103159190612a9e565b61235e565b60405161032e989796959493929190612af6565b60405180910390f35b610351600480360381019061034c9190612a26565b6123c6565b005b61036d60048036038101906103689190612921565b6124aa565b60405161037a9190612878565b60405180910390f35b61039d60048036038101906103989190612a9e565b6124c3565b6040516103aa9190612878565b60405180910390f35b6103bb6124e3565b6040516103c89190612878565b60405180910390f35b6103eb60048036038101906103e69190612921565b6124e9565b005b6103f5612582565b6040516104029190612878565b60405180910390f35b610413612588565b6040516104209190612878565b60405180910390f35b61043161258e565b60405161043e9190612878565b60405180910390f35b610461600480360381019061045c9190612921565b612594565b60405161046e9190612878565b60405180910390f35b610491600480360381019061048c9190612835565b6125ad565b6040516104a396959493929190612b72565b60405180910390f35b6104b46125f1565b6040516104c19190612878565b60405180910390f35b5f805f5b60145f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015481101561077d5760165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f206006015f9054906101000a900460ff161580156105d9575060165f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f2060060160019054906101000a900460ff16155b1561076a575f60165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20600201544261063a9190612bfe565b905061069e60165f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f2060050154826125f790919063ffffffff16565b905060165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206004015481101561070a5780836107039190612c31565b9250610768565b60165f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2060040154836107659190612c31565b92505b505b808061077590612c64565b9150506104ce565b5080915050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610816576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080d90612d05565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e8160038110610868575f80fd5b015f915090505481565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f206006015f9054906101000a900460ff161561090e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090590612d6d565b60405180910390fd5b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f2060060160019054906101000a900460ff16156109ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a290612dd5565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600401548110610a2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a2490612e3d565b60405180910390fd5b600160165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2060060160016101000a81548160ff0219169083151502179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20600301546040518363ffffffff1660e01b8152600401610b3e929190612e5b565b5f604051808303815f87803b158015610b55575f80fd5b505af1158015610b67573d5f803e3d5ffd5b50505050610bcf60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206003015460035461266e90919063ffffffff16565b600381905550610c7760165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206003015460145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206002015461266e90919063ffffffff16565b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600201819055505f60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f01549050610df260165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20600301546040518060400160405280600a81526020017f75736572207374616b650000000000000000000000000000000000000000000081525060175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20546126cb9092919063ffffffff16565b60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2081905550610ef060165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20600301546040518060400160405280600b81526020017f746f74616c207374616b65000000000000000000000000000000000000000000815250600e8460038110610edf57610ede612e82565b5b01546126cb9092919063ffffffff16565b600e8260038110610f0457610f03612e82565b5b018190555060118160038110610f1d57610f1c612e82565b5b015f815480929190610f2e90612eaf565b91905055507fdd932dbf4936c18597ed8cf0290c4866ee0974179a6a475acd677b06bec81c603360165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f2060030154604051610fb3929190612e5b565b60405180910390a15050565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f206006015f9054906101000a900460ff161561105b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105290612d6d565b60405180910390fd5b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8281526020019081526020015f2060060160019054906101000a900460ff16156110f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ef90612dd5565b60405180910390fd5b4260165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206001015410611189576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118090612f46565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2060040154811061120b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120290612e3d565b60405180910390fd5b600160165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206006015f6101000a81548160ff0219169083151502179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb3360165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20600301546040518363ffffffff1660e01b815260040161131b929190612e5b565b5f604051808303815f87803b158015611332575f80fd5b505af1158015611344573d5f803e3d5ffd5b505050505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163360165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8681526020019081526020015f20600401546040518463ffffffff1660e01b815260040161141493929190612f84565b5f604051808303815f87803b15801561142b575f80fd5b505af115801561143d573d5f803e3d5ffd5b505050506114a560165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206003015460045461266e90919063ffffffff16565b60048190555061150f60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206004015460055461266e90919063ffffffff16565b6005819055506115b760165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206003015460145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001015461266e90919063ffffffff16565b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206001018190555061169d60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f206004015460145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206003015461266e90919063ffffffff16565b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600301819055505f60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f0154905061181860165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20600301546040518060400160405280600a81526020017f75736572207374616b650000000000000000000000000000000000000000000081525060175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f20546126cb9092919063ffffffff16565b60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f208190555061191660165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20600301546040518060400160405280600b81526020017f746f74616c207374616b65000000000000000000000000000000000000000000815250600e846003811061190557611904612e82565b5b01546126cb9092919063ffffffff16565b600e826003811061192a57611929612e82565b5b01819055506011816003811061194357611942612e82565b5b015f81548092919061195490612eaf565b91905055507f4f14ea4e43cc569e4fb4d8fa171366f2f6925bfade37c5cc93334e373a4c984733611a2c60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8681526020019081526020015f206003015460165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8781526020019081526020015f206004015461266e90919063ffffffff16565b604051611a3a929190612e5b565b60405180910390a15050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b8160038110611a78575f80fd5b015f915090505481565b6015602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8110158015611ac25750600381105b611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af890613003565b60405180910390fd5b5f821015611b44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3b9061306b565b60405180910390fd5b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206005015f9054906101000a900460ff16611c5657600160145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206005015f6101000a81548160ff0219169083151502179055503360155f60065481526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060065f815480929190611c5090612c64565b91905055505b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611cb293929190613089565b5f604051808303815f87803b158015611cc9575f80fd5b505af1158015611cdb573d5f803e3d5ffd5b505050505f60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20600401549050611d758360145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f015461266e90919063ffffffff16565b60145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f0181905550611dcd8360025461266e90919063ffffffff16565b600281905550611dfb60088360038110611dea57611de9612e82565b5b01544261266e90919063ffffffff16565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20600101819055504260165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20600201819055508260165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2060030181905550611f32600754611f24600b8560038110611f1357611f12612e82565b5b0154866125f790919063ffffffff16565b61272d90919063ffffffff16565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f2060040181905550611ffc60088360038110611f9c57611f9b612e82565b5b015460165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f206004015461272d90919063ffffffff16565b60165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f20600501819055508160165f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8381526020019081526020015f205f018190555060145f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f206004015f8154809291906120f290612c64565b91905055506121568360175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8581526020019081526020015f205461266e90919063ffffffff16565b60175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8481526020019081526020015f20819055506121ce83600e84600381106121be576121bd612e82565b5b015461266e90919063ffffffff16565b600e83600381106121e2576121e1612e82565b5b0181905550601182600381106121fb576121fa612e82565b5b015f81548092919061220c90612c64565b91905055507fa4e109bb7f03a3cbe671105ffecfc362319eaa88ecaf35997a4d3a2328d66d6c3384604051612242929190612e5b565b60405180910390a1505050565b3373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146122de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d590612d05565b60405180910390fd5b8260085f600381106122f3576122f2612e82565b5b018190555081600860016003811061230e5761230d612e82565b5b018190555080600860026003811061232957612328612e82565b5b0181905550505050565b60065481565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6016602052815f5260405f20602052805f5260405f205f9150915050805f015490806001015490806002015490806003015490806004015490806005015490806006015f9054906101000a900460ff16908060060160019054906101000a900460ff16905088565b3373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612455576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244c90612d05565b60405180910390fd5b82600b5f6003811061246a57612469612e82565b5b018190555081600b60016003811061248557612484612e82565b5b018190555080600b6002600381106124a05761249f612e82565b5b0181905550505050565b601181600381106124b9575f80fd5b015f915090505481565b6017602052815f5260405f20602052805f5260405f205f91509150505481565b60055481565b3373ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256f90612d05565b60405180910390fd5b8060078190555050565b60045481565b60025481565b60035481565b600881600381106125a3575f80fd5b015f915090505481565b6014602052805f5260405f205f91509050805f015490806001015490806002015490806003015490806004015490806005015f9054906101000a900460ff16905086565b60075481565b5f808303612607575f9050612668565b5f828461261491906130be565b9050828482612623919061312c565b14612663576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265a906131cc565b60405180910390fd5b809150505b92915050565b5f80828461267c9190612c31565b9050838110156126c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126b890613234565b60405180910390fd5b8091505092915050565b5f838311158290612712576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270991906132cc565b60405180910390fd5b505f83856127209190612bfe565b9050809150509392505050565b5f61276e83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612776565b905092915050565b5f80831182906127bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127b391906132cc565b60405180910390fd5b505f83856127ca919061312c565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612804826127db565b9050919050565b612814816127fa565b811461281e575f80fd5b50565b5f8135905061282f8161280b565b92915050565b5f6020828403121561284a576128496127d7565b5b5f61285784828501612821565b91505092915050565b5f819050919050565b61287281612860565b82525050565b5f60208201905061288b5f830184612869565b92915050565b5f61289b826127db565b9050919050565b6128ab81612891565b81146128b5575f80fd5b50565b5f813590506128c6816128a2565b92915050565b5f602082840312156128e1576128e06127d7565b5b5f6128ee848285016128b8565b91505092915050565b61290081612860565b811461290a575f80fd5b50565b5f8135905061291b816128f7565b92915050565b5f60208284031215612936576129356127d7565b5b5f6129438482850161290d565b91505092915050565b5f819050919050565b5f61296f61296a612965846127db565b61294c565b6127db565b9050919050565b5f61298082612955565b9050919050565b5f61299182612976565b9050919050565b6129a181612987565b82525050565b5f6020820190506129ba5f830184612998565b92915050565b6129c9816127fa565b82525050565b5f6020820190506129e25f8301846129c0565b92915050565b5f80604083850312156129fe576129fd6127d7565b5b5f612a0b8582860161290d565b9250506020612a1c8582860161290d565b9150509250929050565b5f805f60608486031215612a3d57612a3c6127d7565b5b5f612a4a8682870161290d565b9350506020612a5b8682870161290d565b9250506040612a6c8682870161290d565b9150509250925092565b612a7f81612891565b82525050565b5f602082019050612a985f830184612a76565b92915050565b5f8060408385031215612ab457612ab36127d7565b5b5f612ac185828601612821565b9250506020612ad28582860161290d565b9150509250929050565b5f8115159050919050565b612af081612adc565b82525050565b5f61010082019050612b0a5f83018b612869565b612b17602083018a612869565b612b246040830189612869565b612b316060830188612869565b612b3e6080830187612869565b612b4b60a0830186612869565b612b5860c0830185612ae7565b612b6560e0830184612ae7565b9998505050505050505050565b5f60c082019050612b855f830189612869565b612b926020830188612869565b612b9f6040830187612869565b612bac6060830186612869565b612bb96080830185612869565b612bc660a0830184612ae7565b979650505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c0882612860565b9150612c1383612860565b9250828203905081811115612c2b57612c2a612bd1565b5b92915050565b5f612c3b82612860565b9150612c4683612860565b9250828201905080821115612c5e57612c5d612bd1565b5b92915050565b5f612c6e82612860565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ca057612c9f612bd1565b5b600182019050919050565b5f82825260208201905092915050565b7f6f6e6c79206f776e6572000000000000000000000000000000000000000000005f82015250565b5f612cef600a83612cab565b9150612cfa82612cbb565b602082019050919050565b5f6020820190508181035f830152612d1c81612ce3565b9050919050565b7f616c7265616479207769746864726177616e00000000000000000000000000005f82015250565b5f612d57601283612cab565b9150612d6282612d23565b602082019050919050565b5f6020820190508181035f830152612d8481612d4b565b9050919050565b7f616c726561647920756e7374616b6564000000000000000000000000000000005f82015250565b5f612dbf601083612cab565b9150612dca82612d8b565b602082019050919050565b5f6020820190508181035f830152612dec81612db3565b9050919050565b7f496e76616c696420696e646578000000000000000000000000000000000000005f82015250565b5f612e27600d83612cab565b9150612e3282612df3565b602082019050919050565b5f6020820190508181035f830152612e5481612e1b565b9050919050565b5f604082019050612e6e5f8301856129c0565b612e7b6020830184612869565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f612eb982612860565b91505f8203612ecb57612eca612bd1565b5b600182039050919050565b7f63616e6e6f74207769746864726177206265666f7265207374616b65206475725f8201527f6174696f6e000000000000000000000000000000000000000000000000000000602082015250565b5f612f30602583612cab565b9150612f3b82612ed6565b604082019050919050565b5f6020820190508181035f830152612f5d81612f24565b9050919050565b5f612f6e82612976565b9050919050565b612f7e81612f64565b82525050565b5f606082019050612f975f830186612f75565b612fa460208301856129c0565b612fb16040830184612869565b949350505050565b7f496e76616c69642054696d6520506572696f64000000000000000000000000005f82015250565b5f612fed601383612cab565b9150612ff882612fb9565b602082019050919050565b5f6020820190508181035f83015261301a81612fe1565b9050919050565b7f7374616b65206d6f7265207468616e20300000000000000000000000000000005f82015250565b5f613055601183612cab565b915061306082613021565b602082019050919050565b5f6020820190508181035f83015261308281613049565b9050919050565b5f60608201905061309c5f8301866129c0565b6130a960208301856129c0565b6130b66040830184612869565b949350505050565b5f6130c882612860565b91506130d383612860565b92508282026130e181612860565b915082820484148315176130f8576130f7612bd1565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61313682612860565b915061314183612860565b925082613151576131506130ff565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b6602183612cab565b91506131c18261315c565b604082019050919050565b5f6020820190508181035f8301526131e3816131aa565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61321e601b83612cab565b9150613229826131ea565b602082019050919050565b5f6020820190508181035f83015261324b81613212565b9050919050565b5f81519050919050565b5f5b8381101561327957808201518184015260208101905061325e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61329e82613252565b6132a88185612cab565b93506132b881856020860161325c565b6132c181613284565b840191505092915050565b5f6020820190508181035f8301526132e48184613294565b90509291505056fea2646970667358221220f0c1f73ba2e44858a947d3950ac00462f0512b8b57a6bd1a389d0086ac0635b464736f6c63430008140033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000afe1c5e50992005b1ffaad9011b989eb49737f1f0000000000000000000000001fb637c2774572ee76772d57a386d49d24d7ab5b
-----Decoded View---------------
Arg [0] : _owner (address): 0xAfE1c5E50992005B1FfAAd9011B989Eb49737F1f
Arg [1] : _token (address): 0x1Fb637C2774572EE76772D57A386D49d24D7Ab5b
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 000000000000000000000000afe1c5e50992005b1ffaad9011b989eb49737f1f
Arg [1] : 0000000000000000000000001fb637c2774572ee76772d57a386d49d24d7ab5b
Deployed Bytecode Sourcemap
931:8237:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8444:721;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8338:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1410:36;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4352:1337;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5697:2074;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;992:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1362:41;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2045:44;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2673:1671;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7779:224;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1227:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1025:28;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2096:66;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;8011:212;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1453:37;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2169:72;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1182:38;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8231:99;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1140:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1062:31;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1100:33;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1299:56;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1999:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;1261:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8444:721;8503:7;8523:11;8550:9;8545:592;8565:7;:13;8573:4;8565:13;;;;;;;;;;;;;;;:24;;;8561:1;:28;8545:592;;;8634:13;:19;8648:4;8634:19;;;;;;;;;;;;;;;:22;8654:1;8634:22;;;;;;;;;;;:33;;;;;;;;;;;;8633:34;:87;;;;;8689:13;:19;8703:4;8689:19;;;;;;;;;;;;;;;:22;8709:1;8689:22;;;;;;;;;;;:31;;;;;;;;;;;;8688:32;8633:87;8611:515;;;8755:11;8809:13;:19;8823:4;8809:19;;;;;;;;;;;;;;;:22;8829:1;8809:22;;;;;;;;;;;:32;;;8791:15;:50;;;;:::i;:::-;8785:56;;8866:47;8874:13;:19;8888:4;8874:19;;;;;;;;;;;;;;;:22;8894:1;8874:22;;;;;;;;;;;:38;;;8866:3;:7;;:47;;;;:::i;:::-;8860:53;;8942:13;:19;8956:4;8942:19;;;;;;;;;;;;;;;:22;8962:1;8942:22;;;;;;;;;;;:29;;;8936:3;:35;8932:179;;;9003:3;8996:10;;;;;:::i;:::-;;;8932:179;;;9062:13;:19;9076:4;9062:19;;;;;;;;;;;;;;;:22;9082:1;9062:22;;;;;;;;;;;:29;;;9055:36;;;;;:::i;:::-;;;8932:179;8736:390;8611:515;8591:3;;;;;:::i;:::-;;;;8545:592;;;;9154:3;9147:10;;;8444:721;;;:::o;8338:98::-;2456:10;2447:19;;:5;;;;;;;;;;;:19;;;2439:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8420:8:::1;8412:5;;:16;;;;;;;;;;;;;;;;;;8338:98:::0;:::o;1410:36::-;;;;;;;;;;;;;;;;;;;;:::o;4352:1337::-;4425:13;:25;4439:10;4425:25;;;;;;;;;;;;;;;:32;4451:5;4425:32;;;;;;;;;;;:43;;;;;;;;;;;;4424:44;4402:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;4534:13;:25;4548:10;4534:25;;;;;;;;;;;;;;;:32;4560:5;4534:32;;;;;;;;;;;:41;;;;;;;;;;;;4533:42;4525:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4623:7;:19;4631:10;4623:19;;;;;;;;;;;;;;;:30;;;4615:5;:38;4607:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;4728:4;4684:13;:25;4698:10;4684:25;;;;;;;;;;;;;;;:32;4710:5;4684:32;;;;;;;;;;;:41;;;:48;;;;;;;;;;;;;;;;;;4745:10;;;;;;;;;;:19;;;4779:10;4805:13;:25;4819:10;4805:25;;;;;;;;;;;;;;;:32;4831:5;4805:32;;;;;;;;;;;:39;;;4745:111;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4888:87;4925:13;:25;4939:10;4925:25;;;;;;;;;;;;;;;:32;4951:5;4925:32;;;;;;;;;;;:39;;;4888:18;;:22;;:87;;;;:::i;:::-;4867:18;:108;;;;5031:115;5106:13;:25;5120:10;5106:25;;;;;;;;;;;;;;;:32;5132:5;5106:32;;;;;;;;;;;:39;;;5031:7;:19;5039:10;5031:19;;;;;;;;;;;;;;;:56;;;:74;;:115;;;;:::i;:::-;4986:7;:19;4994:10;4986:19;;;;;;;;;;;;;;;:42;;:160;;;;5157:17;5177:13;:25;5191:10;5177:25;;;;;;;;;;;;;;;:32;5203:5;5177:32;;;;;;;;;;;:37;;;5157:57;;5268:123;5337:13;:25;5351:10;5337:25;;;;;;;;;;;;;;;:32;5363:5;5337:32;;;;;;;;;;;:39;;;5268:123;;;;;;;;;;;;;;;;;:17;:53;5300:10;5268:53;;;;;;;;;;;;;;;:64;5322:9;5268:64;;;;;;;;;;;;:68;;:123;;;;;:::i;:::-;5225:17;:29;5243:10;5225:29;;;;;;;;;;;;;;;:40;5255:9;5225:40;;;;;;;;;;;:166;;;;5434:126;5482:13;:25;5496:10;5482:25;;;;;;;;;;;;;;;:32;5508:5;5482:32;;;;;;;;;;;:39;;;5434:126;;;;;;;;;;;;;;;;;:18;5453:9;5434:29;;;;;;;:::i;:::-;;;;:33;;:126;;;;;:::i;:::-;5402:18;5421:9;5402:29;;;;;;;:::i;:::-;;;:158;;;;5571:19;5591:9;5571:30;;;;;;;:::i;:::-;;;;:32;;;;;;;;;:::i;:::-;;;;;;5621:60;5629:10;5641:13;:25;5655:10;5641:25;;;;;;;;;;;;;;;:32;5667:5;5641:32;;;;;;;;;;;:39;;;5621:60;;;;;;;:::i;:::-;;;;;;;;4391:1298;4352:1337;:::o;5697:2074::-;5771:13;:25;5785:10;5771:25;;;;;;;;;;;;;;;:32;5797:5;5771:32;;;;;;;;;;;:43;;;;;;;;;;;;5770:44;5748:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;5880:13;:25;5894:10;5880:25;;;;;;;;;;;;;;;:32;5906:5;5880:32;;;;;;;;;;;:41;;;;;;;;;;;;5879:42;5871:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6023:15;5975:13;:25;5989:10;5975:25;;;;;;;;;;;;;;;:32;6001:5;5975:32;;;;;;;;;;;:45;;;:63;5953:150;;;;;;;;;;;;:::i;:::-;;;;;;;;;6130:7;:19;6138:10;6130:19;;;;;;;;;;;;;;;:30;;;6122:5;:38;6114:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6237:4;6191:13;:25;6205:10;6191:25;;;;;;;;;;;;;;;:32;6217:5;6191:32;;;;;;;;;;;:43;;;:50;;;;;;;;;;;;;;;;;;6252:10;;;;;;;;;;:19;;;6286:10;6311:13;:25;6325:10;6311:25;;;;;;;;;;;;;;;:32;6337:5;6311:32;;;;;;;;;;;:39;;;6252:109;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6372:10;;;;;;;;;;:23;;;6410:5;;;;;;;;;;;6430:10;6455:13;:25;6469:10;6455:25;;;;;;;;;;;;;;;:32;6481:5;6455:32;;;;;;;;;;;:39;;;6372:133;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6539:89;6578:13;:25;6592:10;6578:25;;;;;;;;;;;;;;;:32;6604:5;6578:32;;;;;;;;;;;:39;;;6539:20;;:24;;:89;;;;:::i;:::-;6516:20;:112;;;;6665:92;6707:13;:25;6721:10;6707:25;;;;;;;;;;;;;;;:32;6733:5;6707:32;;;;;;;;;;;:39;;;6665:23;;:27;;:92;;;;:::i;:::-;6639:23;:118;;;;6815:117;6892:13;:25;6906:10;6892:25;;;;;;;;;;;;;;;:32;6918:5;6892:32;;;;;;;;;;;:39;;;6815:7;:19;6823:10;6815:19;;;;;;;;;;;;;;;:58;;;:76;;:117;;;;:::i;:::-;6768:7;:19;6776:10;6768:19;;;;;;;;;;;;;;;:44;;:164;;;;6993:120;7073:13;:25;7087:10;7073:25;;;;;;;;;;;;;;;:32;7099:5;7073:32;;;;;;;;;;;:39;;;6993:7;:19;7001:10;6993:19;;;;;;;;;;;;;;;:61;;;:79;;:120;;;;:::i;:::-;6943:7;:19;6951:10;6943:19;;;;;;;;;;;;;;;:47;;:170;;;;7124:17;7144:13;:25;7158:10;7144:25;;;;;;;;;;;;;;;:32;7170:5;7144:32;;;;;;;;;;;:37;;;7124:57;;7235:123;7304:13;:25;7318:10;7304:25;;;;;;;;;;;;;;;:32;7330:5;7304:32;;;;;;;;;;;:39;;;7235:123;;;;;;;;;;;;;;;;;:17;:53;7267:10;7235:53;;;;;;;;;;;;;;;:64;7289:9;7235:64;;;;;;;;;;;;:68;;:123;;;;;:::i;:::-;7192:17;:29;7210:10;7192:29;;;;;;;;;;;;;;;:40;7222:9;7192:40;;;;;;;;;;;:166;;;;7401:126;7449:13;:25;7463:10;7449:25;;;;;;;;;;;;;;;:32;7475:5;7449:32;;;;;;;;;;;:39;;;7401:126;;;;;;;;;;;;;;;;;:18;7420:9;7401:29;;;;;;;:::i;:::-;;;;:33;;:126;;;;;:::i;:::-;7369:18;7388:9;7369:29;;;;;;;:::i;:::-;;;:158;;;;7538:19;7558:9;7538:30;;;;;;;:::i;:::-;;;;:32;;;;;;;;;:::i;:::-;;;;;;7588:175;7611:10;7636:116;7698:13;:25;7712:10;7698:25;;;;;;;;;;;;;;;:32;7724:5;7698:32;;;;;;;;;;;:39;;;7636:13;:25;7650:10;7636:25;;;;;;;;;;;;;;;:32;7662:5;7636:32;;;;;;;;;;;:39;;;:43;;:116;;;;:::i;:::-;7588:175;;;;;;;:::i;:::-;;;;;;;;5737:2034;5697:2074;:::o;992:24::-;;;;;;;;;;;;:::o;1362:41::-;;;;;;;;;;;;;;;;;;;;:::o;2045:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;2673:1671::-;2762:1;2749:9;:14;;:31;;;;;2779:1;2767:9;:13;2749:31;2741:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;2833:1;2823:6;:11;;2815:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;2874:7;:19;2882:10;2874:19;;;;;;;;;;;;;;;:33;;;;;;;;;;;;2869:187;;2960:4;2924:7;:19;2932:10;2924:19;;;;;;;;;;;;;;;:33;;;:40;;;;;;;;;;;;;;;;;;3005:10;2979:9;:23;2989:12;;2979:23;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;3030:12;;:14;;;;;;;;;:::i;:::-;;;;;;2869:187;3068:10;;;;;;;;;;:23;;;3092:10;3112:4;3119:6;3068:58;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3139:13;3155:7;:19;3163:10;3155:19;;;;;;;;;;;;;;;:30;;;3139:46;;3239:80;3312:6;3239:7;:19;3247:10;3239:19;;;;;;;;;;;;;;;:54;;;:72;;:80;;;;:::i;:::-;3196:7;:19;3204:10;3196:19;;;;;;;;;;;;;;;:40;;:123;;;;3349:28;3370:6;3349:16;;:20;;:28;;;;:::i;:::-;3330:16;:47;;;;3436:64;3470:8;3479:9;3470:19;;;;;;;:::i;:::-;;;;3436:15;:19;;:64;;;;:::i;:::-;3388:13;:25;3402:10;3388:25;;;;;;;;;;;;;;;:32;3414:5;3388:32;;;;;;;;;;;:45;;:112;;;;3556:15;3511:13;:25;3525:10;3511:25;;;;;;;;;;;;;;;:32;3537:5;3511:32;;;;;;;;;;;:42;;:60;;;;3624:6;3582:13;:25;3596:10;3582:25;;;;;;;;;;;;;;;:32;3608:5;3582:32;;;;;;;;;;;:39;;:48;;;;3683:76;3744:14;;3683:42;3708:5;3714:9;3708:16;;;;;;;:::i;:::-;;;;3683:6;:24;;:42;;;;:::i;:::-;:60;;:76;;;;:::i;:::-;3641:13;:25;3655:10;3641:25;;;;;;;;;;;;;;;:32;3667:5;3641:32;;;;;;;;;;;:39;;:118;;;;3821:88;3889:8;3898:9;3889:19;;;;;;;:::i;:::-;;;;3821:13;:49;3849:10;3821:49;;;;;;;;;;;;;;;:56;3871:5;3821:56;;;;;;;;;;;:63;;;:67;;:88;;;;:::i;:::-;3770:13;:25;3784:10;3770:25;;;;;;;;;;;;;;;:32;3796:5;3770:32;;;;;;;;;;;:48;;:139;;;;3960:9;3920:13;:25;3934:10;3920:25;;;;;;;;;;;;;;;:32;3946:5;3920:32;;;;;;;;;;;:37;;:49;;;;3980:7;:19;3988:10;3980:19;;;;;;;;;;;;;;;:30;;;:32;;;;;;;;;:::i;:::-;;;;;;4066:76;4135:6;4066:17;:53;4098:10;4066:53;;;;;;;;;;;;;;;:64;4120:9;4066:64;;;;;;;;;;;;:68;;:76;;;;:::i;:::-;4023:17;:29;4041:10;4023:29;;;;;;;;;;;;;;;:40;4053:9;4023:40;;;;;;;;;;;:119;;;;4185:65;4233:6;4185:18;4204:9;4185:29;;;;;;;:::i;:::-;;;;:33;;:65;;;;:::i;:::-;4153:18;4172:9;4153:29;;;;;;;:::i;:::-;;;:97;;;;4261:19;4281:9;4261:30;;;;;;;:::i;:::-;;;;:32;;;;;;;;;:::i;:::-;;;;;;4311:25;4317:10;4329:6;4311:25;;;;;;;:::i;:::-;;;;;;;;2730:1614;2673:1671;;:::o;7779:224::-;2456:10;2447:19;;:5;;;;;;;;;;;:19;;;2439:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7929:5:::1;7915:8;7924:1;7915:11;;;;;;;:::i;:::-;;;:19;;;;7959:6;7945:8;7954:1;7945:11;;;;;;;:::i;:::-;;;:20;;;;7990:5;7976:8;7985:1;7976:11;;;;;;;:::i;:::-;;;:19;;;;7779:224:::0;;;:::o;1227:27::-;;;;:::o;1025:28::-;;;;;;;;;;;;;:::o;2096:66::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8011:212::-;2456:10;2447:19;;:5;;;;;;;;;;;:19;;;2439:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8155:5:::1;8144;8150:1;8144:8;;;;;;;:::i;:::-;;;:16;;;;8182:6;8171:5;8177:1;8171:8;;;;;;;:::i;:::-;;;:17;;;;8210:5;8199;8205:1;8199:8;;;;;;;:::i;:::-;;;:16;;;;8011:212:::0;;;:::o;1453:37::-;;;;;;;;;;;;;;;;;;;;:::o;2169:72::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1182:38::-;;;;:::o;8231:99::-;2456:10;2447:19;;:5;;;;;;;;;;;:19;;;2439:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;8315:7:::1;8298:14;:24;;;;8231:99:::0;:::o;1140:35::-;;;;:::o;1062:31::-;;;;:::o;1100:33::-;;;;:::o;1299:56::-;;;;;;;;;;;;;;;;;;;;:::o;1999:39::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1261:29::-;;;;:::o;9763:471::-;9821:7;10071:1;10066;:6;10062:47;;10096:1;10089:8;;;;10062:47;10121:9;10137:1;10133;:5;;;;:::i;:::-;10121:17;;10166:1;10161;10157;:5;;;;:::i;:::-;:10;10149:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10225:1;10218:8;;;9763:471;;;;;:::o;9196:181::-;9254:7;9274:9;9290:1;9286;:5;;;;:::i;:::-;9274:17;;9315:1;9310;:6;;9302:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9368:1;9361:8;;;9196:181;;;;:::o;9529:226::-;9649:7;9682:1;9677;:6;;9685:12;9669:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9709:9;9725:1;9721;:5;;;;:::i;:::-;9709:17;;9746:1;9739:8;;;9529:226;;;;;:::o;10242:132::-;10300:7;10327:39;10331:1;10334;10327:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;10320:46;;10242:132;;;;:::o;10382:312::-;10502:7;10534:1;10530;:5;10537:12;10522:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;10561:9;10577:1;10573;:5;;;;:::i;:::-;10561:17;;10685:1;10678:8;;;10382:312;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:77::-;1213:7;1242:5;1231:16;;1176:77;;;:::o;1259:118::-;1346:24;1364:5;1346:24;:::i;:::-;1341:3;1334:37;1259:118;;:::o;1383:222::-;1476:4;1514:2;1503:9;1499:18;1491:26;;1527:71;1595:1;1584:9;1580:17;1571:6;1527:71;:::i;:::-;1383:222;;;;:::o;1611:104::-;1656:7;1685:24;1703:5;1685:24;:::i;:::-;1674:35;;1611:104;;;:::o;1721:138::-;1802:32;1828:5;1802:32;:::i;:::-;1795:5;1792:43;1782:71;;1849:1;1846;1839:12;1782:71;1721:138;:::o;1865:155::-;1919:5;1957:6;1944:20;1935:29;;1973:41;2008:5;1973:41;:::i;:::-;1865:155;;;;:::o;2026:345::-;2093:6;2142:2;2130:9;2121:7;2117:23;2113:32;2110:119;;;2148:79;;:::i;:::-;2110:119;2268:1;2293:61;2346:7;2337:6;2326:9;2322:22;2293:61;:::i;:::-;2283:71;;2239:125;2026:345;;;;:::o;2377:122::-;2450:24;2468:5;2450:24;:::i;:::-;2443:5;2440:35;2430:63;;2489:1;2486;2479:12;2430:63;2377:122;:::o;2505:139::-;2551:5;2589:6;2576:20;2567:29;;2605:33;2632:5;2605:33;:::i;:::-;2505:139;;;;:::o;2650:329::-;2709:6;2758:2;2746:9;2737:7;2733:23;2729:32;2726:119;;;2764:79;;:::i;:::-;2726:119;2884:1;2909:53;2954:7;2945:6;2934:9;2930:22;2909:53;:::i;:::-;2899:63;;2855:117;2650:329;;;;:::o;2985:60::-;3013:3;3034:5;3027:12;;2985:60;;;:::o;3051:142::-;3101:9;3134:53;3152:34;3161:24;3179:5;3161:24;:::i;:::-;3152:34;:::i;:::-;3134:53;:::i;:::-;3121:66;;3051:142;;;:::o;3199:126::-;3249:9;3282:37;3313:5;3282:37;:::i;:::-;3269:50;;3199:126;;;:::o;3331:139::-;3394:9;3427:37;3458:5;3427:37;:::i;:::-;3414:50;;3331:139;;;:::o;3476:157::-;3576:50;3620:5;3576:50;:::i;:::-;3571:3;3564:63;3476:157;;:::o;3639:248::-;3745:4;3783:2;3772:9;3768:18;3760:26;;3796:84;3877:1;3866:9;3862:17;3853:6;3796:84;:::i;:::-;3639:248;;;;:::o;3893:118::-;3980:24;3998:5;3980:24;:::i;:::-;3975:3;3968:37;3893:118;;:::o;4017:222::-;4110:4;4148:2;4137:9;4133:18;4125:26;;4161:71;4229:1;4218:9;4214:17;4205:6;4161:71;:::i;:::-;4017:222;;;;:::o;4245:474::-;4313:6;4321;4370:2;4358:9;4349:7;4345:23;4341:32;4338:119;;;4376:79;;:::i;:::-;4338:119;4496:1;4521:53;4566:7;4557:6;4546:9;4542:22;4521:53;:::i;:::-;4511:63;;4467:117;4623:2;4649:53;4694:7;4685:6;4674:9;4670:22;4649:53;:::i;:::-;4639:63;;4594:118;4245:474;;;;;:::o;4725:619::-;4802:6;4810;4818;4867:2;4855:9;4846:7;4842:23;4838:32;4835:119;;;4873:79;;:::i;:::-;4835:119;4993:1;5018:53;5063:7;5054:6;5043:9;5039:22;5018:53;:::i;:::-;5008:63;;4964:117;5120:2;5146:53;5191:7;5182:6;5171:9;5167:22;5146:53;:::i;:::-;5136:63;;5091:118;5248:2;5274:53;5319:7;5310:6;5299:9;5295:22;5274:53;:::i;:::-;5264:63;;5219:118;4725:619;;;;;:::o;5350:142::-;5453:32;5479:5;5453:32;:::i;:::-;5448:3;5441:45;5350:142;;:::o;5498:254::-;5607:4;5645:2;5634:9;5630:18;5622:26;;5658:87;5742:1;5731:9;5727:17;5718:6;5658:87;:::i;:::-;5498:254;;;;:::o;5758:474::-;5826:6;5834;5883:2;5871:9;5862:7;5858:23;5854:32;5851:119;;;5889:79;;:::i;:::-;5851:119;6009:1;6034:53;6079:7;6070:6;6059:9;6055:22;6034:53;:::i;:::-;6024:63;;5980:117;6136:2;6162:53;6207:7;6198:6;6187:9;6183:22;6162:53;:::i;:::-;6152:63;;6107:118;5758:474;;;;;:::o;6238:90::-;6272:7;6315:5;6308:13;6301:21;6290:32;;6238:90;;;:::o;6334:109::-;6415:21;6430:5;6415:21;:::i;:::-;6410:3;6403:34;6334:109;;:::o;6449:973::-;6726:4;6764:3;6753:9;6749:19;6741:27;;6778:71;6846:1;6835:9;6831:17;6822:6;6778:71;:::i;:::-;6859:72;6927:2;6916:9;6912:18;6903:6;6859:72;:::i;:::-;6941;7009:2;6998:9;6994:18;6985:6;6941:72;:::i;:::-;7023;7091:2;7080:9;7076:18;7067:6;7023:72;:::i;:::-;7105:73;7173:3;7162:9;7158:19;7149:6;7105:73;:::i;:::-;7188;7256:3;7245:9;7241:19;7232:6;7188:73;:::i;:::-;7271:67;7333:3;7322:9;7318:19;7309:6;7271:67;:::i;:::-;7348;7410:3;7399:9;7395:19;7386:6;7348:67;:::i;:::-;6449:973;;;;;;;;;;;:::o;7428:763::-;7655:4;7693:3;7682:9;7678:19;7670:27;;7707:71;7775:1;7764:9;7760:17;7751:6;7707:71;:::i;:::-;7788:72;7856:2;7845:9;7841:18;7832:6;7788:72;:::i;:::-;7870;7938:2;7927:9;7923:18;7914:6;7870:72;:::i;:::-;7952;8020:2;8009:9;8005:18;7996:6;7952:72;:::i;:::-;8034:73;8102:3;8091:9;8087:19;8078:6;8034:73;:::i;:::-;8117:67;8179:3;8168:9;8164:19;8155:6;8117:67;:::i;:::-;7428:763;;;;;;;;;:::o;8197:180::-;8245:77;8242:1;8235:88;8342:4;8339:1;8332:15;8366:4;8363:1;8356:15;8383:194;8423:4;8443:20;8461:1;8443:20;:::i;:::-;8438:25;;8477:20;8495:1;8477:20;:::i;:::-;8472:25;;8521:1;8518;8514:9;8506:17;;8545:1;8539:4;8536:11;8533:37;;;8550:18;;:::i;:::-;8533:37;8383:194;;;;:::o;8583:191::-;8623:3;8642:20;8660:1;8642:20;:::i;:::-;8637:25;;8676:20;8694:1;8676:20;:::i;:::-;8671:25;;8719:1;8716;8712:9;8705:16;;8740:3;8737:1;8734:10;8731:36;;;8747:18;;:::i;:::-;8731:36;8583:191;;;;:::o;8780:233::-;8819:3;8842:24;8860:5;8842:24;:::i;:::-;8833:33;;8888:66;8881:5;8878:77;8875:103;;8958:18;;:::i;:::-;8875:103;9005:1;8998:5;8994:13;8987:20;;8780:233;;;:::o;9019:169::-;9103:11;9137:6;9132:3;9125:19;9177:4;9172:3;9168:14;9153:29;;9019:169;;;;:::o;9194:160::-;9334:12;9330:1;9322:6;9318:14;9311:36;9194:160;:::o;9360:366::-;9502:3;9523:67;9587:2;9582:3;9523:67;:::i;:::-;9516:74;;9599:93;9688:3;9599:93;:::i;:::-;9717:2;9712:3;9708:12;9701:19;;9360:366;;;:::o;9732:419::-;9898:4;9936:2;9925:9;9921:18;9913:26;;9985:9;9979:4;9975:20;9971:1;9960:9;9956:17;9949:47;10013:131;10139:4;10013:131;:::i;:::-;10005:139;;9732:419;;;:::o;10157:168::-;10297:20;10293:1;10285:6;10281:14;10274:44;10157:168;:::o;10331:366::-;10473:3;10494:67;10558:2;10553:3;10494:67;:::i;:::-;10487:74;;10570:93;10659:3;10570:93;:::i;:::-;10688:2;10683:3;10679:12;10672:19;;10331:366;;;:::o;10703:419::-;10869:4;10907:2;10896:9;10892:18;10884:26;;10956:9;10950:4;10946:20;10942:1;10931:9;10927:17;10920:47;10984:131;11110:4;10984:131;:::i;:::-;10976:139;;10703:419;;;:::o;11128:166::-;11268:18;11264:1;11256:6;11252:14;11245:42;11128:166;:::o;11300:366::-;11442:3;11463:67;11527:2;11522:3;11463:67;:::i;:::-;11456:74;;11539:93;11628:3;11539:93;:::i;:::-;11657:2;11652:3;11648:12;11641:19;;11300:366;;;:::o;11672:419::-;11838:4;11876:2;11865:9;11861:18;11853:26;;11925:9;11919:4;11915:20;11911:1;11900:9;11896:17;11889:47;11953:131;12079:4;11953:131;:::i;:::-;11945:139;;11672:419;;;:::o;12097:163::-;12237:15;12233:1;12225:6;12221:14;12214:39;12097:163;:::o;12266:366::-;12408:3;12429:67;12493:2;12488:3;12429:67;:::i;:::-;12422:74;;12505:93;12594:3;12505:93;:::i;:::-;12623:2;12618:3;12614:12;12607:19;;12266:366;;;:::o;12638:419::-;12804:4;12842:2;12831:9;12827:18;12819:26;;12891:9;12885:4;12881:20;12877:1;12866:9;12862:17;12855:47;12919:131;13045:4;12919:131;:::i;:::-;12911:139;;12638:419;;;:::o;13063:332::-;13184:4;13222:2;13211:9;13207:18;13199:26;;13235:71;13303:1;13292:9;13288:17;13279:6;13235:71;:::i;:::-;13316:72;13384:2;13373:9;13369:18;13360:6;13316:72;:::i;:::-;13063:332;;;;;:::o;13401:180::-;13449:77;13446:1;13439:88;13546:4;13543:1;13536:15;13570:4;13567:1;13560:15;13587:171;13626:3;13649:24;13667:5;13649:24;:::i;:::-;13640:33;;13695:4;13688:5;13685:15;13682:41;;13703:18;;:::i;:::-;13682:41;13750:1;13743:5;13739:13;13732:20;;13587:171;;;:::o;13764:224::-;13904:34;13900:1;13892:6;13888:14;13881:58;13973:7;13968:2;13960:6;13956:15;13949:32;13764:224;:::o;13994:366::-;14136:3;14157:67;14221:2;14216:3;14157:67;:::i;:::-;14150:74;;14233:93;14322:3;14233:93;:::i;:::-;14351:2;14346:3;14342:12;14335:19;;13994:366;;;:::o;14366:419::-;14532:4;14570:2;14559:9;14555:18;14547:26;;14619:9;14613:4;14609:20;14605:1;14594:9;14590:17;14583:47;14647:131;14773:4;14647:131;:::i;:::-;14639:139;;14366:419;;;:::o;14791:134::-;14849:9;14882:37;14913:5;14882:37;:::i;:::-;14869:50;;14791:134;;;:::o;14931:147::-;15026:45;15065:5;15026:45;:::i;:::-;15021:3;15014:58;14931:147;;:::o;15084:458::-;15241:4;15279:2;15268:9;15264:18;15256:26;;15292:79;15368:1;15357:9;15353:17;15344:6;15292:79;:::i;:::-;15381:72;15449:2;15438:9;15434:18;15425:6;15381:72;:::i;:::-;15463;15531:2;15520:9;15516:18;15507:6;15463:72;:::i;:::-;15084:458;;;;;;:::o;15548:169::-;15688:21;15684:1;15676:6;15672:14;15665:45;15548:169;:::o;15723:366::-;15865:3;15886:67;15950:2;15945:3;15886:67;:::i;:::-;15879:74;;15962:93;16051:3;15962:93;:::i;:::-;16080:2;16075:3;16071:12;16064:19;;15723:366;;;:::o;16095:419::-;16261:4;16299:2;16288:9;16284:18;16276:26;;16348:9;16342:4;16338:20;16334:1;16323:9;16319:17;16312:47;16376:131;16502:4;16376:131;:::i;:::-;16368:139;;16095:419;;;:::o;16520:167::-;16660:19;16656:1;16648:6;16644:14;16637:43;16520:167;:::o;16693:366::-;16835:3;16856:67;16920:2;16915:3;16856:67;:::i;:::-;16849:74;;16932:93;17021:3;16932:93;:::i;:::-;17050:2;17045:3;17041:12;17034:19;;16693:366;;;:::o;17065:419::-;17231:4;17269:2;17258:9;17254:18;17246:26;;17318:9;17312:4;17308:20;17304:1;17293:9;17289:17;17282:47;17346:131;17472:4;17346:131;:::i;:::-;17338:139;;17065:419;;;:::o;17490:442::-;17639:4;17677:2;17666:9;17662:18;17654:26;;17690:71;17758:1;17747:9;17743:17;17734:6;17690:71;:::i;:::-;17771:72;17839:2;17828:9;17824:18;17815:6;17771:72;:::i;:::-;17853;17921:2;17910:9;17906:18;17897:6;17853:72;:::i;:::-;17490:442;;;;;;:::o;17938:410::-;17978:7;18001:20;18019:1;18001:20;:::i;:::-;17996:25;;18035:20;18053:1;18035:20;:::i;:::-;18030:25;;18090:1;18087;18083:9;18112:30;18130:11;18112:30;:::i;:::-;18101:41;;18291:1;18282:7;18278:15;18275:1;18272:22;18252:1;18245:9;18225:83;18202:139;;18321:18;;:::i;:::-;18202:139;17986:362;17938:410;;;;:::o;18354:180::-;18402:77;18399:1;18392:88;18499:4;18496:1;18489:15;18523:4;18520:1;18513:15;18540:185;18580:1;18597:20;18615:1;18597:20;:::i;:::-;18592:25;;18631:20;18649:1;18631:20;:::i;:::-;18626:25;;18670:1;18660:35;;18675:18;;:::i;:::-;18660:35;18717:1;18714;18710:9;18705:14;;18540:185;;;;:::o;18731:220::-;18871:34;18867:1;18859:6;18855:14;18848:58;18940:3;18935:2;18927:6;18923:15;18916:28;18731:220;:::o;18957:366::-;19099:3;19120:67;19184:2;19179:3;19120:67;:::i;:::-;19113:74;;19196:93;19285:3;19196:93;:::i;:::-;19314:2;19309:3;19305:12;19298:19;;18957:366;;;:::o;19329:419::-;19495:4;19533:2;19522:9;19518:18;19510:26;;19582:9;19576:4;19572:20;19568:1;19557:9;19553:17;19546:47;19610:131;19736:4;19610:131;:::i;:::-;19602:139;;19329:419;;;:::o;19754:177::-;19894:29;19890:1;19882:6;19878:14;19871:53;19754:177;:::o;19937:366::-;20079:3;20100:67;20164:2;20159:3;20100:67;:::i;:::-;20093:74;;20176:93;20265:3;20176:93;:::i;:::-;20294:2;20289:3;20285:12;20278:19;;19937:366;;;:::o;20309:419::-;20475:4;20513:2;20502:9;20498:18;20490:26;;20562:9;20556:4;20552:20;20548:1;20537:9;20533:17;20526:47;20590:131;20716:4;20590:131;:::i;:::-;20582:139;;20309:419;;;:::o;20734:99::-;20786:6;20820:5;20814:12;20804:22;;20734:99;;;:::o;20839:246::-;20920:1;20930:113;20944:6;20941:1;20938:13;20930:113;;;21029:1;21024:3;21020:11;21014:18;21010:1;21005:3;21001:11;20994:39;20966:2;20963:1;20959:10;20954:15;;20930:113;;;21077:1;21068:6;21063:3;21059:16;21052:27;20901:184;20839:246;;;:::o;21091:102::-;21132:6;21183:2;21179:7;21174:2;21167:5;21163:14;21159:28;21149:38;;21091:102;;;:::o;21199:377::-;21287:3;21315:39;21348:5;21315:39;:::i;:::-;21370:71;21434:6;21429:3;21370:71;:::i;:::-;21363:78;;21450:65;21508:6;21503:3;21496:4;21489:5;21485:16;21450:65;:::i;:::-;21540:29;21562:6;21540:29;:::i;:::-;21535:3;21531:39;21524:46;;21291:285;21199:377;;;;:::o;21582:313::-;21695:4;21733:2;21722:9;21718:18;21710:26;;21782:9;21776:4;21772:20;21768:1;21757:9;21753:17;21746:47;21810:78;21883:4;21874:6;21810:78;:::i;:::-;21802:86;;21582:313;;;;:::o
Swarm Source
ipfs://f0c1f73ba2e44858a947d3950ac00462f0512b8b57a6bd1a389d0086ac0635b4
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.