ERC-20
Overview
Max Total Supply
69,000,000,000 Donja
Holders
47
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
13,467,323.01569457699782664 DonjaValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
DogNobi
Compiler Version
v0.8.15+commit.e14f2714
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-06 */ /** *Submitted for verification at Etherscan.io on 2022-09-06 */ //SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.15; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 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); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) internal _balances; mapping(address => mapping(address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** This function will be used to generate the total supply * while deploying the contract * * This function can never be called again after deploying contract */ function _tokengeneration(address account, uint256 amount) internal virtual { _totalSupply = amount; _balances[account] = amount; emit Transfer(address(0), account, amount); } /** * @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens. * * This internal function is equivalent to `approve`, and can be used to * e.g. set automatic allowances for certain subsystems, etc. * * Emits an {Approval} event. * * Requirements: * * - `owner` cannot be the zero address. * - `spender` cannot be the zero address. */ function _approve( address owner, address spender, uint256 amount ) internal virtual { 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); } } library Address { function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract DogNobi is ERC20, Ownable { using Address for address payable; IRouter public router; address public pair; bool private _interlock = false; bool public providingLiquidity = true; bool public tradingEnabled = true; uint256 public tokenLiquidityThreshold = 10_000 * 10**18; uint256 public maxBuyLimit = 2_070_000_000 * 10**18; uint256 public maxSellLimit = 690_000_000 * 10**18; uint256 public maxWalletLimit = 2_070_000_000 * 10**18; uint256 public genesis_block; uint256 private deadline = 3; uint256 private launchtax = 0; address public marketingWallet = 0x276AfD0BEBB13FE23291CD861eA9E5fA7ab4d020; address public DogNobiRewardsWallet = 0x276AfD0BEBB13FE23291CD861eA9E5fA7ab4d020; address public lotteryWallet = 0x276AfD0BEBB13FE23291CD861eA9E5fA7ab4d020; address public constant deadWallet = 0x000000000000000000000000000000000000dEaD; struct Taxes { uint256 marketing; uint256 liquidity; uint256 lottery; uint256 KaiReward; } Taxes public taxes = Taxes(99, 0, 0, 0); Taxes public sellTaxes = Taxes(99, 0, 0, 0); mapping(address => bool) public exemptFee; mapping(address => bool) public sniperBots; //Anti Dump mapping(address => uint256) private _lastSell; bool public coolDownEnabled = false; uint256 public coolDownTime = 0 seconds; modifier lockTheSwap() { if (!_interlock) { _interlock = true; _; _interlock = false; } } constructor() ERC20("Dog Nobi", "Donja") { _tokengeneration(msg.sender, 69_000_000_000 * 10**decimals()); exemptFee[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // Create a pancake pair for this new token address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH()); router = _router; pair = _pair; exemptFee[address(this)] = true; exemptFee[marketingWallet] = true; exemptFee[lotteryWallet] = true; exemptFee[DogNobiRewardsWallet] = true; exemptFee[deadWallet] = true; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public override returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public override returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; } function _transfer( address sender, address recipient, uint256 amount ) internal override { require(amount > 0, "Transfer amount must be greater than zero"); require(!sniperBots[sender] && !sniperBots[recipient], "Snipers not allowed!"); if (!exemptFee[sender] && !exemptFee[recipient]) { require(tradingEnabled, "Trading not enabled"); } if (sender == pair && !exemptFee[recipient] && !_interlock) { require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit"); require( balanceOf(recipient) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit" ); } if ( sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_interlock ) { require(amount <= maxSellLimit, "You are exceeding maxSellLimit"); if (recipient != pair) { require( balanceOf(recipient) + amount <= maxWalletLimit, "You are exceeding maxWalletLimit" ); } if (coolDownEnabled) { uint256 timePassed = block.timestamp - _lastSell[sender]; require(timePassed >= coolDownTime, "Cooldown enabled"); _lastSell[sender] = block.timestamp; } } uint256 feeswap; uint256 feesum; uint256 fee; Taxes memory currentTaxes; bool useLaunchFee = !exemptFee[sender] && !exemptFee[recipient] && block.number < genesis_block + deadline; //set fee to zero if fees in contract are handled or exempted if (_interlock || exemptFee[sender] || exemptFee[recipient]) fee = 0; //calculate fee else if (recipient == pair && !useLaunchFee) { feeswap = sellTaxes.liquidity + sellTaxes.marketing + sellTaxes.lottery + sellTaxes.KaiReward; feesum = feeswap; currentTaxes = sellTaxes; } else if (!useLaunchFee) { feeswap = taxes.liquidity + taxes.marketing + taxes.lottery + taxes.KaiReward ; feesum = feeswap; currentTaxes = taxes; } else if (useLaunchFee) { feeswap = launchtax; feesum = launchtax; } fee = (amount * feesum) / 100; //send fees if threshold has been reached //don't do this on buys, breaks swap if (providingLiquidity && sender != pair) Liquify(feeswap, currentTaxes); //rest to recipient super._transfer(sender, recipient, amount - fee); if (fee > 0) { //send the fee to the contract if (feeswap > 0) { uint256 feeAmount = (amount * feeswap) / 100; super._transfer(sender, address(this), feeAmount); } } } function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap { if(feeswap == 0){ return; } uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= tokenLiquidityThreshold) { if (tokenLiquidityThreshold > 1) { contractBalance = tokenLiquidityThreshold; } // Split the contract balance into halves uint256 denominator = feeswap * 2; uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity; if (ethToAddLiquidityWith > 0) { // Add liquidity to pancake addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing; if (marketingAmt > 0) { payable(marketingWallet).sendValue(marketingAmt); } uint256 lotteryAmt = unitBalance * 2 * swapTaxes.lottery; if (lotteryAmt > 0) { payable(lotteryWallet).sendValue(lotteryAmt); } uint256 KaiReward = unitBalance * 2 * swapTaxes.KaiReward; if (KaiReward > 0) { payable(DogNobiRewardsWallet).sendValue(KaiReward); } } } function swapTokensForETH(uint256 tokenAmount) private { // generate the pancake pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{ value: ethAmount }( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadWallet, block.timestamp ); } function updateLiquidityProvide(bool state) external onlyOwner { //update liquidity providing state providingLiquidity = state; } function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner { //update the treshhold require(new_amount <= 100_000 && new_amount > 0, "Swap threshold amount should be lower or euqal to 1% of tokens"); tokenLiquidityThreshold = new_amount * 10**decimals(); } function SetBuyTaxes( uint256 _marketing, uint256 _liquidity, uint256 _lottery, uint256 _dev ) external onlyOwner { taxes = Taxes(_marketing, _liquidity, _lottery, _dev); require((_marketing + _liquidity + _lottery + _dev) <= 99, "Must keep fees at 99% or less"); } function SetSellTaxes( uint256 _marketing, uint256 _liquidity, uint256 _lottery, uint256 _dev ) external onlyOwner { sellTaxes = Taxes(_marketing, _liquidity, _lottery, _dev); require((_marketing + _liquidity + _lottery + _dev) <= 99, "Must keep fees at 99% or less"); } function updateRouterAndPair(address newRouter, address newPair) external onlyOwner { router = IRouter(newRouter); pair = newPair; } function _openTrading() external onlyOwner { require(!tradingEnabled, "Cannot re-enable trading"); tradingEnabled = true; providingLiquidity = true; genesis_block = block.number; } function _toggleTrading(bool status) external onlyOwner { tradingEnabled = status; } function updatedeadline(uint256 _deadline) external onlyOwner { require(!tradingEnabled, "Can't change when trading has started"); require(_deadline < 10,"Deadline should be less than 5 Blocks"); deadline = _deadline; } function updateMarketingWallet(address newWallet) external onlyOwner { require(newWallet != address(0),"Fee Address cannot be zero address"); marketingWallet = newWallet; } function updatelotteryWallet(address newWallet) external onlyOwner { require(newWallet != address(0),"Fee Address cannot be zero address"); lotteryWallet = newWallet; } function updateKaiRewardsWallet(address newWallet) external onlyOwner { require(newWallet != address(0),"Fee Address cannot be zero address"); DogNobiRewardsWallet = newWallet; } function updateCooldown(bool state, uint256 time) external onlyOwner { coolDownTime = time * 1 seconds; coolDownEnabled = state; require(time <= 300, "cooldown timer cannot exceed 5 minutes"); } function updateExemptFee(address _address, bool state) external onlyOwner { exemptFee[_address] = state; } function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { exemptFee[accounts[i]] = state; } } function bulkAddSnipers(address[] memory accounts, bool state) external onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { sniperBots[accounts[i]] = state; } } function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell, uint256 maxWallet) external onlyOwner { require(maxBuy >= 69_000_000_000, "Cannot set max buy amount lower than 0.1%"); require(maxSell >= 690_000_000, "Cannot set max sell amount lower than 0.1%"); require(maxWallet >= 69_000_000_000, "Cannot set max wallet amount lower than 1%"); maxBuyLimit = maxBuy * 10**decimals(); maxSellLimit = maxSell * 10**decimals(); maxWalletLimit = maxWallet * 10**decimals(); } function rescueBNB(uint256 weiAmount) external onlyOwner { payable(owner()).transfer(weiAmount); } function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner { require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens"); IERC20(tokenAdd).transfer(owner(), amount); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"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":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":"DogNobiRewardsWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_lottery","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_lottery","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"_toggleTrading","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkAddSnipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","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":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lotteryWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"lottery","type":"uint256"},{"internalType":"uint256","name":"KaiReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"sniperBots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"lottery","type":"uint256"},{"internalType":"uint256","name":"KaiReward","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateKaiRewardsWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newRouter","type":"address"},{"internalType":"address","name":"newPair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updatelotteryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6007805462ffffff60a01b191661010160a81b17905569021e19e0c9bab24000006008556b06b0438cda2d0973d600000060098190556b023ac12ef364587bf2000000600a55600b556003600d556000600e819055600f805473276afd0bebb13fe23291cd861ea9e5fa7ab4d0206001600160a01b03199182168117909255601080548216831790556011805490911690911790556063608081905260a082905260c082905260e08290526012819055601382905560148290556015829055610180604052610100819052610120829052610140829052610160829052601655601781905560188190556019819055601d805460ff19169055601e553480156200010857600080fd5b5060405180604001604052806008815260200167446f67204e6f626960c01b81525060405180604001604052806005815260200164446f6e6a6160d81b815250816003908162000159919062000533565b50600462000168828262000533565b505050620001856200017f620003e460201b60201c565b620003e8565b620001af33620001986012600a62000714565b620001a990641010b872006200072c565b6200043a565b336000908152601a60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa1580156200021a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024091906200074e565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200028e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b491906200074e565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000302573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032891906200074e565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550306000908152601a6020526040808220805460ff199081166001908117909255600f548516845282842080548216831790556011548516845282842080548216831790556010549094168352908220805484168217905561dead9091527f428bdc965569ef4717764ecfd84e88946a9a226b52b813e6ab6a7f46aad86e88805490921617905562000779565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60028190556001600160a01b038216600081815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620004b957607f821691505b602082108103620004da57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200052e57600081815260208120601f850160051c81016020861015620005095750805b601f850160051c820191505b818110156200052a5782815560010162000515565b5050505b505050565b81516001600160401b038111156200054f576200054f6200048e565b6200056781620005608454620004a4565b84620004e0565b602080601f8311600181146200059f5760008415620005865750858301515b600019600386901b1c1916600185901b1785556200052a565b600085815260208120601f198616915b82811015620005d057888601518255948401946001909101908401620005af565b5085821015620005ef5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620006565781600019048211156200063a576200063a620005ff565b808516156200064857918102915b93841c93908002906200061a565b509250929050565b6000826200066f575060016200070e565b816200067e575060006200070e565b8160018114620006975760028114620006a257620006c2565b60019150506200070e565b60ff841115620006b657620006b6620005ff565b50506001821b6200070e565b5060208310610133831016604e8410600b8410161715620006e7575081810a6200070e565b620006f3838362000615565b80600019048211156200070a576200070a620005ff565b0290505b92915050565b60006200072560ff8416836200065e565b9392505050565b6000816000190483118215151615620007495762000749620005ff565b500290565b6000602082840312156200076157600080fd5b81516001600160a01b03811681146200072557600080fd5b612dcf80620007896000396000f3fe6080604052600436106102e85760003560e01c8063715018a611610190578063aacebbe3116100dc578063e517f2b911610095578063f2fde38b1161006f578063f2fde38b14610919578063f66895a314610939578063f887ea401461095c578063fbe6324e1461097c57600080fd5b8063e517f2b9146108bf578063edaa1168146108df578063ee36e359146108ff57600080fd5b8063aacebbe3146107d3578063c5d32bb2146107f3578063ca697d8f14610823578063d2ce0db214610843578063dd62ed3e14610859578063e1b450ad1461089f57600080fd5b80638da5cb5b11610149578063a364b07711610123578063a364b07714610753578063a457c2d714610773578063a8aa1b3114610793578063a9059cbb146107b357600080fd5b80638da5cb5b1461070057806395d89b411461071e57806397973a2b1461073357600080fd5b8063715018a61461061a578063728f8eea1461062f57806375f0a8741461067257806385141a77146106aa57806386a077e7146106c05780638cd4426d146106e057600080fd5b8063355496ca1161024f5780634ada218b11610208578063652e2f04116101e2578063652e2f04146105a257806366a88d96146105b85780636aa5b37f146105ce57806370a08231146105e457600080fd5b80634ada218b146105315780635d5345761461055257806360de666b1461058257600080fd5b8063355496ca1461047157806339509351146104915780633dcff94b146104b157806340b28c2f146104d157806342b6fa11146104f1578063441b1d301461051157600080fd5b80631675d802116102a15780631675d802146103d157806318160ddd146103f55780631c1702f31461040a57806323b872dd1461041f578063274a533c1461043f578063313ce5671461045557600080fd5b8063012ab8cb146102f457806306fdde0314610316578063095ea7b3146103415780630e375a5c14610371578063105cafb6146103915780631340538f146103b157600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061031461030f36600461275b565b61099d565b005b34801561032257600080fd5b5061032b6109ee565b604051610338919061277f565b60405180910390f35b34801561034d57600080fd5b5061036161035c3660046127f4565b610a80565b6040519015158152602001610338565b34801561037d57600080fd5b5061031461038c366004612836565b610a97565b34801561039d57600080fd5b506103146103ac36600461290d565b610b2d565b3480156103bd57600080fd5b506103146103cc36600461275b565b610c01565b3480156103dd57600080fd5b506103e760085481565b604051908152602001610338565b34801561040157600080fd5b506002546103e7565b34801561041657600080fd5b50610314610c49565b34801561042b57600080fd5b5061036161043a36600461293f565b610ce8565b34801561044b57600080fd5b506103e7600c5481565b34801561046157600080fd5b5060405160128152602001610338565b34801561047d57600080fd5b5061031461048c366004612980565b610d99565b34801561049d57600080fd5b506103616104ac3660046127f4565b610dee565b3480156104bd57600080fd5b506103146104cc3660046129b9565b610e25565b3480156104dd57600080fd5b506103146104ec3660046129d6565b610e97565b3480156104fd57600080fd5b5061031461050c366004612a04565b610eef565b34801561051d57600080fd5b5061031461052c366004612a04565b610fba565b34801561053d57600080fd5b5060075461036190600160b01b900460ff1681565b34801561055e57600080fd5b5061036161056d3660046129b9565b601b6020526000908152604090205460ff1681565b34801561058e57600080fd5b5061031461059d3660046129b9565b611022565b3480156105ae57600080fd5b506103e7600a5481565b3480156105c457600080fd5b506103e7600b5481565b3480156105da57600080fd5b506103e760095481565b3480156105f057600080fd5b506103e76105ff3660046129b9565b6001600160a01b031660009081526020819052604090205490565b34801561062657600080fd5b50610314611094565b34801561063b57600080fd5b506012546013546014546015546106529392919084565b604080519485526020850193909352918301526060820152608001610338565b34801561067e57600080fd5b50600f54610692906001600160a01b031681565b6040516001600160a01b039091168152602001610338565b3480156106b657600080fd5b5061069261dead81565b3480156106cc57600080fd5b50601054610692906001600160a01b031681565b3480156106ec57600080fd5b506103146106fb3660046127f4565b6110ca565b34801561070c57600080fd5b506005546001600160a01b0316610692565b34801561072a57600080fd5b5061032b6111fd565b34801561073f57600080fd5b5061031461074e36600461290d565b61120c565b34801561075f57600080fd5b50601154610692906001600160a01b031681565b34801561077f57600080fd5b5061036161078e3660046127f4565b611278565b34801561079f57600080fd5b50600754610692906001600160a01b031681565b3480156107bf57600080fd5b506103616107ce3660046127f4565b611313565b3480156107df57600080fd5b506103146107ee3660046129b9565b611320565b3480156107ff57600080fd5b5061036161080e3660046129b9565b601a6020526000908152604090205460ff1681565b34801561082f57600080fd5b5061031461083e366004612836565b611392565b34801561084f57600080fd5b506103e7601e5481565b34801561086557600080fd5b506103e76108743660046129d6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108ab57600080fd5b506103146108ba366004612a1d565b611423565b3480156108cb57600080fd5b506103146108da366004612a49565b6115d4565b3480156108eb57600080fd5b506103146108fa366004612a04565b61167b565b34801561090b57600080fd5b50601d546103619060ff1681565b34801561092557600080fd5b506103146109343660046129b9565b611770565b34801561094557600080fd5b506016546017546018546019546106529392919084565b34801561096857600080fd5b50600654610692906001600160a01b031681565b34801561098857600080fd5b5060075461036190600160a81b900460ff1681565b6005546001600160a01b031633146109d05760405162461bcd60e51b81526004016109c790612a67565b60405180910390fd5b60078054911515600160b01b0260ff60b01b19909216919091179055565b6060600380546109fd90612a9c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2990612a9c565b8015610a765780601f10610a4b57610100808354040283529160200191610a76565b820191906000526020600020905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b6000610a8d33848461180b565b5060015b92915050565b6005546001600160a01b03163314610ac15760405162461bcd60e51b81526004016109c790612a67565b60005b8251811015610b285781601a6000858481518110610ae457610ae4612ad6565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b2081612b02565b915050610ac4565b505050565b6005546001600160a01b03163314610b575760405162461bcd60e51b81526004016109c790612a67565b6040805160808101825285815260208101859052908101839052606001819052601684905560178390556018829055601981905560638183610b998688612b1b565b610ba39190612b1b565b610bad9190612b1b565b1115610bfb5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c65737300000060448201526064016109c7565b50505050565b6005546001600160a01b03163314610c2b5760405162461bcd60e51b81526004016109c790612a67565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c735760405162461bcd60e51b81526004016109c790612a67565b600754600160b01b900460ff1615610ccd5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016109c7565b6007805461ffff60a81b191661010160a81b17905543600c55565b6000610cf584848461192f565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d7a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109c7565b610d8e8533610d898685612b33565b61180b565b506001949350505050565b6005546001600160a01b03163314610dc35760405162461bcd60e51b81526004016109c790612a67565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a8d918590610d89908690612b1b565b6005546001600160a01b03163314610e4f5760405162461bcd60e51b81526004016109c790612a67565b6001600160a01b038116610e755760405162461bcd60e51b81526004016109c790612b4a565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ec15760405162461bcd60e51b81526004016109c790612a67565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610f195760405162461bcd60e51b81526004016109c790612a67565b620186a08111158015610f2c5750600081115b610f9e5760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657571616c20746f203125206f6620746f6b656e73000060648201526084016109c7565b610faa6012600a612c70565b610fb49082612c7f565b60085550565b6005546001600160a01b03163314610fe45760405162461bcd60e51b81526004016109c790612a67565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561101e573d6000803e3d6000fd5b5050565b6005546001600160a01b0316331461104c5760405162461bcd60e51b81526004016109c790612a67565b6001600160a01b0381166110725760405162461bcd60e51b81526004016109c790612b4a565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110be5760405162461bcd60e51b81526004016109c790612a67565b6110c86000612039565b565b6005546001600160a01b031633146110f45760405162461bcd60e51b81526004016109c790612a67565b306001600160a01b0383160361116b5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016109c7565b816001600160a01b031663a9059cbb61118c6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af11580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b289190612c9e565b6060600480546109fd90612a9c565b6005546001600160a01b031633146112365760405162461bcd60e51b81526004016109c790612a67565b6040805160808101825285815260208101859052908101839052606001819052601284905560138390556014829055601581905560638183610b998688612b1b565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109c7565b6113093385610d898685612b33565b5060019392505050565b6000610a8d33848461192f565b6005546001600160a01b0316331461134a5760405162461bcd60e51b81526004016109c790612a67565b6001600160a01b0381166113705760405162461bcd60e51b81526004016109c790612b4a565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113bc5760405162461bcd60e51b81526004016109c790612a67565b60005b8251811015610b285781601b60008584815181106113df576113df612ad6565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061141b81612b02565b9150506113bf565b6005546001600160a01b0316331461144d5760405162461bcd60e51b81526004016109c790612a67565b641010b872008310156114b45760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b60648201526084016109c7565b632920908082101561151b5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b60648201526084016109c7565b641010b872008110156115835760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b60648201526084016109c7565b61158f6012600a612c70565b6115999084612c7f565b6009556115a86012600a612c70565b6115b29083612c7f565b600a5560126115c290600a612c70565b6115cc9082612c7f565b600b55505050565b6005546001600160a01b031633146115fe5760405162461bcd60e51b81526004016109c790612a67565b611609816001612c7f565b601e55601d805460ff191683151517905561012c81111561101e5760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b60648201526084016109c7565b6005546001600160a01b031633146116a55760405162461bcd60e51b81526004016109c790612a67565b600754600160b01b900460ff161561170d5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016109c7565b600a811061176b5760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b60648201526084016109c7565b600d55565b6005546001600160a01b0316331461179a5760405162461bcd60e51b81526004016109c790612a67565b6001600160a01b0381166117ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c7565b61180881612039565b50565b6001600160a01b03831661186d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109c7565b6001600160a01b0382166118ce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109c7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116119915760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109c7565b6001600160a01b0383166000908152601b602052604090205460ff161580156119d357506001600160a01b0382166000908152601b602052604090205460ff16155b611a165760405162461bcd60e51b8152602060048201526014602482015273536e6970657273206e6f7420616c6c6f7765642160601b60448201526064016109c7565b6001600160a01b0383166000908152601a602052604090205460ff16158015611a5857506001600160a01b0382166000908152601a602052604090205460ff16155b15611aac57600754600160b01b900460ff16611aac5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016109c7565b6007546001600160a01b038481169116148015611ae257506001600160a01b0382166000908152601a602052604090205460ff16155b8015611af85750600754600160a01b900460ff16155b15611bca57600954811115611b4f5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d697400000060448201526064016109c7565b600b5481611b72846001600160a01b031660009081526020819052604090205490565b611b7c9190612b1b565b1115611bca5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016109c7565b6007546001600160a01b03848116911614801590611c0157506001600160a01b0382166000908152601a602052604090205460ff16155b8015611c2657506001600160a01b0383166000908152601a602052604090205460ff16155b8015611c3c5750600754600160a01b900460ff16155b15611db557600a54811115611c935760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d6974000060448201526064016109c7565b6007546001600160a01b03838116911614611d2357600b5481611ccb846001600160a01b031660009081526020819052604090205490565b611cd59190612b1b565b1115611d235760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016109c7565b601d5460ff1615611db5576001600160a01b0383166000908152601c6020526040812054611d519042612b33565b9050601e54811015611d985760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b60448201526064016109c7565b506001600160a01b0383166000908152601c602052604090204290555b6000806000611de56040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611e2757506001600160a01b0387166000908152601a602052604090205460ff16155b8015611e415750600d54600c54611e3e9190612b1b565b43105b600754909150600160a01b900460ff1680611e7457506001600160a01b0388166000908152601a602052604090205460ff165b80611e9757506001600160a01b0387166000908152601a602052604090205460ff165b15611ea55760009250611f99565b6007546001600160a01b038881169116148015611ec0575080155b15611f2557601954601854601654601754611edb9190612b1b565b611ee59190612b1b565b611eef9190612b1b565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611f99565b80611f8a57601554601454601254601354611f409190612b1b565b611f4a9190612b1b565b611f549190612b1b565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611f99565b8015611f9957600e5494508493505b6064611fa58588612c7f565b611faf9190612cbb565b600754909350600160a81b900460ff168015611fd957506007546001600160a01b03898116911614155b15611fe857611fe8858361208b565b611ffc8888611ff7868a612b33565b612240565b821561202f57841561202f57600060646120168789612c7f565b6120209190612cbb565b905061202d893083612240565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff1661101e576007805460ff60a01b1916600160a01b179055811561222f5730600090815260208190526040902054600854811061222d57600160085411156120de57506008545b60006120eb846002612c7f565b90506000818460200151846121009190612c7f565b61210a9190612cbb565b905060006121188285612b33565b90504761212482612418565b60006121308247612b33565b905060008760200151866121449190612b33565b61214e9083612cbb565b905060008860200151826121629190612c7f565b90508015612174576121748682612572565b8851600090612184846002612c7f565b61218e9190612c7f565b905080156121ac57600f546121ac906001600160a01b031682612624565b60408a01516000906121bf856002612c7f565b6121c99190612c7f565b905080156121e7576011546121e7906001600160a01b031682612624565b60608b01516000906121fa866002612c7f565b6122049190612c7f565b9050801561222257601054612222906001600160a01b031682612624565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166122a45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109c7565b6001600160a01b0382166123065760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109c7565b6001600160a01b0383166000908152602081905260409020548181101561237e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109c7565b6123888282612b33565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906123be908490612b1b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161240a91815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061244d5761244d612ad6565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156124a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ca9190612cdd565b816001815181106124dd576124dd612ad6565b6001600160a01b039283166020918202929092010152600654612503913091168461180b565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061253c908590600090869030904290600401612cfa565b600060405180830381600087803b15801561255657600080fd5b505af115801561256a573d6000803e3d6000fd5b505050505050565b60065461258a9030906001600160a01b03168461180b565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156125f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061261d9190612d6b565b5050505050565b804710156126745760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016109c7565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146126c1576040519150601f19603f3d011682016040523d82523d6000602084013e6126c6565b606091505b5050905080610b285760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016109c7565b801515811461180857600080fd5b80356127568161273d565b919050565b60006020828403121561276d57600080fd5b81356127788161273d565b9392505050565b600060208083528351808285015260005b818110156127ac57858101830151858201604001528201612790565b818111156127be576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461180857600080fd5b8035612756816127d4565b6000806040838503121561280757600080fd5b8235612812816127d4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561284957600080fd5b823567ffffffffffffffff8082111561286157600080fd5b818501915085601f83011261287557600080fd5b813560208282111561288957612889612820565b8160051b604051601f19603f830116810181811086821117156128ae576128ae612820565b6040529283528183019350848101820192898411156128cc57600080fd5b948201945b838610156128f1576128e2866127e9565b855294820194938201936128d1565b9650612900905087820161274b565b9450505050509250929050565b6000806000806080858703121561292357600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561295457600080fd5b833561295f816127d4565b9250602084013561296f816127d4565b929592945050506040919091013590565b6000806040838503121561299357600080fd5b823561299e816127d4565b915060208301356129ae8161273d565b809150509250929050565b6000602082840312156129cb57600080fd5b8135612778816127d4565b600080604083850312156129e957600080fd5b82356129f4816127d4565b915060208301356129ae816127d4565b600060208284031215612a1657600080fd5b5035919050565b600080600060608486031215612a3257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612a5c57600080fd5b82356128128161273d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612ab057607f821691505b602082108103612ad057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612b1457612b14612aec565b5060010190565b60008219821115612b2e57612b2e612aec565b500190565b600082821015612b4557612b45612aec565b500390565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b600181815b80851115612bc7578160001904821115612bad57612bad612aec565b80851615612bba57918102915b93841c9390800290612b91565b509250929050565b600082612bde57506001610a91565b81612beb57506000610a91565b8160018114612c015760028114612c0b57612c27565b6001915050610a91565b60ff841115612c1c57612c1c612aec565b50506001821b610a91565b5060208310610133831016604e8410600b8410161715612c4a575081810a610a91565b612c548383612b8c565b8060001904821115612c6857612c68612aec565b029392505050565b600061277860ff841683612bcf565b6000816000190483118215151615612c9957612c99612aec565b500290565b600060208284031215612cb057600080fd5b81516127788161273d565b600082612cd857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612cef57600080fd5b8151612778816127d4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d4a5784516001600160a01b031683529383019391830191600101612d25565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612d8057600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b227bb9b80d1e606bdc4b43a0a466f4af09a700bdab31949dbb6fb78c275d52664736f6c634300080f0033
Deployed Bytecode
0x6080604052600436106102e85760003560e01c8063715018a611610190578063aacebbe3116100dc578063e517f2b911610095578063f2fde38b1161006f578063f2fde38b14610919578063f66895a314610939578063f887ea401461095c578063fbe6324e1461097c57600080fd5b8063e517f2b9146108bf578063edaa1168146108df578063ee36e359146108ff57600080fd5b8063aacebbe3146107d3578063c5d32bb2146107f3578063ca697d8f14610823578063d2ce0db214610843578063dd62ed3e14610859578063e1b450ad1461089f57600080fd5b80638da5cb5b11610149578063a364b07711610123578063a364b07714610753578063a457c2d714610773578063a8aa1b3114610793578063a9059cbb146107b357600080fd5b80638da5cb5b1461070057806395d89b411461071e57806397973a2b1461073357600080fd5b8063715018a61461061a578063728f8eea1461062f57806375f0a8741461067257806385141a77146106aa57806386a077e7146106c05780638cd4426d146106e057600080fd5b8063355496ca1161024f5780634ada218b11610208578063652e2f04116101e2578063652e2f04146105a257806366a88d96146105b85780636aa5b37f146105ce57806370a08231146105e457600080fd5b80634ada218b146105315780635d5345761461055257806360de666b1461058257600080fd5b8063355496ca1461047157806339509351146104915780633dcff94b146104b157806340b28c2f146104d157806342b6fa11146104f1578063441b1d301461051157600080fd5b80631675d802116102a15780631675d802146103d157806318160ddd146103f55780631c1702f31461040a57806323b872dd1461041f578063274a533c1461043f578063313ce5671461045557600080fd5b8063012ab8cb146102f457806306fdde0314610316578063095ea7b3146103415780630e375a5c14610371578063105cafb6146103915780631340538f146103b157600080fd5b366102ef57005b600080fd5b34801561030057600080fd5b5061031461030f36600461275b565b61099d565b005b34801561032257600080fd5b5061032b6109ee565b604051610338919061277f565b60405180910390f35b34801561034d57600080fd5b5061036161035c3660046127f4565b610a80565b6040519015158152602001610338565b34801561037d57600080fd5b5061031461038c366004612836565b610a97565b34801561039d57600080fd5b506103146103ac36600461290d565b610b2d565b3480156103bd57600080fd5b506103146103cc36600461275b565b610c01565b3480156103dd57600080fd5b506103e760085481565b604051908152602001610338565b34801561040157600080fd5b506002546103e7565b34801561041657600080fd5b50610314610c49565b34801561042b57600080fd5b5061036161043a36600461293f565b610ce8565b34801561044b57600080fd5b506103e7600c5481565b34801561046157600080fd5b5060405160128152602001610338565b34801561047d57600080fd5b5061031461048c366004612980565b610d99565b34801561049d57600080fd5b506103616104ac3660046127f4565b610dee565b3480156104bd57600080fd5b506103146104cc3660046129b9565b610e25565b3480156104dd57600080fd5b506103146104ec3660046129d6565b610e97565b3480156104fd57600080fd5b5061031461050c366004612a04565b610eef565b34801561051d57600080fd5b5061031461052c366004612a04565b610fba565b34801561053d57600080fd5b5060075461036190600160b01b900460ff1681565b34801561055e57600080fd5b5061036161056d3660046129b9565b601b6020526000908152604090205460ff1681565b34801561058e57600080fd5b5061031461059d3660046129b9565b611022565b3480156105ae57600080fd5b506103e7600a5481565b3480156105c457600080fd5b506103e7600b5481565b3480156105da57600080fd5b506103e760095481565b3480156105f057600080fd5b506103e76105ff3660046129b9565b6001600160a01b031660009081526020819052604090205490565b34801561062657600080fd5b50610314611094565b34801561063b57600080fd5b506012546013546014546015546106529392919084565b604080519485526020850193909352918301526060820152608001610338565b34801561067e57600080fd5b50600f54610692906001600160a01b031681565b6040516001600160a01b039091168152602001610338565b3480156106b657600080fd5b5061069261dead81565b3480156106cc57600080fd5b50601054610692906001600160a01b031681565b3480156106ec57600080fd5b506103146106fb3660046127f4565b6110ca565b34801561070c57600080fd5b506005546001600160a01b0316610692565b34801561072a57600080fd5b5061032b6111fd565b34801561073f57600080fd5b5061031461074e36600461290d565b61120c565b34801561075f57600080fd5b50601154610692906001600160a01b031681565b34801561077f57600080fd5b5061036161078e3660046127f4565b611278565b34801561079f57600080fd5b50600754610692906001600160a01b031681565b3480156107bf57600080fd5b506103616107ce3660046127f4565b611313565b3480156107df57600080fd5b506103146107ee3660046129b9565b611320565b3480156107ff57600080fd5b5061036161080e3660046129b9565b601a6020526000908152604090205460ff1681565b34801561082f57600080fd5b5061031461083e366004612836565b611392565b34801561084f57600080fd5b506103e7601e5481565b34801561086557600080fd5b506103e76108743660046129d6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156108ab57600080fd5b506103146108ba366004612a1d565b611423565b3480156108cb57600080fd5b506103146108da366004612a49565b6115d4565b3480156108eb57600080fd5b506103146108fa366004612a04565b61167b565b34801561090b57600080fd5b50601d546103619060ff1681565b34801561092557600080fd5b506103146109343660046129b9565b611770565b34801561094557600080fd5b506016546017546018546019546106529392919084565b34801561096857600080fd5b50600654610692906001600160a01b031681565b34801561098857600080fd5b5060075461036190600160a81b900460ff1681565b6005546001600160a01b031633146109d05760405162461bcd60e51b81526004016109c790612a67565b60405180910390fd5b60078054911515600160b01b0260ff60b01b19909216919091179055565b6060600380546109fd90612a9c565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2990612a9c565b8015610a765780601f10610a4b57610100808354040283529160200191610a76565b820191906000526020600020905b815481529060010190602001808311610a5957829003601f168201915b5050505050905090565b6000610a8d33848461180b565b5060015b92915050565b6005546001600160a01b03163314610ac15760405162461bcd60e51b81526004016109c790612a67565b60005b8251811015610b285781601a6000858481518110610ae457610ae4612ad6565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610b2081612b02565b915050610ac4565b505050565b6005546001600160a01b03163314610b575760405162461bcd60e51b81526004016109c790612a67565b6040805160808101825285815260208101859052908101839052606001819052601684905560178390556018829055601981905560638183610b998688612b1b565b610ba39190612b1b565b610bad9190612b1b565b1115610bfb5760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420393925206f72206c65737300000060448201526064016109c7565b50505050565b6005546001600160a01b03163314610c2b5760405162461bcd60e51b81526004016109c790612a67565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610c735760405162461bcd60e51b81526004016109c790612a67565b600754600160b01b900460ff1615610ccd5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e67000000000000000060448201526064016109c7565b6007805461ffff60a81b191661010160a81b17905543600c55565b6000610cf584848461192f565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610d7a5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b60648201526084016109c7565b610d8e8533610d898685612b33565b61180b565b506001949350505050565b6005546001600160a01b03163314610dc35760405162461bcd60e51b81526004016109c790612a67565b6001600160a01b03919091166000908152601a60205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b03871684529091528120549091610a8d918590610d89908690612b1b565b6005546001600160a01b03163314610e4f5760405162461bcd60e51b81526004016109c790612a67565b6001600160a01b038116610e755760405162461bcd60e51b81526004016109c790612b4a565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610ec15760405162461bcd60e51b81526004016109c790612a67565b600680546001600160a01b039384166001600160a01b03199182161790915560078054929093169116179055565b6005546001600160a01b03163314610f195760405162461bcd60e51b81526004016109c790612a67565b620186a08111158015610f2c5750600081115b610f9e5760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657571616c20746f203125206f6620746f6b656e73000060648201526084016109c7565b610faa6012600a612c70565b610fb49082612c7f565b60085550565b6005546001600160a01b03163314610fe45760405162461bcd60e51b81526004016109c790612a67565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561101e573d6000803e3d6000fd5b5050565b6005546001600160a01b0316331461104c5760405162461bcd60e51b81526004016109c790612a67565b6001600160a01b0381166110725760405162461bcd60e51b81526004016109c790612b4a565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146110be5760405162461bcd60e51b81526004016109c790612a67565b6110c86000612039565b565b6005546001600160a01b031633146110f45760405162461bcd60e51b81526004016109c790612a67565b306001600160a01b0383160361116b5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b60648201526084016109c7565b816001600160a01b031663a9059cbb61118c6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af11580156111d9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b289190612c9e565b6060600480546109fd90612a9c565b6005546001600160a01b031633146112365760405162461bcd60e51b81526004016109c790612a67565b6040805160808101825285815260208101859052908101839052606001819052601284905560138390556014829055601581905560638183610b998688612b1b565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156112fa5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016109c7565b6113093385610d898685612b33565b5060019392505050565b6000610a8d33848461192f565b6005546001600160a01b0316331461134a5760405162461bcd60e51b81526004016109c790612a67565b6001600160a01b0381166113705760405162461bcd60e51b81526004016109c790612b4a565b600f80546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146113bc5760405162461bcd60e51b81526004016109c790612a67565b60005b8251811015610b285781601b60008584815181106113df576113df612ad6565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061141b81612b02565b9150506113bf565b6005546001600160a01b0316331461144d5760405162461bcd60e51b81526004016109c790612a67565b641010b872008310156114b45760405162461bcd60e51b815260206004820152602960248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152687468616e20302e312560b81b60648201526084016109c7565b632920908082101561151b5760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015269207468616e20302e312560b01b60648201526084016109c7565b641010b872008110156115835760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b60648201526084016109c7565b61158f6012600a612c70565b6115999084612c7f565b6009556115a86012600a612c70565b6115b29083612c7f565b600a5560126115c290600a612c70565b6115cc9082612c7f565b600b55505050565b6005546001600160a01b031633146115fe5760405162461bcd60e51b81526004016109c790612a67565b611609816001612c7f565b601e55601d805460ff191683151517905561012c81111561101e5760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b60648201526084016109c7565b6005546001600160a01b031633146116a55760405162461bcd60e51b81526004016109c790612a67565b600754600160b01b900460ff161561170d5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b60648201526084016109c7565b600a811061176b5760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b60648201526084016109c7565b600d55565b6005546001600160a01b0316331461179a5760405162461bcd60e51b81526004016109c790612a67565b6001600160a01b0381166117ff5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016109c7565b61180881612039565b50565b6001600160a01b03831661186d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016109c7565b6001600160a01b0382166118ce5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016109c7565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600081116119915760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016109c7565b6001600160a01b0383166000908152601b602052604090205460ff161580156119d357506001600160a01b0382166000908152601b602052604090205460ff16155b611a165760405162461bcd60e51b8152602060048201526014602482015273536e6970657273206e6f7420616c6c6f7765642160601b60448201526064016109c7565b6001600160a01b0383166000908152601a602052604090205460ff16158015611a5857506001600160a01b0382166000908152601a602052604090205460ff16155b15611aac57600754600160b01b900460ff16611aac5760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b60448201526064016109c7565b6007546001600160a01b038481169116148015611ae257506001600160a01b0382166000908152601a602052604090205460ff16155b8015611af85750600754600160a01b900460ff16155b15611bca57600954811115611b4f5760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d697400000060448201526064016109c7565b600b5481611b72846001600160a01b031660009081526020819052604090205490565b611b7c9190612b1b565b1115611bca5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016109c7565b6007546001600160a01b03848116911614801590611c0157506001600160a01b0382166000908152601a602052604090205460ff16155b8015611c2657506001600160a01b0383166000908152601a602052604090205460ff16155b8015611c3c5750600754600160a01b900460ff16155b15611db557600a54811115611c935760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d6974000060448201526064016109c7565b6007546001600160a01b03838116911614611d2357600b5481611ccb846001600160a01b031660009081526020819052604090205490565b611cd59190612b1b565b1115611d235760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d697460448201526064016109c7565b601d5460ff1615611db5576001600160a01b0383166000908152601c6020526040812054611d519042612b33565b9050601e54811015611d985760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b60448201526064016109c7565b506001600160a01b0383166000908152601c602052604090204290555b6000806000611de56040518060800160405280600081526020016000815260200160008152602001600081525090565b6001600160a01b0387166000908152601a602052604081205460ff16158015611e2757506001600160a01b0387166000908152601a602052604090205460ff16155b8015611e415750600d54600c54611e3e9190612b1b565b43105b600754909150600160a01b900460ff1680611e7457506001600160a01b0388166000908152601a602052604090205460ff165b80611e9757506001600160a01b0387166000908152601a602052604090205460ff165b15611ea55760009250611f99565b6007546001600160a01b038881169116148015611ec0575080155b15611f2557601954601854601654601754611edb9190612b1b565b611ee59190612b1b565b611eef9190612b1b565b60408051608081018252601654815260175460208201526018549181019190915260195460608201529095508594509150611f99565b80611f8a57601554601454601254601354611f409190612b1b565b611f4a9190612b1b565b611f549190612b1b565b60408051608081018252601254815260135460208201526014549181019190915260155460608201529095508594509150611f99565b8015611f9957600e5494508493505b6064611fa58588612c7f565b611faf9190612cbb565b600754909350600160a81b900460ff168015611fd957506007546001600160a01b03898116911614155b15611fe857611fe8858361208b565b611ffc8888611ff7868a612b33565b612240565b821561202f57841561202f57600060646120168789612c7f565b6120209190612cbb565b905061202d893083612240565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600754600160a01b900460ff1661101e576007805460ff60a01b1916600160a01b179055811561222f5730600090815260208190526040902054600854811061222d57600160085411156120de57506008545b60006120eb846002612c7f565b90506000818460200151846121009190612c7f565b61210a9190612cbb565b905060006121188285612b33565b90504761212482612418565b60006121308247612b33565b905060008760200151866121449190612b33565b61214e9083612cbb565b905060008860200151826121629190612c7f565b90508015612174576121748682612572565b8851600090612184846002612c7f565b61218e9190612c7f565b905080156121ac57600f546121ac906001600160a01b031682612624565b60408a01516000906121bf856002612c7f565b6121c99190612c7f565b905080156121e7576011546121e7906001600160a01b031682612624565b60608b01516000906121fa866002612c7f565b6122049190612c7f565b9050801561222257601054612222906001600160a01b031682612624565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b0383166122a45760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016109c7565b6001600160a01b0382166123065760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016109c7565b6001600160a01b0383166000908152602081905260409020548181101561237e5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016109c7565b6123888282612b33565b6001600160a01b0380861660009081526020819052604080822093909355908516815290812080548492906123be908490612b1b565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161240a91815260200190565b60405180910390a350505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061244d5761244d612ad6565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156124a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124ca9190612cdd565b816001815181106124dd576124dd612ad6565b6001600160a01b039283166020918202929092010152600654612503913091168461180b565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac9479061253c908590600090869030904290600401612cfa565b600060405180830381600087803b15801561255657600080fd5b505af115801561256a573d6000803e3d6000fd5b505050505050565b60065461258a9030906001600160a01b03168461180b565b60065460405163f305d71960e01b815230600482015260248101849052600060448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156125f8573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061261d9190612d6b565b5050505050565b804710156126745760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016109c7565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146126c1576040519150601f19603f3d011682016040523d82523d6000602084013e6126c6565b606091505b5050905080610b285760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016109c7565b801515811461180857600080fd5b80356127568161273d565b919050565b60006020828403121561276d57600080fd5b81356127788161273d565b9392505050565b600060208083528351808285015260005b818110156127ac57858101830151858201604001528201612790565b818111156127be576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461180857600080fd5b8035612756816127d4565b6000806040838503121561280757600080fd5b8235612812816127d4565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561284957600080fd5b823567ffffffffffffffff8082111561286157600080fd5b818501915085601f83011261287557600080fd5b813560208282111561288957612889612820565b8160051b604051601f19603f830116810181811086821117156128ae576128ae612820565b6040529283528183019350848101820192898411156128cc57600080fd5b948201945b838610156128f1576128e2866127e9565b855294820194938201936128d1565b9650612900905087820161274b565b9450505050509250929050565b6000806000806080858703121561292357600080fd5b5050823594602084013594506040840135936060013592509050565b60008060006060848603121561295457600080fd5b833561295f816127d4565b9250602084013561296f816127d4565b929592945050506040919091013590565b6000806040838503121561299357600080fd5b823561299e816127d4565b915060208301356129ae8161273d565b809150509250929050565b6000602082840312156129cb57600080fd5b8135612778816127d4565b600080604083850312156129e957600080fd5b82356129f4816127d4565b915060208301356129ae816127d4565b600060208284031215612a1657600080fd5b5035919050565b600080600060608486031215612a3257600080fd5b505081359360208301359350604090920135919050565b60008060408385031215612a5c57600080fd5b82356128128161273d565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600181811c90821680612ab057607f821691505b602082108103612ad057634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612b1457612b14612aec565b5060010190565b60008219821115612b2e57612b2e612aec565b500190565b600082821015612b4557612b45612aec565b500390565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b600181815b80851115612bc7578160001904821115612bad57612bad612aec565b80851615612bba57918102915b93841c9390800290612b91565b509250929050565b600082612bde57506001610a91565b81612beb57506000610a91565b8160018114612c015760028114612c0b57612c27565b6001915050610a91565b60ff841115612c1c57612c1c612aec565b50506001821b610a91565b5060208310610133831016604e8410600b8410161715612c4a575081810a610a91565b612c548383612b8c565b8060001904821115612c6857612c68612aec565b029392505050565b600061277860ff841683612bcf565b6000816000190483118215151615612c9957612c99612aec565b500290565b600060208284031215612cb057600080fd5b81516127788161273d565b600082612cd857634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215612cef57600080fd5b8151612778816127d4565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612d4a5784516001600160a01b031683529383019391830191600101612d25565b50506001600160a01b03969096166060850152505050608001529392505050565b600080600060608486031215612d8057600080fd5b835192506020840151915060408401519050925092509256fea2646970667358221220b227bb9b80d1e606bdc4b43a0a466f4af09a700bdab31949dbb6fb78c275d52664736f6c634300080f0033
Deployed Bytecode Sourcemap
11820:14031:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23139:98;;;;;;;;;;-1:-1:-1;23139:98:0;;;;;:::i;:::-;;:::i;:::-;;2451:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14090:161;;;;;;;;;;-1:-1:-1;14090:161:0;;;;;:::i;:::-;;:::i;:::-;;;1878:14:1;;1871:22;1853:41;;1841:2;1826:18;14090:161:0;1713:187:1;24477:202:0;;;;;;;;;;-1:-1:-1;24477:202:0;;;;;:::i;:::-;;:::i;22403:336::-;;;;;;;;;;-1:-1:-1;22403:336:0;;;;;:::i;:::-;;:::i;21595:152::-;;;;;;;;;;-1:-1:-1;21595:152:0;;;;;:::i;:::-;;:::i;12084:56::-;;;;;;;;;;;;;;;;;;;3769:25:1;;;3757:2;3742:18;12084:56:0;3623:177:1;3571:108:0;;;;;;;;;;-1:-1:-1;3659:12:0;;3571:108;;22910:221;;;;;;;;;;;;;:::i;14259:448::-;;;;;;;;;;-1:-1:-1;14259:448:0;;;;;:::i;:::-;;:::i;12325:28::-;;;;;;;;;;;;;;;;3413:93;;;;;;;;;;-1:-1:-1;3413:93:0;;3496:2;4408:36:1;;4396:2;4381:18;3413:93:0;4266:184:1;24349:120:0;;;;;;;;;;-1:-1:-1;24349:120:0;;;;;:::i;:::-;;:::i;14715:248::-;;;;;;;;;;-1:-1:-1;14715:248:0;;;;;:::i;:::-;;:::i;23707:191::-;;;;;;;;;;-1:-1:-1;23707:191:0;;;;;:::i;:::-;;:::i;22747:155::-;;;;;;;;;;-1:-1:-1;22747:155:0;;;;;:::i;:::-;;:::i;21755:302::-;;;;;;;;;;-1:-1:-1;21755:302:0;;;;;:::i;:::-;;:::i;25435:112::-;;;;;;;;;;-1:-1:-1;25435:112:0;;;;;:::i;:::-;;:::i;12042:33::-;;;;;;;;;;-1:-1:-1;12042:33:0;;;;-1:-1:-1;;;12042:33:0;;;;;;13052:42;;;;;;;;;;-1:-1:-1;13052:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;23906:201;;;;;;;;;;-1:-1:-1;23906:201:0;;;;;:::i;:::-;;:::i;12205:50::-;;;;;;;;;;;;;;;;12262:54;;;;;;;;;;;;;;;;12147:51;;;;;;;;;;;;;;;;3742:127;;;;;;;;;;-1:-1:-1;3742:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;3843:18:0;3816:7;3843:18;;;;;;;;;;;;3742:127;10483:94;;;;;;;;;;;;;:::i;12906:39::-;;;;;;;;;;-1:-1:-1;12906:39:0;;;;;;;;;;;;;;;;;;;5903:25:1;;;5959:2;5944:18;;5937:34;;;;5987:18;;;5980:34;6045:2;6030:18;;6023:34;5890:3;5875:19;12906:39:0;5672:391:1;12433:75:0;;;;;;;;;;-1:-1:-1;12433:75:0;;;;-1:-1:-1;;;;;12433:75:0;;;;;;-1:-1:-1;;;;;6232:32:1;;;6214:51;;6202:2;6187:18;12433:75:0;6068:203:1;12679:79:0;;;;;;;;;;;;12716:42;12679:79;;12515:80;;;;;;;;;;-1:-1:-1;12515:80:0;;;;-1:-1:-1;;;;;12515:80:0;;;25555:238;;;;;;;;;;-1:-1:-1;25555:238:0;;;;;:::i;:::-;;:::i;10260:87::-;;;;;;;;;;-1:-1:-1;10333:6:0;;-1:-1:-1;;;;;10333:6:0;10260:87;;2670:104;;;;;;;;;;;;;:::i;22065:330::-;;;;;;;;;;-1:-1:-1;22065:330:0;;;;;:::i;:::-;;:::i;12602:73::-;;;;;;;;;;-1:-1:-1;12602:73:0;;;;-1:-1:-1;;;;;12602:73:0;;;14971:410;;;;;;;;;;-1:-1:-1;14971:410:0;;;;;:::i;:::-;;:::i;11932:19::-;;;;;;;;;;-1:-1:-1;11932:19:0;;;;-1:-1:-1;;;;;11932:19:0;;;15389:165;;;;;;;;;;-1:-1:-1;15389:165:0;;;;;:::i;:::-;;:::i;23504:195::-;;;;;;;;;;-1:-1:-1;23504:195:0;;;;;:::i;:::-;;:::i;13004:41::-;;;;;;;;;;-1:-1:-1;13004:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;24687:204;;;;;;;;;;-1:-1:-1;24687:204:0;;;;;:::i;:::-;;:::i;13214:39::-;;;;;;;;;;;;;;;;4361:201;;;;;;;;;;-1:-1:-1;4361:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;4527:18:0;;;4495:7;4527:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4361:201;24899:528;;;;;;;;;;-1:-1:-1;24899:528:0;;;;;:::i;:::-;;:::i;24115:226::-;;;;;;;;;;-1:-1:-1;24115:226:0;;;;;:::i;:::-;;:::i;23245:251::-;;;;;;;;;;-1:-1:-1;23245:251:0;;;;;:::i;:::-;;:::i;13172:35::-;;;;;;;;;;-1:-1:-1;13172:35:0;;;;;;;;10585:192;;;;;;;;;;-1:-1:-1;10585:192:0;;;;;:::i;:::-;;:::i;12952:43::-;;;;;;;;;;-1:-1:-1;12952:43:0;;;;;;;;;;;;;;;11904:21;;;;;;;;;;-1:-1:-1;11904:21:0;;;;-1:-1:-1;;;;;11904:21:0;;;11998:37;;;;;;;;;;-1:-1:-1;11998:37:0;;;;-1:-1:-1;;;11998:37:0;;;;;;23139:98;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;;;;;;;;;23206:14:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;23206:23:0::1;-1:-1:-1::0;;;;23206:23:0;;::::1;::::0;;;::::1;::::0;;23139:98::o;2451:100::-;2505:13;2538:5;2531:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2451:100;:::o;14090:161::-;14165:4;14182:39;253:10;14205:7;14214:6;14182:8;:39::i;:::-;-1:-1:-1;14239:4:0;14090:161;;;;;:::o;24477:202::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;24574:9:::1;24569:103;24593:8;:15;24589:1;:19;24569:103;;;24655:5;24630:9;:22;24640:8;24649:1;24640:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;24630:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;24630:22:0;:30;;-1:-1:-1;;24630:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24610:3;::::1;::::0;::::1;:::i;:::-;;;;24569:103;;;;24477:202:::0;;:::o;22403:336::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;22582:47:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;22570:9:::1;:59:::0;;;;;;;;;;;;;;;22695:2:::1;22624:4:::0;22613:8;22649:23:::1;22600:10:::0;22588;22649:23:::1;:::i;:::-;:34;;;;:::i;:::-;:41;;;;:::i;:::-;22648:49;;22640:91;;;::::0;-1:-1:-1;;;22640:91:0;;8619:2:1;22640:91:0::1;::::0;::::1;8601:21:1::0;8658:2;8638:18;;;8631:30;8697:31;8677:18;;;8670:59;8746:18;;22640:91:0::1;8417:353:1::0;22640:91:0::1;22403:336:::0;;;;:::o;21595:152::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;21713:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;21713:26:0::1;-1:-1:-1::0;;;;21713:26:0;;::::1;::::0;;;::::1;::::0;;21595:152::o;22910:221::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;22973:14:::1;::::0;-1:-1:-1;;;22973:14:0;::::1;;;22972:15;22964:52;;;::::0;-1:-1:-1;;;22964:52:0;;8977:2:1;22964:52:0::1;::::0;::::1;8959:21:1::0;9016:2;8996:18;;;8989:30;9055:26;9035:18;;;9028:54;9099:18;;22964:52:0::1;8775:348:1::0;22964:52:0::1;23027:14;:21:::0;;-1:-1:-1;;;;23059:25:0;-1:-1:-1;;;23059:25:0;;;23111:12:::1;23095:13;:28:::0;22910:221::o;14259:448::-;14391:4;14408:36;14418:6;14426:9;14437:6;14408:9;:36::i;:::-;-1:-1:-1;;;;;14484:19:0;;14457:24;14484:19;;;:11;:19;;;;;;;;253:10;14484:33;;;;;;;;14536:26;;;;14528:79;;;;-1:-1:-1;;;14528:79:0;;9330:2:1;14528:79:0;;;9312:21:1;9369:2;9349:18;;;9342:30;9408:34;9388:18;;;9381:62;-1:-1:-1;;;9459:18:1;;;9452:38;9507:19;;14528:79:0;9128:404:1;14528:79:0;14618:57;14627:6;253:10;14649:25;14668:6;14649:16;:25;:::i;:::-;14618:8;:57::i;:::-;-1:-1:-1;14695:4:0;;14259:448;-1:-1:-1;;;;14259:448:0:o;24349:120::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24434:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;24434:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24349:120::o;14715:248::-;253:10;14831:4;14885:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;14885:34:0;;;;;;;;;;14831:4;;14853:80;;14876:7;;14885:47;;14922:10;;14885:47;:::i;23707:191::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23793:23:0;::::1;23785:69;;;;-1:-1:-1::0;;;23785:69:0::1;;;;;;;:::i;:::-;23865:13;:25:::0;;-1:-1:-1;;;;;;23865:25:0::1;-1:-1:-1::0;;;;;23865:25:0;;;::::1;::::0;;;::::1;::::0;;23707:191::o;22747:155::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;22842:6:::1;:27:::0;;-1:-1:-1;;;;;22842:27:0;;::::1;-1:-1:-1::0;;;;;;22842:27:0;;::::1;;::::0;;;22880:4:::1;:14:::0;;;;;::::1;::::0;::::1;;::::0;;22747:155::o;21755:302::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;21893:7:::1;21879:10;:21;;:39;;;;;21917:1;21904:10;:14;21879:39;21871:114;;;::::0;-1:-1:-1;;;21871:114:0;;10272:2:1;21871:114:0::1;::::0;::::1;10254:21:1::0;10311:2;10291:18;;;10284:30;10350:34;10330:18;;;10323:62;10421:32;10401:18;;;10394:60;10471:19;;21871:114:0::1;10070:426:1::0;21871:114:0::1;22035:14;3496:2:::0;22035::::1;:14;:::i;:::-;22022:27;::::0;:10;:27:::1;:::i;:::-;21996:23;:53:::0;-1:-1:-1;21755:302:0:o;25435:112::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;10333:6;;25503:36:::1;::::0;-1:-1:-1;;;;;10333:6:0;;;;25503:36;::::1;;;::::0;25529:9;;25503:36:::1;::::0;;;25529:9;10333:6;25503:36;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;25435:112:::0;:::o;23906:201::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23995:23:0;::::1;23987:69;;;;-1:-1:-1::0;;;23987:69:0::1;;;;;;;:::i;:::-;24067:20;:32:::0;;-1:-1:-1;;;;;;24067:32:0::1;-1:-1:-1::0;;;;;24067:32:0;;;::::1;::::0;;;::::1;::::0;;23906:201::o;10483:94::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;10548:21:::1;10566:1;10548:9;:21::i;:::-;10483:94::o:0;25555:238::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;25668:4:::1;-1:-1:-1::0;;;;;25648:25:0;::::1;::::0;25640:92:::1;;;::::0;-1:-1:-1;;;25640:92:0;;12259:2:1;25640:92:0::1;::::0;::::1;12241:21:1::0;12298:2;12278:18;;;12271:30;12337:34;12317:18;;;12310:62;-1:-1:-1;;;12388:18:1;;;12381:52;12450:19;;25640:92:0::1;12057:418:1::0;25640:92:0::1;25750:8;-1:-1:-1::0;;;;;25743:25:0::1;;25769:7;10333:6:::0;;-1:-1:-1;;;;;10333:6:0;;10260:87;25769:7:::1;25743:42;::::0;-1:-1:-1;;;;;;25743:42:0::1;::::0;;;;;;-1:-1:-1;;;;;12672:32:1;;;25743:42:0::1;::::0;::::1;12654:51:1::0;12721:18;;;12714:34;;;12627:18;;25743:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2670:104::-:0;2726:13;2759:7;2752:14;;;;;:::i;22065:330::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;22239:46:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;22231:5:::1;:54:::0;;;;;;;;;;;;;;;22351:2:::1;22280:4:::0;22270:8;22305:23:::1;22257:10:::0;22245;22305:23:::1;:::i;14971:410::-:0;253:10;15092:4;15141:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;15141:34:0;;;;;;;;;;15194:35;;;;15186:85;;;;-1:-1:-1;;;15186:85:0;;13211:2:1;15186:85:0;;;13193:21:1;13250:2;13230:18;;;13223:30;13289:34;13269:18;;;13262:62;-1:-1:-1;;;13340:18:1;;;13333:35;13385:19;;15186:85:0;13009:401:1;15186:85:0;15282:67;253:10;15305:7;15314:34;15333:15;15314:16;:34;:::i;15282:67::-;-1:-1:-1;15369:4:0;;14971:410;-1:-1:-1;;;14971:410:0:o;15389:165::-;15467:4;15484:40;15494:10;15506:9;15517:6;15484:9;:40::i;23504:195::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;23592:23:0;::::1;23584:69;;;;-1:-1:-1::0;;;23584:69:0::1;;;;;;;:::i;:::-;23664:15;:27:::0;;-1:-1:-1;;;;;;23664:27:0::1;-1:-1:-1::0;;;;;23664:27:0;;;::::1;::::0;;;::::1;::::0;;23504:195::o;24687:204::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;24785:9:::1;24780:104;24804:8;:15;24800:1;:19;24780:104;;;24867:5;24841:10;:23;24852:8;24861:1;24852:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;24841:23:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;24841:23:0;:31;;-1:-1:-1;;24841:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24821:3;::::1;::::0;::::1;:::i;:::-;;;;24780:104;;24899:528:::0;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;25025:14:::1;25015:6;:24;;25007:78;;;::::0;-1:-1:-1;;;25007:78:0;;13617:2:1;25007:78:0::1;::::0;::::1;13599:21:1::0;13656:2;13636:18;;;13629:30;13695:34;13675:18;;;13668:62;-1:-1:-1;;;13746:18:1;;;13739:39;13795:19;;25007:78:0::1;13415:405:1::0;25007:78:0::1;25115:11;25104:7;:22;;25096:77;;;::::0;-1:-1:-1;;;25096:77:0;;14027:2:1;25096:77:0::1;::::0;::::1;14009:21:1::0;14066:2;14046:18;;;14039:30;14105:34;14085:18;;;14078:62;-1:-1:-1;;;14156:18:1;;;14149:40;14206:19;;25096:77:0::1;13825:406:1::0;25096:77:0::1;25205:14;25192:9;:27;;25184:82;;;::::0;-1:-1:-1;;;25184:82:0;;14438:2:1;25184:82:0::1;::::0;::::1;14420:21:1::0;14477:2;14457:18;;;14450:30;14516:34;14496:18;;;14489:62;-1:-1:-1;;;14567:18:1;;;14560:40;14617:19;;25184:82:0::1;14236:406:1::0;25184:82:0::1;25300:14;3496:2:::0;25300::::1;:14;:::i;:::-;25291:23;::::0;:6;:23:::1;:::i;:::-;25277:11;:37:::0;25350:14:::1;3496:2:::0;25350::::1;:14;:::i;:::-;25340:24;::::0;:7;:24:::1;:::i;:::-;25325:12;:39:::0;3496:2;25404:14:::1;::::0;:2:::1;:14;:::i;:::-;25392:26;::::0;:9;:26:::1;:::i;:::-;25375:14;:43:::0;-1:-1:-1;;;24899:528:0:o;24115:226::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;24210:16:::1;:4:::0;24217:9:::1;24210:16;:::i;:::-;24195:12;:31:::0;24237:15:::1;:23:::0;;-1:-1:-1;;24237:23:0::1;::::0;::::1;;;::::0;;24287:3:::1;24279:11:::0;::::1;;24271:62;;;::::0;-1:-1:-1;;;24271:62:0;;14849:2:1;24271:62:0::1;::::0;::::1;14831:21:1::0;14888:2;14868:18;;;14861:30;14927:34;14907:18;;;14900:62;-1:-1:-1;;;14978:18:1;;;14971:36;15024:19;;24271:62:0::1;14647:402:1::0;23245:251:0;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;23327:14:::1;::::0;-1:-1:-1;;;23327:14:0;::::1;;;23326:15;23318:65;;;::::0;-1:-1:-1;;;23318:65:0;;15256:2:1;23318:65:0::1;::::0;::::1;15238:21:1::0;15295:2;15275:18;;;15268:30;15334:34;15314:18;;;15307:62;-1:-1:-1;;;15385:18:1;;;15378:35;15430:19;;23318:65:0::1;15054:401:1::0;23318:65:0::1;23414:2;23402:9;:14;23394:63;;;::::0;-1:-1:-1;;;23394:63:0;;15662:2:1;23394:63:0::1;::::0;::::1;15644:21:1::0;15701:2;15681:18;;;15674:30;15740:34;15720:18;;;15713:62;-1:-1:-1;;;15791:18:1;;;15784:35;15836:19;;23394:63:0::1;15460:401:1::0;23394:63:0::1;23468:8;:20:::0;23245:251::o;10585:192::-;10333:6;;-1:-1:-1;;;;;10333:6:0;253:10;10395:23;10387:68;;;;-1:-1:-1;;;10387:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10674:22:0;::::1;10666:73;;;::::0;-1:-1:-1;;;10666:73:0;;16068:2:1;10666:73:0::1;::::0;::::1;16050:21:1::0;16107:2;16087:18;;;16080:30;16146:34;16126:18;;;16119:62;-1:-1:-1;;;16197:18:1;;;16190:36;16243:19;;10666:73:0::1;15866:402:1::0;10666:73:0::1;10750:19;10760:8;10750:9;:19::i;:::-;10585:192:::0;:::o;9293:380::-;-1:-1:-1;;;;;9429:19:0;;9421:68;;;;-1:-1:-1;;;9421:68:0;;16475:2:1;9421:68:0;;;16457:21:1;16514:2;16494:18;;;16487:30;16553:34;16533:18;;;16526:62;-1:-1:-1;;;16604:18:1;;;16597:34;16648:19;;9421:68:0;16273:400:1;9421:68:0;-1:-1:-1;;;;;9508:21:0;;9500:68;;;;-1:-1:-1;;;9500:68:0;;16880:2:1;9500:68:0;;;16862:21:1;16919:2;16899:18;;;16892:30;16958:34;16938:18;;;16931:62;-1:-1:-1;;;17009:18:1;;;17002:32;17051:19;;9500:68:0;16678:398:1;9500:68:0;-1:-1:-1;;;;;9581:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9633:32;;3769:25:1;;;9633:32:0;;3742:18:1;9633:32:0;;;;;;;9293:380;;;:::o;15562:3152::-;15712:1;15703:6;:10;15695:64;;;;-1:-1:-1;;;15695:64:0;;17283:2:1;15695:64:0;;;17265:21:1;17322:2;17302:18;;;17295:30;17361:34;17341:18;;;17334:62;-1:-1:-1;;;17412:18:1;;;17405:39;17461:19;;15695:64:0;17081:405:1;15695:64:0;-1:-1:-1;;;;;15779:18:0;;;;;;:10;:18;;;;;;;;15778:19;:45;;;;-1:-1:-1;;;;;;15802:21:0;;;;;;:10;:21;;;;;;;;15801:22;15778:45;15770:78;;;;-1:-1:-1;;;15770:78:0;;17693:2:1;15770:78:0;;;17675:21:1;17732:2;17712:18;;;17705:30;-1:-1:-1;;;17751:18:1;;;17744:50;17811:18;;15770:78:0;17491:344:1;15770:78:0;-1:-1:-1;;;;;15866:17:0;;;;;;:9;:17;;;;;;;;15865:18;:43;;;;-1:-1:-1;;;;;;15888:20:0;;;;;;:9;:20;;;;;;;;15887:21;15865:43;15861:122;;;15933:14;;-1:-1:-1;;;15933:14:0;;;;15925:46;;;;-1:-1:-1;;;15925:46:0;;18042:2:1;15925:46:0;;;18024:21:1;18081:2;18061:18;;;18054:30;-1:-1:-1;;;18100:18:1;;;18093:49;18159:18;;15925:46:0;17840:343:1;15925:46:0;16009:4;;-1:-1:-1;;;;;15999:14:0;;;16009:4;;15999:14;:39;;;;-1:-1:-1;;;;;;16018:20:0;;;;;;:9;:20;;;;;;;;16017:21;15999:39;:54;;;;-1:-1:-1;16043:10:0;;-1:-1:-1;;;16043:10:0;;;;16042:11;15999:54;15995:306;;;16088:11;;16078:6;:21;;16070:63;;;;-1:-1:-1;;;16070:63:0;;18390:2:1;16070:63:0;;;18372:21:1;18429:2;18409:18;;;18402:30;18468:31;18448:18;;;18441:59;18517:18;;16070:63:0;18188:353:1;16070:63:0;16207:14;;16197:6;16174:20;16184:9;-1:-1:-1;;;;;3843:18:0;3816:7;3843:18;;;;;;;;;;;;3742:127;16174:20;:29;;;;:::i;:::-;:47;;16148:141;;;;-1:-1:-1;;;16148:141:0;;18748:2:1;16148:141:0;;;18730:21:1;;;18767:18;;;18760:30;18826:34;18806:18;;;18799:62;18878:18;;16148:141:0;18546:356:1;16148:141:0;16341:4;;-1:-1:-1;;;;;16331:14:0;;;16341:4;;16331:14;;;;:39;;-1:-1:-1;;;;;;16350:20:0;;;;;;:9;:20;;;;;;;;16349:21;16331:39;:61;;;;-1:-1:-1;;;;;;16375:17:0;;;;;;:9;:17;;;;;;;;16374:18;16331:61;:76;;;;-1:-1:-1;16397:10:0;;-1:-1:-1;;;16397:10:0;;;;16396:11;16331:76;16313:677;;;16452:12;;16442:6;:22;;16434:65;;;;-1:-1:-1;;;16434:65:0;;19109:2:1;16434:65:0;;;19091:21:1;19148:2;19128:18;;;19121:30;19187:32;19167:18;;;19160:60;19237:18;;16434:65:0;18907:354:1;16434:65:0;16531:4;;-1:-1:-1;;;;;16518:17:0;;;16531:4;;16518:17;16514:211;;16619:14;;16609:6;16586:20;16596:9;-1:-1:-1;;;;;3843:18:0;3816:7;3843:18;;;;;;;;;;;;3742:127;16586:20;:29;;;;:::i;:::-;:47;;16556:153;;;;-1:-1:-1;;;16556:153:0;;18748:2:1;16556:153:0;;;18730:21:1;;;18767:18;;;18760:30;18826:34;18806:18;;;18799:62;18878:18;;16556:153:0;18546:356:1;16556:153:0;16743:15;;;;16739:240;;;-1:-1:-1;;;;;16818:17:0;;16779:18;16818:17;;;:9;:17;;;;;;16800:35;;:15;:35;:::i;:::-;16779:56;;16876:12;;16862:10;:26;;16854:55;;;;-1:-1:-1;;;16854:55:0;;19468:2:1;16854:55:0;;;19450:21:1;19507:2;19487:18;;;19480:30;-1:-1:-1;;;19526:18:1;;;19519:46;19582:18;;16854:55:0;19266:340:1;16854:55:0;-1:-1:-1;;;;;;16928:17:0;;;;;;:9;:17;;;;;16948:15;16928:35;;16739:240;17002:15;17028:14;17053:11;17075:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17075:25:0;-1:-1:-1;;;;;17134:17:0;;17113;17134;;;:9;:17;;;;;;;;17133:18;:56;;;;-1:-1:-1;;;;;;17169:20:0;;;;;;:9;:20;;;;;;;;17168:21;17133:56;:112;;;;;17237:8;;17221:13;;:24;;;;:::i;:::-;17206:12;:39;17133:112;17333:10;;17113:132;;-1:-1:-1;;;;17333:10:0;;;;;:31;;-1:-1:-1;;;;;;17347:17:0;;;;;;:9;:17;;;;;;;;17333:31;:55;;;-1:-1:-1;;;;;;17368:20:0;;;;;;:9;:20;;;;;;;;17333:55;17329:805;;;17409:1;17403:7;;17329:805;;;17474:4;;-1:-1:-1;;;;;17461:17:0;;;17474:4;;17461:17;:34;;;;;17483:12;17482:13;17461:34;17457:677;;;17666:19;;17617:17;;17666:9;17578:19;17539;;:58;;17578:19;17539:58;:::i;:::-;:95;;;;:::i;:::-;:146;;;;:::i;:::-;17731:24;;;;;;;;17746:9;17731:24;;;;;;;;;;;;;;;;;;;;;;;;17512:173;;-1:-1:-1;17512:173:0;;-1:-1:-1;17731:24:0;-1:-1:-1;17457:677:0;;;17778:12;17773:361;;17937:15;;17904:13;;17937:5;17869:15;17834;;:50;;17869:15;17834:50;:::i;:::-;:83;;;;:::i;:::-;:118;;;;:::i;:::-;17999:20;;;;;;;;18014:5;17999:20;;;;;;;;;;;;;;;;;;;;;;;;17807:145;;-1:-1:-1;17807:145:0;;-1:-1:-1;17999:20:0;-1:-1:-1;17773:361:0;;;18041:12;18037:97;;;18080:9;;;-1:-1:-1;18080:9:0;;-1:-1:-1;18037:97:0;18172:3;18153:15;18162:6;18153;:15;:::i;:::-;18152:23;;;;:::i;:::-;18289:18;;18146:29;;-1:-1:-1;;;;18289:18:0;;;;:36;;;;-1:-1:-1;18321:4:0;;-1:-1:-1;;;;;18311:14:0;;;18321:4;;18311:14;;18289:36;18285:72;;;18327:30;18335:7;18344:12;18327:7;:30::i;:::-;18399:48;18415:6;18423:9;18434:12;18443:3;18434:6;:12;:::i;:::-;18399:15;:48::i;:::-;18462:7;;18458:249;;18534:11;;18530:164;;18566:17;18607:3;18587:16;18596:7;18587:6;:16;:::i;:::-;18586:24;;;;:::i;:::-;18566:44;;18629:49;18645:6;18661:4;18668:9;18629:15;:49::i;:::-;18547:147;18530:164;15684:3030;;;;;15562:3152;;;:::o;10785:173::-;10860:6;;;-1:-1:-1;;;;;10877:17:0;;;-1:-1:-1;;;;;;10877:17:0;;;;;;;10910:40;;10860:6;;;10877:17;10860:6;;10910:40;;10841:16;;10910:40;10830:128;10785:173;:::o;18722:1815::-;13301:10;;-1:-1:-1;;;13301:10:0;;;;13296:110;;13328:10;:17;;-1:-1:-1;;;;13328:17:0;-1:-1:-1;;;13328:17:0;;;18813:49;;18844:7:::1;18813:49;18918:4;18874:23;3843:18:::0;;;;;;;;;;;18958:23:::1;::::0;18939:42;::::1;18935:1595;;19028:1;19002:23;;:27;18998:109;;;-1:-1:-1::0;19068:23:0::1;::::0;18998:109:::1;19178:19;19200:11;:7:::0;19210:1:::1;19200:11;:::i;:::-;19178:33;;19226:32;19320:11;19280:9;:19;;;19262:15;:37;;;;:::i;:::-;19261:70;;;;:::i;:::-;19226:105:::0;-1:-1:-1;19346:14:0::1;19363:42;19226:105:::0;19363:15;:42:::1;:::i;:::-;19346:59:::0;-1:-1:-1;19447:21:0::1;19485:24;19346:59:::0;19485:16:::1;:24::i;:::-;19526:20;19549:38;19573:14:::0;19549:21:::1;:38;:::i;:::-;19526:61;;19602:19;19654:9;:19;;;19640:11;:33;;;;:::i;:::-;19624:50;::::0;:12;:50:::1;:::i;:::-;19602:72;;19689:29;19735:9;:19;;;19721:11;:33;;;;:::i;:::-;19689:65:::0;-1:-1:-1;19775:25:0;;19771:172:::1;;19866:61;19879:24;19905:21;19866:12;:61::i;:::-;20000:19:::0;;19959:20:::1;::::0;19982:15:::1;:11:::0;19996:1:::1;19982:15;:::i;:::-;:37;;;;:::i;:::-;19959:60:::0;-1:-1:-1;20038:16:0;;20034:105:::1;;20083:15;::::0;20075:48:::1;::::0;-1:-1:-1;;;;;20083:15:0::1;20110:12:::0;20075:34:::1;:48::i;:::-;20194:17;::::0;::::1;::::0;20155:18:::1;::::0;20176:15:::1;:11:::0;20190:1:::1;20176:15;:::i;:::-;:35;;;;:::i;:::-;20155:56:::0;-1:-1:-1;20230:14:0;;20226:99:::1;;20273:13;::::0;20265:44:::1;::::0;-1:-1:-1;;;;;20273:13:0::1;20298:10:::0;20265:32:::1;:44::i;:::-;20379:19;::::0;::::1;::::0;20341:17:::1;::::0;20361:15:::1;:11:::0;20375:1:::1;20361:15;:::i;:::-;:37;;;;:::i;:::-;20341:57:::0;-1:-1:-1;20417:13:0;;20413:104:::1;;20459:20;::::0;20451:50:::1;::::0;-1:-1:-1;;;;;20459:20:0::1;20491:9:::0;20451:39:::1;:50::i;:::-;18983:1547;;;;;;;;;;18935:1595;18800:1737;13360:1;13376:10:::0;:18;;-1:-1:-1;;;;13376:18:0;;;18722:1815;;:::o;7874:578::-;-1:-1:-1;;;;;8014:20:0;;8006:70;;;;-1:-1:-1;;;8006:70:0;;20035:2:1;8006:70:0;;;20017:21:1;20074:2;20054:18;;;20047:30;20113:34;20093:18;;;20086:62;-1:-1:-1;;;20164:18:1;;;20157:35;20209:19;;8006:70:0;19833:401:1;8006:70:0;-1:-1:-1;;;;;8095:23:0;;8087:71;;;;-1:-1:-1;;;8087:71:0;;20441:2:1;8087:71:0;;;20423:21:1;20480:2;20460:18;;;20453:30;20519:34;20499:18;;;20492:62;-1:-1:-1;;;20570:18:1;;;20563:33;20613:19;;8087:71:0;20239:399:1;8087:71:0;-1:-1:-1;;;;;8195:17:0;;8171:21;8195:17;;;;;;;;;;;8231:23;;;;8223:74;;;;-1:-1:-1;;;8223:74:0;;20845:2:1;8223:74:0;;;20827:21:1;20884:2;20864:18;;;20857:30;20923:34;20903:18;;;20896:62;-1:-1:-1;;;20974:18:1;;;20967:36;21020:19;;8223:74:0;20643:402:1;8223:74:0;8328:22;8344:6;8328:13;:22;:::i;:::-;-1:-1:-1;;;;;8308:17:0;;;:9;:17;;;;;;;;;;;:42;;;;8361:20;;;;;;;;:30;;8385:6;;8308:9;8361:30;;8385:6;;8361:30;:::i;:::-;;;;;;;;8426:9;-1:-1:-1;;;;;8409:35:0;8418:6;-1:-1:-1;;;;;8409:35:0;;8437:6;8409:35;;;;3769:25:1;;3757:2;3742:18;;3623:177;8409:35:0;;;;;;;;7995:457;7874:578;;;:::o;20545:534::-;20695:16;;;20709:1;20695:16;;;;;;;;20671:21;;20695:16;;;;;;;;;;-1:-1:-1;20695:16:0;20671:40;;20740:4;20722;20727:1;20722:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20722:23:0;;;:7;;;;;;;;;;:23;;;;20766:6;;:13;;;-1:-1:-1;;;20766:13:0;;;;:6;;;;;:11;;:13;;;;;20722:7;;20766:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20756:4;20761:1;20756:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;20756:23:0;;;:7;;;;;;;;;:23;20824:6;;20792:53;;20809:4;;20824:6;20833:11;20792:8;:53::i;:::-;20884:6;;:187;;-1:-1:-1;;;20884:187:0;;-1:-1:-1;;;;;20884:6:0;;;;:57;;:187;;20956:11;;20884:6;;20998:4;;21025;;21045:15;;20884:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20600:479;20545:534;:::o;21087:500::-;21267:6;;21235:53;;21252:4;;-1:-1:-1;;;;;21267:6:0;21276:11;21235:8;:53::i;:::-;21331:6;;:248;;-1:-1:-1;;;21331:248:0;;21396:4;21331:248;;;22632:34:1;22682:18;;;22675:34;;;21331:6:0;22725:18:1;;;22718:34;;;22768:18;;;22761:34;12716:42:0;22811:19:1;;;22804:44;21553:15:0;22864:19:1;;;22857:35;-1:-1:-1;;;;;21331:6:0;;;;:22;;21362:9;;22566:19:1;;21331:248:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;21087:500;;:::o;9703:319::-;9818:6;9793:21;:31;;9785:73;;;;-1:-1:-1;;;9785:73:0;;23416:2:1;9785:73:0;;;23398:21:1;23455:2;23435:18;;;23428:30;23494:31;23474:18;;;23467:59;23543:18;;9785:73:0;23214:353:1;9785:73:0;9872:12;9890:9;-1:-1:-1;;;;;9890:14:0;9913:6;9890:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9871:54;;;9944:7;9936:78;;;;-1:-1:-1;;;9936:78:0;;23984:2:1;9936:78:0;;;23966:21:1;24023:2;24003:18;;;23996:30;24062:34;24042:18;;;24035:62;24133:28;24113:18;;;24106:56;24179:19;;9936:78:0;23782:422:1;14:118;100:5;93:13;86:21;79:5;76:32;66:60;;122:1;119;112:12;137:128;202:20;;231:28;202:20;231:28;:::i;:::-;137:128;;;:::o;270:241::-;326:6;379:2;367:9;358:7;354:23;350:32;347:52;;;395:1;392;385:12;347:52;434:9;421:23;453:28;475:5;453:28;:::i;:::-;500:5;270:241;-1:-1:-1;;;270:241:1:o;516:597::-;628:4;657:2;686;675:9;668:21;718:6;712:13;761:6;756:2;745:9;741:18;734:34;786:1;796:140;810:6;807:1;804:13;796:140;;;905:14;;;901:23;;895:30;871:17;;;890:2;867:26;860:66;825:10;;796:140;;;954:6;951:1;948:13;945:91;;;1024:1;1019:2;1010:6;999:9;995:22;991:31;984:42;945:91;-1:-1:-1;1097:2:1;1076:15;-1:-1:-1;;1072:29:1;1057:45;;;;1104:2;1053:54;;516:597;-1:-1:-1;;;516:597:1:o;1118:131::-;-1:-1:-1;;;;;1193:31:1;;1183:42;;1173:70;;1239:1;1236;1229:12;1254:134;1322:20;;1351:31;1322:20;1351:31;:::i;1393:315::-;1461:6;1469;1522:2;1510:9;1501:7;1497:23;1493:32;1490:52;;;1538:1;1535;1528:12;1490:52;1577:9;1564:23;1596:31;1621:5;1596:31;:::i;:::-;1646:5;1698:2;1683:18;;;;1670:32;;-1:-1:-1;;;1393:315:1:o;1905:127::-;1966:10;1961:3;1957:20;1954:1;1947:31;1997:4;1994:1;1987:15;2021:4;2018:1;2011:15;2037:1191;2127:6;2135;2188:2;2176:9;2167:7;2163:23;2159:32;2156:52;;;2204:1;2201;2194:12;2156:52;2244:9;2231:23;2273:18;2314:2;2306:6;2303:14;2300:34;;;2330:1;2327;2320:12;2300:34;2368:6;2357:9;2353:22;2343:32;;2413:7;2406:4;2402:2;2398:13;2394:27;2384:55;;2435:1;2432;2425:12;2384:55;2471:2;2458:16;2493:4;2516:2;2512;2509:10;2506:36;;;2522:18;;:::i;:::-;2568:2;2565:1;2561:10;2600:2;2594:9;2663:2;2659:7;2654:2;2650;2646:11;2642:25;2634:6;2630:38;2718:6;2706:10;2703:22;2698:2;2686:10;2683:18;2680:46;2677:72;;;2729:18;;:::i;:::-;2765:2;2758:22;2815:18;;;2849:15;;;;-1:-1:-1;2891:11:1;;;2887:20;;;2919:19;;;2916:39;;;2951:1;2948;2941:12;2916:39;2975:11;;;;2995:148;3011:6;3006:3;3003:15;2995:148;;;3077:23;3096:3;3077:23;:::i;:::-;3065:36;;3028:12;;;;3121;;;;2995:148;;;3162:6;-1:-1:-1;3187:35:1;;-1:-1:-1;3203:18:1;;;3187:35;:::i;:::-;3177:45;;;;;;2037:1191;;;;;:::o;3233:385::-;3319:6;3327;3335;3343;3396:3;3384:9;3375:7;3371:23;3367:33;3364:53;;;3413:1;3410;3403:12;3364:53;-1:-1:-1;;3436:23:1;;;3506:2;3491:18;;3478:32;;-1:-1:-1;3557:2:1;3542:18;;3529:32;;3608:2;3593:18;3580:32;;-1:-1:-1;3233:385:1;-1:-1:-1;3233:385:1:o;3805:456::-;3882:6;3890;3898;3951:2;3939:9;3930:7;3926:23;3922:32;3919:52;;;3967:1;3964;3957:12;3919:52;4006:9;3993:23;4025:31;4050:5;4025:31;:::i;:::-;4075:5;-1:-1:-1;4132:2:1;4117:18;;4104:32;4145:33;4104:32;4145:33;:::i;:::-;3805:456;;4197:7;;-1:-1:-1;;;4251:2:1;4236:18;;;;4223:32;;3805:456::o;4455:382::-;4520:6;4528;4581:2;4569:9;4560:7;4556:23;4552:32;4549:52;;;4597:1;4594;4587:12;4549:52;4636:9;4623:23;4655:31;4680:5;4655:31;:::i;:::-;4705:5;-1:-1:-1;4762:2:1;4747:18;;4734:32;4775:30;4734:32;4775:30;:::i;:::-;4824:7;4814:17;;;4455:382;;;;;:::o;4842:247::-;4901:6;4954:2;4942:9;4933:7;4929:23;4925:32;4922:52;;;4970:1;4967;4960:12;4922:52;5009:9;4996:23;5028:31;5053:5;5028:31;:::i;5094:388::-;5162:6;5170;5223:2;5211:9;5202:7;5198:23;5194:32;5191:52;;;5239:1;5236;5229:12;5191:52;5278:9;5265:23;5297:31;5322:5;5297:31;:::i;:::-;5347:5;-1:-1:-1;5404:2:1;5389:18;;5376:32;5417:33;5376:32;5417:33;:::i;5487:180::-;5546:6;5599:2;5587:9;5578:7;5574:23;5570:32;5567:52;;;5615:1;5612;5605:12;5567:52;-1:-1:-1;5638:23:1;;5487:180;-1:-1:-1;5487:180:1:o;6276:316::-;6353:6;6361;6369;6422:2;6410:9;6401:7;6397:23;6393:32;6390:52;;;6438:1;6435;6428:12;6390:52;-1:-1:-1;;6461:23:1;;;6531:2;6516:18;;6503:32;;-1:-1:-1;6582:2:1;6567:18;;;6554:32;;6276:316;-1:-1:-1;6276:316:1:o;6597:309::-;6662:6;6670;6723:2;6711:9;6702:7;6698:23;6694:32;6691:52;;;6739:1;6736;6729:12;6691:52;6778:9;6765:23;6797:28;6819:5;6797:28;:::i;7134:356::-;7336:2;7318:21;;;7355:18;;;7348:30;7414:34;7409:2;7394:18;;7387:62;7481:2;7466:18;;7134:356::o;7495:380::-;7574:1;7570:12;;;;7617;;;7638:61;;7692:4;7684:6;7680:17;7670:27;;7638:61;7745:2;7737:6;7734:14;7714:18;7711:38;7708:161;;7791:10;7786:3;7782:20;7779:1;7772:31;7826:4;7823:1;7816:15;7854:4;7851:1;7844:15;7708:161;;7495:380;;;:::o;7880:127::-;7941:10;7936:3;7932:20;7929:1;7922:31;7972:4;7969:1;7962:15;7996:4;7993:1;7986:15;8012:127;8073:10;8068:3;8064:20;8061:1;8054:31;8104:4;8101:1;8094:15;8128:4;8125:1;8118:15;8144:135;8183:3;8204:17;;;8201:43;;8224:18;;:::i;:::-;-1:-1:-1;8271:1:1;8260:13;;8144:135::o;8284:128::-;8324:3;8355:1;8351:6;8348:1;8345:13;8342:39;;;8361:18;;:::i;:::-;-1:-1:-1;8397:9:1;;8284:128::o;9537:125::-;9577:4;9605:1;9602;9599:8;9596:34;;;9610:18;;:::i;:::-;-1:-1:-1;9647:9:1;;9537:125::o;9667:398::-;9869:2;9851:21;;;9908:2;9888:18;;;9881:30;9947:34;9942:2;9927:18;;9920:62;-1:-1:-1;;;10013:2:1;9998:18;;9991:32;10055:3;10040:19;;9667:398::o;10501:422::-;10590:1;10633:5;10590:1;10647:270;10668:7;10658:8;10655:21;10647:270;;;10727:4;10723:1;10719:6;10715:17;10709:4;10706:27;10703:53;;;10736:18;;:::i;:::-;10786:7;10776:8;10772:22;10769:55;;;10806:16;;;;10769:55;10885:22;;;;10845:15;;;;10647:270;;;10651:3;10501:422;;;;;:::o;10928:806::-;10977:5;11007:8;10997:80;;-1:-1:-1;11048:1:1;11062:5;;10997:80;11096:4;11086:76;;-1:-1:-1;11133:1:1;11147:5;;11086:76;11178:4;11196:1;11191:59;;;;11264:1;11259:130;;;;11171:218;;11191:59;11221:1;11212:10;;11235:5;;;11259:130;11296:3;11286:8;11283:17;11280:43;;;11303:18;;:::i;:::-;-1:-1:-1;;11359:1:1;11345:16;;11374:5;;11171:218;;11473:2;11463:8;11460:16;11454:3;11448:4;11445:13;11441:36;11435:2;11425:8;11422:16;11417:2;11411:4;11408:12;11404:35;11401:77;11398:159;;;-1:-1:-1;11510:19:1;;;11542:5;;11398:159;11589:34;11614:8;11608:4;11589:34;:::i;:::-;11659:6;11655:1;11651:6;11647:19;11638:7;11635:32;11632:58;;;11670:18;;:::i;:::-;11708:20;;10928:806;-1:-1:-1;;;10928:806:1:o;11739:140::-;11797:5;11826:47;11867:4;11857:8;11853:19;11847:4;11826:47;:::i;11884:168::-;11924:7;11990:1;11986;11982:6;11978:14;11975:1;11972:21;11967:1;11960:9;11953:17;11949:45;11946:71;;;11997:18;;:::i;:::-;-1:-1:-1;12037:9:1;;11884:168::o;12759:245::-;12826:6;12879:2;12867:9;12858:7;12854:23;12850:32;12847:52;;;12895:1;12892;12885:12;12847:52;12927:9;12921:16;12946:28;12968:5;12946:28;:::i;19611:217::-;19651:1;19677;19667:132;;19721:10;19716:3;19712:20;19709:1;19702:31;19756:4;19753:1;19746:15;19784:4;19781:1;19774:15;19667:132;-1:-1:-1;19813:9:1;;19611:217::o;21050:251::-;21120:6;21173:2;21161:9;21152:7;21148:23;21144:32;21141:52;;;21189:1;21186;21179:12;21141:52;21221:9;21215:16;21240:31;21265:5;21240:31;:::i;21306:980::-;21568:4;21616:3;21605:9;21601:19;21647:6;21636:9;21629:25;21673:2;21711:6;21706:2;21695:9;21691:18;21684:34;21754:3;21749:2;21738:9;21734:18;21727:31;21778:6;21813;21807:13;21844:6;21836;21829:22;21882:3;21871:9;21867:19;21860:26;;21921:2;21913:6;21909:15;21895:29;;21942:1;21952:195;21966:6;21963:1;21960:13;21952:195;;;22031:13;;-1:-1:-1;;;;;22027:39:1;22015:52;;22122:15;;;;22087:12;;;;22063:1;21981:9;21952:195;;;-1:-1:-1;;;;;;;22203:32:1;;;;22198:2;22183:18;;22176:60;-1:-1:-1;;;22267:3:1;22252:19;22245:35;22164:3;21306:980;-1:-1:-1;;;21306:980:1:o;22903:306::-;22991:6;22999;23007;23060:2;23048:9;23039:7;23035:23;23031:32;23028:52;;;23076:1;23073;23066:12;23028:52;23105:9;23099:16;23089:26;;23155:2;23144:9;23140:18;23134:25;23124:35;;23199:2;23188:9;23184:18;23178:25;23168:35;;22903:306;;;;;:::o
Swarm Source
ipfs://b227bb9b80d1e606bdc4b43a0a466f4af09a700bdab31949dbb6fb78c275d526
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.