Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Source Code
Overview
Max Total Supply
248,734,529,238.519405277 PEPE
Holders
129
Transfers
-
0
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
PepeRebase
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-10-11
*/
// SPDX-License-Identifier: MIT
// X: https://x.com/Peperebase
// Telegram: https://t.me/peperebase
// Website: https://peperebase.com
pragma solidity 0.8.17;
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address who) external view returns (uint256);
function allowance(address owner, address spender) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(address from, address to, uint256 value) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface InterfaceLP {
function sync() external;
function mint(address to) external returns (uint liquidity);
}
abstract contract ERC20Detailed is IERC20 {
string private _name;
string private _symbol;
uint8 private _decimals;
constructor(
string memory _tokenName,
string memory _tokenSymbol,
uint8 _tokenDecimals
) {
_name = _tokenName;
_symbol = _tokenSymbol;
_decimals = _tokenDecimals;
}
function name() public view returns (string memory) {
return _name;
}
function symbol() public view returns (string memory) {
return _symbol;
}
function decimals() public view returns (uint8) {
return _decimals;
}
}
interface IDEXRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}
interface IDEXFactory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
contract Ownable {
address private _owner;
event OwnershipRenounced(address indexed previousOwner);
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
_owner = msg.sender;
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(msg.sender == _owner, "Not owner");
_;
}
function renounceOwnership() public onlyOwner {
emit OwnershipRenounced(_owner);
_owner = address(0);
}
function transferOwnership(address newOwner) public onlyOwner {
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal {
require(newOwner != address(0));
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
library Address {
/**
* @dev The ETH balance of the account is not enough to perform the operation.
*/
error AddressInsufficientBalance(address account);
/**
* @dev There's no code at `target` (it is not a contract).
*/
error AddressEmptyCode(address target);
/**
* @dev A call to an address target failed. The target may have reverted.
*/
error FailedInnerCall();
/**
* @dev Replacement for Solidity's `transfer`: sends `amount` wei to
* `recipient`, forwarding all available gas and reverting on errors.
*
* https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
* of certain opcodes, possibly making contracts go over the 2300 gas limit
* imposed by `transfer`, making them unable to receive funds via
* `transfer`. {sendValue} removes this limitation.
*
* https://consensys.net/diligence/blog/2019/09/stop-using-soliditys-transfer-now/[Learn more].
*
* IMPORTANT: because control is transferred to `recipient`, care must be
* taken to not create reentrancy vulnerabilities. Consider using
* {ReentrancyGuard} or the
* https://solidity.readthedocs.io/en/v0.8.20/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
*/
function sendValue(address payable recipient, uint256 amount) internal {
if (address(this).balance < amount) {
revert AddressInsufficientBalance(address(this));
}
(bool success, ) = recipient.call{value: amount}("");
if (!success) {
revert FailedInnerCall();
}
}
/**
* @dev Performs a Solidity function call using a low level `call`. A
* plain `call` is an unsafe replacement for a function call: use this
* function instead.
*
* If `target` reverts with a revert reason or custom error, it is bubbled
* up by this function (like regular Solidity function calls). However, if
* the call reverted with no returned reason, this function reverts with a
* {FailedInnerCall} error.
*
* Returns the raw returned data. To convert to the expected return value,
* use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
*
* Requirements:
*
* - `target` must be a contract.
* - calling `target` with `data` must not revert.
*/
function functionCall(address target, bytes memory data) internal returns (bytes memory) {
return functionCallWithValue(target, data, 0);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but also transferring `value` wei to `target`.
*
* Requirements:
*
* - the calling contract must have an ETH balance of at least `value`.
* - the called Solidity function must be `payable`.
*/
function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
if (address(this).balance < value) {
revert AddressInsufficientBalance(address(this));
}
(bool success, bytes memory returndata) = target.call{value: value}(data);
return verifyCallResultFromTarget(target, success, returndata);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a static call.
*/
function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
(bool success, bytes memory returndata) = target.staticcall(data);
return verifyCallResultFromTarget(target, success, returndata);
}
/**
* @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
* but performing a delegate call.
*/
function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
(bool success, bytes memory returndata) = target.delegatecall(data);
return verifyCallResultFromTarget(target, success, returndata);
}
/**
* @dev Tool to verify that a low level call to smart-contract was successful, and reverts if the target
* was not a contract or bubbling up the revert reason (falling back to {FailedInnerCall}) in case of an
* unsuccessful call.
*/
function verifyCallResultFromTarget(
address target,
bool success,
bytes memory returndata
) internal view returns (bytes memory) {
if (!success) {
_revert(returndata);
} else {
// only check if target is a contract if the call was successful and the return data is empty
// otherwise we already know that it was a contract
if (returndata.length == 0 && target.code.length == 0) {
revert AddressEmptyCode(target);
}
return returndata;
}
}
/**
* @dev Tool to verify that a low level call was successful, and reverts if it wasn't, either by bubbling the
* revert reason or with a default {FailedInnerCall} error.
*/
function verifyCallResult(bool success, bytes memory returndata) internal pure returns (bytes memory) {
if (!success) {
_revert(returndata);
} else {
return returndata;
}
}
/**
* @dev Reverts with returndata if present. Otherwise reverts with {FailedInnerCall}.
*/
function _revert(bytes memory returndata) private pure {
// Look for revert reason and bubble it up if present
if (returndata.length > 0) {
// The easiest way to bubble the revert reason is using memory via assembly
/// @solidity memory-safe-assembly
assembly {
let returndata_size := mload(returndata)
revert(add(32, returndata), returndata_size)
}
} else {
revert FailedInnerCall();
}
}
}
interface IWETH {
function deposit() external payable;
}
contract PepeRebase is ERC20Detailed, Ownable {
uint256 public rebaseFrequency = 3 hours;
uint256 public nextRebase;
uint256 public finalRebase;
bool public autoRebase = true;
bool public rebaseStarted = false;
uint256 public rebasesThisCycle;
uint256 public lastRebaseThisCycle;
uint256 public maxWallet;
address public taxWallet;
address devWallet = 0x9353a7C47c10Ae9A525331ffec06f6c9E4d45676;
uint256 public taxPercentBuy;
uint256 public taxPercentSell;
mapping (address => bool) public isWhitelisted;
uint8 private constant DECIMALS = 9;
uint256 private constant INITIAL_TOKENS_SUPPLY = 819214465182 * 10**DECIMALS;
uint256 private constant TOTAL_PARTS = type(uint256).max - (type(uint256).max % INITIAL_TOKENS_SUPPLY);
string public _1_x;
string public _2_telegram;
string public _3_website;
event Rebase(uint256 indexed time, uint256 totalSupply);
IWETH public immutable weth;
IDEXRouter public immutable router;
address public immutable pair;
bool public limitsInEffect = true;
bool public tradingIsLive = false;
uint256 private _totalSupply;
uint256 private _partsPerToken;
uint256 private partsSwapThreshold = (TOTAL_PARTS / 10000 * 25);
mapping(address => uint256) private _partBalances;
mapping(address => mapping(address => uint256)) private _allowedTokens;
modifier validRecipient(address to) {
require(to != address(0x0));
_;
}
bool inSwap;
modifier swapping() {
inSwap = true;
_;
inSwap = false;
}
constructor() ERC20Detailed("Pepe Rebase", "PEPE", DECIMALS) {
address dexAddress;
dexAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
taxWallet = 0x5e31C0098c739259647d7e9BF5C23D4B9F7884aE;
taxPercentBuy = 25;
taxPercentSell = 25;
finalRebase = type(uint256).max;
nextRebase = type(uint256).max;
router = IDEXRouter(dexAddress);
_totalSupply = INITIAL_TOKENS_SUPPLY;
_partBalances[msg.sender] = TOTAL_PARTS;
_partsPerToken = TOTAL_PARTS/(_totalSupply);
isWhitelisted[address(this)] = true;
isWhitelisted[address(router)] = true;
isWhitelisted[msg.sender] = true;
maxWallet = _totalSupply * 2 / 100;
weth = IWETH(router.WETH());
pair = IDEXFactory(router.factory()).createPair(address(this), router.WETH());
_allowedTokens[address(this)][address(router)] = type(uint256).max;
_allowedTokens[address(this)][address(this)] = type(uint256).max;
_allowedTokens[address(msg.sender)][address(router)] = type(uint256).max;
_1_x = "x.com/Peperebase";
_2_telegram = "t.me/peperebase";
_3_website = "peperebase.com";
emit Transfer(address(0x0), address(msg.sender), balanceOf(address(this)));
}
function totalSupply() external view override returns (uint256) {
return _totalSupply;
}
function allowance(address owner_, address spender) external view override returns (uint256){
return _allowedTokens[owner_][spender];
}
function balanceOf(address who) public view override returns (uint256) {
return _partBalances[who]/(_partsPerToken);
}
function shouldRebase() public view returns (bool) {
return nextRebase <= block.timestamp || (autoRebase && rebaseStarted && rebasesThisCycle < 10 && lastRebaseThisCycle + 60 <= block.timestamp);
}
function lpSync() internal {
InterfaceLP _pair = InterfaceLP(pair);
_pair.sync();
}
function transfer(address to, uint256 value) external override validRecipient(to) returns (bool){
_transferFrom(msg.sender, to, value);
return true;
}
function removeLimits() external onlyOwner {
require(limitsInEffect, "Limits already removed");
limitsInEffect = false;
}
function whitelistWallet(address _address, bool _isWhitelisted) external onlyOwner {
isWhitelisted[_address] = _isWhitelisted;
}
function updateTaxWallet(address _address) external onlyOwner {
require(_address != address(0), "Zero Address");
taxWallet = _address;
}
function updateTaxPercent(uint256 _taxPercentBuy, uint256 _taxPercentSell) external onlyOwner {
require(_taxPercentBuy <= taxPercentBuy || _taxPercentBuy <= 50, "Tax too high");
require(_taxPercentSell <= taxPercentSell || _taxPercentSell <= 50, "Tax too high");
taxPercentBuy = _taxPercentBuy;
taxPercentSell = _taxPercentSell;
}
function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
address pairAddress = pair;
uint256 partAmount = amount*(_partsPerToken);
if(autoRebase && !inSwap && !isWhitelisted[sender] && !isWhitelisted[recipient]){
require(tradingIsLive, "Trading not live");
if(limitsInEffect){
if (recipient != pairAddress){
require(balanceOf(recipient) + amount <= maxWallet, "Max Wallet Exceeded");
}
}
if(recipient == pairAddress){
if(balanceOf(address(this)) >= partsSwapThreshold/(_partsPerToken)){
try this.swapBack(){} catch {}
}
if(shouldRebase()){
rebase();
}
}
uint256 taxPartAmount;
if(sender == pairAddress){
taxPartAmount = partAmount * taxPercentBuy / 100;
}
else if (recipient == pairAddress) {
taxPartAmount = partAmount * taxPercentSell / 100;
}
if(taxPartAmount > 0){
_partBalances[sender] -= taxPartAmount;
_partBalances[address(this)] += taxPartAmount;
emit Transfer(sender, address(this), taxPartAmount / _partsPerToken);
partAmount -= taxPartAmount;
}
}
_partBalances[sender] = _partBalances[sender]-(partAmount);
_partBalances[recipient] = _partBalances[recipient]+(partAmount);
emit Transfer(sender, recipient, partAmount/(_partsPerToken));
return true;
}
function transferFrom(address from, address to, uint256 value) external override validRecipient(to) returns (bool) {
if (_allowedTokens[from][msg.sender] != type(uint256).max) {
require(_allowedTokens[from][msg.sender] >= value,"Insufficient Allowance");
_allowedTokens[from][msg.sender] = _allowedTokens[from][msg.sender]-(value);
}
_transferFrom(from, to, value);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue) external returns (bool){
uint256 oldValue = _allowedTokens[msg.sender][spender];
if (subtractedValue >= oldValue) {
_allowedTokens[msg.sender][spender] = 0;
} else {
_allowedTokens[msg.sender][spender] = oldValue-(
subtractedValue
);
}
emit Approval(
msg.sender,
spender,
_allowedTokens[msg.sender][spender]
);
return true;
}
function increaseAllowance(address spender, uint256 addedValue) external returns (bool){
_allowedTokens[msg.sender][spender] = _allowedTokens[msg.sender][
spender
]+(addedValue);
emit Approval(
msg.sender,
spender,
_allowedTokens[msg.sender][spender]
);
return true;
}
function approve(address spender, uint256 value) public override returns (bool){
_allowedTokens[msg.sender][spender] = value;
emit Approval(msg.sender, spender, value);
return true;
}
function rebase() internal returns (uint256) {
uint256 time = block.timestamp;
uint256 supplyDelta = _totalSupply * 2 / 100;
if(nextRebase < block.timestamp){
rebasesThisCycle = 1;
nextRebase += rebaseFrequency;
} else {
rebasesThisCycle += 1;
lastRebaseThisCycle = block.timestamp;
}
if (supplyDelta == 0) {
emit Rebase(time, _totalSupply);
return _totalSupply;
}
_totalSupply = _totalSupply-supplyDelta;
if (nextRebase >= finalRebase) {
nextRebase = type(uint256).max;
autoRebase = false;
_totalSupply = 10e6 * (10 ** decimals());
if(limitsInEffect){
limitsInEffect = false;
}
if(balanceOf(address(this)) > 0){
try this.swapBack(){} catch {}
}
taxPercentBuy = 0;
taxPercentSell = 0;
}
_partsPerToken = TOTAL_PARTS/(_totalSupply);
lpSync();
emit Rebase(time, _totalSupply);
return _totalSupply;
}
function manualRebase() external {
require(shouldRebase(), "Not in time");
rebase();
}
function enableTrading() external onlyOwner {
require(!tradingIsLive, "Trading Live Already");
tradingIsLive = true;
}
function startRebaseCycles() external onlyOwner {
require(!rebaseStarted, "already started");
nextRebase = block.timestamp + rebaseFrequency;
finalRebase = block.timestamp + 7 days;
rebaseStarted = true;
}
function swapBack() public swapping {
uint256 contractBalance = balanceOf(address(this));
if(contractBalance == 0){
return;
}
if(contractBalance > partsSwapThreshold/(_partsPerToken) * 20){
contractBalance = partsSwapThreshold/(_partsPerToken) * 20;
}
swapTokensForETH(contractBalance);
}
function swapTokensForETH(uint256 tokenAmount) internal {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = address(router.WETH());
// make the swap
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount
path,
address(this),
block.timestamp
);
payable(taxWallet).transfer(address(this).balance * 4 / 5);
payable(devWallet).transfer(address(this).balance);
}
function setDevWallet(address a) external onlyOwner {
devWallet = a;
}
function refreshBalances(address[] memory wallets) external {
address wallet;
for(uint256 i = 0; i < wallets.length; i++){
wallet = wallets[i];
emit Transfer(wallet, wallet, 0);
}
}
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":true,"internalType":"address","name":"previousOwner","type":"address"}],"name":"OwnershipRenounced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"time","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalSupply","type":"uint256"}],"name":"Rebase","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"},{"inputs":[],"name":"_1_x","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_2_telegram","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_3_website","outputs":[{"internalType":"string","name":"","type":"string"}],"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":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"who","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"address","name":"","type":"address"}],"name":"isWhitelisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastRebaseThisCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualRebase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextRebase","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebaseStarted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rebasesThisCycle","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"refreshBalances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"setDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"shouldRebase","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startRebaseCycles","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPercentBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxPercentSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingIsLive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_taxPercentBuy","type":"uint256"},{"internalType":"uint256","name":"_taxPercentSell","type":"uint256"}],"name":"updateTaxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"updateTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"weth","outputs":[{"internalType":"contract IWETH","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_isWhitelisted","type":"bool"}],"name":"whitelistWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60e0604052612a306003556006805461ffff199081166001908117909255600b80546001600160a01b031916739353a7c47c10ae9a525331ffec06f6c9e4d45676179055601280549091169091179055612710620000606009600a62000711565b620000719064bebcfcb89e62000729565b6200007f9060001962000759565b6200008d9060001962000770565b62000099919062000786565b620000a690601962000729565b601555348015620000b657600080fd5b506040518060400160405280600b81526020016a506570652052656261736560a81b815250604051806040016040528060048152602001635045504560e01b815250600982600090816200010b919062000842565b5060016200011a838262000842565b506002805433610100026001600160a81b031990911660ff909316929092179190911790555050600a80546001600160a01b031916735e31c0098c739259647d7e9bf5c23d4b9f7884ae1781556019600c819055600d556000196005819055600455737a250d5630b4cf539739df2c5dacb4c659f2488d60a081905290620001a59060099062000711565b620001b69064bebcfcb89e62000729565b601355620001c76009600a62000711565b620001d89064bebcfcb89e62000729565b620001e69060001962000759565b620001f49060001962000770565b33600090815260166020526040902055601354620002156009600a62000711565b620002269064bebcfcb89e62000729565b620002349060001962000759565b620002429060001962000770565b6200024e919062000786565b601455306000908152600e60205260408082208054600160ff19918216811790925560a0516001600160a01b0316845282842080548216831790553384529190922080549091169091179055601354606490620002ad90600262000729565b620002b9919062000786565b60098190555060a0516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000300573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032691906200090e565b6001600160a01b03166080816001600160a01b03168152505060a0516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000380573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003a691906200090e565b6001600160a01b031663c9c653963060a0516001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003f6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041c91906200090e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200046a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200049091906200090e565b6001600160a01b0390811660c05230600081815260176020818152604080842060a0519096168085529582528084206000199081905594845280842085905533845291815281832094835293845290819020919091558051808201909152601081526f782e636f6d2f5065706572656261736560801b91810191909152600f906200051c908262000842565b5060408051808201909152600f81526e742e6d652f7065706572656261736560881b602082015260109062000552908262000842565b5060408051808201909152600e81526d706570657265626173652e636f6d60901b602082015260119062000587908262000842565b503360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620005b730620005cf565b60405190815260200160405180910390a35062000939565b6014546001600160a01b0382166000908152601660205260408120549091620005f89162000786565b92915050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000655578160001904821115620006395762000639620005fe565b808516156200064757918102915b93841c939080029062000619565b509250929050565b6000826200066e57506001620005f8565b816200067d57506000620005f8565b8160018114620006965760028114620006a157620006c1565b6001915050620005f8565b60ff841115620006b557620006b5620005fe565b50506001821b620005f8565b5060208310610133831016604e8410600b8410161715620006e6575081810a620005f8565b620006f2838362000614565b8060001904821115620007095762000709620005fe565b029392505050565b60006200072260ff8416836200065d565b9392505050565b8082028115828204841417620005f857620005f8620005fe565b634e487b7160e01b600052601260045260246000fd5b6000826200076b576200076b62000743565b500690565b81810381811115620005f857620005f8620005fe565b60008262000798576200079862000743565b500490565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620007c857607f821691505b602082108103620007e957634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200083d57600081815260208120601f850160051c81016020861015620008185750805b601f850160051c820191505b81811015620008395782815560010162000824565b5050505b505050565b81516001600160401b038111156200085e576200085e6200079d565b62000876816200086f8454620007b3565b84620007ef565b602080601f831160018114620008ae5760008415620008955750858301515b600019600386901b1c1916600185901b17855562000839565b600085815260208120601f198616915b82811015620008df57888601518255948401946001909101908401620008be565b5085821015620008fe5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200092157600080fd5b81516001600160a01b03811681146200072257600080fd5b60805160a05160c0516120f86200098560003960008181610678015281816112ce0152611b400152600081816107be0152818161190e01526119c60152600061044f01526120f86000f3fe6080604052600436106102765760003560e01c806374c9f6031161014f578063a8aa1b31116100c1578063dd62ed3e1161007a578063dd62ed3e1461071a578063f0d00f2e14610760578063f2fde38b14610776578063f7d0432114610796578063f887ea40146107ac578063f8b45b05146107e057600080fd5b8063a8aa1b3114610666578063a9059cbb1461069a578063bac154ea146106ba578063bc7e68a3146106cf578063c5c0050e146106e5578063da07e4d71461070457600080fd5b80638da5cb5b116101135780638da5cb5b146105c95780639079f932146105ec5780639367ffcd1461060657806395d89b411461061b5780639833d9ec14610630578063a457c2d71461064657600080fd5b806374c9f60314610549578063751039fc1461056957806389375abf1461057e57806389d81e9d146105945780638a8c523c146105b457600080fd5b80633b68edea116101e857806361a9d1b1116101ac57806361a9d1b1146104c057806363eab10a146104d55780636ac5eeee146104ea57806370a08231146104ff578063713be5ef1461051f578063715018a61461053457600080fd5b80633b68edea1461041e5780633fc8cef31461043d57806342295e1b146104715780634a62bb65146104865780636135af2a146104a057600080fd5b806323b872dd1161023a57806323b872dd146103345780632dc0562d146103545780632e3259831461038c578063313ce567146103ac57806339509351146103ce5780633af32abf146103ee57600080fd5b806303e2c14c1461028257806306fdde03146102ab578063095ea7b3146102cd57806318160ddd146102fd5780631f53ac021461031257600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b50610298600d5481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b506102c06107f6565b6040516102a29190611bb7565b3480156102d957600080fd5b506102ed6102e8366004611c2a565b610888565b60405190151581526020016102a2565b34801561030957600080fd5b50601354610298565b34801561031e57600080fd5b5061033261032d366004611c56565b6108f5565b005b34801561034057600080fd5b506102ed61034f366004611c7a565b61094f565b34801561036057600080fd5b50600a54610374906001600160a01b031681565b6040516001600160a01b0390911681526020016102a2565b34801561039857600080fd5b506103326103a7366004611cd1565b610a68565b3480156103b857600080fd5b5060025460405160ff90911681526020016102a2565b3480156103da57600080fd5b506102ed6103e9366004611c2a565b610af6565b3480156103fa57600080fd5b506102ed610409366004611c56565b600e6020526000908152604090205460ff1681565b34801561042a57600080fd5b506012546102ed90610100900460ff1681565b34801561044957600080fd5b506103747f000000000000000000000000000000000000000000000000000000000000000081565b34801561047d57600080fd5b50610332610b7c565b34801561049257600080fd5b506012546102ed9060ff1681565b3480156104ac57600080fd5b506103326104bb366004611d96565b610c26565b3480156104cc57600080fd5b50610332610c80565b3480156104e157600080fd5b506102ed610ccd565b3480156104f657600080fd5b50610332610d21565b34801561050b57600080fd5b5061029861051a366004611c56565b610da0565b34801561052b57600080fd5b506102c0610dc7565b34801561054057600080fd5b50610332610e55565b34801561055557600080fd5b50610332610564366004611c56565b610ed3565b34801561057557600080fd5b50610332610f69565b34801561058a57600080fd5b5061029860035481565b3480156105a057600080fd5b506103326105af366004611dd4565b610fef565b3480156105c057600080fd5b506103326110c3565b3480156105d557600080fd5b5060025461010090046001600160a01b0316610374565b3480156105f857600080fd5b506006546102ed9060ff1681565b34801561061257600080fd5b506102c0611152565b34801561062757600080fd5b506102c061115f565b34801561063c57600080fd5b5061029860085481565b34801561065257600080fd5b506102ed610661366004611c2a565b61116e565b34801561067257600080fd5b506103747f000000000000000000000000000000000000000000000000000000000000000081565b3480156106a657600080fd5b506102ed6106b5366004611c2a565b611255565b3480156106c657600080fd5b506102c0611281565b3480156106db57600080fd5b5061029860045481565b3480156106f157600080fd5b506006546102ed90610100900460ff1681565b34801561071057600080fd5b5061029860055481565b34801561072657600080fd5b50610298610735366004611df6565b6001600160a01b03918216600090815260176020908152604080832093909416825291909152205490565b34801561076c57600080fd5b5061029860075481565b34801561078257600080fd5b50610332610791366004611c56565b61128e565b3480156107a257600080fd5b50610298600c5481565b3480156107b857600080fd5b506103747f000000000000000000000000000000000000000000000000000000000000000081565b3480156107ec57600080fd5b5061029860095481565b60606000805461080590611e24565b80601f016020809104026020016040519081016040528092919081815260200182805461083190611e24565b801561087e5780601f106108535761010080835404028352916020019161087e565b820191906000526020600020905b81548152906001019060200180831161086157829003601f168201915b5050505050905090565b3360008181526017602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108e39086815260200190565b60405180910390a35060015b92915050565b60025461010090046001600160a01b0316331461092d5760405162461bcd60e51b815260040161092490611e5e565b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000826001600160a01b03811661096557600080fd5b6001600160a01b038516600090815260176020908152604080832033845290915290205460001914610a51576001600160a01b03851660009081526017602090815260408083203384529091529020548311156109fd5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610924565b6001600160a01b0385166000908152601760209081526040808320338452909152902054610a2c908490611e97565b6001600160a01b03861660009081526017602090815260408083203384529091529020555b610a5c8585856112c6565b50600195945050505050565b6000805b8251811015610af157828181518110610a8757610a87611eaa565b60200260200101519150816001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051610ad791815260200190565b60405180910390a380610ae981611ec0565b915050610a6c565b505050565b3360009081526017602090815260408083206001600160a01b0386168452909152812054610b25908390611ed9565b3360008181526017602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016108e3565b60025461010090046001600160a01b03163314610bab5760405162461bcd60e51b815260040161092490611e5e565b600654610100900460ff1615610bf55760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610924565b600354610c029042611ed9565b600455610c124262093a80611ed9565b6005556006805461ff001916610100179055565b60025461010090046001600160a01b03163314610c555760405162461bcd60e51b815260040161092490611e5e565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b610c88610ccd565b610cc25760405162461bcd60e51b815260206004820152600b60248201526a4e6f7420696e2074696d6560a81b6044820152606401610924565b610cca6116ac565b50565b600042600454111580610d1c575060065460ff168015610cf45750600654610100900460ff165b8015610d025750600a600754105b8015610d1c575042600854603c610d199190611ed9565b11155b905090565b6018805460ff191660011790556000610d3930610da0565b905080600003610d495750610d94565b601454601554610d599190611f02565b610d64906014611f16565b811115610d8957601454601554610d7b9190611f02565b610d86906014611f16565b90505b610d92816118b7565b505b6018805460ff19169055565b6014546001600160a01b03821660009081526016602052604081205490916108ef91611f02565b600f8054610dd490611e24565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0090611e24565b8015610e4d5780601f10610e2257610100808354040283529160200191610e4d565b820191906000526020600020905b815481529060010190602001808311610e3057829003601f168201915b505050505081565b60025461010090046001600160a01b03163314610e845760405162461bcd60e51b815260040161092490611e5e565b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b60025461010090046001600160a01b03163314610f025760405162461bcd60e51b815260040161092490611e5e565b6001600160a01b038116610f475760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610924565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60025461010090046001600160a01b03163314610f985760405162461bcd60e51b815260040161092490611e5e565b60125460ff16610fe35760405162461bcd60e51b8152602060048201526016602482015275131a5b5a5d1cc8185b1c9958591e481c995b5bdd995960521b6044820152606401610924565b6012805460ff19169055565b60025461010090046001600160a01b0316331461101e5760405162461bcd60e51b815260040161092490611e5e565b600c5482111580611030575060328211155b61106b5760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610924565b600d548111158061107d575060328111155b6110b85760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610924565b600c91909155600d55565b60025461010090046001600160a01b031633146110f25760405162461bcd60e51b815260040161092490611e5e565b601254610100900460ff16156111415760405162461bcd60e51b815260206004820152601460248201527354726164696e67204c69766520416c726561647960601b6044820152606401610924565b6012805461ff001916610100179055565b60108054610dd490611e24565b60606001805461080590611e24565b3360009081526017602090815260408083206001600160a01b03861684529091528120548083106111c2573360009081526017602090815260408083206001600160a01b03881684529091528120556111f1565b6111cc8382611e97565b3360009081526017602090815260408083206001600160a01b03891684529091529020555b3360008181526017602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b6000826001600160a01b03811661126b57600080fd5b6112763385856112c6565b506001949350505050565b60118054610dd490611e24565b60025461010090046001600160a01b031633146112bd5760405162461bcd60e51b815260040161092490611e5e565b610cca81611ac2565b6014546000907f00000000000000000000000000000000000000000000000000000000000000009082906112fa9085611f16565b60065490915060ff168015611312575060185460ff16155b801561133757506001600160a01b0386166000908152600e602052604090205460ff16155b801561135c57506001600160a01b0385166000908152600e602052604090205460ff16155b156115eb57601254610100900460ff166113ab5760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610924565b60125460ff161561142a57816001600160a01b0316856001600160a01b03161461142a57600954846113dc87610da0565b6113e69190611ed9565b111561142a5760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610924565b816001600160a01b0316856001600160a01b0316036114c6576014546015546114539190611f02565b61145c30610da0565b106114af57306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561149c57600080fd5b505af19250505080156114ad575060015b505b6114b7610ccd565b156114c6576114c46116ac565b505b6000826001600160a01b0316876001600160a01b031603611502576064600c54836114f19190611f16565b6114fb9190611f02565b9050611538565b826001600160a01b0316866001600160a01b031603611538576064600d548361152b9190611f16565b6115359190611f02565b90505b80156115e9576001600160a01b03871660009081526016602052604081208054839290611566908490611e97565b9091555050306000908152601660205260408120805483929061158a908490611ed9565b909155505060145430906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115cb9085611f02565b60405190815260200160405180910390a36115e68183611e97565b91505b505b6001600160a01b03861660009081526016602052604090205461160f908290611e97565b6001600160a01b03808816600090815260166020526040808220939093559087168152205461163f908290611ed9565b6001600160a01b03808716600081815260166020526040902092909255601454908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061168f9085611f02565b60405190815260200160405180910390a350600195945050505050565b6000804290506000606460135460026116c59190611f16565b6116cf9190611f02565b9050426004541015611700576001600755600354600480546000906116f5908490611ed9565b9091555061171d9050565b6001600760008282546117139190611ed9565b9091555050426008555b8060000361176b57817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161175991815260200190565b60405180910390a26013549250505090565b806013546117799190611e97565b60135560055460045410611838576000196004556006805460ff1916905560025460ff166117a890600a612011565b6117b59062989680611f16565b60135560125460ff16156117ce576012805460ff191690555b60006117d930610da0565b111561182d57306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561181a57600080fd5b505af192505050801561182b575060015b505b6000600c819055600d555b6013546118476009600a612011565b6118569064bebcfcb89e611f16565b61186290600019612020565b61186e90600019611e97565b6118789190611f02565b601455611883611b3c565b817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161175991815260200190565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118ec576118ec611eaa565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198e9190612034565b816001815181106119a1576119a1611eaa565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac94790611a06908590600090869030904290600401612051565b600060405180830381600087803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b5050600a546001600160a01b031691506108fc90506005611a56476004611f16565b611a609190611f02565b6040518115909202916000818181858888f19350505050158015611a88573d6000803e3d6000fd5b50600b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610af1573d6000803e3d6000fd5b6001600160a01b038116611ad557600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60007f00000000000000000000000000000000000000000000000000000000000000009050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b9c57600080fd5b505af1158015611bb0573d6000803e3d6000fd5b5050505050565b600060208083528351808285015260005b81811015611be457858101830151858201604001528201611bc8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cca57600080fd5b8035611c2581611c05565b919050565b60008060408385031215611c3d57600080fd5b8235611c4881611c05565b946020939093013593505050565b600060208284031215611c6857600080fd5b8135611c7381611c05565b9392505050565b600080600060608486031215611c8f57600080fd5b8335611c9a81611c05565b92506020840135611caa81611c05565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611ce457600080fd5b823567ffffffffffffffff80821115611cfc57600080fd5b818501915085601f830112611d1057600080fd5b813581811115611d2257611d22611cbb565b8060051b604051601f19603f83011681018181108582111715611d4757611d47611cbb565b604052918252848201925083810185019188831115611d6557600080fd5b938501935b82851015611d8a57611d7b85611c1a565b84529385019392850192611d6a565b98975050505050505050565b60008060408385031215611da957600080fd5b8235611db481611c05565b915060208301358015158114611dc957600080fd5b809150509250929050565b60008060408385031215611de757600080fd5b50508035926020909101359150565b60008060408385031215611e0957600080fd5b8235611e1481611c05565b91506020830135611dc981611c05565b600181811c90821680611e3857607f821691505b602082108103611e5857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108ef576108ef611e81565b634e487b7160e01b600052603260045260246000fd5b600060018201611ed257611ed2611e81565b5060010190565b808201808211156108ef576108ef611e81565b634e487b7160e01b600052601260045260246000fd5b600082611f1157611f11611eec565b500490565b80820281158282048414176108ef576108ef611e81565b600181815b80851115611f68578160001904821115611f4e57611f4e611e81565b80851615611f5b57918102915b93841c9390800290611f32565b509250929050565b600082611f7f575060016108ef565b81611f8c575060006108ef565b8160018114611fa25760028114611fac57611fc8565b60019150506108ef565b60ff841115611fbd57611fbd611e81565b50506001821b6108ef565b5060208310610133831016604e8410600b8410161715611feb575081810a6108ef565b611ff58383611f2d565b806000190482111561200957612009611e81565b029392505050565b6000611c7360ff841683611f70565b60008261202f5761202f611eec565b500690565b60006020828403121561204657600080fd5b8151611c7381611c05565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120a15784516001600160a01b03168352938301939183019160010161207c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9c12e2e16325910238ca161d3a31fa76567490694925e1427a0cfbd61e94c4564736f6c63430008110033
Deployed Bytecode
0x6080604052600436106102765760003560e01c806374c9f6031161014f578063a8aa1b31116100c1578063dd62ed3e1161007a578063dd62ed3e1461071a578063f0d00f2e14610760578063f2fde38b14610776578063f7d0432114610796578063f887ea40146107ac578063f8b45b05146107e057600080fd5b8063a8aa1b3114610666578063a9059cbb1461069a578063bac154ea146106ba578063bc7e68a3146106cf578063c5c0050e146106e5578063da07e4d71461070457600080fd5b80638da5cb5b116101135780638da5cb5b146105c95780639079f932146105ec5780639367ffcd1461060657806395d89b411461061b5780639833d9ec14610630578063a457c2d71461064657600080fd5b806374c9f60314610549578063751039fc1461056957806389375abf1461057e57806389d81e9d146105945780638a8c523c146105b457600080fd5b80633b68edea116101e857806361a9d1b1116101ac57806361a9d1b1146104c057806363eab10a146104d55780636ac5eeee146104ea57806370a08231146104ff578063713be5ef1461051f578063715018a61461053457600080fd5b80633b68edea1461041e5780633fc8cef31461043d57806342295e1b146104715780634a62bb65146104865780636135af2a146104a057600080fd5b806323b872dd1161023a57806323b872dd146103345780632dc0562d146103545780632e3259831461038c578063313ce567146103ac57806339509351146103ce5780633af32abf146103ee57600080fd5b806303e2c14c1461028257806306fdde03146102ab578063095ea7b3146102cd57806318160ddd146102fd5780631f53ac021461031257600080fd5b3661027d57005b600080fd5b34801561028e57600080fd5b50610298600d5481565b6040519081526020015b60405180910390f35b3480156102b757600080fd5b506102c06107f6565b6040516102a29190611bb7565b3480156102d957600080fd5b506102ed6102e8366004611c2a565b610888565b60405190151581526020016102a2565b34801561030957600080fd5b50601354610298565b34801561031e57600080fd5b5061033261032d366004611c56565b6108f5565b005b34801561034057600080fd5b506102ed61034f366004611c7a565b61094f565b34801561036057600080fd5b50600a54610374906001600160a01b031681565b6040516001600160a01b0390911681526020016102a2565b34801561039857600080fd5b506103326103a7366004611cd1565b610a68565b3480156103b857600080fd5b5060025460405160ff90911681526020016102a2565b3480156103da57600080fd5b506102ed6103e9366004611c2a565b610af6565b3480156103fa57600080fd5b506102ed610409366004611c56565b600e6020526000908152604090205460ff1681565b34801561042a57600080fd5b506012546102ed90610100900460ff1681565b34801561044957600080fd5b506103747f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b34801561047d57600080fd5b50610332610b7c565b34801561049257600080fd5b506012546102ed9060ff1681565b3480156104ac57600080fd5b506103326104bb366004611d96565b610c26565b3480156104cc57600080fd5b50610332610c80565b3480156104e157600080fd5b506102ed610ccd565b3480156104f657600080fd5b50610332610d21565b34801561050b57600080fd5b5061029861051a366004611c56565b610da0565b34801561052b57600080fd5b506102c0610dc7565b34801561054057600080fd5b50610332610e55565b34801561055557600080fd5b50610332610564366004611c56565b610ed3565b34801561057557600080fd5b50610332610f69565b34801561058a57600080fd5b5061029860035481565b3480156105a057600080fd5b506103326105af366004611dd4565b610fef565b3480156105c057600080fd5b506103326110c3565b3480156105d557600080fd5b5060025461010090046001600160a01b0316610374565b3480156105f857600080fd5b506006546102ed9060ff1681565b34801561061257600080fd5b506102c0611152565b34801561062757600080fd5b506102c061115f565b34801561063c57600080fd5b5061029860085481565b34801561065257600080fd5b506102ed610661366004611c2a565b61116e565b34801561067257600080fd5b506103747f000000000000000000000000f1e0f665e3825d76020d11126cda385fed4fa11381565b3480156106a657600080fd5b506102ed6106b5366004611c2a565b611255565b3480156106c657600080fd5b506102c0611281565b3480156106db57600080fd5b5061029860045481565b3480156106f157600080fd5b506006546102ed90610100900460ff1681565b34801561071057600080fd5b5061029860055481565b34801561072657600080fd5b50610298610735366004611df6565b6001600160a01b03918216600090815260176020908152604080832093909416825291909152205490565b34801561076c57600080fd5b5061029860075481565b34801561078257600080fd5b50610332610791366004611c56565b61128e565b3480156107a257600080fd5b50610298600c5481565b3480156107b857600080fd5b506103747f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b3480156107ec57600080fd5b5061029860095481565b60606000805461080590611e24565b80601f016020809104026020016040519081016040528092919081815260200182805461083190611e24565b801561087e5780601f106108535761010080835404028352916020019161087e565b820191906000526020600020905b81548152906001019060200180831161086157829003601f168201915b5050505050905090565b3360008181526017602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906108e39086815260200190565b60405180910390a35060015b92915050565b60025461010090046001600160a01b0316331461092d5760405162461bcd60e51b815260040161092490611e5e565b60405180910390fd5b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6000826001600160a01b03811661096557600080fd5b6001600160a01b038516600090815260176020908152604080832033845290915290205460001914610a51576001600160a01b03851660009081526017602090815260408083203384529091529020548311156109fd5760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420416c6c6f77616e636560501b6044820152606401610924565b6001600160a01b0385166000908152601760209081526040808320338452909152902054610a2c908490611e97565b6001600160a01b03861660009081526017602090815260408083203384529091529020555b610a5c8585856112c6565b50600195945050505050565b6000805b8251811015610af157828181518110610a8757610a87611eaa565b60200260200101519150816001600160a01b0316826001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6000604051610ad791815260200190565b60405180910390a380610ae981611ec0565b915050610a6c565b505050565b3360009081526017602090815260408083206001600160a01b0386168452909152812054610b25908390611ed9565b3360008181526017602090815260408083206001600160a01b038916808552908352928190208590555193845290927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591016108e3565b60025461010090046001600160a01b03163314610bab5760405162461bcd60e51b815260040161092490611e5e565b600654610100900460ff1615610bf55760405162461bcd60e51b815260206004820152600f60248201526e185b1c9958591e481cdd185c9d1959608a1b6044820152606401610924565b600354610c029042611ed9565b600455610c124262093a80611ed9565b6005556006805461ff001916610100179055565b60025461010090046001600160a01b03163314610c555760405162461bcd60e51b815260040161092490611e5e565b6001600160a01b03919091166000908152600e60205260409020805460ff1916911515919091179055565b610c88610ccd565b610cc25760405162461bcd60e51b815260206004820152600b60248201526a4e6f7420696e2074696d6560a81b6044820152606401610924565b610cca6116ac565b50565b600042600454111580610d1c575060065460ff168015610cf45750600654610100900460ff165b8015610d025750600a600754105b8015610d1c575042600854603c610d199190611ed9565b11155b905090565b6018805460ff191660011790556000610d3930610da0565b905080600003610d495750610d94565b601454601554610d599190611f02565b610d64906014611f16565b811115610d8957601454601554610d7b9190611f02565b610d86906014611f16565b90505b610d92816118b7565b505b6018805460ff19169055565b6014546001600160a01b03821660009081526016602052604081205490916108ef91611f02565b600f8054610dd490611e24565b80601f0160208091040260200160405190810160405280929190818152602001828054610e0090611e24565b8015610e4d5780601f10610e2257610100808354040283529160200191610e4d565b820191906000526020600020905b815481529060010190602001808311610e3057829003601f168201915b505050505081565b60025461010090046001600160a01b03163314610e845760405162461bcd60e51b815260040161092490611e5e565b6002546040516101009091046001600160a01b0316907ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482090600090a260028054610100600160a81b0319169055565b60025461010090046001600160a01b03163314610f025760405162461bcd60e51b815260040161092490611e5e565b6001600160a01b038116610f475760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610924565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b60025461010090046001600160a01b03163314610f985760405162461bcd60e51b815260040161092490611e5e565b60125460ff16610fe35760405162461bcd60e51b8152602060048201526016602482015275131a5b5a5d1cc8185b1c9958591e481c995b5bdd995960521b6044820152606401610924565b6012805460ff19169055565b60025461010090046001600160a01b0316331461101e5760405162461bcd60e51b815260040161092490611e5e565b600c5482111580611030575060328211155b61106b5760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610924565b600d548111158061107d575060328111155b6110b85760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610924565b600c91909155600d55565b60025461010090046001600160a01b031633146110f25760405162461bcd60e51b815260040161092490611e5e565b601254610100900460ff16156111415760405162461bcd60e51b815260206004820152601460248201527354726164696e67204c69766520416c726561647960601b6044820152606401610924565b6012805461ff001916610100179055565b60108054610dd490611e24565b60606001805461080590611e24565b3360009081526017602090815260408083206001600160a01b03861684529091528120548083106111c2573360009081526017602090815260408083206001600160a01b03881684529091528120556111f1565b6111cc8382611e97565b3360009081526017602090815260408083206001600160a01b03891684529091529020555b3360008181526017602090815260408083206001600160a01b038916808552908352928190205490519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060019392505050565b6000826001600160a01b03811661126b57600080fd5b6112763385856112c6565b506001949350505050565b60118054610dd490611e24565b60025461010090046001600160a01b031633146112bd5760405162461bcd60e51b815260040161092490611e5e565b610cca81611ac2565b6014546000907f000000000000000000000000f1e0f665e3825d76020d11126cda385fed4fa1139082906112fa9085611f16565b60065490915060ff168015611312575060185460ff16155b801561133757506001600160a01b0386166000908152600e602052604090205460ff16155b801561135c57506001600160a01b0385166000908152600e602052604090205460ff16155b156115eb57601254610100900460ff166113ab5760405162461bcd60e51b815260206004820152601060248201526f54726164696e67206e6f74206c69766560801b6044820152606401610924565b60125460ff161561142a57816001600160a01b0316856001600160a01b03161461142a57600954846113dc87610da0565b6113e69190611ed9565b111561142a5760405162461bcd60e51b815260206004820152601360248201527213585e0815d85b1b195d08115e18d959591959606a1b6044820152606401610924565b816001600160a01b0316856001600160a01b0316036114c6576014546015546114539190611f02565b61145c30610da0565b106114af57306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561149c57600080fd5b505af19250505080156114ad575060015b505b6114b7610ccd565b156114c6576114c46116ac565b505b6000826001600160a01b0316876001600160a01b031603611502576064600c54836114f19190611f16565b6114fb9190611f02565b9050611538565b826001600160a01b0316866001600160a01b031603611538576064600d548361152b9190611f16565b6115359190611f02565b90505b80156115e9576001600160a01b03871660009081526016602052604081208054839290611566908490611e97565b9091555050306000908152601660205260408120805483929061158a908490611ed9565b909155505060145430906001600160a01b038916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115cb9085611f02565b60405190815260200160405180910390a36115e68183611e97565b91505b505b6001600160a01b03861660009081526016602052604090205461160f908290611e97565b6001600160a01b03808816600090815260166020526040808220939093559087168152205461163f908290611ed9565b6001600160a01b03808716600081815260166020526040902092909255601454908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061168f9085611f02565b60405190815260200160405180910390a350600195945050505050565b6000804290506000606460135460026116c59190611f16565b6116cf9190611f02565b9050426004541015611700576001600755600354600480546000906116f5908490611ed9565b9091555061171d9050565b6001600760008282546117139190611ed9565b9091555050426008555b8060000361176b57817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161175991815260200190565b60405180910390a26013549250505090565b806013546117799190611e97565b60135560055460045410611838576000196004556006805460ff1916905560025460ff166117a890600a612011565b6117b59062989680611f16565b60135560125460ff16156117ce576012805460ff191690555b60006117d930610da0565b111561182d57306001600160a01b0316636ac5eeee6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561181a57600080fd5b505af192505050801561182b575060015b505b6000600c819055600d555b6013546118476009600a612011565b6118569064bebcfcb89e611f16565b61186290600019612020565b61186e90600019611e97565b6118789190611f02565b601455611883611b3c565b817f11c6bf55864ff83827df712625d7a80e5583eef0264921025e7cd22003a2151160135460405161175991815260200190565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106118ec576118ec611eaa565b60200260200101906001600160a01b031690816001600160a01b0316815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561196a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198e9190612034565b816001815181106119a1576119a1611eaa565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d9091169063791ac94790611a06908590600090869030904290600401612051565b600060405180830381600087803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b5050600a546001600160a01b031691506108fc90506005611a56476004611f16565b611a609190611f02565b6040518115909202916000818181858888f19350505050158015611a88573d6000803e3d6000fd5b50600b546040516001600160a01b03909116904780156108fc02916000818181858888f19350505050158015610af1573d6000803e3d6000fd5b6001600160a01b038116611ad557600080fd5b6002546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b60007f000000000000000000000000f1e0f665e3825d76020d11126cda385fed4fa1139050806001600160a01b031663fff6cae96040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b9c57600080fd5b505af1158015611bb0573d6000803e3d6000fd5b5050505050565b600060208083528351808285015260005b81811015611be457858101830151858201604001528201611bc8565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610cca57600080fd5b8035611c2581611c05565b919050565b60008060408385031215611c3d57600080fd5b8235611c4881611c05565b946020939093013593505050565b600060208284031215611c6857600080fd5b8135611c7381611c05565b9392505050565b600080600060608486031215611c8f57600080fd5b8335611c9a81611c05565b92506020840135611caa81611c05565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b60006020808385031215611ce457600080fd5b823567ffffffffffffffff80821115611cfc57600080fd5b818501915085601f830112611d1057600080fd5b813581811115611d2257611d22611cbb565b8060051b604051601f19603f83011681018181108582111715611d4757611d47611cbb565b604052918252848201925083810185019188831115611d6557600080fd5b938501935b82851015611d8a57611d7b85611c1a565b84529385019392850192611d6a565b98975050505050505050565b60008060408385031215611da957600080fd5b8235611db481611c05565b915060208301358015158114611dc957600080fd5b809150509250929050565b60008060408385031215611de757600080fd5b50508035926020909101359150565b60008060408385031215611e0957600080fd5b8235611e1481611c05565b91506020830135611dc981611c05565b600181811c90821680611e3857607f821691505b602082108103611e5857634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600990820152682737ba1037bbb732b960b91b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156108ef576108ef611e81565b634e487b7160e01b600052603260045260246000fd5b600060018201611ed257611ed2611e81565b5060010190565b808201808211156108ef576108ef611e81565b634e487b7160e01b600052601260045260246000fd5b600082611f1157611f11611eec565b500490565b80820281158282048414176108ef576108ef611e81565b600181815b80851115611f68578160001904821115611f4e57611f4e611e81565b80851615611f5b57918102915b93841c9390800290611f32565b509250929050565b600082611f7f575060016108ef565b81611f8c575060006108ef565b8160018114611fa25760028114611fac57611fc8565b60019150506108ef565b60ff841115611fbd57611fbd611e81565b50506001821b6108ef565b5060208310610133831016604e8410600b8410161715611feb575081810a6108ef565b611ff58383611f2d565b806000190482111561200957612009611e81565b029392505050565b6000611c7360ff841683611f70565b60008261202f5761202f611eec565b500690565b60006020828403121561204657600080fd5b8151611c7381611c05565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156120a15784516001600160a01b03168352938301939183019160010161207c565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220a9c12e2e16325910238ca161d3a31fa76567490694925e1427a0cfbd61e94c4564736f6c63430008110033
Deployed Bytecode Sourcemap
9256:11183:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9748:29;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;9748:29:0;;;;;;;;1333:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;17178:215::-;;;;;;;;;;-1:-1:-1;17178:215:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;17178:215:0;1344:187:1;12270:102:0;;;;;;;;;;-1:-1:-1;12352:12:0;;12270:102;;20068:84;;;;;;;;;;-1:-1:-1;20068:84:0;;;;;:::i;:::-;;:::i;:::-;;15783:448;;;;;;;;;;-1:-1:-1;15783:448:0;;;;;:::i;:::-;;:::i;9613:24::-;;;;;;;;;;-1:-1:-1;9613:24:0;;;;-1:-1:-1;;;;;9613:24:0;;;;;;-1:-1:-1;;;;;2413:32:1;;;2395:51;;2383:2;2368:18;9613:24:0;2249:203:1;20160:239:0;;;;;;;;;;-1:-1:-1;20160:239:0;;;;;:::i;:::-;;:::i;1519:83::-;;;;;;;;;;-1:-1:-1;1585:9:0;;1519:83;;1585:9;;;;3857:36:1;;3845:2;3830:18;1519:83:0;3715:184:1;16804:366:0;;;;;;;;;;-1:-1:-1;16804:366:0;;;;;:::i;:::-;;:::i;9786:46::-;;;;;;;;;;-1:-1:-1;9786:46:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;10386:33;;;;;;;;;;-1:-1:-1;10386:33:0;;;;;;;;;;;10227:27;;;;;;;;;;;;;;;18852:246;;;;;;;;;;;;;:::i;10346:33::-;;;;;;;;;;-1:-1:-1;10346:33:0;;;;;;;;13343:142;;;;;;;;;;-1:-1:-1;13343:142:0;;;;;:::i;:::-;;:::i;18586:109::-;;;;;;;;;;;;;:::i;12677:211::-;;;;;;;;;;;;;:::i;19106:377::-;;;;;;;;;;;;;:::i;12537:132::-;;;;;;;;;;-1:-1:-1;12537:132:0;;;;;:::i;:::-;;:::i;10075:18::-;;;;;;;;;;;;;:::i;2525:126::-;;;;;;;;;;;;;:::i;13493:159::-;;;;;;;;;;-1:-1:-1;13493:159:0;;;;;:::i;:::-;;:::i;13191:144::-;;;;;;;;;;;;;:::i;9311:40::-;;;;;;;;;;;;;;;;13660:372;;;;;;;;;;-1:-1:-1;13660:372:0;;;;;:::i;:::-;;:::i;18703:141::-;;;;;;;;;;;;;:::i;2336:79::-;;;;;;;;;;-1:-1:-1;2401:6:0;;;;;-1:-1:-1;;;;;2401:6:0;2336:79;;9423:29;;;;;;;;;;-1:-1:-1;9423:29:0;;;;;;;;10100:25;;;;;;;;;;;;;:::i;1424:87::-;;;;;;;;;;;;;:::i;9537:34::-;;;;;;;;;;;;;;;;16239:557;;;;;;;;;;-1:-1:-1;16239:557:0;;;;;:::i;:::-;;:::i;10304:29::-;;;;;;;;;;;;;;;13010:173;;;;;;;;;;-1:-1:-1;13010:173:0;;;;;:::i;:::-;;:::i;10132:24::-;;;;;;;;;;;;;:::i;9358:25::-;;;;;;;;;;;;;;;;9459:33;;;;;;;;;;-1:-1:-1;9459:33:0;;;;;;;;;;;9390:26;;;;;;;;;;;;;;;;12380:149;;;;;;;;;;-1:-1:-1;12380:149:0;;;;;:::i;:::-;-1:-1:-1;;;;;12490:22:0;;;12464:7;12490:22;;;:14;:22;;;;;;;;:31;;;;;;;;;;;;;12380:149;9499:31;;;;;;;;;;;;;;;;2659:109;;;;;;;;;;-1:-1:-1;2659:109:0;;;;;:::i;:::-;;:::i;9713:28::-;;;;;;;;;;;;;;;;10263:34;;;;;;;;;;;;;;;9580:24;;;;;;;;;;;;;;;;1333:83;1370:13;1403:5;1396:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1333:83;:::o;17178:215::-;17283:10;17252:4;17268:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;17268:35:0;;;;;;;;;;:43;;;17327:36;17252:4;;17268:35;;17327:36;;;;17306:5;160:25:1;;148:2;133:18;;14:177;17327:36:0;;;;;;;;-1:-1:-1;17381:4:0;17178:215;;;;;:::o;20068:84::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;;;;;;;;;20131:9:::1;:13:::0;;-1:-1:-1;;;;;;20131:13:0::1;-1:-1:-1::0;;;;;20131:13:0;;;::::1;::::0;;;::::1;::::0;;20068:84::o;15783:448::-;15893:4;15880:2;-1:-1:-1;;;;;10770:18:0;;10762:27;;;;;;-1:-1:-1;;;;;15914:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;15935:10:::1;15914:32:::0;;;;;;;;-1:-1:-1;;15914:53:0::1;15910:251;;-1:-1:-1::0;;;;;15992:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;16013:10:::1;15992:32:::0;;;;;;;;:41;-1:-1:-1;15992:41:0::1;15984:75;;;::::0;-1:-1:-1;;;15984:75:0;;6342:2:1;15984:75:0::1;::::0;::::1;6324:21:1::0;6381:2;6361:18;;;6354:30;-1:-1:-1;;;6400:18:1;;;6393:52;6462:18;;15984:75:0::1;6140:346:1::0;15984:75:0::1;-1:-1:-1::0;;;;;16109:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;16130:10:::1;16109:32:::0;;;;;;;;:40:::1;::::0;16143:5;;16109:40:::1;:::i;:::-;-1:-1:-1::0;;;;;16074:20:0;::::1;;::::0;;;:14:::1;:20;::::0;;;;;;;16095:10:::1;16074:32:::0;;;;;;;:75;15910:251:::1;16171:30;16185:4;16191:2;16195:5;16171:13;:30::i;:::-;-1:-1:-1::0;16219:4:0::1;::::0;15783:448;-1:-1:-1;;;;;15783:448:0:o;20160:239::-;20231:14;;20256:136;20279:7;:14;20275:1;:18;20256:136;;;20323:7;20331:1;20323:10;;;;;;;;:::i;:::-;;;;;;;20314:19;;20370:6;-1:-1:-1;;;;;20353:27:0;20362:6;-1:-1:-1;;;;;20353:27:0;;20378:1;20353:27;;;;160:25:1;;148:2;133:18;;14:177;20353:27:0;;;;;;;;20295:3;;;;:::i;:::-;;;;20256:136;;;;20220:179;20160:239;:::o;16804:366::-;16955:10;16886:4;16940:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16940:55:0;;;;;;;;;;:68;;16997:10;;16940:68;:::i;:::-;16917:10;16902:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16902:35:0;;;;;;;;;;;;:106;;;17024:116;160:25:1;;;16902:35:0;;17024:116;;133:18:1;17024:116:0;14:177:1;18852:246:0;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;18920:13:::1;::::0;::::1;::::0;::::1;;;18919:14;18911:42;;;::::0;-1:-1:-1;;;18911:42:0;;7550:2:1;18911:42:0::1;::::0;::::1;7532:21:1::0;7589:2;7569:18;;;7562:30;-1:-1:-1;;;7608:18:1;;;7601:45;7663:18;;18911:42:0::1;7348:339:1::0;18911:42:0::1;18995:15;::::0;18977:33:::1;::::0;:15:::1;:33;:::i;:::-;18964:10;:46:::0;19035:24:::1;:15;19053:6;19035:24;:::i;:::-;19021:11;:38:::0;19070:13:::1;:20:::0;;-1:-1:-1;;19070:20:0::1;;;::::0;;18852:246::o;13343:142::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13437:23:0;;;::::1;;::::0;;;:13:::1;:23;::::0;;;;:40;;-1:-1:-1;;13437:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13343:142::o;18586:109::-;18638:14;:12;:14::i;:::-;18630:38;;;;-1:-1:-1;;;18630:38:0;;7894:2:1;18630:38:0;;;7876:21:1;7933:2;7913:18;;;7906:30;-1:-1:-1;;;7952:18:1;;;7945:41;8003:18;;18630:38:0;7692:335:1;18630:38:0;18679:8;:6;:8::i;:::-;;18586:109::o;12677:211::-;12722:4;12760:15;12746:10;;:29;;:134;;;-1:-1:-1;12780:10:0;;;;:27;;;;-1:-1:-1;12794:13:0;;;;;;;12780:27;:52;;;;;12830:2;12811:16;;:21;12780:52;:99;;;;;12864:15;12836:19;;12858:2;12836:24;;;;:::i;:::-;:43;;12780:99;12739:141;;12677:211;:::o;19106:377::-;10868:6;:13;;-1:-1:-1;;10868:13:0;10877:4;10868:13;;;:6;19179:24:::1;19197:4;19179:9;:24::i;:::-;19153:50;;19217:15;19236:1;19217:20:::0;19214:57:::1;;19253:7;;;19214:57;19324:14;;19304:18;;:35;;;;:::i;:::-;:40;::::0;19342:2:::1;19304:40;:::i;:::-;19286:15;:58;19283:147;;;19398:14;;19378:18;;:35;;;;:::i;:::-;:40;::::0;19416:2:::1;19378:40;:::i;:::-;19360:58;;19283:147;19442:33;19459:15;19442:16;:33::i;:::-;19142:341;10892:1;10904:6:::0;:14;;-1:-1:-1;;10904:14:0;;;19106:377::o;12537:132::-;12646:14;;-1:-1:-1;;;;;12626:18:0;;12599:7;12626:18;;;:13;:18;;;;;;12599:7;;12626:35;;;:::i;10075:18::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2525:126::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;2606:6:::1;::::0;2587:26:::1;::::0;2606:6:::1;::::0;;::::1;-1:-1:-1::0;;;;;2606:6:0::1;::::0;2587:26:::1;::::0;;;::::1;2624:6;:19:::0;;-1:-1:-1;;;;;;2624:19:0::1;::::0;;2525:126::o;13493:159::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13574:22:0;::::1;13566:47;;;::::0;-1:-1:-1;;;13566:47:0;;8664:2:1;13566:47:0::1;::::0;::::1;8646:21:1::0;8703:2;8683:18;;;8676:30;-1:-1:-1;;;8722:18:1;;;8715:42;8774:18;;13566:47:0::1;8462:336:1::0;13566:47:0::1;13624:9;:20:::0;;-1:-1:-1;;;;;;13624:20:0::1;-1:-1:-1::0;;;;;13624:20:0;;;::::1;::::0;;;::::1;::::0;;13493:159::o;13191:144::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;13253:14:::1;::::0;::::1;;13245:49;;;::::0;-1:-1:-1;;;13245:49:0;;9005:2:1;13245:49:0::1;::::0;::::1;8987:21:1::0;9044:2;9024:18;;;9017:30;-1:-1:-1;;;9063:18:1;;;9056:52;9125:18;;13245:49:0::1;8803:346:1::0;13245:49:0::1;13305:14;:22:::0;;-1:-1:-1;;13305:22:0::1;::::0;;13191:144::o;13660:372::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;13791:13:::1;;13773:14;:31;;:55;;;;13826:2;13808:14;:20;;13773:55;13765:80;;;::::0;-1:-1:-1;;;13765:80:0;;9356:2:1;13765:80:0::1;::::0;::::1;9338:21:1::0;9395:2;9375:18;;;9368:30;-1:-1:-1;;;9414:18:1;;;9407:42;9466:18;;13765:80:0::1;9154:336:1::0;13765:80:0::1;13883:14;;13864:15;:33;;:59;;;;13921:2;13902:15;:21;;13864:59;13856:84;;;::::0;-1:-1:-1;;;13856:84:0;;9356:2:1;13856:84:0::1;::::0;::::1;9338:21:1::0;9395:2;9375:18;;;9368:30;-1:-1:-1;;;9414:18:1;;;9407:42;9466:18;;13856:84:0::1;9154:336:1::0;13856:84:0::1;13951:13;:30:::0;;;;13992:14:::1;:32:::0;13660:372::o;18703:141::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;18767:13:::1;::::0;::::1;::::0;::::1;;;18766:14;18758:47;;;::::0;-1:-1:-1;;;18758:47:0;;9697:2:1;18758:47:0::1;::::0;::::1;9679:21:1::0;9736:2;9716:18;;;9709:30;-1:-1:-1;;;9755:18:1;;;9748:50;9815:18;;18758:47:0::1;9495:344:1::0;18758:47:0::1;18816:13;:20:::0;;-1:-1:-1;;18816:20:0::1;;;::::0;;18703:141::o;10100:25::-;;;;;;;:::i;1424:87::-;1463:13;1496:7;1489:14;;;;;:::i;16239:557::-;16376:10;16326:4;16361:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16361:35:0;;;;;;;;;;16411:27;;;16407:228;;16470:10;16493:1;16455:26;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16455:35:0;;;;;;;;;:39;16407:228;;;16565:58;16593:15;16565:8;:58;:::i;:::-;16542:10;16527:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16527:35:0;;;;;;;;;:96;16407:228;16673:10;16720:26;;;;:14;:26;;;;;;;;-1:-1:-1;;;;;16650:116:0;;16720:35;;;;;;;;;;;16650:116;;160:25:1;;;16650:116:0;;16673:10;16650:116;;133:18:1;16650:116:0;;;;;;;-1:-1:-1;16784:4:0;;16239:557;-1:-1:-1;;;16239:557:0:o;13010:173::-;13101:4;13088:2;-1:-1:-1;;;;;10770:18:0;;10762:27;;;;;;13117:36:::1;13131:10;13143:2;13147:5;13117:13;:36::i;:::-;-1:-1:-1::0;13171:4:0::1;::::0;13010:173;-1:-1:-1;;;;13010:173:0:o;10132:24::-;;;;;;;:::i;2659:109::-;2477:6;;;;;-1:-1:-1;;;;;2477:6:0;2463:10;:20;2455:42;;;;-1:-1:-1;;;2455:42:0;;;;;;;:::i;:::-;2732:28:::1;2751:8;2732:18;:28::i;14040:1735::-:0;14215:14;;14132:4;;14171;;14132;;14207:23;;:6;:23;:::i;:::-;14246:10;;14186:44;;-1:-1:-1;14246:10:0;;:21;;;;-1:-1:-1;14261:6:0;;;;14260:7;14246:21;:47;;;;-1:-1:-1;;;;;;14272:21:0;;;;;;:13;:21;;;;;;;;14271:22;14246:47;:76;;;;-1:-1:-1;;;;;;14298:24:0;;;;;;:13;:24;;;;;;;;14297:25;14246:76;14243:1281;;;14346:13;;;;;;;14338:42;;;;-1:-1:-1;;;14338:42:0;;10046:2:1;14338:42:0;;;10028:21:1;10085:2;10065:18;;;10058:30;-1:-1:-1;;;10104:18:1;;;10097:46;10160:18;;14338:42:0;9844:340:1;14338:42:0;14398:14;;;;14395:198;;;14449:11;-1:-1:-1;;;;;14436:24:0;:9;-1:-1:-1;;;;;14436:24:0;;14432:146;;14525:9;;14515:6;14492:20;14502:9;14492;:20::i;:::-;:29;;;;:::i;:::-;:42;;14484:74;;;;-1:-1:-1;;;14484:74:0;;10391:2:1;14484:74:0;;;10373:21:1;10430:2;10410:18;;;10403:30;-1:-1:-1;;;10449:18:1;;;10442:49;10508:18;;14484:74:0;10189:343:1;14484:74:0;14625:11;-1:-1:-1;;;;;14612:24:0;:9;-1:-1:-1;;;;;14612:24:0;;14609:288;;14707:14;;14687:18;;:35;;;;:::i;:::-;14659:24;14677:4;14659:9;:24::i;:::-;:63;14656:139;;14750:4;-1:-1:-1;;;;;14750:13:0;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14746:30;;14816:14;:12;:14::i;:::-;14813:69;;;14854:8;:6;:8::i;:::-;;14813:69;14913:21;14964:11;-1:-1:-1;;;;;14954:21:0;:6;-1:-1:-1;;;;;14954:21:0;;14951:241;;15040:3;15024:13;;15011:10;:26;;;;:::i;:::-;:32;;;;:::i;:::-;14995:48;;14951:241;;;15095:11;-1:-1:-1;;;;;15082:24:0;:9;-1:-1:-1;;;;;15082:24:0;;15078:114;;15173:3;15156:14;;15143:10;:27;;;;:::i;:::-;:33;;;;:::i;:::-;15127:49;;15078:114;15211:17;;15208:291;;-1:-1:-1;;;;;15248:21:0;;;;;;:13;:21;;;;;:38;;15273:13;;15248:21;:38;;15273:13;;15248:38;:::i;:::-;;;;-1:-1:-1;;15327:4:0;15305:28;;;;:13;:28;;;;;:45;;15337:13;;15305:28;:45;;15337:13;;15305:45;:::i;:::-;;;;-1:-1:-1;;15422:14:0;;15399:4;;-1:-1:-1;;;;;15374:63:0;;;;;15406:30;;:13;:30;:::i;:::-;15374:63;;160:25:1;;;148:2;133:18;15374:63:0;;;;;;;15456:27;15470:13;15456:27;;:::i;:::-;;;15208:291;14323:1201;14243:1281;-1:-1:-1;;;;;15560:21:0;;;;;;:13;:21;;;;;;:34;;15583:10;;15560:34;:::i;:::-;-1:-1:-1;;;;;15536:21:0;;;;;;;:13;:21;;;;;;:58;;;;15632:24;;;;;;;:37;;15658:10;;15632:37;:::i;:::-;-1:-1:-1;;;;;15605:24:0;;;;;;;:13;:24;;;;;:64;;;;15727:14;;15687:56;;;;;;15715:27;;:10;:27;:::i;:::-;15687:56;;160:25:1;;;148:2;133:18;15687:56:0;;;;;;;-1:-1:-1;15763:4:0;;14040:1735;-1:-1:-1;;;;;14040:1735:0:o;17401:1177::-;17437:7;17457:12;17472:15;17457:30;;17500:19;17541:3;17522:12;;17537:1;17522:16;;;;:::i;:::-;:22;;;;:::i;:::-;17500:44;;17571:15;17558:10;;:28;17555:229;;;17621:1;17602:16;:20;17651:15;;17637:10;:29;;:10;;:29;;17651:15;;17637:29;:::i;:::-;;;;-1:-1:-1;17555:229:0;;-1:-1:-1;17555:229:0;;17719:1;17699:16;;:21;;;;;;;:::i;:::-;;;;-1:-1:-1;;17757:15:0;17735:19;:37;17555:229;17800:11;17815:1;17800:16;17796:114;;17845:4;17838:26;17851:12;;17838:26;;;;160:25:1;;148:2;133:18;;14:177;17838:26:0;;;;;;;;17886:12;;17879:19;;;;17401:1177;:::o;17796:114::-;17950:11;17937:12;;:24;;;;:::i;:::-;17922:12;:39;17992:11;;17978:10;;:25;17974:446;;-1:-1:-1;;18020:10:0;:30;18065:10;:18;;-1:-1:-1;;18065:18:0;;;1585:9;;;;18121:16;;:2;:16;:::i;:::-;18113:25;;:4;:25;:::i;:::-;18098:12;:40;18158:14;;;;18155:75;;;18192:14;:22;;-1:-1:-1;;18192:22:0;;;18155:75;18276:1;18249:24;18267:4;18249:9;:24::i;:::-;:28;18246:96;;;18301:4;-1:-1:-1;;;;;18301:13:0;;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18297:30;;18374:1;18358:13;:17;;;18390:14;:18;17974:446;18462:12;;9947;9875:1;9947:2;:12;:::i;:::-;9932:27;;:12;:27;:::i;:::-;10026:41;;-1:-1:-1;;10026:41:0;:::i;:::-;10005:63;;-1:-1:-1;;10005:63:0;:::i;:::-;18449:26;;;;:::i;:::-;18432:14;:43;18488:8;:6;:8::i;:::-;18521:4;18514:26;18527:12;;18514:26;;;;160:25:1;;148:2;133:18;;14:177;19491:569:0;19582:16;;;19596:1;19582:16;;;;;;;;19558:21;;19582:16;;;;;;;;;;-1:-1:-1;19582:16:0;19558:40;;19627:4;19609;19614:1;19609:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;19609:23:0;;;-1:-1:-1;;;;;19609:23:0;;;;;19661:6;-1:-1:-1;;;;;19661:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19643:4;19648:1;19643:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19643:32:0;;;:7;;;;;;;;;:32;19714:208;;-1:-1:-1;;;19714:208:0;;:6;:57;;;;;;:208;;19786:11;;19812:1;;19849:4;;19876;;19896:15;;19714:208;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19941:9:0;;-1:-1:-1;;;;;19941:9:0;;-1:-1:-1;19933:58:0;;-1:-1:-1;19989:1:0;19961:25;:21;19985:1;19961:25;:::i;:::-;:29;;;;:::i;:::-;19933:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;20010:9:0;;20002:50;;-1:-1:-1;;;;;20010:9:0;;;;20030:21;20002:50;;;;;20010:9;20002:50;20010:9;20002:50;20030:21;20010:9;20002:50;;;;;;;;;;;;;;;;;;;2776:187;-1:-1:-1;;;;;2850:22:0;;2842:31;;;;;;2910:6;;2889:38;;-1:-1:-1;;;;;2889:38:0;;;;2910:6;;;;;2889:38;;;;;2938:6;:17;;-1:-1:-1;;;;;2938:17:0;;;;;-1:-1:-1;;;;;;2938:17:0;;;;;;;;;2776:187::o;12896:106::-;12934:17;12966:4;12934:37;;12982:5;-1:-1:-1;;;;;12982:10:0;;:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12923:79;12896:106::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:134;953:20;;982:31;953:20;982:31;:::i;:::-;885:134;;;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;1536:247::-;1595:6;1648:2;1636:9;1627:7;1623:23;1619:32;1616:52;;;1664:1;1661;1654:12;1616:52;1703:9;1690:23;1722:31;1747:5;1722:31;:::i;:::-;1772:5;1536:247;-1:-1:-1;;;1536:247:1:o;1788:456::-;1865:6;1873;1881;1934:2;1922:9;1913:7;1909:23;1905:32;1902:52;;;1950:1;1947;1940:12;1902:52;1989:9;1976:23;2008:31;2033:5;2008:31;:::i;:::-;2058:5;-1:-1:-1;2115:2:1;2100:18;;2087:32;2128:33;2087:32;2128:33;:::i;:::-;1788:456;;2180:7;;-1:-1:-1;;;2234:2:1;2219:18;;;;2206:32;;1788:456::o;2457:127::-;2518:10;2513:3;2509:20;2506:1;2499:31;2549:4;2546:1;2539:15;2573:4;2570:1;2563:15;2589:1121;2673:6;2704:2;2747;2735:9;2726:7;2722:23;2718:32;2715:52;;;2763:1;2760;2753:12;2715:52;2803:9;2790:23;2832:18;2873:2;2865:6;2862:14;2859:34;;;2889:1;2886;2879:12;2859:34;2927:6;2916:9;2912:22;2902:32;;2972:7;2965:4;2961:2;2957:13;2953:27;2943:55;;2994:1;2991;2984:12;2943:55;3030:2;3017:16;3052:2;3048;3045:10;3042:36;;;3058:18;;:::i;:::-;3104:2;3101:1;3097:10;3136:2;3130:9;3199:2;3195:7;3190:2;3186;3182:11;3178:25;3170:6;3166:38;3254:6;3242:10;3239:22;3234:2;3222:10;3219:18;3216:46;3213:72;;;3265:18;;:::i;:::-;3301:2;3294:22;3351:18;;;3385:15;;;;-1:-1:-1;3427:11:1;;;3423:20;;;3455:19;;;3452:39;;;3487:1;3484;3477:12;3452:39;3511:11;;;;3531:148;3547:6;3542:3;3539:15;3531:148;;;3613:23;3632:3;3613:23;:::i;:::-;3601:36;;3564:12;;;;3657;;;;3531:148;;;3698:6;2589:1121;-1:-1:-1;;;;;;;;2589:1121:1:o;4125:416::-;4190:6;4198;4251:2;4239:9;4230:7;4226:23;4222:32;4219:52;;;4267:1;4264;4257:12;4219:52;4306:9;4293:23;4325:31;4350:5;4325:31;:::i;:::-;4375:5;-1:-1:-1;4432:2:1;4417:18;;4404:32;4474:15;;4467:23;4455:36;;4445:64;;4505:1;4502;4495:12;4445:64;4528:7;4518:17;;;4125:416;;;;;:::o;4546:248::-;4614:6;4622;4675:2;4663:9;4654:7;4650:23;4646:32;4643:52;;;4691:1;4688;4681:12;4643:52;-1:-1:-1;;4714:23:1;;;4784:2;4769:18;;;4756:32;;-1:-1:-1;4546:248:1:o;4799:388::-;4867:6;4875;4928:2;4916:9;4907:7;4903:23;4899:32;4896:52;;;4944:1;4941;4934:12;4896:52;4983:9;4970:23;5002:31;5027:5;5002:31;:::i;:::-;5052:5;-1:-1:-1;5109:2:1;5094:18;;5081:32;5122:33;5081:32;5122:33;:::i;5418:380::-;5497:1;5493:12;;;;5540;;;5561:61;;5615:4;5607:6;5603:17;5593:27;;5561:61;5668:2;5660:6;5657:14;5637:18;5634:38;5631:161;;5714:10;5709:3;5705:20;5702:1;5695:31;5749:4;5746:1;5739:15;5777:4;5774:1;5767:15;5631:161;;5418:380;;;:::o;5803:332::-;6005:2;5987:21;;;6044:1;6024:18;;;6017:29;-1:-1:-1;;;6077:2:1;6062:18;;6055:39;6126:2;6111:18;;5803:332::o;6491:127::-;6552:10;6547:3;6543:20;6540:1;6533:31;6583:4;6580:1;6573:15;6607:4;6604:1;6597:15;6623:128;6690:9;;;6711:11;;;6708:37;;;6725:18;;:::i;6756:127::-;6817:10;6812:3;6808:20;6805:1;6798:31;6848:4;6845:1;6838:15;6872:4;6869:1;6862:15;7078:135;7117:3;7138:17;;;7135:43;;7158:18;;:::i;:::-;-1:-1:-1;7205:1:1;7194:13;;7078:135::o;7218:125::-;7283:9;;;7304:10;;;7301:36;;;7317:18;;:::i;8032:127::-;8093:10;8088:3;8084:20;8081:1;8074:31;8124:4;8121:1;8114:15;8148:4;8145:1;8138:15;8164:120;8204:1;8230;8220:35;;8235:18;;:::i;:::-;-1:-1:-1;8269:9:1;;8164:120::o;8289:168::-;8362:9;;;8393;;8410:15;;;8404:22;;8390:37;8380:71;;8431:18;;:::i;10537:422::-;10626:1;10669:5;10626:1;10683:270;10704:7;10694:8;10691:21;10683:270;;;10763:4;10759:1;10755:6;10751:17;10745:4;10742:27;10739:53;;;10772:18;;:::i;:::-;10822:7;10812:8;10808:22;10805:55;;;10842:16;;;;10805:55;10921:22;;;;10881:15;;;;10683:270;;;10687:3;10537:422;;;;;:::o;10964:806::-;11013:5;11043:8;11033:80;;-1:-1:-1;11084:1:1;11098:5;;11033:80;11132:4;11122:76;;-1:-1:-1;11169:1:1;11183:5;;11122:76;11214:4;11232:1;11227:59;;;;11300:1;11295:130;;;;11207:218;;11227:59;11257:1;11248:10;;11271:5;;;11295:130;11332:3;11322:8;11319:17;11316:43;;;11339:18;;:::i;:::-;-1:-1:-1;;11395:1:1;11381:16;;11410:5;;11207:218;;11509:2;11499:8;11496:16;11490:3;11484:4;11481:13;11477:36;11471:2;11461:8;11458:16;11453:2;11447:4;11444:12;11440:35;11437:77;11434:159;;;-1:-1:-1;11546:19:1;;;11578:5;;11434:159;11625:34;11650:8;11644:4;11625:34;:::i;:::-;11695:6;11691:1;11687:6;11683:19;11674:7;11671:32;11668:58;;;11706:18;;:::i;:::-;11744:20;;10964:806;-1:-1:-1;;;10964:806:1:o;11775:140::-;11833:5;11862:47;11903:4;11893:8;11889:19;11883:4;11862:47;:::i;11920:112::-;11952:1;11978;11968:35;;11983:18;;:::i;:::-;-1:-1:-1;12017:9:1;;11920:112::o;12037:251::-;12107:6;12160:2;12148:9;12139:7;12135:23;12131:32;12128:52;;;12176:1;12173;12166:12;12128:52;12208:9;12202:16;12227:31;12252:5;12227:31;:::i;12293:980::-;12555:4;12603:3;12592:9;12588:19;12634:6;12623:9;12616:25;12660:2;12698:6;12693:2;12682:9;12678:18;12671:34;12741:3;12736:2;12725:9;12721:18;12714:31;12765:6;12800;12794:13;12831:6;12823;12816:22;12869:3;12858:9;12854:19;12847:26;;12908:2;12900:6;12896:15;12882:29;;12929:1;12939:195;12953:6;12950:1;12947:13;12939:195;;;13018:13;;-1:-1:-1;;;;;13014:39:1;13002:52;;13109:15;;;;13074:12;;;;13050:1;12968:9;12939:195;;;-1:-1:-1;;;;;;;13190:32:1;;;;13185:2;13170:18;;13163:60;-1:-1:-1;;;13254:3:1;13239:19;13232:35;13151:3;12293:980;-1:-1:-1;;;12293:980:1:o
Swarm Source
ipfs://a9c12e2e16325910238ca161d3a31fa76567490694925e1427a0cfbd61e94c45
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)