ERC-20
Overview
Max Total Supply
100,000,000 SHIBTIMUS
Holders
132
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
3,598.753374906092948519 SHIBTIMUSValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Shibtimus
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-03-23 */ /** https://t.me/Shibtimus https://twitter.com/ShibtimusETH */ //SPDX-License-Identifier: MIT pragma solidity 0.8.12; 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"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } /** @dev Creates `amount` tokens and assigns them to `account`, increasing * the total supply. * * Emits a {Transfer} event with `from` set to the zero address. * * Requirements: * * - `to` cannot be the zero address. */ function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements: * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), 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); } /** * @dev Hook that is called before any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens * will be to transferred to `to`. * - when `from` is zero, `amount` tokens will be minted for `to`. * - when `to` is zero, `amount` of ``from``'s tokens will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } 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, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract Shibtimus is ERC20, Ownable{ using Address for address payable; IRouter public router; address public pair; bool private swapping; bool public swapEnabled; bool public tradingEnabled; uint256 public genesis_block; uint256 public deadblocks = 0; uint256 public swapThreshold = 100_000 * 10e18; uint256 public maxTxAmount = 100_000_000 * 10**18; uint256 public maxWalletAmount = 2_000_000 * 10**18; address public marketingWallet = 0x30Bd89c4E68B1627D00f5A023075460F6415FA16; address public devWallet = 0x30Bd89c4E68B1627D00f5A023075460F6415FA16; struct Taxes { uint256 marketing; uint256 liquidity; uint256 dev; } Taxes public taxes = Taxes(0,0,20); Taxes public sellTaxes = Taxes(0,0,25); uint256 public totTax = 20; uint256 public totSellTax = 25; mapping (address => bool) public excludedFromFees; mapping (address => bool) public isBot; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("Shiba Optimus", "SHIBTIMUS") { _mint(msg.sender, 100000000 * 10 ** decimals()); excludedFromFees[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; excludedFromFees[address(this)] = true; excludedFromFees[marketingWallet] = true; excludedFromFees[devWallet] = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens"); if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){ require(tradingEnabled, "Trading not active yet"); if(genesis_block + deadblocks > block.number){ if(recipient != pair) isBot[recipient] = true; if(sender != pair) isBot[sender] = true; } require(amount <= maxTxAmount, "You are exceeding maxTxAmount"); if(recipient != pair){ require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount"); } } uint256 fee; //set fee to zero if fees in contract are handled or exempted if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0; //calculate fee else{ if(recipient == pair) fee = amount * totSellTax / 100; else fee = amount * totTax / 100; } //send fees if threshold has been reached //don't do this on buys, breaks swap if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees(); super._transfer(sender, recipient, amount - fee); if(fee > 0) super._transfer(sender, address(this) ,fee); } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { // Split the contract balance into halves uint256 denominator = totSellTax * 2; uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 initialBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - initialBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(ethToAddLiquidityWith > 0){ // Add liquidity to Uniswap addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 devAmt = unitBalance * 2 * sellTaxes.dev; if(devAmt > 0){ payable(devWallet).sendValue(devAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { 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 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable devWallet, block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { swapEnabled = state; } function setSwapThreshold(uint256 new_amount) external onlyOwner { swapThreshold = new_amount; } function enableTrading(uint256 numOfDeadBlocks, bool fuckTippersOrNot) external onlyOwner{ if(!fuckTippersOrNot){ require(!tradingEnabled, "Trading already active"); tradingEnabled = true; swapEnabled = true; genesis_block = block.number; deadblocks = numOfDeadBlocks; } } function setTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{ taxes = Taxes(_marketing, _liquidity, _dev); totTax = _marketing + _liquidity + _dev; } function setSellTaxes(uint256 _marketing, uint256 _liquidity, uint256 _dev) external onlyOwner{ sellTaxes = Taxes(_marketing, _liquidity, _dev); totSellTax = _marketing + _liquidity + _dev; } function updateMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateDevWallet(address newWallet) external onlyOwner{ devWallet = newWallet; } function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{ router = _router; pair = _pair; } function setIsBot(address account, bool state) external onlyOwner{ isBot[account] = state; } function updateExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; } function updateMaxTxAmount(uint256 amount) external onlyOwner{ maxTxAmount = amount * 10**18; } function updateMaxWalletAmount(uint256 amount) external onlyOwner{ maxWalletAmount = amount * 10**18; } function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{ IERC20(tokenAddress).transfer(owner(), amount); } function rescueETH(uint256 weiAmount) external onlyOwner{ payable(owner()).sendValue(weiAmount); } function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{ uint256 initBalance = address(this).balance; swapTokensForETH(amount); uint256 newBalance = address(this).balance - initBalance; if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage)); if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage)); } // 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":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"numOfDeadBlocks","type":"uint256"},{"internalType":"bool","name":"fuckTippersOrNot","type":"bool"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","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":[{"internalType":"address","name":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","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":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","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":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052600060095569d3c21bcecceda1000000600a556a52b7d2dcc80cd2e4000000600b556a01a784379d99db42000000600c557330bd89c4e68b1627d00f5a023075460f6415fa16600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507330bd89c4e68b1627d00f5a023075460f6415fa16600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060008152602001600081526020016014815250600f600082015181600001556020820151816001015560408201518160020155505060405180606001604052806000815260200160008152602001601981525060126000820151816000015560208201518160010155604082015181600201555050601460155560196016553480156200017657600080fd5b506040518060400160405280600d81526020017f5368696261204f7074696d7573000000000000000000000000000000000000008152506040518060400160405280600981526020017f5348494254494d555300000000000000000000000000000000000000000000008152508160039080519060200190620001fb92919062000868565b5080600490805190602001906200021492919062000868565b505050620002376200022b6200062760201b60201c565b6200062f60201b60201c565b62000277336200024c620006f560201b60201c565b600a6200025a919062000ab2565b6305f5e1006200026b919062000b03565b620006fe60201b60201c565b6001601760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000336573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200035c919062000bce565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea919062000bce565b6040518363ffffffff1660e01b81526004016200040992919062000c11565b6020604051808303816000875af115801562000429573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200044f919062000bce565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000db1565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000771576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007689062000c9f565b60405180910390fd5b62000785600083836200086360201b60201c565b806002600082825462000799919062000cc1565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007f0919062000cc1565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000857919062000d2f565b60405180910390a35050565b505050565b828054620008769062000d7b565b90600052602060002090601f0160209004810192826200089a5760008555620008e6565b82601f10620008b557805160ff1916838001178555620008e6565b82800160010185558215620008e6579182015b82811115620008e5578251825591602001919060010190620008c8565b5b509050620008f59190620008f9565b5090565b5b8082111562000914576000816000905550600101620008fa565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009a6578086048111156200097e576200097d62000918565b5b60018516156200098e5780820291505b80810290506200099e8562000947565b94506200095e565b94509492505050565b600082620009c1576001905062000a94565b81620009d1576000905062000a94565b8160018114620009ea5760028114620009f55762000a2b565b600191505062000a94565b60ff84111562000a0a5762000a0962000918565b5b8360020a91508482111562000a245762000a2362000918565b5b5062000a94565b5060208310610133831016604e8410600b841016171562000a655782820a90508381111562000a5f5762000a5e62000918565b5b62000a94565b62000a74848484600162000954565b9250905081840481111562000a8e5762000a8d62000918565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000abf8262000a9b565b915062000acc8362000aa5565b925062000afb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009af565b905092915050565b600062000b108262000a9b565b915062000b1d8362000a9b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b595762000b5862000918565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b968262000b69565b9050919050565b62000ba88162000b89565b811462000bb457600080fd5b50565b60008151905062000bc88162000b9d565b92915050565b60006020828403121562000be75762000be662000b64565b5b600062000bf78482850162000bb7565b91505092915050565b62000c0b8162000b89565b82525050565b600060408201905062000c28600083018562000c00565b62000c37602083018462000c00565b9392505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c87601f8362000c3e565b915062000c948262000c4f565b602082019050919050565b6000602082019050818103600083015262000cba8162000c78565b9050919050565b600062000cce8262000a9b565b915062000cdb8362000a9b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d135762000d1262000918565b5b828201905092915050565b62000d298162000a9b565b82525050565b600060208201905062000d46600083018462000d1e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d9457607f821691505b6020821081141562000dab5762000daa62000d4c565b5b50919050565b6145378062000dc16000396000f3fe6080604052600436106102815760003560e01c806375f0a8741161014f578063aa4bde28116100c1578063e545fd6d1161007a578063e545fd6d146109bd578063e9dae5ed146109e6578063f2fde38b14610a0f578063f66895a314610a38578063f887ea4014610a65578063fb29d01514610a9057610288565b8063aa4bde281461089d578063aacebbe3146108c8578063c18bc195146108f1578063dbe66ca01461091a578063dd62ed3e14610957578063e01af92c1461099457610288565b806395d89b411161011357806395d89b411461077b5780639d0014b1146107a65780639e252f00146107cf578063a457c2d7146107f8578063a8aa1b3114610835578063a9059cbb1461086057610288565b806375f0a874146106a65780638c0b5e22146106d15780638cd4426d146106fc5780638da5cb5b146107255780638ea5220f1461075057610288565b8063293b7ef4116101f357806350c9a88f116101ac57806350c9a88f146105a65780636256d181146105d15780636ddd1713146105fa57806370a0823114610625578063715018a614610662578063728f8eea1461067957610288565b8063293b7ef414610482578063313ce567146104ad57806339509351146104d85780633bbac5791461051557806340b28c2f146105525780634ada218b1461057b57610288565b806318160ddd1161024557806318160ddd146103725780631816467f1461039d5780632253163d146103c657806323b872dd146103f157806326b5d32f1461042e578063274a533c1461045757610288565b806303c0f5d41461028d5780630445b667146102b657806306fdde03146102e1578063087332141461030c578063095ea7b31461033557610288565b3661028857005b600080fd5b34801561029957600080fd5b506102b460048036038101906102af91906131f0565b610ab9565b005b3480156102c257600080fd5b506102cb610b90565b6040516102d89190613249565b60405180910390f35b3480156102ed57600080fd5b506102f6610b96565b60405161030391906132fd565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e919061334b565b610c28565b005b34801561034157600080fd5b5061035c6004803603810190610357919061339e565b610d04565b60405161036991906133ed565b60405180910390f35b34801561037e57600080fd5b50610387610d22565b6040516103949190613249565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190613408565b610d2c565b005b3480156103d257600080fd5b506103db610dec565b6040516103e89190613249565b60405180910390f35b3480156103fd57600080fd5b5061041860048036038101906104139190613435565b610df2565b60405161042591906133ed565b60405180910390f35b34801561043a57600080fd5b506104556004803603810190610450919061334b565b610ef3565b005b34801561046357600080fd5b5061046c611080565b6040516104799190613249565b60405180910390f35b34801561048e57600080fd5b50610497611086565b6040516104a49190613249565b60405180910390f35b3480156104b957600080fd5b506104c261108c565b6040516104cf91906134a4565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa919061339e565b611095565b60405161050c91906133ed565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190613408565b611141565b60405161054991906133ed565b60405180910390f35b34801561055e57600080fd5b50610579600480360381019061057491906134fd565b611161565b005b34801561058757600080fd5b50610590611263565b60405161059d91906133ed565b60405180910390f35b3480156105b257600080fd5b506105bb611276565b6040516105c89190613249565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f3919061353d565b61127c565b005b34801561060657600080fd5b5061060f611315565b60405161061c91906133ed565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190613408565b611328565b6040516106599190613249565b60405180910390f35b34801561066e57600080fd5b50610677611370565b005b34801561068557600080fd5b5061068e6113f8565b60405161069d9392919061356a565b60405180910390f35b3480156106b257600080fd5b506106bb611410565b6040516106c891906135b0565b60405180910390f35b3480156106dd57600080fd5b506106e6611436565b6040516106f39190613249565b60405180910390f35b34801561070857600080fd5b50610723600480360381019061071e919061339e565b61143c565b005b34801561073157600080fd5b5061073a611542565b60405161074791906135b0565b60405180910390f35b34801561075c57600080fd5b5061076561156c565b60405161077291906135b0565b60405180910390f35b34801561078757600080fd5b50610790611592565b60405161079d91906132fd565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c8919061353d565b611624565b005b3480156107db57600080fd5b506107f660048036038101906107f1919061353d565b6116aa565b005b34801561080457600080fd5b5061081f600480360381019061081a919061339e565b611759565b60405161082c91906133ed565b60405180910390f35b34801561084157600080fd5b5061084a61184d565b60405161085791906135b0565b60405180910390f35b34801561086c57600080fd5b506108876004803603810190610882919061339e565b611873565b60405161089491906133ed565b60405180910390f35b3480156108a957600080fd5b506108b2611891565b6040516108bf9190613249565b60405180910390f35b3480156108d457600080fd5b506108ef60048036038101906108ea9190613408565b611897565b005b3480156108fd57600080fd5b506109186004803603810190610913919061353d565b611957565b005b34801561092657600080fd5b50610941600480360381019061093c9190613408565b6119f0565b60405161094e91906133ed565b60405180910390f35b34801561096357600080fd5b5061097e600480360381019061097991906135cb565b611a10565b60405161098b9190613249565b60405180910390f35b3480156109a057600080fd5b506109bb60048036038101906109b6919061360b565b611a97565b005b3480156109c957600080fd5b506109e460048036038101906109df91906131f0565b611b30565b005b3480156109f257600080fd5b50610a0d6004803603810190610a08919061334b565b611c07565b005b348015610a1b57600080fd5b50610a366004803603810190610a319190613408565b611ce3565b005b348015610a4457600080fd5b50610a4d611ddb565b604051610a5c9392919061356a565b60405180910390f35b348015610a7157600080fd5b50610a7a611df3565b604051610a879190613697565b60405180910390f35b348015610a9c57600080fd5b50610ab76004803603810190610ab291906136b2565b611e19565b005b610ac1611f33565b73ffffffffffffffffffffffffffffffffffffffff16610adf611542565b73ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c9061373e565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b606060038054610ba59061378d565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd19061378d565b8015610c1e5780601f10610bf357610100808354040283529160200191610c1e565b820191906000526020600020905b815481529060010190602001808311610c0157829003601f168201915b5050505050905090565b610c30611f33565b73ffffffffffffffffffffffffffffffffffffffff16610c4e611542565b73ffffffffffffffffffffffffffffffffffffffff1614610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b9061373e565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610cef91906137ee565b610cf991906137ee565b601681905550505050565b6000610d18610d11611f33565b8484611f3b565b6001905092915050565b6000600254905090565b610d34611f33565b73ffffffffffffffffffffffffffffffffffffffff16610d52611542565b73ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f9061373e565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b6000610dff848484612106565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e4a611f33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec1906138b6565b60405180910390fd5b610ee785610ed6611f33565b8584610ee291906138d6565b611f3b565b60019150509392505050565b610efb611f33565b73ffffffffffffffffffffffffffffffffffffffff16610f19611542565b73ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f669061373e565b60405180910390fd5b6000479050610f7d846127d0565b60008147610f8b91906138d6565b90506000831115611003576110028385610fa591906137ee565b8483610fb1919061390a565b610fbb9190613993565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a1390919063ffffffff16565b5b600084111561107957611078838561101b91906137ee565b8583611027919061390a565b6110319190613993565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a1390919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b60006111376110a2611f33565b8484600160006110b0611f33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461113291906137ee565b611f3b565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b611169611f33565b73ffffffffffffffffffffffffffffffffffffffff16611187611542565b73ffffffffffffffffffffffffffffffffffffffff16146111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d49061373e565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b611284611f33565b73ffffffffffffffffffffffffffffffffffffffff166112a2611542565b73ffffffffffffffffffffffffffffffffffffffff16146112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef9061373e565b60405180910390fd5b670de0b6b3a76400008161130c919061390a565b600b8190555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611378611f33565b73ffffffffffffffffffffffffffffffffffffffff16611396611542565b73ffffffffffffffffffffffffffffffffffffffff16146113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e39061373e565b60405180910390fd5b6113f66000612b07565b565b600f8060000154908060010154908060020154905083565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b611444611f33565b73ffffffffffffffffffffffffffffffffffffffff16611462611542565b73ffffffffffffffffffffffffffffffffffffffff16146114b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114af9061373e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114dc611542565b836040518363ffffffff1660e01b81526004016114fa9291906139c4565b6020604051808303816000875af1158015611519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153d9190613a02565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546115a19061378d565b80601f01602080910402602001604051908101604052809291908181526020018280546115cd9061378d565b801561161a5780601f106115ef5761010080835404028352916020019161161a565b820191906000526020600020905b8154815290600101906020018083116115fd57829003601f168201915b5050505050905090565b61162c611f33565b73ffffffffffffffffffffffffffffffffffffffff1661164a611542565b73ffffffffffffffffffffffffffffffffffffffff16146116a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116979061373e565b60405180910390fd5b80600a8190555050565b6116b2611f33565b73ffffffffffffffffffffffffffffffffffffffff166116d0611542565b73ffffffffffffffffffffffffffffffffffffffff1614611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d9061373e565b60405180910390fd5b61175681611732611542565b73ffffffffffffffffffffffffffffffffffffffff16612a1390919063ffffffff16565b50565b60008060016000611768611f33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90613aa1565b60405180910390fd5b611842611830611f33565b85858461183d91906138d6565b611f3b565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611887611880611f33565b8484612106565b6001905092915050565b600c5481565b61189f611f33565b73ffffffffffffffffffffffffffffffffffffffff166118bd611542565b73ffffffffffffffffffffffffffffffffffffffff1614611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a9061373e565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61195f611f33565b73ffffffffffffffffffffffffffffffffffffffff1661197d611542565b73ffffffffffffffffffffffffffffffffffffffff16146119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca9061373e565b60405180910390fd5b670de0b6b3a7640000816119e7919061390a565b600c8190555050565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a9f611f33565b73ffffffffffffffffffffffffffffffffffffffff16611abd611542565b73ffffffffffffffffffffffffffffffffffffffff1614611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a9061373e565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611b38611f33565b73ffffffffffffffffffffffffffffffffffffffff16611b56611542565b73ffffffffffffffffffffffffffffffffffffffff1614611bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba39061373e565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611c0f611f33565b73ffffffffffffffffffffffffffffffffffffffff16611c2d611542565b73ffffffffffffffffffffffffffffffffffffffff1614611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a9061373e565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284611cce91906137ee565b611cd891906137ee565b601581905550505050565b611ceb611f33565b73ffffffffffffffffffffffffffffffffffffffff16611d09611542565b73ffffffffffffffffffffffffffffffffffffffff1614611d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d569061373e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc690613b33565b60405180910390fd5b611dd881612b07565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e21611f33565b73ffffffffffffffffffffffffffffffffffffffff16611e3f611542565b73ffffffffffffffffffffffffffffffffffffffff1614611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c9061373e565b60405180910390fd5b80611f2f57600760169054906101000a900460ff1615611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee190613b9f565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600881905550816009819055505b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa290613c31565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561201b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201290613cc3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120f99190613249565b60405180910390a3505050565b60008111612149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214090613d55565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121ed5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61222c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222390613dc1565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d05750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122e95750600760149054906101000a900460ff16155b156125a557600760169054906101000a900460ff1661233d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233490613e2d565b60405180910390fd5b4360095460085461234e91906137ee565b11156124b157600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612402576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124b0576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b548111156124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed90613e99565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125a457600c548161255884611328565b61256291906137ee565b11156125a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259a90613f2b565b60405180910390fd5b5b5b6000600760149054906101000a900460ff168061260b5750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061265f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561266d5760009050612702565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126e4576064601654836126d3919061390a565b6126dd9190613993565b9050612701565b6064601554836126f4919061390a565b6126fe9190613993565b90505b5b600760159054906101000a900460ff16801561272b5750600760149054906101000a900460ff16155b80156127855750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127915750600081115b1561279f5761279e612bcd565b5b6127b5848483856127b091906138d6565b612dd1565b60008111156127ca576127c9843083612dd1565b5b50505050565b6000600267ffffffffffffffff8111156127ed576127ec613f4b565b5b60405190808252806020026020018201604052801561281b5781602001602082028036833780820191505090505b509050308160008151811061283357612832613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fe9190613fbe565b8160018151811061291257612911613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f3b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129dd9594939291906140e4565b600060405180830381600087803b1580156129f757600080fd5b505af1158015612a0b573d6000803e3d6000fd5b505050505050565b80471015612a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4d9061418a565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612a7c906141db565b60006040518083038185875af1925050503d8060008114612ab9576040519150601f19603f3d011682016040523d82523d6000602084013e612abe565b606091505b5050905080612b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af990614262565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612dcf576001600760146101000a81548160ff0219169083151502179055506000612c0730611328565b9050600a548110612db25760006002601654612c23919061390a565b905060008160126001015484612c39919061390a565b612c439190613993565b905060008184612c5391906138d6565b90506000479050612c63826127d0565b60008147612c7191906138d6565b9050600060126001015486612c8691906138d6565b82612c919190613993565b9050600060126001015482612ca6919061390a565b90506000811115612cbc57612cbb8682613050565b5b6000601260000154600284612cd1919061390a565b612cdb919061390a565b90506000811115612d3257612d3181600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a1390919063ffffffff16565b5b6000601260020154600285612d47919061390a565b612d51919061390a565b90506000811115612da857612da781600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a1390919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e38906142f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea890614386565b60405180910390fd5b612ebc838383613150565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3990614418565b60405180910390fd5b8181612f4e91906138d6565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fde91906137ee565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130429190613249565b60405180910390a350505050565b61307d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f3b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161310696959493929190614438565b60606040518083038185885af1158015613124573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061314991906144ae565b5050505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131858261315a565b9050919050565b6131958161317a565b81146131a057600080fd5b50565b6000813590506131b28161318c565b92915050565b60008115159050919050565b6131cd816131b8565b81146131d857600080fd5b50565b6000813590506131ea816131c4565b92915050565b6000806040838503121561320757613206613155565b5b6000613215858286016131a3565b9250506020613226858286016131db565b9150509250929050565b6000819050919050565b61324381613230565b82525050565b600060208201905061325e600083018461323a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561329e578082015181840152602081019050613283565b838111156132ad576000848401525b50505050565b6000601f19601f8301169050919050565b60006132cf82613264565b6132d9818561326f565b93506132e9818560208601613280565b6132f2816132b3565b840191505092915050565b6000602082019050818103600083015261331781846132c4565b905092915050565b61332881613230565b811461333357600080fd5b50565b6000813590506133458161331f565b92915050565b60008060006060848603121561336457613363613155565b5b600061337286828701613336565b935050602061338386828701613336565b925050604061339486828701613336565b9150509250925092565b600080604083850312156133b5576133b4613155565b5b60006133c3858286016131a3565b92505060206133d485828601613336565b9150509250929050565b6133e7816131b8565b82525050565b600060208201905061340260008301846133de565b92915050565b60006020828403121561341e5761341d613155565b5b600061342c848285016131a3565b91505092915050565b60008060006060848603121561344e5761344d613155565b5b600061345c868287016131a3565b935050602061346d868287016131a3565b925050604061347e86828701613336565b9150509250925092565b600060ff82169050919050565b61349e81613488565b82525050565b60006020820190506134b96000830184613495565b92915050565b60006134ca8261317a565b9050919050565b6134da816134bf565b81146134e557600080fd5b50565b6000813590506134f7816134d1565b92915050565b6000806040838503121561351457613513613155565b5b6000613522858286016134e8565b9250506020613533858286016131a3565b9150509250929050565b60006020828403121561355357613552613155565b5b600061356184828501613336565b91505092915050565b600060608201905061357f600083018661323a565b61358c602083018561323a565b613599604083018461323a565b949350505050565b6135aa8161317a565b82525050565b60006020820190506135c560008301846135a1565b92915050565b600080604083850312156135e2576135e1613155565b5b60006135f0858286016131a3565b9250506020613601858286016131a3565b9150509250929050565b60006020828403121561362157613620613155565b5b600061362f848285016131db565b91505092915050565b6000819050919050565b600061365d6136586136538461315a565b613638565b61315a565b9050919050565b600061366f82613642565b9050919050565b600061368182613664565b9050919050565b61369181613676565b82525050565b60006020820190506136ac6000830184613688565b92915050565b600080604083850312156136c9576136c8613155565b5b60006136d785828601613336565b92505060206136e8858286016131db565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061372860208361326f565b9150613733826136f2565b602082019050919050565b600060208201905081810360008301526137578161371b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137a557607f821691505b602082108114156137b9576137b861375e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137f982613230565b915061380483613230565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613839576138386137bf565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006138a060288361326f565b91506138ab82613844565b604082019050919050565b600060208201905081810360008301526138cf81613893565b9050919050565b60006138e182613230565b91506138ec83613230565b9250828210156138ff576138fe6137bf565b5b828203905092915050565b600061391582613230565b915061392083613230565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613959576139586137bf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061399e82613230565b91506139a983613230565b9250826139b9576139b8613964565b5b828204905092915050565b60006040820190506139d960008301856135a1565b6139e6602083018461323a565b9392505050565b6000815190506139fc816131c4565b92915050565b600060208284031215613a1857613a17613155565b5b6000613a26848285016139ed565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613a8b60258361326f565b9150613a9682613a2f565b604082019050919050565b60006020820190508181036000830152613aba81613a7e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b1d60268361326f565b9150613b2882613ac1565b604082019050919050565b60006020820190508181036000830152613b4c81613b10565b9050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000613b8960168361326f565b9150613b9482613b53565b602082019050919050565b60006020820190508181036000830152613bb881613b7c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c1b60248361326f565b9150613c2682613bbf565b604082019050919050565b60006020820190508181036000830152613c4a81613c0e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cad60228361326f565b9150613cb882613c51565b604082019050919050565b60006020820190508181036000830152613cdc81613ca0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d3f60298361326f565b9150613d4a82613ce3565b604082019050919050565b60006020820190508181036000830152613d6e81613d32565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613dab60198361326f565b9150613db682613d75565b602082019050919050565b60006020820190508181036000830152613dda81613d9e565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b6000613e1760168361326f565b9150613e2282613de1565b602082019050919050565b60006020820190508181036000830152613e4681613e0a565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613e83601d8361326f565b9150613e8e82613e4d565b602082019050919050565b60006020820190508181036000830152613eb281613e76565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f1560218361326f565b9150613f2082613eb9565b604082019050919050565b60006020820190508181036000830152613f4481613f08565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fb88161318c565b92915050565b600060208284031215613fd457613fd3613155565b5b6000613fe284828501613fa9565b91505092915050565b6000819050919050565b600061401061400b61400684613feb565b613638565b613230565b9050919050565b61402081613ff5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61405b8161317a565b82525050565b600061406d8383614052565b60208301905092915050565b6000602082019050919050565b600061409182614026565b61409b8185614031565b93506140a683614042565b8060005b838110156140d75781516140be8882614061565b97506140c983614079565b9250506001810190506140aa565b5085935050505092915050565b600060a0820190506140f9600083018861323a565b6141066020830187614017565b81810360408301526141188186614086565b905061412760608301856135a1565b614134608083018461323a565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614174601d8361326f565b915061417f8261413e565b602082019050919050565b600060208201905081810360008301526141a381614167565b9050919050565b600081905092915050565b50565b60006141c56000836141aa565b91506141d0826141b5565b600082019050919050565b60006141e6826141b8565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061424c603a8361326f565b9150614257826141f0565b604082019050919050565b6000602082019050818103600083015261427b8161423f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006142de60258361326f565b91506142e982614282565b604082019050919050565b6000602082019050818103600083015261430d816142d1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061437060238361326f565b915061437b82614314565b604082019050919050565b6000602082019050818103600083015261439f81614363565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061440260268361326f565b915061440d826143a6565b604082019050919050565b60006020820190508181036000830152614431816143f5565b9050919050565b600060c08201905061444d60008301896135a1565b61445a602083018861323a565b6144676040830187614017565b6144746060830186614017565b61448160808301856135a1565b61448e60a083018461323a565b979650505050505050565b6000815190506144a88161331f565b92915050565b6000806000606084860312156144c7576144c6613155565b5b60006144d586828701614499565b93505060206144e686828701614499565b92505060406144f786828701614499565b915050925092509256fea264697066735822122076e49caffc7ef0c4820fab0cf7d8b3f25863de62e8aec78d2027fb45b70da4eb64736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106102815760003560e01c806375f0a8741161014f578063aa4bde28116100c1578063e545fd6d1161007a578063e545fd6d146109bd578063e9dae5ed146109e6578063f2fde38b14610a0f578063f66895a314610a38578063f887ea4014610a65578063fb29d01514610a9057610288565b8063aa4bde281461089d578063aacebbe3146108c8578063c18bc195146108f1578063dbe66ca01461091a578063dd62ed3e14610957578063e01af92c1461099457610288565b806395d89b411161011357806395d89b411461077b5780639d0014b1146107a65780639e252f00146107cf578063a457c2d7146107f8578063a8aa1b3114610835578063a9059cbb1461086057610288565b806375f0a874146106a65780638c0b5e22146106d15780638cd4426d146106fc5780638da5cb5b146107255780638ea5220f1461075057610288565b8063293b7ef4116101f357806350c9a88f116101ac57806350c9a88f146105a65780636256d181146105d15780636ddd1713146105fa57806370a0823114610625578063715018a614610662578063728f8eea1461067957610288565b8063293b7ef414610482578063313ce567146104ad57806339509351146104d85780633bbac5791461051557806340b28c2f146105525780634ada218b1461057b57610288565b806318160ddd1161024557806318160ddd146103725780631816467f1461039d5780632253163d146103c657806323b872dd146103f157806326b5d32f1461042e578063274a533c1461045757610288565b806303c0f5d41461028d5780630445b667146102b657806306fdde03146102e1578063087332141461030c578063095ea7b31461033557610288565b3661028857005b600080fd5b34801561029957600080fd5b506102b460048036038101906102af91906131f0565b610ab9565b005b3480156102c257600080fd5b506102cb610b90565b6040516102d89190613249565b60405180910390f35b3480156102ed57600080fd5b506102f6610b96565b60405161030391906132fd565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e919061334b565b610c28565b005b34801561034157600080fd5b5061035c6004803603810190610357919061339e565b610d04565b60405161036991906133ed565b60405180910390f35b34801561037e57600080fd5b50610387610d22565b6040516103949190613249565b60405180910390f35b3480156103a957600080fd5b506103c460048036038101906103bf9190613408565b610d2c565b005b3480156103d257600080fd5b506103db610dec565b6040516103e89190613249565b60405180910390f35b3480156103fd57600080fd5b5061041860048036038101906104139190613435565b610df2565b60405161042591906133ed565b60405180910390f35b34801561043a57600080fd5b506104556004803603810190610450919061334b565b610ef3565b005b34801561046357600080fd5b5061046c611080565b6040516104799190613249565b60405180910390f35b34801561048e57600080fd5b50610497611086565b6040516104a49190613249565b60405180910390f35b3480156104b957600080fd5b506104c261108c565b6040516104cf91906134a4565b60405180910390f35b3480156104e457600080fd5b506104ff60048036038101906104fa919061339e565b611095565b60405161050c91906133ed565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190613408565b611141565b60405161054991906133ed565b60405180910390f35b34801561055e57600080fd5b50610579600480360381019061057491906134fd565b611161565b005b34801561058757600080fd5b50610590611263565b60405161059d91906133ed565b60405180910390f35b3480156105b257600080fd5b506105bb611276565b6040516105c89190613249565b60405180910390f35b3480156105dd57600080fd5b506105f860048036038101906105f3919061353d565b61127c565b005b34801561060657600080fd5b5061060f611315565b60405161061c91906133ed565b60405180910390f35b34801561063157600080fd5b5061064c60048036038101906106479190613408565b611328565b6040516106599190613249565b60405180910390f35b34801561066e57600080fd5b50610677611370565b005b34801561068557600080fd5b5061068e6113f8565b60405161069d9392919061356a565b60405180910390f35b3480156106b257600080fd5b506106bb611410565b6040516106c891906135b0565b60405180910390f35b3480156106dd57600080fd5b506106e6611436565b6040516106f39190613249565b60405180910390f35b34801561070857600080fd5b50610723600480360381019061071e919061339e565b61143c565b005b34801561073157600080fd5b5061073a611542565b60405161074791906135b0565b60405180910390f35b34801561075c57600080fd5b5061076561156c565b60405161077291906135b0565b60405180910390f35b34801561078757600080fd5b50610790611592565b60405161079d91906132fd565b60405180910390f35b3480156107b257600080fd5b506107cd60048036038101906107c8919061353d565b611624565b005b3480156107db57600080fd5b506107f660048036038101906107f1919061353d565b6116aa565b005b34801561080457600080fd5b5061081f600480360381019061081a919061339e565b611759565b60405161082c91906133ed565b60405180910390f35b34801561084157600080fd5b5061084a61184d565b60405161085791906135b0565b60405180910390f35b34801561086c57600080fd5b506108876004803603810190610882919061339e565b611873565b60405161089491906133ed565b60405180910390f35b3480156108a957600080fd5b506108b2611891565b6040516108bf9190613249565b60405180910390f35b3480156108d457600080fd5b506108ef60048036038101906108ea9190613408565b611897565b005b3480156108fd57600080fd5b506109186004803603810190610913919061353d565b611957565b005b34801561092657600080fd5b50610941600480360381019061093c9190613408565b6119f0565b60405161094e91906133ed565b60405180910390f35b34801561096357600080fd5b5061097e600480360381019061097991906135cb565b611a10565b60405161098b9190613249565b60405180910390f35b3480156109a057600080fd5b506109bb60048036038101906109b6919061360b565b611a97565b005b3480156109c957600080fd5b506109e460048036038101906109df91906131f0565b611b30565b005b3480156109f257600080fd5b50610a0d6004803603810190610a08919061334b565b611c07565b005b348015610a1b57600080fd5b50610a366004803603810190610a319190613408565b611ce3565b005b348015610a4457600080fd5b50610a4d611ddb565b604051610a5c9392919061356a565b60405180910390f35b348015610a7157600080fd5b50610a7a611df3565b604051610a879190613697565b60405180910390f35b348015610a9c57600080fd5b50610ab76004803603810190610ab291906136b2565b611e19565b005b610ac1611f33565b73ffffffffffffffffffffffffffffffffffffffff16610adf611542565b73ffffffffffffffffffffffffffffffffffffffff1614610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c9061373e565b60405180910390fd5b80601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600a5481565b606060038054610ba59061378d565b80601f0160208091040260200160405190810160405280929190818152602001828054610bd19061378d565b8015610c1e5780601f10610bf357610100808354040283529160200191610c1e565b820191906000526020600020905b815481529060010190602001808311610c0157829003601f168201915b5050505050905090565b610c30611f33565b73ffffffffffffffffffffffffffffffffffffffff16610c4e611542565b73ffffffffffffffffffffffffffffffffffffffff1614610ca4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9b9061373e565b60405180910390fd5b6040518060600160405280848152602001838152602001828152506012600082015181600001556020820151816001015560408201518160020155905050808284610cef91906137ee565b610cf991906137ee565b601681905550505050565b6000610d18610d11611f33565b8484611f3b565b6001905092915050565b6000600254905090565b610d34611f33565b73ffffffffffffffffffffffffffffffffffffffff16610d52611542565b73ffffffffffffffffffffffffffffffffffffffff1614610da8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9f9061373e565b60405180910390fd5b80600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60165481565b6000610dff848484612106565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e4a611f33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610eca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec1906138b6565b60405180910390fd5b610ee785610ed6611f33565b8584610ee291906138d6565b611f3b565b60019150509392505050565b610efb611f33565b73ffffffffffffffffffffffffffffffffffffffff16610f19611542565b73ffffffffffffffffffffffffffffffffffffffff1614610f6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f669061373e565b60405180910390fd5b6000479050610f7d846127d0565b60008147610f8b91906138d6565b90506000831115611003576110028385610fa591906137ee565b8483610fb1919061390a565b610fbb9190613993565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a1390919063ffffffff16565b5b600084111561107957611078838561101b91906137ee565b8583611027919061390a565b6110319190613993565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a1390919063ffffffff16565b5b5050505050565b60085481565b60155481565b60006012905090565b60006111376110a2611f33565b8484600160006110b0611f33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461113291906137ee565b611f3b565b6001905092915050565b60186020528060005260406000206000915054906101000a900460ff1681565b611169611f33565b73ffffffffffffffffffffffffffffffffffffffff16611187611542565b73ffffffffffffffffffffffffffffffffffffffff16146111dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d49061373e565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600760169054906101000a900460ff1681565b60095481565b611284611f33565b73ffffffffffffffffffffffffffffffffffffffff166112a2611542565b73ffffffffffffffffffffffffffffffffffffffff16146112f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ef9061373e565b60405180910390fd5b670de0b6b3a76400008161130c919061390a565b600b8190555050565b600760159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611378611f33565b73ffffffffffffffffffffffffffffffffffffffff16611396611542565b73ffffffffffffffffffffffffffffffffffffffff16146113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e39061373e565b60405180910390fd5b6113f66000612b07565b565b600f8060000154908060010154908060020154905083565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b611444611f33565b73ffffffffffffffffffffffffffffffffffffffff16611462611542565b73ffffffffffffffffffffffffffffffffffffffff16146114b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114af9061373e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb6114dc611542565b836040518363ffffffff1660e01b81526004016114fa9291906139c4565b6020604051808303816000875af1158015611519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153d9190613a02565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600480546115a19061378d565b80601f01602080910402602001604051908101604052809291908181526020018280546115cd9061378d565b801561161a5780601f106115ef5761010080835404028352916020019161161a565b820191906000526020600020905b8154815290600101906020018083116115fd57829003601f168201915b5050505050905090565b61162c611f33565b73ffffffffffffffffffffffffffffffffffffffff1661164a611542565b73ffffffffffffffffffffffffffffffffffffffff16146116a0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116979061373e565b60405180910390fd5b80600a8190555050565b6116b2611f33565b73ffffffffffffffffffffffffffffffffffffffff166116d0611542565b73ffffffffffffffffffffffffffffffffffffffff1614611726576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171d9061373e565b60405180910390fd5b61175681611732611542565b73ffffffffffffffffffffffffffffffffffffffff16612a1390919063ffffffff16565b50565b60008060016000611768611f33565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015611825576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181c90613aa1565b60405180910390fd5b611842611830611f33565b85858461183d91906138d6565b611f3b565b600191505092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000611887611880611f33565b8484612106565b6001905092915050565b600c5481565b61189f611f33565b73ffffffffffffffffffffffffffffffffffffffff166118bd611542565b73ffffffffffffffffffffffffffffffffffffffff1614611913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190a9061373e565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61195f611f33565b73ffffffffffffffffffffffffffffffffffffffff1661197d611542565b73ffffffffffffffffffffffffffffffffffffffff16146119d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ca9061373e565b60405180910390fd5b670de0b6b3a7640000816119e7919061390a565b600c8190555050565b60176020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611a9f611f33565b73ffffffffffffffffffffffffffffffffffffffff16611abd611542565b73ffffffffffffffffffffffffffffffffffffffff1614611b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0a9061373e565b60405180910390fd5b80600760156101000a81548160ff02191690831515021790555050565b611b38611f33565b73ffffffffffffffffffffffffffffffffffffffff16611b56611542565b73ffffffffffffffffffffffffffffffffffffffff1614611bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba39061373e565b60405180910390fd5b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611c0f611f33565b73ffffffffffffffffffffffffffffffffffffffff16611c2d611542565b73ffffffffffffffffffffffffffffffffffffffff1614611c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7a9061373e565b60405180910390fd5b604051806060016040528084815260200183815260200182815250600f600082015181600001556020820151816001015560408201518160020155905050808284611cce91906137ee565b611cd891906137ee565b601581905550505050565b611ceb611f33565b73ffffffffffffffffffffffffffffffffffffffff16611d09611542565b73ffffffffffffffffffffffffffffffffffffffff1614611d5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d569061373e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611dcf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc690613b33565b60405180910390fd5b611dd881612b07565b50565b60128060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611e21611f33565b73ffffffffffffffffffffffffffffffffffffffff16611e3f611542565b73ffffffffffffffffffffffffffffffffffffffff1614611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c9061373e565b60405180910390fd5b80611f2f57600760169054906101000a900460ff1615611eea576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee190613b9f565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff02191690831515021790555043600881905550816009819055505b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fa290613c31565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561201b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201290613cc3565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516120f99190613249565b60405180910390a3505050565b60008111612149576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214090613d55565b60405180910390fd5b601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121ed5750601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61222c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222390613dc1565b60405180910390fd5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156122d05750601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156122e95750600760149054906101000a900460ff16155b156125a557600760169054906101000a900460ff1661233d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233490613e2d565b60405180910390fd5b4360095460085461234e91906137ee565b11156124b157600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612402576001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146124b0576001601860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600b548111156124f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124ed90613e99565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146125a457600c548161255884611328565b61256291906137ee565b11156125a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161259a90613f2b565b60405180910390fd5b5b5b6000600760149054906101000a900460ff168061260b5750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061265f5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561266d5760009050612702565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156126e4576064601654836126d3919061390a565b6126dd9190613993565b9050612701565b6064601554836126f4919061390a565b6126fe9190613993565b90505b5b600760159054906101000a900460ff16801561272b5750600760149054906101000a900460ff16155b80156127855750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127915750600081115b1561279f5761279e612bcd565b5b6127b5848483856127b091906138d6565b612dd1565b60008111156127ca576127c9843083612dd1565b5b50505050565b6000600267ffffffffffffffff8111156127ed576127ec613f4b565b5b60405190808252806020026020018201604052801561281b5781602001602082028036833780820191505090505b509050308160008151811061283357612832613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128fe9190613fbe565b8160018151811061291257612911613f7a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061297930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f3b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016129dd9594939291906140e4565b600060405180830381600087803b1580156129f757600080fd5b505af1158015612a0b573d6000803e3d6000fd5b505050505050565b80471015612a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4d9061418a565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612a7c906141db565b60006040518083038185875af1925050503d8060008114612ab9576040519150601f19603f3d011682016040523d82523d6000602084013e612abe565b606091505b5050905080612b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af990614262565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff16612dcf576001600760146101000a81548160ff0219169083151502179055506000612c0730611328565b9050600a548110612db25760006002601654612c23919061390a565b905060008160126001015484612c39919061390a565b612c439190613993565b905060008184612c5391906138d6565b90506000479050612c63826127d0565b60008147612c7191906138d6565b9050600060126001015486612c8691906138d6565b82612c919190613993565b9050600060126001015482612ca6919061390a565b90506000811115612cbc57612cbb8682613050565b5b6000601260000154600284612cd1919061390a565b612cdb919061390a565b90506000811115612d3257612d3181600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a1390919063ffffffff16565b5b6000601260020154600285612d47919061390a565b612d51919061390a565b90506000811115612da857612da781600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a1390919063ffffffff16565b5b5050505050505050505b506000600760146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612e41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e38906142f4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612eb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea890614386565b60405180910390fd5b612ebc838383613150565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612f42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f3990614418565b60405180910390fd5b8181612f4e91906138d6565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612fde91906137ee565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516130429190613249565b60405180910390a350505050565b61307d30600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611f3b565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161310696959493929190614438565b60606040518083038185885af1158015613124573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061314991906144ae565b5050505050565b505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131858261315a565b9050919050565b6131958161317a565b81146131a057600080fd5b50565b6000813590506131b28161318c565b92915050565b60008115159050919050565b6131cd816131b8565b81146131d857600080fd5b50565b6000813590506131ea816131c4565b92915050565b6000806040838503121561320757613206613155565b5b6000613215858286016131a3565b9250506020613226858286016131db565b9150509250929050565b6000819050919050565b61324381613230565b82525050565b600060208201905061325e600083018461323a565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561329e578082015181840152602081019050613283565b838111156132ad576000848401525b50505050565b6000601f19601f8301169050919050565b60006132cf82613264565b6132d9818561326f565b93506132e9818560208601613280565b6132f2816132b3565b840191505092915050565b6000602082019050818103600083015261331781846132c4565b905092915050565b61332881613230565b811461333357600080fd5b50565b6000813590506133458161331f565b92915050565b60008060006060848603121561336457613363613155565b5b600061337286828701613336565b935050602061338386828701613336565b925050604061339486828701613336565b9150509250925092565b600080604083850312156133b5576133b4613155565b5b60006133c3858286016131a3565b92505060206133d485828601613336565b9150509250929050565b6133e7816131b8565b82525050565b600060208201905061340260008301846133de565b92915050565b60006020828403121561341e5761341d613155565b5b600061342c848285016131a3565b91505092915050565b60008060006060848603121561344e5761344d613155565b5b600061345c868287016131a3565b935050602061346d868287016131a3565b925050604061347e86828701613336565b9150509250925092565b600060ff82169050919050565b61349e81613488565b82525050565b60006020820190506134b96000830184613495565b92915050565b60006134ca8261317a565b9050919050565b6134da816134bf565b81146134e557600080fd5b50565b6000813590506134f7816134d1565b92915050565b6000806040838503121561351457613513613155565b5b6000613522858286016134e8565b9250506020613533858286016131a3565b9150509250929050565b60006020828403121561355357613552613155565b5b600061356184828501613336565b91505092915050565b600060608201905061357f600083018661323a565b61358c602083018561323a565b613599604083018461323a565b949350505050565b6135aa8161317a565b82525050565b60006020820190506135c560008301846135a1565b92915050565b600080604083850312156135e2576135e1613155565b5b60006135f0858286016131a3565b9250506020613601858286016131a3565b9150509250929050565b60006020828403121561362157613620613155565b5b600061362f848285016131db565b91505092915050565b6000819050919050565b600061365d6136586136538461315a565b613638565b61315a565b9050919050565b600061366f82613642565b9050919050565b600061368182613664565b9050919050565b61369181613676565b82525050565b60006020820190506136ac6000830184613688565b92915050565b600080604083850312156136c9576136c8613155565b5b60006136d785828601613336565b92505060206136e8858286016131db565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061372860208361326f565b9150613733826136f2565b602082019050919050565b600060208201905081810360008301526137578161371b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137a557607f821691505b602082108114156137b9576137b861375e565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006137f982613230565b915061380483613230565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613839576138386137bf565b5b828201905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b60006138a060288361326f565b91506138ab82613844565b604082019050919050565b600060208201905081810360008301526138cf81613893565b9050919050565b60006138e182613230565b91506138ec83613230565b9250828210156138ff576138fe6137bf565b5b828203905092915050565b600061391582613230565b915061392083613230565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613959576139586137bf565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061399e82613230565b91506139a983613230565b9250826139b9576139b8613964565b5b828204905092915050565b60006040820190506139d960008301856135a1565b6139e6602083018461323a565b9392505050565b6000815190506139fc816131c4565b92915050565b600060208284031215613a1857613a17613155565b5b6000613a26848285016139ed565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613a8b60258361326f565b9150613a9682613a2f565b604082019050919050565b60006020820190508181036000830152613aba81613a7e565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613b1d60268361326f565b9150613b2882613ac1565b604082019050919050565b60006020820190508181036000830152613b4c81613b10565b9050919050565b7f54726164696e6720616c72656164792061637469766500000000000000000000600082015250565b6000613b8960168361326f565b9150613b9482613b53565b602082019050919050565b60006020820190508181036000830152613bb881613b7c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c1b60248361326f565b9150613c2682613bbf565b604082019050919050565b60006020820190508181036000830152613c4a81613c0e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613cad60228361326f565b9150613cb882613c51565b604082019050919050565b60006020820190508181036000830152613cdc81613ca0565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d3f60298361326f565b9150613d4a82613ce3565b604082019050919050565b60006020820190508181036000830152613d6e81613d32565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613dab60198361326f565b9150613db682613d75565b602082019050919050565b60006020820190508181036000830152613dda81613d9e565b9050919050565b7f54726164696e67206e6f74206163746976652079657400000000000000000000600082015250565b6000613e1760168361326f565b9150613e2282613de1565b602082019050919050565b60006020820190508181036000830152613e4681613e0a565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613e83601d8361326f565b9150613e8e82613e4d565b602082019050919050565b60006020820190508181036000830152613eb281613e76565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f1560218361326f565b9150613f2082613eb9565b604082019050919050565b60006020820190508181036000830152613f4481613f08565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613fb88161318c565b92915050565b600060208284031215613fd457613fd3613155565b5b6000613fe284828501613fa9565b91505092915050565b6000819050919050565b600061401061400b61400684613feb565b613638565b613230565b9050919050565b61402081613ff5565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61405b8161317a565b82525050565b600061406d8383614052565b60208301905092915050565b6000602082019050919050565b600061409182614026565b61409b8185614031565b93506140a683614042565b8060005b838110156140d75781516140be8882614061565b97506140c983614079565b9250506001810190506140aa565b5085935050505092915050565b600060a0820190506140f9600083018861323a565b6141066020830187614017565b81810360408301526141188186614086565b905061412760608301856135a1565b614134608083018461323a565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000614174601d8361326f565b915061417f8261413e565b602082019050919050565b600060208201905081810360008301526141a381614167565b9050919050565b600081905092915050565b50565b60006141c56000836141aa565b91506141d0826141b5565b600082019050919050565b60006141e6826141b8565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061424c603a8361326f565b9150614257826141f0565b604082019050919050565b6000602082019050818103600083015261427b8161423f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b60006142de60258361326f565b91506142e982614282565b604082019050919050565b6000602082019050818103600083015261430d816142d1565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061437060238361326f565b915061437b82614314565b604082019050919050565b6000602082019050818103600083015261439f81614363565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061440260268361326f565b915061440d826143a6565b604082019050919050565b60006020820190508181036000830152614431816143f5565b9050919050565b600060c08201905061444d60008301896135a1565b61445a602083018861323a565b6144676040830187614017565b6144746060830186614017565b61448160808301856135a1565b61448e60a083018461323a565b979650505050505050565b6000815190506144a88161331f565b92915050565b6000806000606084860312156144c7576144c6613155565b5b60006144d586828701614499565b93505060206144e686828701614499565b92505060406144f786828701614499565b915050925092509256fea264697066735822122076e49caffc7ef0c4820fab0cf7d8b3f25863de62e8aec78d2027fb45b70da4eb64736f6c634300080c0033
Deployed Bytecode Sourcemap
13241:8439:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20294:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13554:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2447:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19683:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4614:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3567:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20035:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14122:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5265:422;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21070:546;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13477:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14089:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3409:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6096:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14221:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20145:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13442:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13512:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20554:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13412:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3738:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12018:94;;;;;;;;;;;;;:::i;:::-;;14003:34;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13727:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13607:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20800:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11795:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13809:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2666:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18970:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20950:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6814:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13358:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4078:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13663:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19909:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20675:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14165:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4316:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18869:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20408:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19473:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12120:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14044:38;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;13330:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19088:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20294:106;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20387:5:::1;20370;:14;20376:7;20370:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;20294:106:::0;;:::o;13554:46::-;;;;:::o;2447:100::-;2501:13;2534:5;2527:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2447:100;:::o;19683:214::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19800:35:::1;;;;;;;;19806:10;19800:35;;;;19818:10;19800:35;;;;19830:4;19800:35;;::::0;19788:9:::1;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;19885:4;19872:10;19859;:23;;;;:::i;:::-;:30;;;;:::i;:::-;19846:10;:43;;;;19683:214:::0;;;:::o;4614:169::-;4697:4;4714:39;4723:12;:10;:12::i;:::-;4737:7;4746:6;4714:8;:39::i;:::-;4771:4;4764:11;;4614:169;;;;:::o;3567:108::-;3628:7;3655:12;;3648:19;;3567:108;:::o;20035:102::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20120:9:::1;20108;;:21;;;;;;;;;;;;;;;;;;20035:102:::0;:::o;14122:30::-;;;;:::o;5265:422::-;5371:4;5388:36;5398:6;5406:9;5417:6;5388:9;:36::i;:::-;5437:24;5464:11;:19;5476:6;5464:19;;;;;;;;;;;;;;;:33;5484:12;:10;:12::i;:::-;5464:33;;;;;;;;;;;;;;;;5437:60;;5536:6;5516:16;:26;;5508:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5598:57;5607:6;5615:12;:10;:12::i;:::-;5648:6;5629:16;:25;;;;:::i;:::-;5598:8;:57::i;:::-;5675:4;5668:11;;;5265:422;;;;;:::o;21070:546::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21187:19:::1;21209:21;21187:43;;21241:24;21258:6;21241:16;:24::i;:::-;21276:18;21321:11;21297:21;:35;;;;:::i;:::-;21276:56;;21368:1;21346:19;:23;21343:136;;;21371:108;21458:19;21442:13;:35;;;;:::i;:::-;21419:19;21406:10;:32;;;;:::i;:::-;:72;;;;:::i;:::-;21379:15;;;;;;;;;;;21371:34;;;;:108;;;;:::i;:::-;21343:136;21509:1;21493:13;:17;21490:118;;;21512:96;21587:19;21571:13;:35;;;;:::i;:::-;21554:13;21541:10;:26;;;;:::i;:::-;:66;;;;:::i;:::-;21520:9;;;;;;;;;;;21512:28;;;;:96;;;;:::i;:::-;21490:118;21176:440;;21070:546:::0;;;:::o;13477:28::-;;;;:::o;14089:26::-;;;;:::o;3409:93::-;3467:5;3492:2;3485:9;;3409:93;:::o;6096:215::-;6184:4;6201:80;6210:12;:10;:12::i;:::-;6224:7;6270:10;6233:11;:25;6245:12;:10;:12::i;:::-;6233:25;;;;;;;;;;;;;;;:34;6259:7;6233:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6201:8;:80::i;:::-;6299:4;6292:11;;6096:215;;;;:::o;14221:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;20145:137::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20244:7:::1;20235:6;;:16;;;;;;;;;;;;;;;;;;20269:5;20262:4;;:12;;;;;;;;;;;;;;;;;;20145:137:::0;;:::o;13442:26::-;;;;;;;;;;;;;:::o;13512:29::-;;;;:::o;20554:109::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20649:6:::1;20640;:15;;;;:::i;:::-;20626:11;:29;;;;20554:109:::0;:::o;13412:23::-;;;;;;;;;;;;;:::o;3738:127::-;3812:7;3839:9;:18;3849:7;3839:18;;;;;;;;;;;;;;;;3832:25;;3738:127;;;:::o;12018:94::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12083:21:::1;12101:1;12083:9;:21::i;:::-;12018:94::o:0;14003:34::-;;;;;;;;;;;;;;;;;;;:::o;13727:75::-;;;;;;;;;;;;;:::o;13607:49::-;;;;:::o;20800:142::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20895:12:::1;20888:29;;;20918:7;:5;:7::i;:::-;20927:6;20888:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;20800:142:::0;;:::o;11795:87::-;11841:7;11868:6;;;;;;;;;;;11861:13;;11795:87;:::o;13809:69::-;;;;;;;;;;;;;:::o;2666:104::-;2722:13;2755:7;2748:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2666:104;:::o;18970:110::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19062:10:::1;19046:13;:26;;;;18970:110:::0;:::o;20950:112::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;21017:37:::1;21044:9;21025:7;:5;:7::i;:::-;21017:26;;;;:37;;;;:::i;:::-;20950:112:::0;:::o;6814:377::-;6907:4;6924:24;6951:11;:25;6963:12;:10;:12::i;:::-;6951:25;;;;;;;;;;;;;;;:34;6977:7;6951:34;;;;;;;;;;;;;;;;6924:61;;7024:15;7004:16;:35;;6996:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7092:67;7101:12;:10;:12::i;:::-;7115:7;7143:15;7124:16;:34;;;;:::i;:::-;7092:8;:67::i;:::-;7179:4;7172:11;;;6814:377;;;;:::o;13358:19::-;;;;;;;;;;;;;:::o;4078:175::-;4164:4;4181:42;4191:12;:10;:12::i;:::-;4205:9;4216:6;4181:9;:42::i;:::-;4241:4;4234:11;;4078:175;;;;:::o;13663:51::-;;;;:::o;19909:114::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20006:9:::1;19988:15;;:27;;;;;;;;;;;;;;;;;;19909:114:::0;:::o;20675:117::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20778:6:::1;20769;:15;;;;:::i;:::-;20751;:33;;;;20675:117:::0;:::o;14165:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4316:151::-;4405:7;4432:11;:18;4444:5;4432:18;;;;;;;;;;;;;;;:27;4451:7;4432:27;;;;;;;;;;;;;;;;4425:34;;4316:151;;;;:::o;18869:93::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18949:5:::1;18935:11;;:19;;;;;;;;;;;;;;;;;;18869:93:::0;:::o;20408:134::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20529:5:::1;20500:16;:26;20517:8;20500:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;20408:134:::0;;:::o;19473:202::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19582:35:::1;;;;;;;;19588:10;19582:35;;;;19600:10;19582:35;;;;19612:4;19582:35;;::::0;19574:5:::1;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;19663:4;19650:10;19637;:23;;;;:::i;:::-;:30;;;;:::i;:::-;19628:6;:39;;;;19473:202:::0;;;:::o;12120:192::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;12229:1:::1;12209:22;;:8;:22;;;;12201:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;12285:19;12295:8;12285:9;:19::i;:::-;12120:192:::0;:::o;14044:38::-;;;;;;;;;;;;;;;;;;;:::o;13330:21::-;;;;;;;;;;;;;:::o;19088:377::-;11941:12;:10;:12::i;:::-;11930:23;;:7;:5;:7::i;:::-;:23;;;11922:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19202:16:::1;19198:250;;19240:14;;;;;;;;;;;19239:15;19231:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;19313:4;19296:14;;:21;;;;;;;;;;;;;;;;;;19346:4;19332:11;;:18;;;;;;;;;;;;;;;;;;19381:12;19365:13;:28;;;;19421:15;19408:10;:28;;;;19198:250;19088:377:::0;;:::o;163:98::-;216:7;243:10;236:17;;163:98;:::o;10170:346::-;10289:1;10272:19;;:5;:19;;;;10264:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10370:1;10351:21;;:7;:21;;;;10343:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10454:6;10424:11;:18;10436:5;10424:18;;;;;;;;;;;;;;;:27;10443:7;10424:27;;;;;;;;;;;;;;;:36;;;;10492:7;10476:32;;10485:5;10476:32;;;10501:6;10476:32;;;;;;:::i;:::-;;;;;;;;10170:346;;;:::o;14991:1573::-;15107:1;15098:6;:10;15090:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;15174:5;:13;15180:6;15174:13;;;;;;;;;;;;;;;;;;;;;;;;;15173:14;:35;;;;;15192:5;:16;15198:9;15192:16;;;;;;;;;;;;;;;;;;;;;;;;;15191:17;15173:35;15165:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15281:16;:24;15298:6;15281:24;;;;;;;;;;;;;;;;;;;;;;;;;15280:25;:57;;;;;15310:16;:27;15327:9;15310:27;;;;;;;;;;;;;;;;;;;;;;;;;15309:28;15280:57;:70;;;;;15342:8;;;;;;;;;;;15341:9;15280:70;15277:589;;;15374:14;;;;;;;;;;;15366:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;15462:12;15449:10;;15433:13;;:26;;;;:::i;:::-;:41;15430:183;;;15510:4;;;;;;;;;;;15497:17;;:9;:17;;;15494:45;;15535:4;15516:5;:16;15522:9;15516:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;15494:45;15571:4;;;;;;;;;;;15561:14;;:6;:14;;;15558:39;;15593:4;15577:5;:13;15583:6;15577:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;15558:39;15430:183;15645:11;;15635:6;:21;;15627:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;15721:4;;;;;;;;;;;15708:17;;:9;:17;;;15705:150;;15786:15;;15776:6;15753:20;15763:9;15753;:20::i;:::-;:29;;;;:::i;:::-;:48;;15745:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;15705:150;15277:589;15878:11;15985:8;;;;;;;;;;;:36;;;;15997:16;:24;16014:6;15997:24;;;;;;;;;;;;;;;;;;;;;;;;;15985:36;:67;;;;16025:16;:27;16042:9;16025:27;;;;;;;;;;;;;;;;;;;;;;;;;15985:67;15981:257;;;16060:1;16054:7;;15981:257;;;16142:4;;;;;;;;;;;16129:17;;:9;:17;;;16126:100;;;16176:3;16163:10;;16154:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;16148:31;;16126:100;;;16223:3;16214:6;;16205;:15;;;;:::i;:::-;:21;;;;:::i;:::-;16199:27;;16126:100;15981:257;16359:11;;;;;;;;;;;:24;;;;;16375:8;;;;;;;;;;;16374:9;16359:24;:42;;;;;16397:4;;;;;;;;;;;16387:14;;:6;:14;;;;16359:42;:53;;;;;16411:1;16405:3;:7;16359:53;16355:72;;;16414:13;:11;:13::i;:::-;16355:72;16440:48;16456:6;16464:9;16484:3;16475:6;:12;;;;:::i;:::-;16440:15;:48::i;:::-;16508:1;16502:3;:7;16499:55;;;16511:43;16527:6;16543:4;16550:3;16511:15;:43::i;:::-;16499:55;15079:1485;14991:1573;;;:::o;17956:400::-;18022:21;18060:1;18046:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18022:40;;18091:4;18073;18078:1;18073:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18117:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18107:4;18112:1;18107:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18143:53;18160:4;18175:6;;;;;;;;;;;18184:11;18143:8;:53::i;:::-;18235:6;;;;;;;;;;;:57;;;18293:11;18306:1;18309:4;18323;18330:15;18235:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18011:345;17956:400;:::o;11240:317::-;11355:6;11330:21;:31;;11322:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11409:12;11427:9;:14;;11449:6;11427:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11408:52;;;11479:7;11471:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;11311:246;11240:317;;:::o;12320:173::-;12376:16;12395:6;;;;;;;;;;;12376:25;;12421:8;12412:6;;:17;;;;;;;;;;;;;;;;;;12476:8;12445:40;;12466:8;12445:40;;;;;;;;;;;;12365:128;12320:173;:::o;16572:1374::-;14306:8;;;;;;;;;;;14301:104;;14342:4;14331:8;;:15;;;;;;;;;;;;;;;;;;16621:23:::1;16647:24;16665:4;16647:9;:24::i;:::-;16621:50;;16705:13;;16686:15;:32;16682:1257;;16792:19;16827:1;16814:10;;:14;;;;:::i;:::-;16792:36;;16843:32;16918:11;16896:9;:19;;;16878:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;16843:86;;16944:14;16979:24;16961:15;:42;;;;:::i;:::-;16944:59;;17024:22;17049:21;17024:46;;17091:24;17108:6;17091:16;:24::i;:::-;17136:20;17183:14;17159:21;:38;;;;:::i;:::-;17136:61;;17212:19;17263:9;:19;;;17249:11;:33;;;;:::i;:::-;17233:12;:50;;;;:::i;:::-;17212:71;;17298:29;17344:9;:19;;;17330:11;:33;;;;:::i;:::-;17298:65;;17411:1;17387:21;:25;17384:170;;;17477:61;17490:24;17516:21;17477:12;:61::i;:::-;17384:170;17574:20;17615:9;:19;;;17611:1;17597:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;17574:60;;17667:1;17652:12;:16;17649:103;;;17688:48;17723:12;17696:15;;;;;;;;;;;17688:34;;;;:48;;;;:::i;:::-;17649:103;17780:14;17815:9;:13;;;17811:1;17797:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;17780:48;;17855:1;17846:6;:10;17843:85;;;17876:36;17905:6;17884:9;;;;;;;;;;;17876:28;;;;:36;;;;:::i;:::-;17843:85;16720:1219;;;;;;;;;16682:1257;16610:1336;14388:5:::0;14377:8;;:16;;;;;;;;;;;;;;;;;;14301:104;16572:1374::o;7681:604::-;7805:1;7787:20;;:6;:20;;;;7779:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7889:1;7868:23;;:9;:23;;;;7860:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7944:47;7965:6;7973:9;7984:6;7944:20;:47::i;:::-;8004:21;8028:9;:17;8038:6;8028:17;;;;;;;;;;;;;;;;8004:41;;8081:6;8064:13;:23;;8056:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8177:6;8161:13;:22;;;;:::i;:::-;8141:9;:17;8151:6;8141:17;;;;;;;;;;;;;;;:42;;;;8218:6;8194:9;:20;8204:9;8194:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8259:9;8242:35;;8251:6;8242:35;;;8270:6;8242:35;;;;;;:::i;:::-;;;;;;;;7768:517;7681:604;;;:::o;18364:497::-;18512:53;18529:4;18544:6;;;;;;;;;;;18553:11;18512:8;:53::i;:::-;18608:6;;;;;;;;;;;:22;;;18638:9;18671:4;18691:11;18717:1;18760;18803:9;;;;;;;;;;;18827:15;18608:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18364:497;;:::o;11119:92::-;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:77::-;1709:7;1738:5;1727:16;;1672:77;;;:::o;1755:118::-;1842:24;1860:5;1842:24;:::i;:::-;1837:3;1830:37;1755:118;;:::o;1879:222::-;1972:4;2010:2;1999:9;1995:18;1987:26;;2023:71;2091:1;2080:9;2076:17;2067:6;2023:71;:::i;:::-;1879:222;;;;:::o;2107:99::-;2159:6;2193:5;2187:12;2177:22;;2107:99;;;:::o;2212:169::-;2296:11;2330:6;2325:3;2318:19;2370:4;2365:3;2361:14;2346:29;;2212:169;;;;:::o;2387:307::-;2455:1;2465:113;2479:6;2476:1;2473:13;2465:113;;;2564:1;2559:3;2555:11;2549:18;2545:1;2540:3;2536:11;2529:39;2501:2;2498:1;2494:10;2489:15;;2465:113;;;2596:6;2593:1;2590:13;2587:101;;;2676:1;2667:6;2662:3;2658:16;2651:27;2587:101;2436:258;2387:307;;;:::o;2700:102::-;2741:6;2792:2;2788:7;2783:2;2776:5;2772:14;2768:28;2758:38;;2700:102;;;:::o;2808:364::-;2896:3;2924:39;2957:5;2924:39;:::i;:::-;2979:71;3043:6;3038:3;2979:71;:::i;:::-;2972:78;;3059:52;3104:6;3099:3;3092:4;3085:5;3081:16;3059:52;:::i;:::-;3136:29;3158:6;3136:29;:::i;:::-;3131:3;3127:39;3120:46;;2900:272;2808:364;;;;:::o;3178:313::-;3291:4;3329:2;3318:9;3314:18;3306:26;;3378:9;3372:4;3368:20;3364:1;3353:9;3349:17;3342:47;3406:78;3479:4;3470:6;3406:78;:::i;:::-;3398:86;;3178:313;;;;:::o;3497:122::-;3570:24;3588:5;3570:24;:::i;:::-;3563:5;3560:35;3550:63;;3609:1;3606;3599:12;3550:63;3497:122;:::o;3625:139::-;3671:5;3709:6;3696:20;3687:29;;3725:33;3752:5;3725:33;:::i;:::-;3625:139;;;;:::o;3770:619::-;3847:6;3855;3863;3912:2;3900:9;3891:7;3887:23;3883:32;3880:119;;;3918:79;;:::i;:::-;3880:119;4038:1;4063:53;4108:7;4099:6;4088:9;4084:22;4063:53;:::i;:::-;4053:63;;4009:117;4165:2;4191:53;4236:7;4227:6;4216:9;4212:22;4191:53;:::i;:::-;4181:63;;4136:118;4293:2;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4264:118;3770:619;;;;;:::o;4395:474::-;4463:6;4471;4520:2;4508:9;4499:7;4495:23;4491:32;4488:119;;;4526:79;;:::i;:::-;4488:119;4646:1;4671:53;4716:7;4707:6;4696:9;4692:22;4671:53;:::i;:::-;4661:63;;4617:117;4773:2;4799:53;4844:7;4835:6;4824:9;4820:22;4799:53;:::i;:::-;4789:63;;4744:118;4395:474;;;;;:::o;4875:109::-;4956:21;4971:5;4956:21;:::i;:::-;4951:3;4944:34;4875:109;;:::o;4990:210::-;5077:4;5115:2;5104:9;5100:18;5092:26;;5128:65;5190:1;5179:9;5175:17;5166:6;5128:65;:::i;:::-;4990:210;;;;:::o;5206:329::-;5265:6;5314:2;5302:9;5293:7;5289:23;5285:32;5282:119;;;5320:79;;:::i;:::-;5282:119;5440:1;5465:53;5510:7;5501:6;5490:9;5486:22;5465:53;:::i;:::-;5455:63;;5411:117;5206:329;;;;:::o;5541:619::-;5618:6;5626;5634;5683:2;5671:9;5662:7;5658:23;5654:32;5651:119;;;5689:79;;:::i;:::-;5651:119;5809:1;5834:53;5879:7;5870:6;5859:9;5855:22;5834:53;:::i;:::-;5824:63;;5780:117;5936:2;5962:53;6007:7;5998:6;5987:9;5983:22;5962:53;:::i;:::-;5952:63;;5907:118;6064:2;6090:53;6135:7;6126:6;6115:9;6111:22;6090:53;:::i;:::-;6080:63;;6035:118;5541:619;;;;;:::o;6166:86::-;6201:7;6241:4;6234:5;6230:16;6219:27;;6166:86;;;:::o;6258:112::-;6341:22;6357:5;6341:22;:::i;:::-;6336:3;6329:35;6258:112;;:::o;6376:214::-;6465:4;6503:2;6492:9;6488:18;6480:26;;6516:67;6580:1;6569:9;6565:17;6556:6;6516:67;:::i;:::-;6376:214;;;;:::o;6596:111::-;6648:7;6677:24;6695:5;6677:24;:::i;:::-;6666:35;;6596:111;;;:::o;6713:152::-;6801:39;6834:5;6801:39;:::i;:::-;6794:5;6791:50;6781:78;;6855:1;6852;6845:12;6781:78;6713:152;:::o;6871:169::-;6932:5;6970:6;6957:20;6948:29;;6986:48;7028:5;6986:48;:::i;:::-;6871:169;;;;:::o;7046:504::-;7129:6;7137;7186:2;7174:9;7165:7;7161:23;7157:32;7154:119;;;7192:79;;:::i;:::-;7154:119;7312:1;7337:68;7397:7;7388:6;7377:9;7373:22;7337:68;:::i;:::-;7327:78;;7283:132;7454:2;7480:53;7525:7;7516:6;7505:9;7501:22;7480:53;:::i;:::-;7470:63;;7425:118;7046:504;;;;;:::o;7556:329::-;7615:6;7664:2;7652:9;7643:7;7639:23;7635:32;7632:119;;;7670:79;;:::i;:::-;7632:119;7790:1;7815:53;7860:7;7851:6;7840:9;7836:22;7815:53;:::i;:::-;7805:63;;7761:117;7556:329;;;;:::o;7891:442::-;8040:4;8078:2;8067:9;8063:18;8055:26;;8091:71;8159:1;8148:9;8144:17;8135:6;8091:71;:::i;:::-;8172:72;8240:2;8229:9;8225:18;8216:6;8172:72;:::i;:::-;8254;8322:2;8311:9;8307:18;8298:6;8254:72;:::i;:::-;7891:442;;;;;;:::o;8339:118::-;8426:24;8444:5;8426:24;:::i;:::-;8421:3;8414:37;8339:118;;:::o;8463:222::-;8556:4;8594:2;8583:9;8579:18;8571:26;;8607:71;8675:1;8664:9;8660:17;8651:6;8607:71;:::i;:::-;8463:222;;;;:::o;8691:474::-;8759:6;8767;8816:2;8804:9;8795:7;8791:23;8787:32;8784:119;;;8822:79;;:::i;:::-;8784:119;8942:1;8967:53;9012:7;9003:6;8992:9;8988:22;8967:53;:::i;:::-;8957:63;;8913:117;9069:2;9095:53;9140:7;9131:6;9120:9;9116:22;9095:53;:::i;:::-;9085:63;;9040:118;8691:474;;;;;:::o;9171:323::-;9227:6;9276:2;9264:9;9255:7;9251:23;9247:32;9244:119;;;9282:79;;:::i;:::-;9244:119;9402:1;9427:50;9469:7;9460:6;9449:9;9445:22;9427:50;:::i;:::-;9417:60;;9373:114;9171:323;;;;:::o;9500:60::-;9528:3;9549:5;9542:12;;9500:60;;;:::o;9566:142::-;9616:9;9649:53;9667:34;9676:24;9694:5;9676:24;:::i;:::-;9667:34;:::i;:::-;9649:53;:::i;:::-;9636:66;;9566:142;;;:::o;9714:126::-;9764:9;9797:37;9828:5;9797:37;:::i;:::-;9784:50;;9714:126;;;:::o;9846:141::-;9911:9;9944:37;9975:5;9944:37;:::i;:::-;9931:50;;9846:141;;;:::o;9993:161::-;10095:52;10141:5;10095:52;:::i;:::-;10090:3;10083:65;9993:161;;:::o;10160:252::-;10268:4;10306:2;10295:9;10291:18;10283:26;;10319:86;10402:1;10391:9;10387:17;10378:6;10319:86;:::i;:::-;10160:252;;;;:::o;10418:468::-;10483:6;10491;10540:2;10528:9;10519:7;10515:23;10511:32;10508:119;;;10546:79;;:::i;:::-;10508:119;10666:1;10691:53;10736:7;10727:6;10716:9;10712:22;10691:53;:::i;:::-;10681:63;;10637:117;10793:2;10819:50;10861:7;10852:6;10841:9;10837:22;10819:50;:::i;:::-;10809:60;;10764:115;10418:468;;;;;:::o;10892:182::-;11032:34;11028:1;11020:6;11016:14;11009:58;10892:182;:::o;11080:366::-;11222:3;11243:67;11307:2;11302:3;11243:67;:::i;:::-;11236:74;;11319:93;11408:3;11319:93;:::i;:::-;11437:2;11432:3;11428:12;11421:19;;11080:366;;;:::o;11452:419::-;11618:4;11656:2;11645:9;11641:18;11633:26;;11705:9;11699:4;11695:20;11691:1;11680:9;11676:17;11669:47;11733:131;11859:4;11733:131;:::i;:::-;11725:139;;11452:419;;;:::o;11877:180::-;11925:77;11922:1;11915:88;12022:4;12019:1;12012:15;12046:4;12043:1;12036:15;12063:320;12107:6;12144:1;12138:4;12134:12;12124:22;;12191:1;12185:4;12181:12;12212:18;12202:81;;12268:4;12260:6;12256:17;12246:27;;12202:81;12330:2;12322:6;12319:14;12299:18;12296:38;12293:84;;;12349:18;;:::i;:::-;12293:84;12114:269;12063:320;;;:::o;12389:180::-;12437:77;12434:1;12427:88;12534:4;12531:1;12524:15;12558:4;12555:1;12548:15;12575:305;12615:3;12634:20;12652:1;12634:20;:::i;:::-;12629:25;;12668:20;12686:1;12668:20;:::i;:::-;12663:25;;12822:1;12754:66;12750:74;12747:1;12744:81;12741:107;;;12828:18;;:::i;:::-;12741:107;12872:1;12869;12865:9;12858:16;;12575:305;;;;:::o;12886:227::-;13026:34;13022:1;13014:6;13010:14;13003:58;13095:10;13090:2;13082:6;13078:15;13071:35;12886:227;:::o;13119:366::-;13261:3;13282:67;13346:2;13341:3;13282:67;:::i;:::-;13275:74;;13358:93;13447:3;13358:93;:::i;:::-;13476:2;13471:3;13467:12;13460:19;;13119:366;;;:::o;13491:419::-;13657:4;13695:2;13684:9;13680:18;13672:26;;13744:9;13738:4;13734:20;13730:1;13719:9;13715:17;13708:47;13772:131;13898:4;13772:131;:::i;:::-;13764:139;;13491:419;;;:::o;13916:191::-;13956:4;13976:20;13994:1;13976:20;:::i;:::-;13971:25;;14010:20;14028:1;14010:20;:::i;:::-;14005:25;;14049:1;14046;14043:8;14040:34;;;14054:18;;:::i;:::-;14040:34;14099:1;14096;14092:9;14084:17;;13916:191;;;;:::o;14113:348::-;14153:7;14176:20;14194:1;14176:20;:::i;:::-;14171:25;;14210:20;14228:1;14210:20;:::i;:::-;14205:25;;14398:1;14330:66;14326:74;14323:1;14320:81;14315:1;14308:9;14301:17;14297:105;14294:131;;;14405:18;;:::i;:::-;14294:131;14453:1;14450;14446:9;14435:20;;14113:348;;;;:::o;14467:180::-;14515:77;14512:1;14505:88;14612:4;14609:1;14602:15;14636:4;14633:1;14626:15;14653:185;14693:1;14710:20;14728:1;14710:20;:::i;:::-;14705:25;;14744:20;14762:1;14744:20;:::i;:::-;14739:25;;14783:1;14773:35;;14788:18;;:::i;:::-;14773:35;14830:1;14827;14823:9;14818:14;;14653:185;;;;:::o;14844:332::-;14965:4;15003:2;14992:9;14988:18;14980:26;;15016:71;15084:1;15073:9;15069:17;15060:6;15016:71;:::i;:::-;15097:72;15165:2;15154:9;15150:18;15141:6;15097:72;:::i;:::-;14844:332;;;;;:::o;15182:137::-;15236:5;15267:6;15261:13;15252:22;;15283:30;15307:5;15283:30;:::i;:::-;15182:137;;;;:::o;15325:345::-;15392:6;15441:2;15429:9;15420:7;15416:23;15412:32;15409:119;;;15447:79;;:::i;:::-;15409:119;15567:1;15592:61;15645:7;15636:6;15625:9;15621:22;15592:61;:::i;:::-;15582:71;;15538:125;15325:345;;;;:::o;15676:224::-;15816:34;15812:1;15804:6;15800:14;15793:58;15885:7;15880:2;15872:6;15868:15;15861:32;15676:224;:::o;15906:366::-;16048:3;16069:67;16133:2;16128:3;16069:67;:::i;:::-;16062:74;;16145:93;16234:3;16145:93;:::i;:::-;16263:2;16258:3;16254:12;16247:19;;15906:366;;;:::o;16278:419::-;16444:4;16482:2;16471:9;16467:18;16459:26;;16531:9;16525:4;16521:20;16517:1;16506:9;16502:17;16495:47;16559:131;16685:4;16559:131;:::i;:::-;16551:139;;16278:419;;;:::o;16703:225::-;16843:34;16839:1;16831:6;16827:14;16820:58;16912:8;16907:2;16899:6;16895:15;16888:33;16703:225;:::o;16934:366::-;17076:3;17097:67;17161:2;17156:3;17097:67;:::i;:::-;17090:74;;17173:93;17262:3;17173:93;:::i;:::-;17291:2;17286:3;17282:12;17275:19;;16934:366;;;:::o;17306:419::-;17472:4;17510:2;17499:9;17495:18;17487:26;;17559:9;17553:4;17549:20;17545:1;17534:9;17530:17;17523:47;17587:131;17713:4;17587:131;:::i;:::-;17579:139;;17306:419;;;:::o;17731:172::-;17871:24;17867:1;17859:6;17855:14;17848:48;17731:172;:::o;17909:366::-;18051:3;18072:67;18136:2;18131:3;18072:67;:::i;:::-;18065:74;;18148:93;18237:3;18148:93;:::i;:::-;18266:2;18261:3;18257:12;18250:19;;17909:366;;;:::o;18281:419::-;18447:4;18485:2;18474:9;18470:18;18462:26;;18534:9;18528:4;18524:20;18520:1;18509:9;18505:17;18498:47;18562:131;18688:4;18562:131;:::i;:::-;18554:139;;18281:419;;;:::o;18706:223::-;18846:34;18842:1;18834:6;18830:14;18823:58;18915:6;18910:2;18902:6;18898:15;18891:31;18706:223;:::o;18935:366::-;19077:3;19098:67;19162:2;19157:3;19098:67;:::i;:::-;19091:74;;19174:93;19263:3;19174:93;:::i;:::-;19292:2;19287:3;19283:12;19276:19;;18935:366;;;:::o;19307:419::-;19473:4;19511:2;19500:9;19496:18;19488:26;;19560:9;19554:4;19550:20;19546:1;19535:9;19531:17;19524:47;19588:131;19714:4;19588:131;:::i;:::-;19580:139;;19307:419;;;:::o;19732:221::-;19872:34;19868:1;19860:6;19856:14;19849:58;19941:4;19936:2;19928:6;19924:15;19917:29;19732:221;:::o;19959:366::-;20101:3;20122:67;20186:2;20181:3;20122:67;:::i;:::-;20115:74;;20198:93;20287:3;20198:93;:::i;:::-;20316:2;20311:3;20307:12;20300:19;;19959:366;;;:::o;20331:419::-;20497:4;20535:2;20524:9;20520:18;20512:26;;20584:9;20578:4;20574:20;20570:1;20559:9;20555:17;20548:47;20612:131;20738:4;20612:131;:::i;:::-;20604:139;;20331:419;;;:::o;20756:228::-;20896:34;20892:1;20884:6;20880:14;20873:58;20965:11;20960:2;20952:6;20948:15;20941:36;20756:228;:::o;20990:366::-;21132:3;21153:67;21217:2;21212:3;21153:67;:::i;:::-;21146:74;;21229:93;21318:3;21229:93;:::i;:::-;21347:2;21342:3;21338:12;21331:19;;20990:366;;;:::o;21362:419::-;21528:4;21566:2;21555:9;21551:18;21543:26;;21615:9;21609:4;21605:20;21601:1;21590:9;21586:17;21579:47;21643:131;21769:4;21643:131;:::i;:::-;21635:139;;21362:419;;;:::o;21787:175::-;21927:27;21923:1;21915:6;21911:14;21904:51;21787:175;:::o;21968:366::-;22110:3;22131:67;22195:2;22190:3;22131:67;:::i;:::-;22124:74;;22207:93;22296:3;22207:93;:::i;:::-;22325:2;22320:3;22316:12;22309:19;;21968:366;;;:::o;22340:419::-;22506:4;22544:2;22533:9;22529:18;22521:26;;22593:9;22587:4;22583:20;22579:1;22568:9;22564:17;22557:47;22621:131;22747:4;22621:131;:::i;:::-;22613:139;;22340:419;;;:::o;22765:172::-;22905:24;22901:1;22893:6;22889:14;22882:48;22765:172;:::o;22943:366::-;23085:3;23106:67;23170:2;23165:3;23106:67;:::i;:::-;23099:74;;23182:93;23271:3;23182:93;:::i;:::-;23300:2;23295:3;23291:12;23284:19;;22943:366;;;:::o;23315:419::-;23481:4;23519:2;23508:9;23504:18;23496:26;;23568:9;23562:4;23558:20;23554:1;23543:9;23539:17;23532:47;23596:131;23722:4;23596:131;:::i;:::-;23588:139;;23315:419;;;:::o;23740:179::-;23880:31;23876:1;23868:6;23864:14;23857:55;23740:179;:::o;23925:366::-;24067:3;24088:67;24152:2;24147:3;24088:67;:::i;:::-;24081:74;;24164:93;24253:3;24164:93;:::i;:::-;24282:2;24277:3;24273:12;24266:19;;23925:366;;;:::o;24297:419::-;24463:4;24501:2;24490:9;24486:18;24478:26;;24550:9;24544:4;24540:20;24536:1;24525:9;24521:17;24514:47;24578:131;24704:4;24578:131;:::i;:::-;24570:139;;24297:419;;;:::o;24722:220::-;24862:34;24858:1;24850:6;24846:14;24839:58;24931:3;24926:2;24918:6;24914:15;24907:28;24722:220;:::o;24948:366::-;25090:3;25111:67;25175:2;25170:3;25111:67;:::i;:::-;25104:74;;25187:93;25276:3;25187:93;:::i;:::-;25305:2;25300:3;25296:12;25289:19;;24948:366;;;:::o;25320:419::-;25486:4;25524:2;25513:9;25509:18;25501:26;;25573:9;25567:4;25563:20;25559:1;25548:9;25544:17;25537:47;25601:131;25727:4;25601:131;:::i;:::-;25593:139;;25320:419;;;:::o;25745:180::-;25793:77;25790:1;25783:88;25890:4;25887:1;25880:15;25914:4;25911:1;25904:15;25931:180;25979:77;25976:1;25969:88;26076:4;26073:1;26066:15;26100:4;26097:1;26090:15;26117:143;26174:5;26205:6;26199:13;26190:22;;26221:33;26248:5;26221:33;:::i;:::-;26117:143;;;;:::o;26266:351::-;26336:6;26385:2;26373:9;26364:7;26360:23;26356:32;26353:119;;;26391:79;;:::i;:::-;26353:119;26511:1;26536:64;26592:7;26583:6;26572:9;26568:22;26536:64;:::i;:::-;26526:74;;26482:128;26266:351;;;;:::o;26623:85::-;26668:7;26697:5;26686:16;;26623:85;;;:::o;26714:158::-;26772:9;26805:61;26823:42;26832:32;26858:5;26832:32;:::i;:::-;26823:42;:::i;:::-;26805:61;:::i;:::-;26792:74;;26714:158;;;:::o;26878:147::-;26973:45;27012:5;26973:45;:::i;:::-;26968:3;26961:58;26878:147;;:::o;27031:114::-;27098:6;27132:5;27126:12;27116:22;;27031:114;;;:::o;27151:184::-;27250:11;27284:6;27279:3;27272:19;27324:4;27319:3;27315:14;27300:29;;27151:184;;;;:::o;27341:132::-;27408:4;27431:3;27423:11;;27461:4;27456:3;27452:14;27444:22;;27341:132;;;:::o;27479:108::-;27556:24;27574:5;27556:24;:::i;:::-;27551:3;27544:37;27479:108;;:::o;27593:179::-;27662:10;27683:46;27725:3;27717:6;27683:46;:::i;:::-;27761:4;27756:3;27752:14;27738:28;;27593:179;;;;:::o;27778:113::-;27848:4;27880;27875:3;27871:14;27863:22;;27778:113;;;:::o;27927:732::-;28046:3;28075:54;28123:5;28075:54;:::i;:::-;28145:86;28224:6;28219:3;28145:86;:::i;:::-;28138:93;;28255:56;28305:5;28255:56;:::i;:::-;28334:7;28365:1;28350:284;28375:6;28372:1;28369:13;28350:284;;;28451:6;28445:13;28478:63;28537:3;28522:13;28478:63;:::i;:::-;28471:70;;28564:60;28617:6;28564:60;:::i;:::-;28554:70;;28410:224;28397:1;28394;28390:9;28385:14;;28350:284;;;28354:14;28650:3;28643:10;;28051:608;;;27927:732;;;;:::o;28665:831::-;28928:4;28966:3;28955:9;28951:19;28943:27;;28980:71;29048:1;29037:9;29033:17;29024:6;28980:71;:::i;:::-;29061:80;29137:2;29126:9;29122:18;29113:6;29061:80;:::i;:::-;29188:9;29182:4;29178:20;29173:2;29162:9;29158:18;29151:48;29216:108;29319:4;29310:6;29216:108;:::i;:::-;29208:116;;29334:72;29402:2;29391:9;29387:18;29378:6;29334:72;:::i;:::-;29416:73;29484:3;29473:9;29469:19;29460:6;29416:73;:::i;:::-;28665:831;;;;;;;;:::o;29502:179::-;29642:31;29638:1;29630:6;29626:14;29619:55;29502:179;:::o;29687:366::-;29829:3;29850:67;29914:2;29909:3;29850:67;:::i;:::-;29843:74;;29926:93;30015:3;29926:93;:::i;:::-;30044:2;30039:3;30035:12;30028:19;;29687:366;;;:::o;30059:419::-;30225:4;30263:2;30252:9;30248:18;30240:26;;30312:9;30306:4;30302:20;30298:1;30287:9;30283:17;30276:47;30340:131;30466:4;30340:131;:::i;:::-;30332:139;;30059:419;;;:::o;30484:147::-;30585:11;30622:3;30607:18;;30484:147;;;;:::o;30637:114::-;;:::o;30757:398::-;30916:3;30937:83;31018:1;31013:3;30937:83;:::i;:::-;30930:90;;31029:93;31118:3;31029:93;:::i;:::-;31147:1;31142:3;31138:11;31131:18;;30757:398;;;:::o;31161:379::-;31345:3;31367:147;31510:3;31367:147;:::i;:::-;31360:154;;31531:3;31524:10;;31161:379;;;:::o;31546:245::-;31686:34;31682:1;31674:6;31670:14;31663:58;31755:28;31750:2;31742:6;31738:15;31731:53;31546:245;:::o;31797:366::-;31939:3;31960:67;32024:2;32019:3;31960:67;:::i;:::-;31953:74;;32036:93;32125:3;32036:93;:::i;:::-;32154:2;32149:3;32145:12;32138:19;;31797:366;;;:::o;32169:419::-;32335:4;32373:2;32362:9;32358:18;32350:26;;32422:9;32416:4;32412:20;32408:1;32397:9;32393:17;32386:47;32450:131;32576:4;32450:131;:::i;:::-;32442:139;;32169:419;;;:::o;32594:224::-;32734:34;32730:1;32722:6;32718:14;32711:58;32803:7;32798:2;32790:6;32786:15;32779:32;32594:224;:::o;32824:366::-;32966:3;32987:67;33051:2;33046:3;32987:67;:::i;:::-;32980:74;;33063:93;33152:3;33063:93;:::i;:::-;33181:2;33176:3;33172:12;33165:19;;32824:366;;;:::o;33196:419::-;33362:4;33400:2;33389:9;33385:18;33377:26;;33449:9;33443:4;33439:20;33435:1;33424:9;33420:17;33413:47;33477:131;33603:4;33477:131;:::i;:::-;33469:139;;33196:419;;;:::o;33621:222::-;33761:34;33757:1;33749:6;33745:14;33738:58;33830:5;33825:2;33817:6;33813:15;33806:30;33621:222;:::o;33849:366::-;33991:3;34012:67;34076:2;34071:3;34012:67;:::i;:::-;34005:74;;34088:93;34177:3;34088:93;:::i;:::-;34206:2;34201:3;34197:12;34190:19;;33849:366;;;:::o;34221:419::-;34387:4;34425:2;34414:9;34410:18;34402:26;;34474:9;34468:4;34464:20;34460:1;34449:9;34445:17;34438:47;34502:131;34628:4;34502:131;:::i;:::-;34494:139;;34221:419;;;:::o;34646:225::-;34786:34;34782:1;34774:6;34770:14;34763:58;34855:8;34850:2;34842:6;34838:15;34831:33;34646:225;:::o;34877:366::-;35019:3;35040:67;35104:2;35099:3;35040:67;:::i;:::-;35033:74;;35116:93;35205:3;35116:93;:::i;:::-;35234:2;35229:3;35225:12;35218:19;;34877:366;;;:::o;35249:419::-;35415:4;35453:2;35442:9;35438:18;35430:26;;35502:9;35496:4;35492:20;35488:1;35477:9;35473:17;35466:47;35530:131;35656:4;35530:131;:::i;:::-;35522:139;;35249:419;;;:::o;35674:807::-;35923:4;35961:3;35950:9;35946:19;35938:27;;35975:71;36043:1;36032:9;36028:17;36019:6;35975:71;:::i;:::-;36056:72;36124:2;36113:9;36109:18;36100:6;36056:72;:::i;:::-;36138:80;36214:2;36203:9;36199:18;36190:6;36138:80;:::i;:::-;36228;36304:2;36293:9;36289:18;36280:6;36228:80;:::i;:::-;36318:73;36386:3;36375:9;36371:19;36362:6;36318:73;:::i;:::-;36401;36469:3;36458:9;36454:19;36445:6;36401:73;:::i;:::-;35674:807;;;;;;;;;:::o;36487:143::-;36544:5;36575:6;36569:13;36560:22;;36591:33;36618:5;36591:33;:::i;:::-;36487:143;;;;:::o;36636:663::-;36724:6;36732;36740;36789:2;36777:9;36768:7;36764:23;36760:32;36757:119;;;36795:79;;:::i;:::-;36757:119;36915:1;36940:64;36996:7;36987:6;36976:9;36972:22;36940:64;:::i;:::-;36930:74;;36886:128;37053:2;37079:64;37135:7;37126:6;37115:9;37111:22;37079:64;:::i;:::-;37069:74;;37024:129;37192:2;37218:64;37274:7;37265:6;37254:9;37250:22;37218:64;:::i;:::-;37208:74;;37163:129;36636:663;;;;;:::o
Swarm Source
ipfs://76e49caffc7ef0c4820fab0cf7d8b3f25863de62e8aec78d2027fb45b70da4eb
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.