Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
StUSDTG1
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-07-27
*/
// File contracts/interface/IERC20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.18;
interface IERC20 {
event Approval(address indexed owner, address indexed spender, uint256 value);
event Transfer(address indexed from, address indexed to, uint256 value);
function approve(address spender, uint256 value) external returns (bool);
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
function allowance(address owner, address spender) external view returns (uint256);
function balanceOf(address who) external view returns (uint256);
function totalSupply() external view returns (uint256);
/**
* @return the number of decimals for getting user representation of a token amount.
*/
function decimals() external pure returns (uint8);
/**
* @return the name of the token.
*/
function name() external pure returns (string memory);
/**
* @return the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() external pure returns (string memory);
}
// File contracts/interface/IStUSDT.sol
pragma solidity ^0.8.18;
interface IStUSDT is IERC20 {
function sharesOf(address _account) external view returns (uint256);
function getSharesByUnderlying(uint256 _underlyingAmount) external view returns (uint256);
function getUnderlyingByShares(uint256 _sharesAmount) external view returns (uint256);
function mint(address _owner, uint256 _amountOfStUSDT) external returns (uint256);
function burnShares(address _owner, uint256 _amountOfShares) external returns (uint256);
}
// File contracts/AdminStorage.sol
pragma solidity ^0.8.18;
contract AdminStorage {
/**
* @notice Administrator for this contract
*/
address public admin;
/**
* @notice Pending administrator for this contract
*/
address public pendingAdmin;
/**
* @notice Active brains of this contract
*/
address public implementation;
/**
* @notice Pending brains of this contract
*/
address public pendingImplementation;
}
// File contracts/interface/IBlackListManager.sol
pragma solidity 0.8.18;
interface IBlackListManager {
function isBlackListed(address _address) external view returns (bool);
}
// File contracts/StUSDTStorage.sol
pragma solidity ^0.8.18;
contract StUSDTStorage is AdminStorage {
uint256 public constant SCALE = 1e18;
// -------------------------------- storages --------------------------------
mapping(address => uint256) internal shares;
mapping(address => mapping(address => uint256)) internal allowances;
uint256 public totalShares;
uint256 public totalUnderlying;
mapping(address => bool) public minters;
mapping(address => bool) public burners;
uint256 public maxTotalUnderlying;
uint256 public increaseRateLimit;
uint256 public decreaseRateLimit;
uint256 public lastRebaseTime;
uint256 public rebaseIntervalTime;
address public rebaseAdmin;
address public mintPausedAdmin;
bool public mintPaused;
IBlackListManager public blackListManager;
}
// File contracts/StUSDTG1.sol
pragma solidity ^0.8.18;
contract StUSDTG1 is StUSDTStorage, IStUSDT {
// -------------------------------- events --------------------------------
event TransferShares(address indexed from, address indexed to, uint256 sharesValue);
event IncreaseBase(uint256 oldTotalUnderlying, uint256 newTotalUnderlying, uint256 totalShares);
event DecreaseBase(uint256 oldTotalUnderlying, uint256 newTotalUnderlying, uint256 totalShares);
event MintStateUpdated(bool state);
event Mint(
address indexed minter,
address indexed owner,
uint256 amountOfShares,
uint256 amountOfStUSDT,
uint256 userRemainingShares,
uint256 totalShares,
uint256 totalUnderlying
);
event SharesBurnt(
address indexed burner,
address indexed owner,
uint256 amountOfShares,
uint256 amountOfStUSDT,
uint256 userRemainingShares,
uint256 totalShares,
uint256 totalUnderlying
);
event MaxTotalUnderlyingUpdated(uint256 oldMaxTotal, uint256 newMaxTotal);
event RebaseAdminUpdated(address oldRebaseAdmin, address newRebaseAdmin);
event RebaseIntervalTimeUpdated(uint256 oldIntervalTime, uint256 newIntervalTime);
event IncreaseRateLimitUpdated(uint256 oldRateLimit, uint256 newRateLimit);
event DecreaseRateLimitUpdated(uint256 oldRateLimit, uint256 newRateLimit);
event MintPausedAdminUpdated(address oldMintPausedAdmin, address newMintPausedAdmin);
event MintersAdded(address[] mintersAdded);
event MintersRemoved(address[] mintersRemoved);
event BurnersAdded(address[] burnersAdded);
event BurnersRemoved(address[] burnersRemoved);
event BlackListManagerUpdated(address oldAddr, address newAddr);
// -------------------------------- modifiers --------------------------------
modifier onlyAdmin() {
require(msg.sender == admin, "NOT_ADMIN");
_;
}
modifier onlyRebaseAdmin() {
require(msg.sender == rebaseAdmin, "NOT_REBASE_ADMIN");
_;
}
modifier onlyMinter() {
require(isMinter(msg.sender), "NOT_MINTER");
_;
}
modifier onlyBurner() {
require(isBurner(msg.sender), "NOT_BURNER");
_;
}
modifier notOnBlackList(address _address) {
if (address(blackListManager) != address(0)) {
require(!blackListManager.isBlackListed(_address), "ADDRESS_IS_BLACKLISTED");
}
_;
}
modifier onlyMintPausedAdmin() {
require(msg.sender == mintPausedAdmin, "NOT_MINT_PAUSED_ADMIN");
_;
}
// -------------------------------- trc20 functions --------------------------------
function decimals() public pure returns (uint8) {
return 18;
}
function name() external pure returns (string memory) {
return "Staked USDT";
}
function symbol() external pure returns (string memory) {
return "stUSDT";
}
function totalSupply() public view returns (uint256) {
return totalUnderlying;
}
function balanceOf(address _account) public view returns (uint256) {
return getUnderlyingByShares(shares[_account]);
}
function transfer(address _recipient, uint256 _amount)
public
notOnBlackList(msg.sender)
returns (bool)
{
_transfer(msg.sender, _recipient, _amount);
return true;
}
function allowance(address _owner, address _spender) public view returns (uint256) {
return allowances[_owner][_spender];
}
function approve(address _spender, uint256 _amount)
public
returns (bool)
{
_approve(msg.sender, _spender, _amount);
return true;
}
function transferFrom(address _sender, address _recipient, uint256 _amount)
public
notOnBlackList(msg.sender)
notOnBlackList(_sender)
returns (bool)
{
uint256 currentAllowance = allowances[_sender][msg.sender];
require(currentAllowance > 0, "ZERO_ALLOWANCE");
require(currentAllowance >= _amount, "TRANSFER_AMOUNT_EXCEEDS_ALLOWANCE");
_transfer(_sender, _recipient, _amount);
_approve(_sender, msg.sender, currentAllowance - _amount);
return true;
}
function increaseAllowance(address _spender, uint256 _addedValue) public returns (bool) {
_approve(msg.sender, _spender, allowances[msg.sender][_spender] + _addedValue);
return true;
}
function decreaseAllowance(address _spender, uint256 _subtractedValue) public returns (bool) {
uint256 currentAllowance = allowances[msg.sender][_spender];
require(currentAllowance >= _subtractedValue, "DECREASED_ALLOWANCE_BELOW_ZERO");
_approve(msg.sender, _spender, currentAllowance - _subtractedValue);
return true;
}
// -------------------------------- base functions --------------------------------
/**
* @return the amount of shares owned by `_account`.
*/
function sharesOf(address _account) public view returns (uint256) {
return shares[_account];
}
function getSharesByUnderlying(uint256 _underlyingAmount) public view returns (uint256) {
uint256 _totalUnderlying = totalUnderlying;
uint256 _totalShares = totalShares;
if (_totalUnderlying == 0 && _totalShares == 0) {
// assume that shares correspond to underlying 1-to-1
return _underlyingAmount;
} else {
return _underlyingAmount * _totalShares / _totalUnderlying;
}
}
function getUnderlyingByShares(uint256 _sharesAmount) public view returns (uint256) {
uint256 _totalUnderlying = totalUnderlying;
uint256 _totalShares = totalShares;
if (_totalUnderlying == 0 && _totalShares == 0) {
return 0;
} else {
return _sharesAmount * _totalUnderlying / _totalShares;
}
}
function transferShares(address _recipient, uint256 _sharesAmount)
public
notOnBlackList(msg.sender)
returns (uint256)
{
_transferShares(msg.sender, _recipient, _sharesAmount);
uint256 tokensAmount = getUnderlyingByShares(_sharesAmount);
emit Transfer(msg.sender, _recipient, tokensAmount);
emit TransferShares(msg.sender, _recipient, _sharesAmount);
return tokensAmount;
}
function _transfer(address _sender, address _recipient, uint256 _amount) internal {
uint256 _sharesToTransfer = getSharesByUnderlying(_amount);
_transferShares(_sender, _recipient, _sharesToTransfer);
emit Transfer(_sender, _recipient, _amount);
emit TransferShares(_sender, _recipient, _sharesToTransfer);
}
function _approve(address _owner, address _spender, uint256 _amount) internal {
require(_owner != address(0), "APPROVE_FROM_ZERO_ADDRESS");
require(_spender != address(0), "APPROVE_TO_ZERO_ADDRESS");
allowances[_owner][_spender] = _amount;
emit Approval(_owner, _spender, _amount);
}
function _transferShares(address _sender, address _recipient, uint256 _sharesAmount) internal {
require(_sender != address(0), "TRANSFER_FROM_THE_ZERO_ADDRESS");
require(_recipient != address(0), "TRANSFER_TO_THE_ZERO_ADDRESS");
uint256 currentSenderShares = shares[_sender];
require(_sharesAmount <= currentSenderShares, "TRANSFER_AMOUNT_EXCEEDS_BALANCE");
shares[_sender] = currentSenderShares - _sharesAmount;
shares[_recipient] += _sharesAmount;
}
// -------------------------------- feature functions --------------------------------
function isMinter(address _address) public view returns (bool) {
return minters[_address];
}
function isBurner(address _address) public view returns (bool) {
return burners[_address];
}
function mint(
address _owner,
uint256 _amountOfStUSDT
)
external
onlyMinter
notOnBlackList(_owner)
returns (uint256)
{
require(!mintPaused, "MINT_IS_PAUSED");
uint256 amountOfShares = getSharesByUnderlying(_amountOfStUSDT);
require(amountOfShares > 0, "ZERO_SHARE_TO_MINT");
uint256 remainingTotalUnderlying = totalUnderlying + _amountOfStUSDT;
require(remainingTotalUnderlying <= maxTotalUnderlying, "EXCEED_MAX_TOTAL_UNDERLYING");
totalUnderlying = remainingTotalUnderlying;
uint256 remainingTotalShares = totalShares + amountOfShares;
totalShares = remainingTotalShares;
uint256 userShares = shares[_owner];
userShares += amountOfShares;
shares[_owner] = userShares;
emit Mint(msg.sender, _owner, amountOfShares, _amountOfStUSDT,
userShares, remainingTotalShares, remainingTotalUnderlying);
emit Transfer(address(0), _owner, _amountOfStUSDT);
emit TransferShares(address(0), _owner, amountOfShares);
return amountOfShares;
}
function burnShares(
address _owner,
uint256 _amountOfShares
)
external
onlyBurner
returns (uint256)
{
require(_amountOfShares > 0, "ZERO_SHARE_TO_BURN");
require(_amountOfShares <= shares[_owner], "NO_ENOUGH_BALANCE");
uint256 amountOfStUSDT = getUnderlyingByShares(_amountOfShares);
uint256 currentAllowance = allowances[_owner][msg.sender];
require(currentAllowance >= amountOfStUSDT, "AMOUNT_EXCEEDS_ALLOWANCE");
uint256 remainingTotalShares = totalShares - _amountOfShares;
uint256 userShares = shares[_owner] - _amountOfShares;
uint256 remainingTotalUnderlying = totalUnderlying - amountOfStUSDT;
totalShares = remainingTotalShares;
shares[_owner] = userShares;
totalUnderlying = remainingTotalUnderlying;
_approve(_owner, msg.sender, currentAllowance - amountOfStUSDT);
emit SharesBurnt(msg.sender, _owner, _amountOfShares, amountOfStUSDT,
userShares, remainingTotalShares, remainingTotalUnderlying);
emit Transfer(_owner, address(0), amountOfStUSDT);
emit TransferShares(_owner, address(0), _amountOfShares);
return amountOfStUSDT;
}
function increaseBase(uint256 _increaseAmount) external onlyRebaseAdmin {
require(block.timestamp - lastRebaseTime >= rebaseIntervalTime, "REBASE_TOO_OFTEN");
uint256 _totalUnderlying = totalUnderlying;
require(_totalUnderlying > 0 && _totalUnderlying * increaseRateLimit / SCALE >= _increaseAmount,
"REBASE_AMOUNT_EXCEED_LIMIT");
uint256 oldTotalUnderlying = _totalUnderlying;
_totalUnderlying += _increaseAmount;
totalUnderlying = _totalUnderlying;
lastRebaseTime = block.timestamp;
emit IncreaseBase(oldTotalUnderlying, _totalUnderlying, totalShares);
}
function decreaseBase(uint256 _decreaseAmount) external onlyRebaseAdmin {
require(block.timestamp - lastRebaseTime >= rebaseIntervalTime, "REBASE_TOO_OFTEN");
uint256 _totalUnderlying = totalUnderlying;
require(_totalUnderlying > 0 && _totalUnderlying * decreaseRateLimit / SCALE >= _decreaseAmount,
"REBASE_AMOUNT_EXCEED_LIMIT");
uint256 oldTotalUnderlying = _totalUnderlying;
_totalUnderlying -= _decreaseAmount;
totalUnderlying = _totalUnderlying;
lastRebaseTime = block.timestamp;
emit DecreaseBase(oldTotalUnderlying, _totalUnderlying, totalShares);
}
function setMintPaused(bool _newState) external onlyMintPausedAdmin {
require(_newState != mintPaused, "MINT_STATE_NOT_CHANGE");
mintPaused = _newState;
emit MintStateUpdated(_newState);
}
function setRebaseAdmin(address _newRebaseAdmin) external onlyAdmin {
address oldRebaseAdmin = rebaseAdmin;
rebaseAdmin = _newRebaseAdmin;
emit RebaseAdminUpdated(oldRebaseAdmin, _newRebaseAdmin);
}
function setRebaseIntervalTime(uint256 _newTimeLimit) external onlyAdmin {
uint256 oldTimeLimit = rebaseIntervalTime;
rebaseIntervalTime = _newTimeLimit;
emit RebaseIntervalTimeUpdated(oldTimeLimit, _newTimeLimit);
}
function setIncreaseRateLimit(uint256 _newRateLimit) external onlyAdmin {
require(_newRateLimit <= SCALE, "INVALID_RATE_LIMIT");
uint256 oldRateLimit = increaseRateLimit;
increaseRateLimit = _newRateLimit;
emit IncreaseRateLimitUpdated(oldRateLimit, _newRateLimit);
}
function setDecreaseRateLimit(uint256 _newRateLimit) external onlyAdmin {
require(_newRateLimit <= SCALE, "INVALID_RATE_LIMIT");
uint256 oldRateLimit = decreaseRateLimit;
decreaseRateLimit = _newRateLimit;
emit DecreaseRateLimitUpdated(oldRateLimit, _newRateLimit);
}
function setBlackListManager(address _newBlackListManager) external onlyAdmin {
address oldAddr = address(blackListManager);
blackListManager = IBlackListManager(_newBlackListManager);
emit BlackListManagerUpdated(oldAddr, _newBlackListManager);
}
function setMintPausedAdmin(address _newMintPausedAdmin) external onlyAdmin {
address oldMintPausedAdmin = mintPausedAdmin;
mintPausedAdmin = _newMintPausedAdmin;
emit MintPausedAdminUpdated(oldMintPausedAdmin, _newMintPausedAdmin);
}
function addMinters(address[] calldata _mintersToAdd) external onlyAdmin {
for (uint256 i = 0; i < _mintersToAdd.length; ++i) {
address minter = _mintersToAdd[i];
minters[minter] = true;
}
emit MintersAdded(_mintersToAdd);
}
function removeMinters(address[] calldata _mintersToRemove) external onlyAdmin {
for (uint256 i = 0; i < _mintersToRemove.length; ++i) {
address minter = _mintersToRemove[i];
minters[minter] = false;
}
emit MintersRemoved(_mintersToRemove);
}
function setMaxTotalUnderlying(uint256 _maxTotalUnderlying) external onlyAdmin {
uint256 oldMaxTotalUnderlying = maxTotalUnderlying;
maxTotalUnderlying = _maxTotalUnderlying;
emit MaxTotalUnderlyingUpdated(oldMaxTotalUnderlying, _maxTotalUnderlying);
}
function addBurners(address[] calldata _burnersToAdd) external onlyAdmin {
for (uint256 i = 0; i < _burnersToAdd.length; ++i) {
address burner = _burnersToAdd[i];
burners[burner] = true;
}
emit BurnersAdded(_burnersToAdd);
}
function removeBurners(address[] calldata _burnersToRemove) external onlyAdmin {
for (uint256 i = 0; i < _burnersToRemove.length; ++i) {
address burner = _burnersToRemove[i];
burners[burner] = false;
}
emit BurnersRemoved(_burnersToRemove);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAddr","type":"address"},{"indexed":false,"internalType":"address","name":"newAddr","type":"address"}],"name":"BlackListManagerUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"burnersAdded","type":"address[]"}],"name":"BurnersAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"burnersRemoved","type":"address[]"}],"name":"BurnersRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldTotalUnderlying","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalUnderlying","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalShares","type":"uint256"}],"name":"DecreaseBase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldRateLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newRateLimit","type":"uint256"}],"name":"DecreaseRateLimitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldTotalUnderlying","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTotalUnderlying","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalShares","type":"uint256"}],"name":"IncreaseBase","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldRateLimit","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newRateLimit","type":"uint256"}],"name":"IncreaseRateLimitUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldMaxTotal","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newMaxTotal","type":"uint256"}],"name":"MaxTotalUnderlyingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountOfShares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOfStUSDT","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"userRemainingShares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalShares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalUnderlying","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldMintPausedAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newMintPausedAdmin","type":"address"}],"name":"MintPausedAdminUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"state","type":"bool"}],"name":"MintStateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"mintersAdded","type":"address[]"}],"name":"MintersAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"mintersRemoved","type":"address[]"}],"name":"MintersRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRebaseAdmin","type":"address"},{"indexed":false,"internalType":"address","name":"newRebaseAdmin","type":"address"}],"name":"RebaseAdminUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldIntervalTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newIntervalTime","type":"uint256"}],"name":"RebaseIntervalTimeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burner","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountOfShares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountOfStUSDT","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"userRemainingShares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalShares","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalUnderlying","type":"uint256"}],"name":"SharesBurnt","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"sharesValue","type":"uint256"}],"name":"TransferShares","type":"event"},{"inputs":[],"name":"SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_burnersToAdd","type":"address[]"}],"name":"addBurners","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_mintersToAdd","type":"address[]"}],"name":"addMinters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blackListManager","outputs":[{"internalType":"contract IBlackListManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_amountOfShares","type":"uint256"}],"name":"burnShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"burners","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_decreaseAmount","type":"uint256"}],"name":"decreaseBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decreaseRateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_underlyingAmount","type":"uint256"}],"name":"getSharesByUnderlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_sharesAmount","type":"uint256"}],"name":"getUnderlyingByShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_increaseAmount","type":"uint256"}],"name":"increaseBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"increaseRateLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isBurner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRebaseTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTotalUnderlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_amountOfStUSDT","type":"uint256"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintPaused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintPausedAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseIntervalTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_burnersToRemove","type":"address[]"}],"name":"removeBurners","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_mintersToRemove","type":"address[]"}],"name":"removeMinters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newBlackListManager","type":"address"}],"name":"setBlackListManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newRateLimit","type":"uint256"}],"name":"setDecreaseRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newRateLimit","type":"uint256"}],"name":"setIncreaseRateLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxTotalUnderlying","type":"uint256"}],"name":"setMaxTotalUnderlying","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_newState","type":"bool"}],"name":"setMintPaused","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newMintPausedAdmin","type":"address"}],"name":"setMintPausedAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newRebaseAdmin","type":"address"}],"name":"setRebaseAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newTimeLimit","type":"uint256"}],"name":"setRebaseIntervalTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_account","type":"address"}],"name":"sharesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalUnderlying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_sharesAmount","type":"uint256"}],"name":"transferShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
608060405234801561001057600080fd5b50612409806100206000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c806369b73ddd1161019d578063bfcd2542116100e9578063eced5526116100a2578063f46eccc41161007c578063f46eccc4146106f2578063f5eb42dc14610715578063f851a4401461073e578063fc565bae1461075157600080fd5b8063eced5526146106bd578063ee7a7c04146106cc578063f0e328fb146106df57600080fd5b8063bfcd254214610639578063c70920bc1461064c578063d6af877914610655578063dd62ed3e1461065e578063e47d419b14610697578063e7bcca0b146106aa57600080fd5b806395d89b4111610156578063a9059cbb11610130578063a9059cbb146105d4578063aa271e1a146105e7578063ab6a5ebd14610613578063b69355011461062657600080fd5b806395d89b411461058c5780639a88f0c3146105ae578063a457c2d7146105c157600080fd5b806369b73ddd1461051957806370a082311461052c57806371e2a6571461053f578063761487e0146105525780637e4831d3146105655780638fcb4e5b1461057957600080fd5b8063396f7b231161025c57806345241ed6116102155780635a648b5f116101ef5780635a648b5f146104cd5780635c60da1b146104e05780635fc1964f146104f35780636945bcf91461050657600080fd5b806345241ed6146104945780634819a47d146104a75780634c5ad3ff146104ba57600080fd5b8063396f7b231461041d5780633a98ef39146104305780633ab84dd9146104395780633ad584bb1461044c57806340c10f19146104555780634334614a1461046857600080fd5b80631924063e116102ae5780631924063e146103c357806323b872dd146103cc57806326782247146103df578063313ce567146103f25780633442505c14610401578063395093511461040a57600080fd5b8063037f9893146102f657806303d41e0e1461030b57806306fdde0314610343578063095ea7b31461037357806311d915df1461038657806318160ddd146103b1575b600080fd5b610309610304366004612052565b61075a565b005b61032e610319366004612087565b60096020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b60408051808201909152600b81526a14dd185ad959081554d11560aa1b60208201525b60405161033a91906120a9565b61032e6103813660046120f7565b6108dd565b601154610399906001600160a01b031681565b6040516001600160a01b03909116815260200161033a565b6007545b60405190815260200161033a565b6103b5600d5481565b61032e6103da366004612121565b6108f4565b600154610399906001600160a01b031681565b6040516012815260200161033a565b6103b5600a5481565b61032e6104183660046120f7565b610b1b565b600354610399906001600160a01b031681565b6103b560065481565b61030961044736600461215d565b610b52565b6103b5600e5481565b6103b56104633660046120f7565b610c21565b61032e610476366004612087565b6001600160a01b031660009081526009602052604090205460ff1690565b6103096104a2366004612087565b610f28565b6103096104b5366004612052565b610fac565b6103096104c8366004612087565b611061565b6103096104db366004612052565b6110e5565b600254610399906001600160a01b031681565b61030961050136600461215d565b61114d565b610309610514366004612052565b61120d565b601054610399906001600160a01b031681565b6103b561053a366004612087565b611275565b61030961054d36600461215d565b611297565b6103b5610560366004612052565b61135a565b60105461032e90600160a01b900460ff1681565b6103b56105873660046120f7565b61139a565b6040805180820190915260068152651cdd1554d11560d21b6020820152610366565b6103096105bc366004612052565b6114c4565b61032e6105cf3660046120f7565b611639565b61032e6105e23660046120f7565b6116c6565b61032e6105f5366004612087565b6001600160a01b031660009081526008602052604090205460ff1690565b600f54610399906001600160a01b031681565b6103096106343660046121e3565b611772565b6103b5610647366004612052565b611873565b6103b560075481565b6103b5600c5481565b6103b561066c366004612200565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6103096106a536600461215d565b6118a3565b6103096106b8366004612087565b611963565b6103b5670de0b6b3a764000081565b6103b56106da3660046120f7565b6119e7565b6103096106ed366004612052565b611c9c565b61032e610700366004612087565b60086020526000908152604090205460ff1681565b6103b5610723366004612087565b6001600160a01b031660009081526004602052604090205490565b600054610399906001600160a01b031681565b6103b5600b5481565b600f546001600160a01b031633146107ac5760405162461bcd60e51b815260206004820152601060248201526f2727aa2fa922a120a9a2afa0a226a4a760811b60448201526064015b60405180910390fd5b600e54600d546107bc9042612249565b10156107fd5760405162461bcd60e51b815260206004820152601060248201526f2922a120a9a2afaa27a7afa7a32a22a760811b60448201526064016107a3565b600754801580159061082f575081670de0b6b3a7640000600c5483610822919061225c565b61082c9190612273565b10155b61087b5760405162461bcd60e51b815260206004820152601a60248201527f5245424153455f414d4f554e545f4558434545445f4c494d495400000000000060448201526064016107a3565b806108868382612249565b600781905542600d556006546040805184815260208101849052908101919091529092507fae01326ed02c882eb8ae3a5636fe5cff0b80859346aaff4bda1b3ef23224d4f3906060015b60405180910390a1505050565b60006108ea338484611d51565b5060015b92915050565b60115460009033906001600160a01b03161561099557601154604051630723eb0360e51b81526001600160a01b0383811660048301529091169063e47d606090602401602060405180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190612295565b156109955760405162461bcd60e51b81526004016107a3906122b2565b60115485906001600160a01b031615610a3357601154604051630723eb0360e51b81526001600160a01b0383811660048301529091169063e47d606090602401602060405180830381865afa1580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190612295565b15610a335760405162461bcd60e51b81526004016107a3906122b2565b6001600160a01b038616600090815260056020908152604080832033845290915290205480610a955760405162461bcd60e51b815260206004820152600e60248201526d5a45524f5f414c4c4f57414e434560901b60448201526064016107a3565b84811015610aef5760405162461bcd60e51b815260206004820152602160248201527f5452414e534645525f414d4f554e545f455843454544535f414c4c4f57414e436044820152604560f81b60648201526084016107a3565b610afa878787611e5e565b610b0e8733610b098885612249565b611d51565b5060019695505050505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916108ea918590610b099086906122e2565b6000546001600160a01b03163314610b7c5760405162461bcd60e51b81526004016107a3906122f5565b60005b81811015610be3576000838383818110610b9b57610b9b612318565b9050602002016020810190610bb09190612087565b6001600160a01b03166000908152600960205260409020805460ff1916600117905550610bdc8161232e565b9050610b7f565b507fb4f7ea9996532ff328ba346513f3ef4f46615e17f7459249c6fe292026fe13f98282604051610c15929190612347565b60405180910390a15050565b3360009081526008602052604081205460ff16610c6d5760405162461bcd60e51b815260206004820152600a6024820152692727aa2fa6a4a72a22a960b11b60448201526064016107a3565b60115483906001600160a01b031615610d0b57601154604051630723eb0360e51b81526001600160a01b0383811660048301529091169063e47d606090602401602060405180830381865afa158015610cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cee9190612295565b15610d0b5760405162461bcd60e51b81526004016107a3906122b2565b601054600160a01b900460ff1615610d565760405162461bcd60e51b815260206004820152600e60248201526d1352539517d254d7d4105554d15160921b60448201526064016107a3565b6000610d618461135a565b905060008111610da85760405162461bcd60e51b815260206004820152601260248201527116915493d7d4d210549157d513d7d352539560721b60448201526064016107a3565b600084600754610db891906122e2565b9050600a54811115610e0c5760405162461bcd60e51b815260206004820152601b60248201527f4558434545445f4d41585f544f54414c5f554e4445524c59494e47000000000060448201526064016107a3565b6007819055600654600090610e229084906122e2565b60068190556001600160a01b038816600090815260046020526040902054909150610e4d84826122e2565b6001600160a01b03891660008181526004602090815260409182902084905581518881529081018b905290810183905260608101859052608081018690529192509033907f52c6b7a228763dc832bef1e2dee48707b24b8f1400a6335b3af6d5def4f5bb219060a00160405180910390a36040518781526001600160a01b038916906000906000805160206123b48339815191529060200160405180910390a36040518481526001600160a01b038916906000906000805160206123948339815191529060200160405180910390a350919695505050505050565b6000546001600160a01b03163314610f525760405162461bcd60e51b81526004016107a3906122f5565b601080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f2bf551894b9d2095370d74253051ab6890b4b0c088ae32e15d6490aad22be9de9101610c15565b6000546001600160a01b03163314610fd65760405162461bcd60e51b81526004016107a3906122f5565b670de0b6b3a76400008111156110235760405162461bcd60e51b81526020600482015260126024820152711253959053125117d490551157d31253525560721b60448201526064016107a3565b600c80549082905560408051828152602081018490527f93e6f1fb0e4d3e509e2f58d2dd5be13c59404ae8d5337a3ca59d47c4351fcc719101610c15565b6000546001600160a01b0316331461108b5760405162461bcd60e51b81526004016107a3906122f5565b601180546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f6bce8a218c7ad86ff1f9bba34a57341ab28d440556967b6d118c5b0b405b44809101610c15565b6000546001600160a01b0316331461110f5760405162461bcd60e51b81526004016107a3906122f5565b600e80549082905560408051828152602081018490527f5c4450e9724ac6244a723b0a498732182d3aa431fd8cbbf837024ca4e6af331c9101610c15565b6000546001600160a01b031633146111775760405162461bcd60e51b81526004016107a3906122f5565b60005b818110156111db57600083838381811061119657611196612318565b90506020020160208101906111ab9190612087565b6001600160a01b03166000908152600860205260409020805460ff19169055506111d48161232e565b905061117a565b507fa4bd966469c62332cc5041d465060dbc3e847c7b125422e59ddb3e61a2005ae78282604051610c15929190612347565b6000546001600160a01b031633146112375760405162461bcd60e51b81526004016107a3906122f5565b600a80549082905560408051828152602081018490527fa911dbf1d9ada94335c1958e6b8b33f3943b9f7230468ae10abf3bbbc100c3fe9101610c15565b6001600160a01b0381166000908152600460205260408120546108ee90611873565b6000546001600160a01b031633146112c15760405162461bcd60e51b81526004016107a3906122f5565b60005b818110156113285760008383838181106112e0576112e0612318565b90506020020160208101906112f59190612087565b6001600160a01b03166000908152600860205260409020805460ff19166001179055506113218161232e565b90506112c4565b507f6050e1d24499bf62f6297dc608356dc088c4e4b4fd753a8606207fdf078578e38282604051610c15929190612347565b6007546006546000919081158015611370575080155b1561137d57509192915050565b81611388828661225c565b6113929190612273565b949350505050565b60115460009033906001600160a01b03161561143b57601154604051630723eb0360e51b81526001600160a01b0383811660048301529091169063e47d606090602401602060405180830381865afa1580156113fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141e9190612295565b1561143b5760405162461bcd60e51b81526004016107a3906122b2565b611446338585611ef2565b600061145184611873565b9050846001600160a01b0316336001600160a01b03166000805160206123b48339815191528360405161148691815260200190565b60405180910390a36040518481526001600160a01b0386169033906000805160206123948339815191529060200160405180910390a3949350505050565b600f546001600160a01b031633146115115760405162461bcd60e51b815260206004820152601060248201526f2727aa2fa922a120a9a2afa0a226a4a760811b60448201526064016107a3565b600e54600d546115219042612249565b10156115625760405162461bcd60e51b815260206004820152601060248201526f2922a120a9a2afaa27a7afa7a32a22a760811b60448201526064016107a3565b6007548015801590611594575081670de0b6b3a7640000600b5483611587919061225c565b6115919190612273565b10155b6115e05760405162461bcd60e51b815260206004820152601a60248201527f5245424153455f414d4f554e545f4558434545445f4c494d495400000000000060448201526064016107a3565b806115eb83826122e2565b600781905542600d556006546040805184815260208101849052908101919091529092507f4f0772bd5734b428b61e38cb93f2f18b78a55ef8e784b543b3044146e66e20c5906060016108d0565b3360009081526005602090815260408083206001600160a01b0386168452909152812054828110156116ad5760405162461bcd60e51b815260206004820152601e60248201527f4445435245415345445f414c4c4f57414e43455f42454c4f575f5a45524f000060448201526064016107a3565b6116bc3385610b098685612249565b5060019392505050565b60115460009033906001600160a01b03161561176757601154604051630723eb0360e51b81526001600160a01b0383811660048301529091169063e47d606090602401602060405180830381865afa158015611726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174a9190612295565b156117675760405162461bcd60e51b81526004016107a3906122b2565b6116bc338585611e5e565b6010546001600160a01b031633146117c45760405162461bcd60e51b81526020600482015260156024820152742727aa2fa6a4a72a2fa820aaa9a2a22fa0a226a4a760591b60448201526064016107a3565b601054600160a01b900460ff1615158115150361181b5760405162461bcd60e51b81526020600482015260156024820152744d494e545f53544154455f4e4f545f4348414e474560581b60448201526064016107a3565b60108054821515600160a01b0260ff60a01b199091161790556040517f7694b999da016b638cdac3df44614df43c9e85b35db88c4f3a32a0076d83ad5c9061186890831515815260200190565b60405180910390a150565b6007546006546000919081158015611889575080155b15611898575060009392505050565b80611388838661225c565b6000546001600160a01b031633146118cd5760405162461bcd60e51b81526004016107a3906122f5565b60005b818110156119315760008383838181106118ec576118ec612318565b90506020020160208101906119019190612087565b6001600160a01b03166000908152600960205260409020805460ff191690555061192a8161232e565b90506118d0565b507f1916bf3c94489a4013dec3649ac5766a4ca1b0991e22deb9a780eb450935abb28282604051610c15929190612347565b6000546001600160a01b0316331461198d5760405162461bcd60e51b81526004016107a3906122f5565b600f80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f46ded8e8370e1d96b492793f9cd6f79bc1b4b8a79eacc308becaf4f664d86b869101610c15565b3360009081526009602052604081205460ff16611a335760405162461bcd60e51b815260206004820152600a6024820152692727aa2fa12aa92722a960b11b60448201526064016107a3565b60008211611a785760405162461bcd60e51b81526020600482015260126024820152712d22a927afa9a420a922afaa27afa12aa92760711b60448201526064016107a3565b6001600160a01b038316600090815260046020526040902054821115611ad45760405162461bcd60e51b81526020600482015260116024820152704e4f5f454e4f5547485f42414c414e434560781b60448201526064016107a3565b6000611adf83611873565b6001600160a01b038516600090815260056020908152604080832033845290915290205490915081811015611b565760405162461bcd60e51b815260206004820152601860248201527f414d4f554e545f455843454544535f414c4c4f57414e4345000000000000000060448201526064016107a3565b600084600654611b669190612249565b6001600160a01b03871660009081526004602052604081205491925090611b8e908790612249565b9050600084600754611ba09190612249565b60068490556001600160a01b038916600090815260046020526040902083905560078190559050611bd68833610b098888612249565b604080518881526020810187905290810183905260608101849052608081018290526001600160a01b0389169033907f484438e9334a1a3da75bd5e6ac106121cab37e25a0fe4b39abd6128816ceda489060a00160405180910390a36040518581526000906001600160a01b038a16906000805160206123b48339815191529060200160405180910390a36040518781526000906001600160a01b038a16906000805160206123948339815191529060200160405180910390a350929695505050505050565b6000546001600160a01b03163314611cc65760405162461bcd60e51b81526004016107a3906122f5565b670de0b6b3a7640000811115611d135760405162461bcd60e51b81526020600482015260126024820152711253959053125117d490551157d31253525560721b60448201526064016107a3565b600b80549082905560408051828152602081018490527f71bc0b7a6762d5786b050260ec562afc4b7ac652d702245bfaa1d38ea24f60f39101610c15565b6001600160a01b038316611da75760405162461bcd60e51b815260206004820152601960248201527f415050524f56455f46524f4d5f5a45524f5f414444524553530000000000000060448201526064016107a3565b6001600160a01b038216611dfd5760405162461bcd60e51b815260206004820152601760248201527f415050524f56455f544f5f5a45524f5f4144445245535300000000000000000060448201526064016107a3565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000611e698261135a565b9050611e76848483611ef2565b826001600160a01b0316846001600160a01b03166000805160206123b483398151915284604051611ea991815260200190565b60405180910390a3826001600160a01b0316846001600160a01b031660008051602061239483398151915283604051611ee491815260200190565b60405180910390a350505050565b6001600160a01b038316611f485760405162461bcd60e51b815260206004820152601e60248201527f5452414e534645525f46524f4d5f5448455f5a45524f5f41444452455353000060448201526064016107a3565b6001600160a01b038216611f9e5760405162461bcd60e51b815260206004820152601c60248201527f5452414e534645525f544f5f5448455f5a45524f5f414444524553530000000060448201526064016107a3565b6001600160a01b038316600090815260046020526040902054808211156120075760405162461bcd60e51b815260206004820152601f60248201527f5452414e534645525f414d4f554e545f455843454544535f42414c414e43450060448201526064016107a3565b6120118282612249565b6001600160a01b0380861660009081526004602052604080822093909355908516815290812080548492906120479084906122e2565b909155505050505050565b60006020828403121561206457600080fd5b5035919050565b80356001600160a01b038116811461208257600080fd5b919050565b60006020828403121561209957600080fd5b6120a28261206b565b9392505050565b600060208083528351808285015260005b818110156120d6578581018301518582016040015282016120ba565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561210a57600080fd5b6121138361206b565b946020939093013593505050565b60008060006060848603121561213657600080fd5b61213f8461206b565b925061214d6020850161206b565b9150604084013590509250925092565b6000806020838503121561217057600080fd5b823567ffffffffffffffff8082111561218857600080fd5b818501915085601f83011261219c57600080fd5b8135818111156121ab57600080fd5b8660208260051b85010111156121c057600080fd5b60209290920196919550909350505050565b80151581146121e057600080fd5b50565b6000602082840312156121f557600080fd5b81356120a2816121d2565b6000806040838503121561221357600080fd5b61221c8361206b565b915061222a6020840161206b565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156108ee576108ee612233565b80820281158282048414176108ee576108ee612233565b60008261229057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122a757600080fd5b81516120a2816121d2565b602080825260169082015275105111149154d4d7d254d7d0931050d2d31254d5115160521b604082015260600190565b808201808211156108ee576108ee612233565b6020808252600990820152682727aa2fa0a226a4a760b91b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006001820161234057612340612233565b5060010190565b60208082528181018390526000908460408401835b86811015612388576001600160a01b036123758461206b565b168252918301919083019060010161235c565b50969550505050505056fe9d9c909296d9c674451c0c24f02cb64981eb3b727f99865939192f880a755dcbddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202637d82250134d34e5856b56cb3dd2e8b463de3a4b7533217d5728a2a6486a1b64736f6c63430008120033
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106102f15760003560e01c806369b73ddd1161019d578063bfcd2542116100e9578063eced5526116100a2578063f46eccc41161007c578063f46eccc4146106f2578063f5eb42dc14610715578063f851a4401461073e578063fc565bae1461075157600080fd5b8063eced5526146106bd578063ee7a7c04146106cc578063f0e328fb146106df57600080fd5b8063bfcd254214610639578063c70920bc1461064c578063d6af877914610655578063dd62ed3e1461065e578063e47d419b14610697578063e7bcca0b146106aa57600080fd5b806395d89b4111610156578063a9059cbb11610130578063a9059cbb146105d4578063aa271e1a146105e7578063ab6a5ebd14610613578063b69355011461062657600080fd5b806395d89b411461058c5780639a88f0c3146105ae578063a457c2d7146105c157600080fd5b806369b73ddd1461051957806370a082311461052c57806371e2a6571461053f578063761487e0146105525780637e4831d3146105655780638fcb4e5b1461057957600080fd5b8063396f7b231161025c57806345241ed6116102155780635a648b5f116101ef5780635a648b5f146104cd5780635c60da1b146104e05780635fc1964f146104f35780636945bcf91461050657600080fd5b806345241ed6146104945780634819a47d146104a75780634c5ad3ff146104ba57600080fd5b8063396f7b231461041d5780633a98ef39146104305780633ab84dd9146104395780633ad584bb1461044c57806340c10f19146104555780634334614a1461046857600080fd5b80631924063e116102ae5780631924063e146103c357806323b872dd146103cc57806326782247146103df578063313ce567146103f25780633442505c14610401578063395093511461040a57600080fd5b8063037f9893146102f657806303d41e0e1461030b57806306fdde0314610343578063095ea7b31461037357806311d915df1461038657806318160ddd146103b1575b600080fd5b610309610304366004612052565b61075a565b005b61032e610319366004612087565b60096020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b60408051808201909152600b81526a14dd185ad959081554d11560aa1b60208201525b60405161033a91906120a9565b61032e6103813660046120f7565b6108dd565b601154610399906001600160a01b031681565b6040516001600160a01b03909116815260200161033a565b6007545b60405190815260200161033a565b6103b5600d5481565b61032e6103da366004612121565b6108f4565b600154610399906001600160a01b031681565b6040516012815260200161033a565b6103b5600a5481565b61032e6104183660046120f7565b610b1b565b600354610399906001600160a01b031681565b6103b560065481565b61030961044736600461215d565b610b52565b6103b5600e5481565b6103b56104633660046120f7565b610c21565b61032e610476366004612087565b6001600160a01b031660009081526009602052604090205460ff1690565b6103096104a2366004612087565b610f28565b6103096104b5366004612052565b610fac565b6103096104c8366004612087565b611061565b6103096104db366004612052565b6110e5565b600254610399906001600160a01b031681565b61030961050136600461215d565b61114d565b610309610514366004612052565b61120d565b601054610399906001600160a01b031681565b6103b561053a366004612087565b611275565b61030961054d36600461215d565b611297565b6103b5610560366004612052565b61135a565b60105461032e90600160a01b900460ff1681565b6103b56105873660046120f7565b61139a565b6040805180820190915260068152651cdd1554d11560d21b6020820152610366565b6103096105bc366004612052565b6114c4565b61032e6105cf3660046120f7565b611639565b61032e6105e23660046120f7565b6116c6565b61032e6105f5366004612087565b6001600160a01b031660009081526008602052604090205460ff1690565b600f54610399906001600160a01b031681565b6103096106343660046121e3565b611772565b6103b5610647366004612052565b611873565b6103b560075481565b6103b5600c5481565b6103b561066c366004612200565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b6103096106a536600461215d565b6118a3565b6103096106b8366004612087565b611963565b6103b5670de0b6b3a764000081565b6103b56106da3660046120f7565b6119e7565b6103096106ed366004612052565b611c9c565b61032e610700366004612087565b60086020526000908152604090205460ff1681565b6103b5610723366004612087565b6001600160a01b031660009081526004602052604090205490565b600054610399906001600160a01b031681565b6103b5600b5481565b600f546001600160a01b031633146107ac5760405162461bcd60e51b815260206004820152601060248201526f2727aa2fa922a120a9a2afa0a226a4a760811b60448201526064015b60405180910390fd5b600e54600d546107bc9042612249565b10156107fd5760405162461bcd60e51b815260206004820152601060248201526f2922a120a9a2afaa27a7afa7a32a22a760811b60448201526064016107a3565b600754801580159061082f575081670de0b6b3a7640000600c5483610822919061225c565b61082c9190612273565b10155b61087b5760405162461bcd60e51b815260206004820152601a60248201527f5245424153455f414d4f554e545f4558434545445f4c494d495400000000000060448201526064016107a3565b806108868382612249565b600781905542600d556006546040805184815260208101849052908101919091529092507fae01326ed02c882eb8ae3a5636fe5cff0b80859346aaff4bda1b3ef23224d4f3906060015b60405180910390a1505050565b60006108ea338484611d51565b5060015b92915050565b60115460009033906001600160a01b03161561099557601154604051630723eb0360e51b81526001600160a01b0383811660048301529091169063e47d606090602401602060405180830381865afa158015610954573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109789190612295565b156109955760405162461bcd60e51b81526004016107a3906122b2565b60115485906001600160a01b031615610a3357601154604051630723eb0360e51b81526001600160a01b0383811660048301529091169063e47d606090602401602060405180830381865afa1580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190612295565b15610a335760405162461bcd60e51b81526004016107a3906122b2565b6001600160a01b038616600090815260056020908152604080832033845290915290205480610a955760405162461bcd60e51b815260206004820152600e60248201526d5a45524f5f414c4c4f57414e434560901b60448201526064016107a3565b84811015610aef5760405162461bcd60e51b815260206004820152602160248201527f5452414e534645525f414d4f554e545f455843454544535f414c4c4f57414e436044820152604560f81b60648201526084016107a3565b610afa878787611e5e565b610b0e8733610b098885612249565b611d51565b5060019695505050505050565b3360008181526005602090815260408083206001600160a01b038716845290915281205490916108ea918590610b099086906122e2565b6000546001600160a01b03163314610b7c5760405162461bcd60e51b81526004016107a3906122f5565b60005b81811015610be3576000838383818110610b9b57610b9b612318565b9050602002016020810190610bb09190612087565b6001600160a01b03166000908152600960205260409020805460ff1916600117905550610bdc8161232e565b9050610b7f565b507fb4f7ea9996532ff328ba346513f3ef4f46615e17f7459249c6fe292026fe13f98282604051610c15929190612347565b60405180910390a15050565b3360009081526008602052604081205460ff16610c6d5760405162461bcd60e51b815260206004820152600a6024820152692727aa2fa6a4a72a22a960b11b60448201526064016107a3565b60115483906001600160a01b031615610d0b57601154604051630723eb0360e51b81526001600160a01b0383811660048301529091169063e47d606090602401602060405180830381865afa158015610cca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cee9190612295565b15610d0b5760405162461bcd60e51b81526004016107a3906122b2565b601054600160a01b900460ff1615610d565760405162461bcd60e51b815260206004820152600e60248201526d1352539517d254d7d4105554d15160921b60448201526064016107a3565b6000610d618461135a565b905060008111610da85760405162461bcd60e51b815260206004820152601260248201527116915493d7d4d210549157d513d7d352539560721b60448201526064016107a3565b600084600754610db891906122e2565b9050600a54811115610e0c5760405162461bcd60e51b815260206004820152601b60248201527f4558434545445f4d41585f544f54414c5f554e4445524c59494e47000000000060448201526064016107a3565b6007819055600654600090610e229084906122e2565b60068190556001600160a01b038816600090815260046020526040902054909150610e4d84826122e2565b6001600160a01b03891660008181526004602090815260409182902084905581518881529081018b905290810183905260608101859052608081018690529192509033907f52c6b7a228763dc832bef1e2dee48707b24b8f1400a6335b3af6d5def4f5bb219060a00160405180910390a36040518781526001600160a01b038916906000906000805160206123b48339815191529060200160405180910390a36040518481526001600160a01b038916906000906000805160206123948339815191529060200160405180910390a350919695505050505050565b6000546001600160a01b03163314610f525760405162461bcd60e51b81526004016107a3906122f5565b601080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f2bf551894b9d2095370d74253051ab6890b4b0c088ae32e15d6490aad22be9de9101610c15565b6000546001600160a01b03163314610fd65760405162461bcd60e51b81526004016107a3906122f5565b670de0b6b3a76400008111156110235760405162461bcd60e51b81526020600482015260126024820152711253959053125117d490551157d31253525560721b60448201526064016107a3565b600c80549082905560408051828152602081018490527f93e6f1fb0e4d3e509e2f58d2dd5be13c59404ae8d5337a3ca59d47c4351fcc719101610c15565b6000546001600160a01b0316331461108b5760405162461bcd60e51b81526004016107a3906122f5565b601180546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f6bce8a218c7ad86ff1f9bba34a57341ab28d440556967b6d118c5b0b405b44809101610c15565b6000546001600160a01b0316331461110f5760405162461bcd60e51b81526004016107a3906122f5565b600e80549082905560408051828152602081018490527f5c4450e9724ac6244a723b0a498732182d3aa431fd8cbbf837024ca4e6af331c9101610c15565b6000546001600160a01b031633146111775760405162461bcd60e51b81526004016107a3906122f5565b60005b818110156111db57600083838381811061119657611196612318565b90506020020160208101906111ab9190612087565b6001600160a01b03166000908152600860205260409020805460ff19169055506111d48161232e565b905061117a565b507fa4bd966469c62332cc5041d465060dbc3e847c7b125422e59ddb3e61a2005ae78282604051610c15929190612347565b6000546001600160a01b031633146112375760405162461bcd60e51b81526004016107a3906122f5565b600a80549082905560408051828152602081018490527fa911dbf1d9ada94335c1958e6b8b33f3943b9f7230468ae10abf3bbbc100c3fe9101610c15565b6001600160a01b0381166000908152600460205260408120546108ee90611873565b6000546001600160a01b031633146112c15760405162461bcd60e51b81526004016107a3906122f5565b60005b818110156113285760008383838181106112e0576112e0612318565b90506020020160208101906112f59190612087565b6001600160a01b03166000908152600860205260409020805460ff19166001179055506113218161232e565b90506112c4565b507f6050e1d24499bf62f6297dc608356dc088c4e4b4fd753a8606207fdf078578e38282604051610c15929190612347565b6007546006546000919081158015611370575080155b1561137d57509192915050565b81611388828661225c565b6113929190612273565b949350505050565b60115460009033906001600160a01b03161561143b57601154604051630723eb0360e51b81526001600160a01b0383811660048301529091169063e47d606090602401602060405180830381865afa1580156113fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141e9190612295565b1561143b5760405162461bcd60e51b81526004016107a3906122b2565b611446338585611ef2565b600061145184611873565b9050846001600160a01b0316336001600160a01b03166000805160206123b48339815191528360405161148691815260200190565b60405180910390a36040518481526001600160a01b0386169033906000805160206123948339815191529060200160405180910390a3949350505050565b600f546001600160a01b031633146115115760405162461bcd60e51b815260206004820152601060248201526f2727aa2fa922a120a9a2afa0a226a4a760811b60448201526064016107a3565b600e54600d546115219042612249565b10156115625760405162461bcd60e51b815260206004820152601060248201526f2922a120a9a2afaa27a7afa7a32a22a760811b60448201526064016107a3565b6007548015801590611594575081670de0b6b3a7640000600b5483611587919061225c565b6115919190612273565b10155b6115e05760405162461bcd60e51b815260206004820152601a60248201527f5245424153455f414d4f554e545f4558434545445f4c494d495400000000000060448201526064016107a3565b806115eb83826122e2565b600781905542600d556006546040805184815260208101849052908101919091529092507f4f0772bd5734b428b61e38cb93f2f18b78a55ef8e784b543b3044146e66e20c5906060016108d0565b3360009081526005602090815260408083206001600160a01b0386168452909152812054828110156116ad5760405162461bcd60e51b815260206004820152601e60248201527f4445435245415345445f414c4c4f57414e43455f42454c4f575f5a45524f000060448201526064016107a3565b6116bc3385610b098685612249565b5060019392505050565b60115460009033906001600160a01b03161561176757601154604051630723eb0360e51b81526001600160a01b0383811660048301529091169063e47d606090602401602060405180830381865afa158015611726573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174a9190612295565b156117675760405162461bcd60e51b81526004016107a3906122b2565b6116bc338585611e5e565b6010546001600160a01b031633146117c45760405162461bcd60e51b81526020600482015260156024820152742727aa2fa6a4a72a2fa820aaa9a2a22fa0a226a4a760591b60448201526064016107a3565b601054600160a01b900460ff1615158115150361181b5760405162461bcd60e51b81526020600482015260156024820152744d494e545f53544154455f4e4f545f4348414e474560581b60448201526064016107a3565b60108054821515600160a01b0260ff60a01b199091161790556040517f7694b999da016b638cdac3df44614df43c9e85b35db88c4f3a32a0076d83ad5c9061186890831515815260200190565b60405180910390a150565b6007546006546000919081158015611889575080155b15611898575060009392505050565b80611388838661225c565b6000546001600160a01b031633146118cd5760405162461bcd60e51b81526004016107a3906122f5565b60005b818110156119315760008383838181106118ec576118ec612318565b90506020020160208101906119019190612087565b6001600160a01b03166000908152600960205260409020805460ff191690555061192a8161232e565b90506118d0565b507f1916bf3c94489a4013dec3649ac5766a4ca1b0991e22deb9a780eb450935abb28282604051610c15929190612347565b6000546001600160a01b0316331461198d5760405162461bcd60e51b81526004016107a3906122f5565b600f80546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f46ded8e8370e1d96b492793f9cd6f79bc1b4b8a79eacc308becaf4f664d86b869101610c15565b3360009081526009602052604081205460ff16611a335760405162461bcd60e51b815260206004820152600a6024820152692727aa2fa12aa92722a960b11b60448201526064016107a3565b60008211611a785760405162461bcd60e51b81526020600482015260126024820152712d22a927afa9a420a922afaa27afa12aa92760711b60448201526064016107a3565b6001600160a01b038316600090815260046020526040902054821115611ad45760405162461bcd60e51b81526020600482015260116024820152704e4f5f454e4f5547485f42414c414e434560781b60448201526064016107a3565b6000611adf83611873565b6001600160a01b038516600090815260056020908152604080832033845290915290205490915081811015611b565760405162461bcd60e51b815260206004820152601860248201527f414d4f554e545f455843454544535f414c4c4f57414e4345000000000000000060448201526064016107a3565b600084600654611b669190612249565b6001600160a01b03871660009081526004602052604081205491925090611b8e908790612249565b9050600084600754611ba09190612249565b60068490556001600160a01b038916600090815260046020526040902083905560078190559050611bd68833610b098888612249565b604080518881526020810187905290810183905260608101849052608081018290526001600160a01b0389169033907f484438e9334a1a3da75bd5e6ac106121cab37e25a0fe4b39abd6128816ceda489060a00160405180910390a36040518581526000906001600160a01b038a16906000805160206123b48339815191529060200160405180910390a36040518781526000906001600160a01b038a16906000805160206123948339815191529060200160405180910390a350929695505050505050565b6000546001600160a01b03163314611cc65760405162461bcd60e51b81526004016107a3906122f5565b670de0b6b3a7640000811115611d135760405162461bcd60e51b81526020600482015260126024820152711253959053125117d490551157d31253525560721b60448201526064016107a3565b600b80549082905560408051828152602081018490527f71bc0b7a6762d5786b050260ec562afc4b7ac652d702245bfaa1d38ea24f60f39101610c15565b6001600160a01b038316611da75760405162461bcd60e51b815260206004820152601960248201527f415050524f56455f46524f4d5f5a45524f5f414444524553530000000000000060448201526064016107a3565b6001600160a01b038216611dfd5760405162461bcd60e51b815260206004820152601760248201527f415050524f56455f544f5f5a45524f5f4144445245535300000000000000000060448201526064016107a3565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000611e698261135a565b9050611e76848483611ef2565b826001600160a01b0316846001600160a01b03166000805160206123b483398151915284604051611ea991815260200190565b60405180910390a3826001600160a01b0316846001600160a01b031660008051602061239483398151915283604051611ee491815260200190565b60405180910390a350505050565b6001600160a01b038316611f485760405162461bcd60e51b815260206004820152601e60248201527f5452414e534645525f46524f4d5f5448455f5a45524f5f41444452455353000060448201526064016107a3565b6001600160a01b038216611f9e5760405162461bcd60e51b815260206004820152601c60248201527f5452414e534645525f544f5f5448455f5a45524f5f414444524553530000000060448201526064016107a3565b6001600160a01b038316600090815260046020526040902054808211156120075760405162461bcd60e51b815260206004820152601f60248201527f5452414e534645525f414d4f554e545f455843454544535f42414c414e43450060448201526064016107a3565b6120118282612249565b6001600160a01b0380861660009081526004602052604080822093909355908516815290812080548492906120479084906122e2565b909155505050505050565b60006020828403121561206457600080fd5b5035919050565b80356001600160a01b038116811461208257600080fd5b919050565b60006020828403121561209957600080fd5b6120a28261206b565b9392505050565b600060208083528351808285015260005b818110156120d6578581018301518582016040015282016120ba565b506000604082860101526040601f19601f8301168501019250505092915050565b6000806040838503121561210a57600080fd5b6121138361206b565b946020939093013593505050565b60008060006060848603121561213657600080fd5b61213f8461206b565b925061214d6020850161206b565b9150604084013590509250925092565b6000806020838503121561217057600080fd5b823567ffffffffffffffff8082111561218857600080fd5b818501915085601f83011261219c57600080fd5b8135818111156121ab57600080fd5b8660208260051b85010111156121c057600080fd5b60209290920196919550909350505050565b80151581146121e057600080fd5b50565b6000602082840312156121f557600080fd5b81356120a2816121d2565b6000806040838503121561221357600080fd5b61221c8361206b565b915061222a6020840161206b565b90509250929050565b634e487b7160e01b600052601160045260246000fd5b818103818111156108ee576108ee612233565b80820281158282048414176108ee576108ee612233565b60008261229057634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156122a757600080fd5b81516120a2816121d2565b602080825260169082015275105111149154d4d7d254d7d0931050d2d31254d5115160521b604082015260600190565b808201808211156108ee576108ee612233565b6020808252600990820152682727aa2fa0a226a4a760b91b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60006001820161234057612340612233565b5060010190565b60208082528181018390526000908460408401835b86811015612388576001600160a01b036123758461206b565b168252918301919083019060010161235c565b50969550505050505056fe9d9c909296d9c674451c0c24f02cb64981eb3b727f99865939192f880a755dcbddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202637d82250134d34e5856b56cb3dd2e8b463de3a4b7533217d5728a2a6486a1b64736f6c63430008120033
Deployed Bytecode Sourcemap
3471:15278:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14689:654;;;;;;:::i;:::-;;:::i;:::-;;2997:39;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;733:14:1;;726:22;708:41;;696:2;681:18;2997:39:0;;;;;;;;6315:93;6380:20;;;;;;;;;;;;-1:-1:-1;;;6380:20:0;;;;6315:93;;;;;;;:::i;7128:177::-;;;;;;:::i;:::-;;:::i;3354:41::-;;;;;-1:-1:-1;;;;;3354:41:0;;;;;;-1:-1:-1;;;;;1761:32:1;;;1743:51;;1731:2;1716:18;3354:41:0;1572:228:1;6514:94:0;6585:15;;6514:94;;;1951:25:1;;;1939:2;1924:18;6514:94:0;1805:177:1;3169:29:0;;;;;;7313:551;;;;;;:::i;:::-;;:::i;2057:27::-;;;;;-1:-1:-1;;;;;2057:27:0;;;6231:76;;;6297:2;2670:36:1;;2658:2;2643:18;6231:76:0;2528:184:1;3045:33:0;;;;;;7872:207;;;;;;:::i;:::-;;:::i;2258:36::-;;;;;-1:-1:-1;;;;;2258:36:0;;;2875:26;;;;;;18156:282;;;;;;:::i;:::-;;:::i;3207:33::-;;;;;;11584:1157;;;;;;:::i;:::-;;:::i;11470:106::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11551:17:0;11527:4;11551:17;;;:7;:17;;;;;;;;;11470:106;16992:266;;;;;;:::i;:::-;;:::i;16389:308::-;;;;;;:::i;:::-;;:::i;16705:279::-;;;;;;:::i;:::-;;:::i;15817:248::-;;;;;;:::i;:::-;;:::i;2156:29::-;;;;;-1:-1:-1;;;;;2156:29:0;;;17556:300;;;;;;:::i;:::-;;:::i;17864:284::-;;;;;;:::i;:::-;;:::i;3284:30::-;;;;;-1:-1:-1;;;;;3284:30:0;;;6616:132;;;;;;:::i;:::-;;:::i;17266:282::-;;;;;;:::i;:::-;;:::i;8739:461::-;;;;;;:::i;:::-;;:::i;3323:22::-;;;;;-1:-1:-1;;;3323:22:0;;;;;;9586:457;;;;;;:::i;:::-;;:::i;6416:90::-;6483:15;;;;;;;;;;;;-1:-1:-1;;;6483:15:0;;;;6416:90;;14027:654;;;;;;:::i;:::-;;:::i;8087:361::-;;;;;;:::i;:::-;;:::i;6756:219::-;;;;;;:::i;:::-;;:::i;11356:106::-;;;;;;:::i;:::-;-1:-1:-1;;;;;11437:17:0;11413:4;11437:17;;;:7;:17;;;;;;;;;11356:106;3249:26;;;;;-1:-1:-1;;;;;3249:26:0;;;15351:220;;;;;;:::i;:::-;;:::i;9208:370::-;;;;;;:::i;:::-;;:::i;2910:30::-;;;;;;3128:32;;;;;;6983:137;;;;;;:::i;:::-;-1:-1:-1;;;;;7084:18:0;;;7057:7;7084:18;;;:10;:18;;;;;;;;:28;;;;;;;;;;;;;6983:137;18446:300;;;;;;:::i;:::-;;:::i;15579:230::-;;;;;;:::i;:::-;;:::i;2617:36::-;;2649:4;2617:36;;12749:1270;;;;;;:::i;:::-;;:::i;16073:308::-;;;;;;:::i;:::-;;:::i;2949:39::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;8623:108;;;;;;:::i;:::-;-1:-1:-1;;;;;8707:16:0;8680:7;8707:16;;;:6;:16;;;;;;;8623:108;1956:20;;;;;-1:-1:-1;;;;;1956:20:0;;;3087:32;;;;;;14689:654;5512:11;;-1:-1:-1;;;;;5512:11:0;5498:10;:25;5490:54;;;;-1:-1:-1;;;5490:54:0;;4173:2:1;5490:54:0;;;4155:21:1;4212:2;4192:18;;;4185:30;-1:-1:-1;;;4231:18:1;;;4224:46;4287:18;;5490:54:0;;;;;;;;;14816:18:::1;::::0;14798:14:::1;::::0;14780:32:::1;::::0;:15:::1;:32;:::i;:::-;:54;;14772:83;;;::::0;-1:-1:-1;;;14772:83:0;;4783:2:1;14772:83:0::1;::::0;::::1;4765:21:1::0;4822:2;4802:18;;;4795:30;-1:-1:-1;;;4841:18:1;;;4834:46;4897:18;;14772:83:0::1;4581:340:1::0;14772:83:0::1;14895:15;::::0;14929:20;;;;;:87:::1;;;15001:15;2649:4;14972:17;;14953:16;:36;;;;:::i;:::-;:44;;;;:::i;:::-;:63;;14929:87;14921:139;;;::::0;-1:-1:-1;;;14921:139:0;;5523:2:1;14921:139:0::1;::::0;::::1;5505:21:1::0;5562:2;5542:18;;;5535:30;5601:28;5581:18;;;5574:56;5647:18;;14921:139:0::1;5321:350:1::0;14921:139:0::1;15102:16:::0;15129:35:::1;15149:15:::0;15102:16;15129:35:::1;:::i;:::-;15175:15;:34:::0;;;15239:15:::1;15222:14;:32:::0;15323:11:::1;::::0;15272:63:::1;::::0;;5878:25:1;;;5934:2;5919:18;;5912:34;;;5962:18;;;5955:34;;;;15175::0;;-1:-1:-1;15272:63:0::1;::::0;5866:2:1;5851:18;15272:63:0::1;;;;;;;;14761:582;;14689:654:::0;:::o;7128:177::-;7214:4;7236:39;7245:10;7257:8;7267:7;7236:8;:39::i;:::-;-1:-1:-1;7293:4:0;7128:177;;;;;:::o;7313:551::-;5845:16;;7492:4;;7429:10;;-1:-1:-1;;;;;5845:16:0;5837:39;5833:148;;5902:16;;:40;;-1:-1:-1;;;5902:40:0;;-1:-1:-1;;;;;1761:32:1;;;5902:40:0;;;1743:51:1;5902:16:0;;;;:30;;1716:18:1;;5902:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5901:41;5893:76;;;;-1:-1:-1;;;5893:76:0;;;;;;;:::i;:::-;5845:16:::1;::::0;7465:7;;-1:-1:-1;;;;;5845:16:0::1;5837:39:::0;5833:148:::1;;5902:16;::::0;:40:::1;::::0;-1:-1:-1;;;5902:40:0;;-1:-1:-1;;;;;1761:32:1;;;5902:40:0::1;::::0;::::1;1743:51:1::0;5902:16:0;;::::1;::::0;:30:::1;::::0;1716:18:1;;5902:40:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5901:41;5893:76;;;;-1:-1:-1::0;;;5893:76:0::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;7541:19:0;::::2;7514:24;7541:19:::0;;;:10:::2;:19;::::0;;;;;;;7561:10:::2;7541:31:::0;;;;;;;;7591:20;7583:47:::2;;;::::0;-1:-1:-1;;;7583:47:0;;6803:2:1;7583:47:0::2;::::0;::::2;6785:21:1::0;6842:2;6822:18;;;6815:30;-1:-1:-1;;;6861:18:1;;;6854:44;6915:18;;7583:47:0::2;6601:338:1::0;7583:47:0::2;7669:7;7649:16;:27;;7641:73;;;::::0;-1:-1:-1;;;7641:73:0;;7146:2:1;7641:73:0::2;::::0;::::2;7128:21:1::0;7185:2;7165:18;;;7158:30;7224:34;7204:18;;;7197:62;-1:-1:-1;;;7275:18:1;;;7268:31;7316:19;;7641:73:0::2;6944:397:1::0;7641:73:0::2;7727:39;7737:7;7746:10;7758:7;7727:9;:39::i;:::-;7777:57;7786:7:::0;7795:10:::2;7807:26;7826:7:::0;7807:16;:26:::2;:::i;:::-;7777:8;:57::i;:::-;-1:-1:-1::0;7852:4:0::2;::::0;7313:551;-1:-1:-1;;;;;;7313:551:0:o;7872:207::-;7980:10;7954:4;8002:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;8002:32:0;;;;;;;;;;7954:4;;7971:78;;7992:8;;8002:46;;8037:11;;8002:46;:::i;18156:282::-;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;18245:9:::1;18240:148;18260:24:::0;;::::1;18240:148;;;18306:14;18323:13;;18337:1;18323:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18354:15:0::1;;::::0;;;:7:::1;:15;::::0;;;;:22;;-1:-1:-1;;18354:22:0::1;18372:4;18354:22;::::0;;-1:-1:-1;18286:3:0::1;::::0;::::1;:::i;:::-;;;18240:148;;;;18403:27;18416:13;;18403:27;;;;;;;:::i;:::-;;;;;;;;18156:282:::0;;:::o;11584:1157::-;5622:10;11752:7;11437:17;;;:7;:17;;;;;;;;5605:43;;;;-1:-1:-1;;;5605:43:0;;8928:2:1;5605:43:0;;;8910:21:1;8967:2;8947:18;;;8940:30;-1:-1:-1;;;8986:18:1;;;8979:40;9036:18;;5605:43:0;8726:334:1;5605:43:0;5845:16:::1;::::0;11726:6;;-1:-1:-1;;;;;5845:16:0::1;5837:39:::0;5833:148:::1;;5902:16;::::0;:40:::1;::::0;-1:-1:-1;;;5902:40:0;;-1:-1:-1;;;;;1761:32:1;;;5902:40:0::1;::::0;::::1;1743:51:1::0;5902:16:0;;::::1;::::0;:30:::1;::::0;1716:18:1;;5902:40:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5901:41;5893:76;;;;-1:-1:-1::0;;;5893:76:0::1;;;;;;;:::i;:::-;11786:10:::2;::::0;-1:-1:-1;;;11786:10:0;::::2;;;11785:11;11777:38;;;::::0;-1:-1:-1;;;11777:38:0;;9267:2:1;11777:38:0::2;::::0;::::2;9249:21:1::0;9306:2;9286:18;;;9279:30;-1:-1:-1;;;9325:18:1;;;9318:44;9379:18;;11777:38:0::2;9065:338:1::0;11777:38:0::2;11828:22;11853:38;11875:15;11853:21;:38::i;:::-;11828:63;;11927:1;11910:14;:18;11902:49;;;::::0;-1:-1:-1;;;11902:49:0;;9610:2:1;11902:49:0::2;::::0;::::2;9592:21:1::0;9649:2;9629:18;;;9622:30;-1:-1:-1;;;9668:18:1;;;9661:48;9726:18;;11902:49:0::2;9408:342:1::0;11902:49:0::2;11964:32;12017:15;11999;;:33;;;;:::i;:::-;11964:68;;12079:18;;12051:24;:46;;12043:86;;;::::0;-1:-1:-1;;;12043:86:0;;9957:2:1;12043:86:0::2;::::0;::::2;9939:21:1::0;9996:2;9976:18;;;9969:30;10035:29;10015:18;;;10008:57;10082:18;;12043:86:0::2;9755:351:1::0;12043:86:0::2;12140:15;:42:::0;;;12226:11:::2;::::0;12195:28:::2;::::0;12226::::2;::::0;12240:14;;12226:28:::2;:::i;:::-;12265:11;:34:::0;;;-1:-1:-1;;;;;12333:14:0;::::2;12312:18;12333:14:::0;;;:6:::2;:14;::::0;;;;;12195:59;;-1:-1:-1;12358:28:0::2;12372:14:::0;12333;12358:28:::2;:::i;:::-;-1:-1:-1::0;;;;;12397:14:0;::::2;;::::0;;;:6:::2;:14;::::0;;;;;;;;:27;;;12442:130;;10370:25:1;;;10411:18;;;10404:34;;;10454:18;;;10447:34;;;10512:2;10497:18;;10490:34;;;10555:3;10540:19;;10533:35;;;12397:27:0;;-1:-1:-1;12397:14:0;12447:10:::2;::::0;12442:130:::2;::::0;10357:3:1;10342:19;12442:130:0::2;;;;;;;12590:45;::::0;1951:25:1;;;-1:-1:-1;;;;;12590:45:0;::::2;::::0;12607:1:::2;::::0;-1:-1:-1;;;;;;;;;;;12590:45:0;1939:2:1;1924:18;12590:45:0::2;;;;;;;12651:50;::::0;1951:25:1;;;-1:-1:-1;;;;;12651:50:0;::::2;::::0;12674:1:::2;::::0;-1:-1:-1;;;;;;;;;;;12651:50:0;1939:2:1;1924:18;12651:50:0::2;;;;;;;-1:-1:-1::0;12719:14:0;;11584:1157;-1:-1:-1;;;;;;11584:1157:0:o;16992:266::-;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;17108:15:::1;::::0;;-1:-1:-1;;;;;17134:37:0;;::::1;-1:-1:-1::0;;;;;;17134:37:0;::::1;::::0;::::1;::::0;;;17187:63:::1;::::0;;17108:15;;;::::1;10791:34:1::0;;;10856:2;10841:18;;10834:43;;;;17187:63:0::1;::::0;10726:18:1;17187:63:0::1;10579:304:1::0;16389:308:0;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;2649:4:::1;16480:13;:22;;16472:53;;;::::0;-1:-1:-1;;;16472:53:0;;11090:2:1;16472:53:0::1;::::0;::::1;11072:21:1::0;11129:2;11109:18;;;11102:30;-1:-1:-1;;;11148:18:1;;;11141:48;11206:18;;16472:53:0::1;10888:342:1::0;16472:53:0::1;16559:17;::::0;;16587:33;;;;16636:53:::1;::::0;;11409:25:1;;;11465:2;11450:18;;11443:34;;;16636:53:0::1;::::0;11382:18:1;16636:53:0::1;11235:248:1::0;16705:279:0;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;16820:16:::1;::::0;;-1:-1:-1;;;;;16848:58:0;;::::1;-1:-1:-1::0;;;;;;16848:58:0;::::1;::::0;::::1;::::0;;;16922:54:::1;::::0;;16820:16;;;::::1;10791:34:1::0;;;10856:2;10841:18;;10834:43;;;;16922:54:0::1;::::0;10726:18:1;16922:54:0::1;10579:304:1::0;15817:248:0;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;15924:18:::1;::::0;;15953:34;;;;16003:54:::1;::::0;;11409:25:1;;;11465:2;11450:18;;11443:34;;;16003:54:0::1;::::0;11382:18:1;16003:54:0::1;11235:248:1::0;17556:300:0;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;17651:9:::1;17646:155;17666:27:::0;;::::1;17646:155;;;17715:14;17732:16;;17749:1;17732:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17766:15:0::1;17784:5;17766:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;17766:23:0::1;::::0;;-1:-1:-1;17695:3:0::1;::::0;::::1;:::i;:::-;;;17646:155;;;;17816:32;17831:16;;17816:32;;;;;;;:::i;17864:284::-:0;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;17986:18:::1;::::0;;18015:40;;;;18071:69:::1;::::0;;11409:25:1;;;11465:2;11450:18;;11443:34;;;18071:69:0::1;::::0;11382:18:1;18071:69:0::1;11235:248:1::0;6616:132:0;-1:-1:-1;;;;;6723:16:0;;6674:7;6723:16;;;:6;:16;;;;;;6701:39;;:21;:39::i;17266:282::-;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;17355:9:::1;17350:148;17370:24:::0;;::::1;17350:148;;;17416:14;17433:13;;17447:1;17433:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17464:15:0::1;;::::0;;;:7:::1;:15;::::0;;;;:22;;-1:-1:-1;;17464:22:0::1;17482:4;17464:22;::::0;;-1:-1:-1;17396:3:0::1;::::0;::::1;:::i;:::-;;;17350:148;;;;17513:27;17526:13;;17513:27;;;;;;;:::i;8739:461::-:0;8865:15;;8914:11;;8818:7;;8865:15;8940:21;;:42;;;;-1:-1:-1;8965:17:0;;8940:42;8936:257;;;-1:-1:-1;9073:17:0;;8739:461;-1:-1:-1;;8739:461:0:o;8936:257::-;9165:16;9130:32;9150:12;9130:17;:32;:::i;:::-;:51;;;;:::i;:::-;9123:58;8739:461;-1:-1:-1;;;;8739:461:0:o;9586:457::-;5845:16;;9723:7;;9693:10;;-1:-1:-1;;;;;5845:16:0;5837:39;5833:148;;5902:16;;:40;;-1:-1:-1;;;5902:40:0;;-1:-1:-1;;;;;1761:32:1;;;5902:40:0;;;1743:51:1;5902:16:0;;;;:30;;1716:18:1;;5902:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5901:41;5893:76;;;;-1:-1:-1;;;5893:76:0;;;;;;;:::i;:::-;9748:54:::1;9764:10;9776;9788:13;9748:15;:54::i;:::-;9813:20;9836:36;9858:13;9836:21;:36::i;:::-;9813:59;;9911:10;-1:-1:-1::0;;;;;9890:46:0::1;9899:10;-1:-1:-1::0;;;;;9890:46:0::1;-1:-1:-1::0;;;;;;;;;;;9923:12:0::1;9890:46;;;;1951:25:1::0;;1939:2;1924:18;;1805:177;9890:46:0::1;;;;;;;;9952:53;::::0;1951:25:1;;;-1:-1:-1;;;;;9952:53:0;::::1;::::0;9967:10:::1;::::0;-1:-1:-1;;;;;;;;;;;9952:53:0;1939:2:1;1924:18;9952:53:0::1;;;;;;;10023:12:::0;9586:457;-1:-1:-1;;;;9586:457:0:o;14027:654::-;5512:11;;-1:-1:-1;;;;;5512:11:0;5498:10;:25;5490:54;;;;-1:-1:-1;;;5490:54:0;;4173:2:1;5490:54:0;;;4155:21:1;4212:2;4192:18;;;4185:30;-1:-1:-1;;;4231:18:1;;;4224:46;4287:18;;5490:54:0;3971:340:1;5490:54:0;14154:18:::1;::::0;14136:14:::1;::::0;14118:32:::1;::::0;:15:::1;:32;:::i;:::-;:54;;14110:83;;;::::0;-1:-1:-1;;;14110:83:0;;4783:2:1;14110:83:0::1;::::0;::::1;4765:21:1::0;4822:2;4802:18;;;4795:30;-1:-1:-1;;;4841:18:1;;;4834:46;4897:18;;14110:83:0::1;4581:340:1::0;14110:83:0::1;14233:15;::::0;14267:20;;;;;:87:::1;;;14339:15;2649:4;14310:17;;14291:16;:36;;;;:::i;:::-;:44;;;;:::i;:::-;:63;;14267:87;14259:139;;;::::0;-1:-1:-1;;;14259:139:0;;5523:2:1;14259:139:0::1;::::0;::::1;5505:21:1::0;5562:2;5542:18;;;5535:30;5601:28;5581:18;;;5574:56;5647:18;;14259:139:0::1;5321:350:1::0;14259:139:0::1;14440:16:::0;14467:35:::1;14487:15:::0;14440:16;14467:35:::1;:::i;:::-;14513:15;:34:::0;;;14577:15:::1;14560:14;:32:::0;14661:11:::1;::::0;14610:63:::1;::::0;;5878:25:1;;;5934:2;5919:18;;5912:34;;;5962:18;;;5955:34;;;;14513::0;;-1:-1:-1;14610:63:0::1;::::0;5866:2:1;5851:18;14610:63:0::1;5676:319:1::0;8087:361:0;8229:10;8174:4;8218:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;8218:32:0;;;;;;;;;;8269:36;;;;8261:79;;;;-1:-1:-1;;;8261:79:0;;11690:2:1;8261:79:0;;;11672:21:1;11729:2;11709:18;;;11702:30;11768:32;11748:18;;;11741:60;11818:18;;8261:79:0;11488:354:1;8261:79:0;8351:67;8360:10;8372:8;8382:35;8401:16;8382;:35;:::i;8351:67::-;-1:-1:-1;8436:4:0;;8087:361;-1:-1:-1;;;8087:361:0:o;6756:219::-;5845:16;;6881:4;;6851:10;;-1:-1:-1;;;;;5845:16:0;5837:39;5833:148;;5902:16;;:40;;-1:-1:-1;;;5902:40:0;;-1:-1:-1;;;;;1761:32:1;;;5902:40:0;;;1743:51:1;5902:16:0;;;;:30;;1716:18:1;;5902:40:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5901:41;5893:76;;;;-1:-1:-1;;;5893:76:0;;;;;;;:::i;:::-;6903:42:::1;6913:10;6925;6937:7;6903:9;:42::i;15351:220::-:0;6072:15;;-1:-1:-1;;;;;6072:15:0;6058:10;:29;6050:63;;;;-1:-1:-1;;;6050:63:0;;12049:2:1;6050:63:0;;;12031:21:1;12088:2;12068:18;;;12061:30;-1:-1:-1;;;12107:18:1;;;12100:51;12168:18;;6050:63:0;11847:345:1;6050:63:0;15451:10:::1;::::0;-1:-1:-1;;;15451:10:0;::::1;;;15438:23;;::::0;::::1;;::::0;15430:57:::1;;;::::0;-1:-1:-1;;;15430:57:0;;12399:2:1;15430:57:0::1;::::0;::::1;12381:21:1::0;12438:2;12418:18;;;12411:30;-1:-1:-1;;;12457:18:1;;;12450:51;12518:18;;15430:57:0::1;12197:345:1::0;15430:57:0::1;15498:10;:22:::0;;;::::1;;-1:-1:-1::0;;;15498:22:0::1;-1:-1:-1::0;;;;15498:22:0;;::::1;;::::0;;15536:27:::1;::::0;::::1;::::0;::::1;::::0;15511:9;733:14:1;726:22;708:41;;696:2;681:18;;568:187;15536:27:0::1;;;;;;;;15351:220:::0;:::o;9208:370::-;9330:15;;9379:11;;9283:7;;9330:15;9405:21;;:42;;;;-1:-1:-1;9430:17:0;;9405:42;9401:170;;;-1:-1:-1;9471:1:0;;9208:370;-1:-1:-1;;;9208:370:0:o;9401:170::-;9547:12;9512:32;9528:16;9512:13;:32;:::i;18446:300::-;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;18541:9:::1;18536:155;18556:27:::0;;::::1;18536:155;;;18605:14;18622:16;;18639:1;18622:19;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18656:15:0::1;18674:5;18656:15:::0;;;:7:::1;:15;::::0;;;;:23;;-1:-1:-1;;18656:23:0::1;::::0;;-1:-1:-1;18585:3:0::1;::::0;::::1;:::i;:::-;;;18536:155;;;;18706:32;18721:16;;18706:32;;;;;;;:::i;15579:230::-:0;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;15683:11:::1;::::0;;-1:-1:-1;;;;;15705:29:0;;::::1;-1:-1:-1::0;;;;;;15705:29:0;::::1;::::0;::::1;::::0;;;15750:51:::1;::::0;;15683:11;;;::::1;10791:34:1::0;;;10856:2;10841:18;;10834:43;;;;15750:51:0::1;::::0;10726:18:1;15750:51:0::1;10579:304:1::0;12749:1270:0;5726:10;12891:7;11551:17;;;:7;:17;;;;;;;;5709:43;;;;-1:-1:-1;;;5709:43:0;;12749:2:1;5709:43:0;;;12731:21:1;12788:2;12768:18;;;12761:30;-1:-1:-1;;;12807:18:1;;;12800:40;12857:18;;5709:43:0;12547:334:1;5709:43:0;12942:1:::1;12924:15;:19;12916:50;;;::::0;-1:-1:-1;;;12916:50:0;;13088:2:1;12916:50:0::1;::::0;::::1;13070:21:1::0;13127:2;13107:18;;;13100:30;-1:-1:-1;;;13146:18:1;;;13139:48;13204:18;;12916:50:0::1;12886:342:1::0;12916:50:0::1;-1:-1:-1::0;;;;;13004:14:0;::::1;;::::0;;;:6:::1;:14;::::0;;;;;12985:33;::::1;;12977:63;;;::::0;-1:-1:-1;;;12977:63:0;;13435:2:1;12977:63:0::1;::::0;::::1;13417:21:1::0;13474:2;13454:18;;;13447:30;-1:-1:-1;;;13493:18:1;;;13486:47;13550:18;;12977:63:0::1;13233:341:1::0;12977:63:0::1;13053:22;13078:38;13100:15;13078:21;:38::i;:::-;-1:-1:-1::0;;;;;13154:18:0;::::1;13127:24;13154:18:::0;;;:10:::1;:18;::::0;;;;;;;13173:10:::1;13154:30:::0;;;;;;;;13053:63;;-1:-1:-1;13203:34:0;;::::1;;13195:71;;;::::0;-1:-1:-1;;;13195:71:0;;13781:2:1;13195:71:0::1;::::0;::::1;13763:21:1::0;13820:2;13800:18;;;13793:30;13859:26;13839:18;;;13832:54;13903:18;;13195:71:0::1;13579:348:1::0;13195:71:0::1;13279:28;13324:15;13310:11;;:29;;;;:::i;:::-;-1:-1:-1::0;;;;;13371:14:0;::::1;13350:18;13371:14:::0;;;:6:::1;:14;::::0;;;;;13279:60;;-1:-1:-1;13350:18:0;13371:32:::1;::::0;13388:15;;13371:32:::1;:::i;:::-;13350:53;;13414:32;13467:14;13449:15;;:32;;;;:::i;:::-;13494:11;:34:::0;;;-1:-1:-1;;;;;13539:14:0;::::1;;::::0;;;:6:::1;:14;::::0;;;;:27;;;13577:15:::1;:42:::0;;;13414:67;-1:-1:-1;13632:63:0::1;13546:6:::0;13649:10:::1;13661:33;13680:14:::0;13661:16;:33:::1;:::i;13632:63::-;13713:137;::::0;;10370:25:1;;;10426:2;10411:18;;10404:34;;;10454:18;;;10447:34;;;10512:2;10497:18;;10490:34;;;10555:3;10540:19;;10533:35;;;-1:-1:-1;;;;;13713:137:0;::::1;::::0;13725:10:::1;::::0;13713:137:::1;::::0;10357:3:1;10342:19;13713:137:0::1;;;;;;;13868:44;::::0;1951:25:1;;;13893:1:0::1;::::0;-1:-1:-1;;;;;13868:44:0;::::1;::::0;-1:-1:-1;;;;;;;;;;;13868:44:0;1939:2:1;1924:18;13868:44:0::1;;;;;;;13928:51;::::0;1951:25:1;;;13959:1:0::1;::::0;-1:-1:-1;;;;;13928:51:0;::::1;::::0;-1:-1:-1;;;;;;;;;;;13928:51:0;1939:2:1;1924:18;13928:51:0::1;;;;;;;-1:-1:-1::0;13997:14:0;;12749:1270;-1:-1:-1;;;;;;12749:1270:0:o;16073:308::-;5405:5;;-1:-1:-1;;;;;5405:5:0;5391:10;:19;5383:41;;;;-1:-1:-1;;;5383:41:0;;;;;;;:::i;:::-;2649:4:::1;16164:13;:22;;16156:53;;;::::0;-1:-1:-1;;;16156:53:0;;11090:2:1;16156:53:0::1;::::0;::::1;11072:21:1::0;11129:2;11109:18;;;11102:30;-1:-1:-1;;;11148:18:1;;;11141:48;11206:18;;16156:53:0::1;10888:342:1::0;16156:53:0::1;16243:17;::::0;;16271:33;;;;16320:53:::1;::::0;;11409:25:1;;;11465:2;11450:18;;11443:34;;;16320:53:0::1;::::0;11382:18:1;16320:53:0::1;11235:248:1::0;10408:326:0;-1:-1:-1;;;;;10505:20:0;;10497:58;;;;-1:-1:-1;;;10497:58:0;;14134:2:1;10497:58:0;;;14116:21:1;14173:2;14153:18;;;14146:30;14212:27;14192:18;;;14185:55;14257:18;;10497:58:0;13932:349:1;10497:58:0;-1:-1:-1;;;;;10574:22:0;;10566:58;;;;-1:-1:-1;;;10566:58:0;;14488:2:1;10566:58:0;;;14470:21:1;14527:2;14507:18;;;14500:30;14566:25;14546:18;;;14539:53;14609:18;;10566:58:0;14286:347:1;10566:58:0;-1:-1:-1;;;;;10637:18:0;;;;;;;:10;:18;;;;;;;;:28;;;;;;;;;;;;;:38;;;10691:35;;1951:25:1;;;10691:35:0;;1924:18:1;10691:35:0;;;;;;;10408:326;;;:::o;10051:349::-;10144:25;10172:30;10194:7;10172:21;:30::i;:::-;10144:58;;10213:55;10229:7;10238:10;10250:17;10213:15;:55::i;:::-;10302:10;-1:-1:-1;;;;;10284:38:0;10293:7;-1:-1:-1;;;;;10284:38:0;-1:-1:-1;;;;;;;;;;;10314:7:0;10284:38;;;;1951:25:1;;1939:2;1924:18;;1805:177;10284:38:0;;;;;;;;10362:10;-1:-1:-1;;;;;10338:54:0;10353:7;-1:-1:-1;;;;;10338:54:0;-1:-1:-1;;;;;;;;;;;10374:17:0;10338:54;;;;1951:25:1;;1939:2;1924:18;;1805:177;10338:54:0;;;;;;;;10133:267;10051:349;;;:::o;10742:514::-;-1:-1:-1;;;;;10855:21:0;;10847:64;;;;-1:-1:-1;;;10847:64:0;;14840:2:1;10847:64:0;;;14822:21:1;14879:2;14859:18;;;14852:30;14918:32;14898:18;;;14891:60;14968:18;;10847:64:0;14638:354:1;10847:64:0;-1:-1:-1;;;;;10930:24:0;;10922:65;;;;-1:-1:-1;;;10922:65:0;;15199:2:1;10922:65:0;;;15181:21:1;15238:2;15218:18;;;15211:30;15277;15257:18;;;15250:58;15325:18;;10922:65:0;14997:352:1;10922:65:0;-1:-1:-1;;;;;11030:15:0;;11000:27;11030:15;;;:6;:15;;;;;;11064:36;;;;11056:80;;;;-1:-1:-1;;;11056:80:0;;15556:2:1;11056:80:0;;;15538:21:1;15595:2;15575:18;;;15568:30;15634:33;15614:18;;;15607:61;15685:18;;11056:80:0;15354:355:1;11056:80:0;11167:35;11189:13;11167:19;:35;:::i;:::-;-1:-1:-1;;;;;11149:15:0;;;;;;;:6;:15;;;;;;:53;;;;11213:18;;;;;;;;:35;;11235:13;;11149:15;11213:35;;11235:13;;11213:35;:::i;:::-;;;;-1:-1:-1;;;;;;10742:514:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:173::-;267:20;;-1:-1:-1;;;;;316:31:1;;306:42;;296:70;;362:1;359;352:12;296:70;199:173;;;:::o;377:186::-;436:6;489:2;477:9;468:7;464:23;460:32;457:52;;;505:1;502;495:12;457:52;528:29;547:9;528:29;:::i;:::-;518:39;377:186;-1:-1:-1;;;377:186:1:o;760:548::-;872:4;901:2;930;919:9;912:21;962:6;956:13;1005:6;1000:2;989:9;985:18;978:34;1030:1;1040:140;1054:6;1051:1;1048:13;1040:140;;;1149:14;;;1145:23;;1139:30;1115:17;;;1134:2;1111:26;1104:66;1069:10;;1040:140;;;1044:3;1229:1;1224:2;1215:6;1204:9;1200:22;1196:31;1189:42;1299:2;1292;1288:7;1283:2;1275:6;1271:15;1267:29;1256:9;1252:45;1248:54;1240:62;;;;760:548;;;;:::o;1313:254::-;1381:6;1389;1442:2;1430:9;1421:7;1417:23;1413:32;1410:52;;;1458:1;1455;1448:12;1410:52;1481:29;1500:9;1481:29;:::i;:::-;1471:39;1557:2;1542:18;;;;1529:32;;-1:-1:-1;;;1313:254:1:o;1987:328::-;2064:6;2072;2080;2133:2;2121:9;2112:7;2108:23;2104:32;2101:52;;;2149:1;2146;2139:12;2101:52;2172:29;2191:9;2172:29;:::i;:::-;2162:39;;2220:38;2254:2;2243:9;2239:18;2220:38;:::i;:::-;2210:48;;2305:2;2294:9;2290:18;2277:32;2267:42;;1987:328;;;;;:::o;2717:615::-;2803:6;2811;2864:2;2852:9;2843:7;2839:23;2835:32;2832:52;;;2880:1;2877;2870:12;2832:52;2920:9;2907:23;2949:18;2990:2;2982:6;2979:14;2976:34;;;3006:1;3003;2996:12;2976:34;3044:6;3033:9;3029:22;3019:32;;3089:7;3082:4;3078:2;3074:13;3070:27;3060:55;;3111:1;3108;3101:12;3060:55;3151:2;3138:16;3177:2;3169:6;3166:14;3163:34;;;3193:1;3190;3183:12;3163:34;3246:7;3241:2;3231:6;3228:1;3224:14;3220:2;3216:23;3212:32;3209:45;3206:65;;;3267:1;3264;3257:12;3206:65;3298:2;3290:11;;;;;3320:6;;-1:-1:-1;2717:615:1;;-1:-1:-1;;;;2717:615:1:o;3337:118::-;3423:5;3416:13;3409:21;3402:5;3399:32;3389:60;;3445:1;3442;3435:12;3389:60;3337:118;:::o;3460:241::-;3516:6;3569:2;3557:9;3548:7;3544:23;3540:32;3537:52;;;3585:1;3582;3575:12;3537:52;3624:9;3611:23;3643:28;3665:5;3643:28;:::i;3706:260::-;3774:6;3782;3835:2;3823:9;3814:7;3810:23;3806:32;3803:52;;;3851:1;3848;3841:12;3803:52;3874:29;3893:9;3874:29;:::i;:::-;3864:39;;3922:38;3956:2;3945:9;3941:18;3922:38;:::i;:::-;3912:48;;3706:260;;;;;:::o;4316:127::-;4377:10;4372:3;4368:20;4365:1;4358:31;4408:4;4405:1;4398:15;4432:4;4429:1;4422:15;4448:128;4515:9;;;4536:11;;;4533:37;;;4550:18;;:::i;4926:168::-;4999:9;;;5030;;5047:15;;;5041:22;;5027:37;5017:71;;5068:18;;:::i;5099:217::-;5139:1;5165;5155:132;;5209:10;5204:3;5200:20;5197:1;5190:31;5244:4;5241:1;5234:15;5272:4;5269:1;5262:15;5155:132;-1:-1:-1;5301:9:1;;5099:217::o;6000:245::-;6067:6;6120:2;6108:9;6099:7;6095:23;6091:32;6088:52;;;6136:1;6133;6126:12;6088:52;6168:9;6162:16;6187:28;6209:5;6187:28;:::i;6250:346::-;6452:2;6434:21;;;6491:2;6471:18;;;6464:30;-1:-1:-1;;;6525:2:1;6510:18;;6503:52;6587:2;6572:18;;6250:346::o;7346:125::-;7411:9;;;7432:10;;;7429:36;;;7445:18;;:::i;7476:332::-;7678:2;7660:21;;;7717:1;7697:18;;;7690:29;-1:-1:-1;;;7750:2:1;7735:18;;7728:39;7799:2;7784:18;;7476:332::o;7813:127::-;7874:10;7869:3;7865:20;7862:1;7855:31;7905:4;7902:1;7895:15;7929:4;7926:1;7919:15;7945:135;7984:3;8005:17;;;8002:43;;8025:18;;:::i;:::-;-1:-1:-1;8072:1:1;8061:13;;7945:135::o;8085:636::-;8266:2;8318:21;;;8291:18;;;8374:22;;;8237:4;;8453:6;8427:2;8412:18;;8237:4;8487:208;8501:6;8498:1;8495:13;8487:208;;;-1:-1:-1;;;;;8566:26:1;8585:6;8566:26;:::i;:::-;8562:52;8550:65;;8670:15;;;;8635:12;;;;8523:1;8516:9;8487:208;;;-1:-1:-1;8712:3:1;8085:636;-1:-1:-1;;;;;;8085:636:1:o
Swarm Source
ipfs://2637d82250134d34e5856b56cb3dd2e8b463de3a4b7533217d5728a2a6486a1b
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
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.