More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 50 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 19700007 | 195 days ago | IN | 0 ETH | 0.00028055 | ||||
Approve | 19699626 | 195 days ago | IN | 0 ETH | 0.00033353 | ||||
Transfer | 17861046 | 453 days ago | IN | 0 ETH | 0.00074511 | ||||
Approve | 17860769 | 453 days ago | IN | 0 ETH | 0.00038286 | ||||
Approve | 17860754 | 453 days ago | IN | 0 ETH | 0.00060235 | ||||
Approve | 17860718 | 453 days ago | IN | 0 ETH | 0.00052191 | ||||
Approve | 17835113 | 456 days ago | IN | 0 ETH | 0.00253824 | ||||
Approve | 17834997 | 456 days ago | IN | 0 ETH | 0.00285311 | ||||
Approve | 17796608 | 462 days ago | IN | 0 ETH | 0.00154655 | ||||
Approve | 17773781 | 465 days ago | IN | 0 ETH | 0.00165797 | ||||
Approve | 17773424 | 465 days ago | IN | 0 ETH | 0.00093715 | ||||
Approve | 17773287 | 465 days ago | IN | 0 ETH | 0.00115227 | ||||
Approve | 17773273 | 465 days ago | IN | 0 ETH | 0.0012886 | ||||
Approve | 17773271 | 465 days ago | IN | 0 ETH | 0.00117591 | ||||
Approve | 17773269 | 465 days ago | IN | 0 ETH | 0.00109934 | ||||
Approve | 17773268 | 465 days ago | IN | 0 ETH | 0.00122264 | ||||
Transfer | 17773267 | 465 days ago | IN | 0 ETH | 0.00140606 | ||||
Approve | 17773266 | 465 days ago | IN | 0 ETH | 0.00118715 | ||||
Approve | 17773264 | 465 days ago | IN | 0 ETH | 0.00117958 | ||||
Approve | 17773262 | 465 days ago | IN | 0 ETH | 0.00124362 | ||||
Approve | 17773261 | 465 days ago | IN | 0 ETH | 0.0012119 | ||||
Approve | 17773247 | 465 days ago | IN | 0 ETH | 0.00144588 | ||||
Approve | 17773239 | 465 days ago | IN | 0 ETH | 0.00135402 | ||||
Approve | 17773236 | 465 days ago | IN | 0 ETH | 0.00127673 | ||||
Approve | 17773236 | 465 days ago | IN | 0 ETH | 0.00127673 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
19700147 | 195 days ago | 0.00110202 ETH | ||||
19700147 | 195 days ago | 0.00110202 ETH | ||||
19700147 | 195 days ago | 0.00082967 ETH | ||||
19700147 | 195 days ago | 0.00082967 ETH | ||||
19699647 | 195 days ago | 0.00024184 ETH | ||||
19699647 | 195 days ago | 0.00024184 ETH | ||||
19699647 | 195 days ago | 0.00018151 ETH | ||||
19699647 | 195 days ago | 0.00018151 ETH | ||||
18903932 | 307 days ago | 0.0006297 ETH | ||||
18903932 | 307 days ago | 0.0006297 ETH | ||||
18903932 | 307 days ago | 0.00047317 ETH | ||||
18903932 | 307 days ago | 0.00047317 ETH | ||||
17788835 | 463 days ago | 0.00047022 ETH | ||||
17788835 | 463 days ago | 0.00047022 ETH | ||||
17788835 | 463 days ago | 0.00035314 ETH | ||||
17788835 | 463 days ago | 0.00035314 ETH | ||||
17784709 | 463 days ago | 0.00072724 ETH | ||||
17784709 | 463 days ago | 0.00072724 ETH | ||||
17784709 | 463 days ago | 0.00054653 ETH | ||||
17784709 | 463 days ago | 0.00054653 ETH | ||||
17774040 | 465 days ago | 0.00134281 ETH | ||||
17774040 | 465 days ago | 0.00134281 ETH | ||||
17774040 | 465 days ago | 0.00101064 ETH | ||||
17774040 | 465 days ago | 0.00101064 ETH | ||||
17774012 | 465 days ago | 0.00179703 ETH |
Loading...
Loading
Contract Name:
LUCIDAI
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-25 */ // SPDX-License-Identifier: MIT pragma solidity 0.8.18; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } 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 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } library Address { function isContract(address account) internal view returns (bool) { return account.code.length > 0; } function sendValue(address payable recipient, uint256 amount) internal returns(bool){ require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); return success; } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, "Address: low-level call failed"); } function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResultFromTarget(target, success, returndata, errorMessage); } function verifyCallResultFromTarget( address target, bool success, bytes memory returndata, string memory errorMessage ) internal view returns (bytes memory) { if (success) { if (returndata.length == 0) { // only check isContract if the call was successful and the return data is empty // otherwise we already know that it was a contract require(isContract(target), "Address: call to non-contract"); } return returndata; } else { _revert(returndata, errorMessage); } } function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { _revert(returndata, errorMessage); } } function _revert(bytes memory returndata, string memory errorMessage) private pure { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } 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; } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 18; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } 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"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } 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); _afterTokenTransfer(address(0), account, amount); } 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"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } 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); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } contract LUCIDAI is ERC20, Ownable { using Address for address payable; IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; mapping (address => bool) private _isExcludedFromFees; uint256 public liquidityFeeOnBuy; uint256 public liquidityFeeOnSell; uint256 public marketingFeeOnBuy; uint256 public marketingFeeOnSell; uint256 private _totalFeesOnBuy; uint256 private _totalFeesOnSell; address public marketingWallet; uint256 public swapTokensAtAmount; bool private swapping; bool public swapEnabled; event ExcludeFromFees(address indexed account, bool isExcluded); event MarketingWalletChanged(address marketingWallet); event SwapAndLiquify(uint256 tokensSwapped,uint256 bnbReceived,uint256 tokensIntoLiqudity); event SwapAndSendMarketing(uint256 tokensSwapped, uint256 bnbSend); event SwapTokensAtAmountUpdated(uint256 swapTokensAtAmount); constructor () ERC20("LUCID AI", "LUCIDAI") { address router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router); address _uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = _uniswapV2Pair; _approve(address(this), address(uniswapV2Router), type(uint256).max); liquidityFeeOnBuy = 3; liquidityFeeOnSell = 3; marketingFeeOnBuy = 2; marketingFeeOnSell = 2; _totalFeesOnBuy = liquidityFeeOnBuy + marketingFeeOnBuy; _totalFeesOnSell = liquidityFeeOnSell + marketingFeeOnSell; marketingWallet = 0x5d7cf5E275163fe12cD38085f1aeF82Af6b6B712; _isExcludedFromFees[owner()] = true; _isExcludedFromFees[address(0xdead)] = true; _isExcludedFromFees[address(this)] = true; _mint(owner(), 5e9 * (10 ** decimals())); swapTokensAtAmount = totalSupply() / 5_000; tradingEnabled = false; swapEnabled = false; } receive() external payable { } function claimStuckTokens(address token) external onlyOwner { require(token != address(this), "Owner cannot claim contract's balance of its own tokens"); if (token == address(0x0)) { payable(msg.sender).sendValue(address(this).balance); return; } IERC20 ERC20token = IERC20(token); uint256 balance = ERC20token.balanceOf(address(this)); ERC20token.transfer(msg.sender, balance); } function excludeFromFees(address account, bool excluded) external onlyOwner{ require(_isExcludedFromFees[account] != excluded,"Account is already the value of 'excluded'"); _isExcludedFromFees[account] = excluded; emit ExcludeFromFees(account, excluded); } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function changeMarketingWallet(address _marketingWallet) external onlyOwner{ require(_marketingWallet != marketingWallet,"Marketing wallet is already that address"); require(_marketingWallet != address(0),"Marketing wallet cannot be the zero address"); marketingWallet = _marketingWallet; emit MarketingWalletChanged(marketingWallet); } bool public tradingEnabled; function enableTrading() external onlyOwner{ require(!tradingEnabled, "Trading already enabled."); tradingEnabled = true; swapEnabled = true; } function _transfer(address from,address to,uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(tradingEnabled || _isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading not yet enabled!"); if (amount == 0) { super._transfer(from, to, 0); return; } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if (canSwap && !swapping && to == uniswapV2Pair && _totalFeesOnBuy + _totalFeesOnSell > 0 && swapEnabled ) { swapping = true; uint256 totalFee = _totalFeesOnBuy + _totalFeesOnSell; uint256 liquidityShare = liquidityFeeOnBuy + liquidityFeeOnSell; uint256 marketingShare = marketingFeeOnBuy + marketingFeeOnSell; if (liquidityShare > 0) { uint256 liquidityTokens = contractTokenBalance * liquidityShare / totalFee; swapAndLiquify(liquidityTokens); } if (marketingShare > 0) { uint256 marketingTokens = contractTokenBalance * marketingShare / totalFee; swapAndSendMarketing(marketingTokens); } swapping = false; } uint256 _totalFees; if (_isExcludedFromFees[from] || _isExcludedFromFees[to] || swapping) { _totalFees = 0; } else if (from == uniswapV2Pair) { _totalFees = _totalFeesOnBuy; } else if (to == uniswapV2Pair) { _totalFees = _totalFeesOnSell; } else { _totalFees = 0; } if (_totalFees > 0) { uint256 fees = (amount * _totalFees) / 100; amount = amount - fees; super._transfer(from, address(this), fees); } super._transfer(from, to, amount); } function setSwapEnabled(bool _enabled) external onlyOwner{ require(swapEnabled != _enabled, "swapEnabled already at this state."); swapEnabled = _enabled; } function setSwapTokensAtAmount(uint256 newAmount) external onlyOwner{ require(newAmount > totalSupply() / 1_000_000, "SwapTokensAtAmount must be greater than 0.0001% of total supply"); swapTokensAtAmount = newAmount; emit SwapTokensAtAmountUpdated(swapTokensAtAmount); } function swapAndLiquify(uint256 tokens) private { uint256 half = tokens / 2; uint256 otherHalf = tokens - half; uint256 initialBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( half, 0, path, address(this), block.timestamp); uint256 newBalance = address(this).balance - initialBalance; uniswapV2Router.addLiquidityETH{value: newBalance}( address(this), otherHalf, 0, 0, address(0xdead), block.timestamp ); emit SwapAndLiquify(half, newBalance, otherHalf); } function swapAndSendMarketing(uint256 tokenAmount) private { uint256 initialBalance = address(this).balance; address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); uint256 newBalance = address(this).balance - initialBalance; payable(marketingWallet).sendValue(newBalance); emit SwapAndSendMarketing(tokenAmount, newBalance); } }
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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludeFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"marketingWallet","type":"address"}],"name":"MarketingWalletChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bnbSend","type":"uint256"}],"name":"SwapAndSendMarketing","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"SwapTokensAtAmountUpdated","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":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"claimStuckTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeOnSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040523480156200001157600080fd5b506040518060400160405280600881526020017f4c554349442041490000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f4c5543494441490000000000000000000000000000000000000000000000000081525081600390816200008f919062000c37565b508060049081620000a1919062000c37565b5050506000620000b66200062560201b60201c565b905080600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050600081905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001e7919062000d88565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000275919062000d88565b6040518363ffffffff1660e01b81526004016200029492919062000dcb565b6020604051808303816000875af1158015620002b4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002da919062000d88565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620003b330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6200062d60201b60201c565b60036009819055506003600a819055506002600b819055506002600c81905550600b54600954620003e5919062000e27565b600d81905550600c54600a54620003fd919062000e27565b600e81905550735d7cf5e275163fe12cd38085f1aef82af6b6b712600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860006200046e620007fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005c162000585620007fe60201b60201c565b620005956200082860201b60201c565b600a620005a3919062000fc3565b64012a05f200620005b5919062001014565b6200083160201b60201c565b611388620005d4620009a960201b60201c565b620005e091906200108e565b6010819055506000601160026101000a81548160ff0219169083151502179055506000601160016101000a81548160ff021916908315150217905550505050620012a7565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200069f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000696906200114d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000711576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200070890620011e5565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051620007f1919062001218565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620008a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200089a9062001285565b60405180910390fd5b620008b760008383620009b360201b60201c565b8060026000828254620008cb919062000e27565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000922919062000e27565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000989919062001218565b60405180910390a3620009a560008383620009b860201b60201c565b5050565b6000600254905090565b505050565b505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a3f57607f821691505b60208210810362000a555762000a54620009f7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000abf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000a80565b62000acb868362000a80565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000b1862000b1262000b0c8462000ae3565b62000aed565b62000ae3565b9050919050565b6000819050919050565b62000b348362000af7565b62000b4c62000b438262000b1f565b84845462000a8d565b825550505050565b600090565b62000b6362000b54565b62000b7081848462000b29565b505050565b5b8181101562000b985762000b8c60008262000b59565b60018101905062000b76565b5050565b601f82111562000be75762000bb18162000a5b565b62000bbc8462000a70565b8101602085101562000bcc578190505b62000be462000bdb8562000a70565b83018262000b75565b50505b505050565b600082821c905092915050565b600062000c0c6000198460080262000bec565b1980831691505092915050565b600062000c27838362000bf9565b9150826002028217905092915050565b62000c4282620009bd565b67ffffffffffffffff81111562000c5e5762000c5d620009c8565b5b62000c6a825462000a26565b62000c7782828562000b9c565b600060209050601f83116001811462000caf576000841562000c9a578287015190505b62000ca6858262000c19565b86555062000d16565b601f19841662000cbf8662000a5b565b60005b8281101562000ce95784890151825560018201915060208501945060208101905062000cc2565b8683101562000d09578489015162000d05601f89168262000bf9565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000d508262000d23565b9050919050565b62000d628162000d43565b811462000d6e57600080fd5b50565b60008151905062000d828162000d57565b92915050565b60006020828403121562000da15762000da062000d1e565b5b600062000db18482850162000d71565b91505092915050565b62000dc58162000d43565b82525050565b600060408201905062000de2600083018562000dba565b62000df1602083018462000dba565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000e348262000ae3565b915062000e418362000ae3565b925082820190508082111562000e5c5762000e5b62000df8565b5b92915050565b60008160011c9050919050565b6000808291508390505b600185111562000ec15780860481111562000e995762000e9862000df8565b5b600185161562000ea95780820291505b808102905062000eb98562000e62565b945062000e79565b94509492505050565b60008262000edc576001905062000faf565b8162000eec576000905062000faf565b816001811462000f05576002811462000f105762000f46565b600191505062000faf565b60ff84111562000f255762000f2462000df8565b5b8360020a91508482111562000f3f5762000f3e62000df8565b5b5062000faf565b5060208310610133831016604e8410600b841016171562000f805782820a90508381111562000f7a5762000f7962000df8565b5b62000faf565b62000f8f848484600162000e6f565b9250905081840481111562000fa95762000fa862000df8565b5b81810290505b9392505050565b600060ff82169050919050565b600062000fd08262000ae3565b915062000fdd8362000fb6565b92506200100c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000eca565b905092915050565b6000620010218262000ae3565b91506200102e8362000ae3565b92508282026200103e8162000ae3565b9150828204841483151762001058576200105762000df8565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200109b8262000ae3565b9150620010a88362000ae3565b925082620010bb57620010ba6200105f565b5b828204905092915050565b600082825260208201905092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600062001135602483620010c6565b91506200114282620010d7565b604082019050919050565b60006020820190508181036000830152620011688162001126565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000620011cd602283620010c6565b9150620011da826200116f565b604082019050919050565b600060208201905081810360008301526200120081620011be565b9050919050565b620012128162000ae3565b82525050565b60006020820190506200122f600083018462001207565b92915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200126d601f83620010c6565b91506200127a8262001235565b602082019050919050565b60006020820190508181036000830152620012a0816200125e565b9050919050565b613eba80620012b76000396000f3fe6080604052600436106101dc5760003560e01c806375f0a87411610102578063bb85c6d111610095578063e01af92c11610064578063e01af92c146106d3578063e2f45605146106fc578063f2fde38b14610727578063f9d0831a14610750576101e3565b8063bb85c6d114610619578063c024666814610642578063dc4c7dbc1461066b578063dd62ed3e14610696576101e3565b806395d89b41116100d157806395d89b411461054b578063a457c2d714610576578063a9059cbb146105b3578063afa4f3b2146105f0576101e3565b806375f0a874146104b35780637b3c83b1146104de5780638a8c523c146105095780638da5cb5b14610520576101e3565b8063395093511161017a5780635fc2e596116101495780635fc2e596146104095780636ddd17131461043457806370a082311461045f578063715018a61461049c576101e3565b8063395093511461033957806349bd5a5e146103765780634ada218b146103a15780634fbee193146103cc576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632ce86fbf146102e3578063313ce5671461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610779565b60405161020a9190612b89565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612c44565b61080b565b6040516102479190612c9f565b60405180910390f35b34801561025c57600080fd5b50610265610829565b6040516102729190612d19565b60405180910390f35b34801561028757600080fd5b5061029061084f565b60405161029d9190612d43565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190612d5e565b610859565b6040516102da9190612c9f565b60405180910390f35b3480156102ef57600080fd5b506102f8610978565b6040516103059190612d43565b60405180910390f35b34801561031a57600080fd5b5061032361097e565b6040516103309190612dcd565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190612c44565b610987565b60405161036d9190612c9f565b60405180910390f35b34801561038257600080fd5b5061038b610a33565b6040516103989190612df7565b60405180910390f35b3480156103ad57600080fd5b506103b6610a59565b6040516103c39190612c9f565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190612e12565b610a6c565b6040516104009190612c9f565b60405180910390f35b34801561041557600080fd5b5061041e610ac2565b60405161042b9190612d43565b60405180910390f35b34801561044057600080fd5b50610449610ac8565b6040516104569190612c9f565b60405180910390f35b34801561046b57600080fd5b5061048660048036038101906104819190612e12565b610adb565b6040516104939190612d43565b60405180910390f35b3480156104a857600080fd5b506104b1610b23565b005b3480156104bf57600080fd5b506104c8610c7b565b6040516104d59190612df7565b60405180910390f35b3480156104ea57600080fd5b506104f3610ca1565b6040516105009190612d43565b60405180910390f35b34801561051557600080fd5b5061051e610ca7565b005b34801561052c57600080fd5b50610535610dc6565b6040516105429190612df7565b60405180910390f35b34801561055757600080fd5b50610560610df0565b60405161056d9190612b89565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190612c44565b610e82565b6040516105aa9190612c9f565b60405180910390f35b3480156105bf57600080fd5b506105da60048036038101906105d59190612c44565b610f6d565b6040516105e79190612c9f565b60405180910390f35b3480156105fc57600080fd5b5061061760048036038101906106129190612e3f565b610f8b565b005b34801561062557600080fd5b50610640600480360381019061063b9190612e12565b6110bc565b005b34801561064e57600080fd5b5061066960048036038101906106649190612e98565b6112ef565b005b34801561067757600080fd5b506106806114c1565b60405161068d9190612d43565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612ed8565b6114c7565b6040516106ca9190612d43565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190612f18565b61154e565b005b34801561070857600080fd5b50610711611657565b60405161071e9190612d43565b60405180910390f35b34801561073357600080fd5b5061074e60048036038101906107499190612e12565b61165d565b005b34801561075c57600080fd5b5061077760048036038101906107729190612e12565b611823565b005b60606003805461078890612f74565b80601f01602080910402602001604051908101604052809291908181526020018280546107b490612f74565b80156108015780601f106107d657610100808354040283529160200191610801565b820191906000526020600020905b8154815290600101906020018083116107e457829003601f168201915b5050505050905090565b600061081f610818611a93565b8484611a9b565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108a5611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610961578281101561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390613017565b60405180910390fd5b61096085610958611a93565b858403611a9b565b5b61096c858585611c64565b60019150509392505050565b600a5481565b60006012905090565b6000610a29610994611a93565b8484600160006109a2611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a249190613066565b611a9b565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b5481565b601160019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b2b611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb1906130e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b610caf611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d35906130e6565b60405180910390fd5b601160029054906101000a900460ff1615610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590613152565b60405180910390fd5b6001601160026101000a81548160ff0219169083151502179055506001601160016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610dff90612f74565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2b90612f74565b8015610e785780601f10610e4d57610100808354040283529160200191610e78565b820191906000526020600020905b815481529060010190602001808311610e5b57829003601f168201915b5050505050905090565b60008060016000610e91611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f45906131e4565b60405180910390fd5b610f62610f59611a93565b85858403611a9b565b600191505092915050565b6000610f81610f7a611a93565b8484611c64565b6001905092915050565b610f93611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611022576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611019906130e6565b60405180910390fd5b620f424061102e61084f565b6110389190613233565b8111611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906132d6565b60405180910390fd5b806010819055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1456010546040516110b19190612d43565b60405180910390a150565b6110c4611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a906130e6565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111da90613368565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611252576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611249906133fa565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516112e49190612df7565b60405180910390a150565b6112f7611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d906130e6565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f9061348c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516114b59190612c9f565b60405180910390a25050565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611556611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc906130e6565b60405180910390fd5b801515601160019054906101000a900460ff1615150361163a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116319061351e565b60405180910390fd5b80601160016101000a81548160ff02191690831515021790555050565b60105481565b611665611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116eb906130e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a906135b0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61182b611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b1906130e6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90613642565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361198b57611985473373ffffffffffffffffffffffffffffffffffffffff166121c990919063ffffffff16565b50611a90565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119cb9190612df7565b602060405180830381865afa1580156119e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0c9190613677565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611a499291906136a4565b6020604051808303816000875af1158015611a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8c91906136e2565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0190613781565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7090613813565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c579190612d43565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cca906138a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990613937565b60405180910390fd5b601160029054906101000a900460ff1680611da65750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611dfa5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e30906139a3565b60405180910390fd5b60008103611e5257611e4d83836000612284565b6121c4565b6000611e5d30610adb565b905060006010548210159050808015611e835750601160009054906101000a900460ff16155b8015611edc5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ef757506000600e54600d54611ef59190613066565b115b8015611f0f5750601160019054906101000a900460ff165b15611fe8576001601160006101000a81548160ff0219169083151502179055506000600e54600d54611f419190613066565b90506000600a54600954611f559190613066565b90506000600c54600b54611f699190613066565b90506000821115611f9a576000838387611f8391906139c3565b611f8d9190613233565b9050611f9881612503565b505b6000811115611fc9576000838287611fb291906139c3565b611fbc9190613233565b9050611fc78161283d565b505b6000601160006101000a81548160ff0219169083151502179055505050505b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061208b5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120a25750601160009054906101000a900460ff165b156120b05760009050612175565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361210f57600d549050612174565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361216e57600e549050612173565b600090505b5b5b60008111156121b55760006064828661218e91906139c3565b6121989190613233565b905080856121a69190613a05565b94506121b3873083612284565b505b6121c0868686612284565b5050505b505050565b60008147101561220e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220590613a85565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168360405161223490613ad6565b60006040518083038185875af1925050503d8060008114612271576040519150601f19603f3d011682016040523d82523d6000602084013e612276565b606091505b505090508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea906138a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235990613937565b60405180910390fd5b61236d838383612aef565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ea90613b5d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124869190613066565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124ea9190612d43565b60405180910390a36124fd848484612af4565b50505050565b60006002826125129190613233565b9050600081836125229190613a05565b905060004790506000600267ffffffffffffffff81111561254657612545613b7d565b5b6040519080825280602002602001820160405280156125745781602001602082028036833780820191505090505b509050308160008151811061258c5761258b613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126579190613bf0565b8160018151811061266b5761266a613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612709959493929190613d16565b600060405180830381600087803b15801561272357600080fd5b505af1158015612737573d6000803e3d6000fd5b50505050600082476127499190613a05565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308760008061dead426040518863ffffffff1660e01b81526004016127b496959493929190613d70565b60606040518083038185885af11580156127d2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127f79190613dd1565b5050507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185828660405161282d93929190613e24565b60405180910390a1505050505050565b60004790506000600267ffffffffffffffff81111561285f5761285e613b7d565b5b60405190808252806020026020018201604052801561288d5781602001602082028036833780820191505090505b50905030816000815181106128a5576128a4613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561294c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129709190613bf0565b8160018151811061298457612983613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401612a22959493929190613d16565b600060405180830381600087803b158015612a3c57600080fd5b505af1158015612a50573d6000803e3d6000fd5b5050505060008247612a629190613a05565b9050612aaf81600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166121c990919063ffffffff16565b507f957ad1fc6d4d41da6d1a8d37303289ef3c4b78e0285ff5df1e12070ef0e629998482604051612ae1929190613e5b565b60405180910390a150505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b33578082015181840152602081019050612b18565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b5b82612af9565b612b658185612b04565b9350612b75818560208601612b15565b612b7e81612b3f565b840191505092915050565b60006020820190508181036000830152612ba38184612b50565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bdb82612bb0565b9050919050565b612beb81612bd0565b8114612bf657600080fd5b50565b600081359050612c0881612be2565b92915050565b6000819050919050565b612c2181612c0e565b8114612c2c57600080fd5b50565b600081359050612c3e81612c18565b92915050565b60008060408385031215612c5b57612c5a612bab565b5b6000612c6985828601612bf9565b9250506020612c7a85828601612c2f565b9150509250929050565b60008115159050919050565b612c9981612c84565b82525050565b6000602082019050612cb46000830184612c90565b92915050565b6000819050919050565b6000612cdf612cda612cd584612bb0565b612cba565b612bb0565b9050919050565b6000612cf182612cc4565b9050919050565b6000612d0382612ce6565b9050919050565b612d1381612cf8565b82525050565b6000602082019050612d2e6000830184612d0a565b92915050565b612d3d81612c0e565b82525050565b6000602082019050612d586000830184612d34565b92915050565b600080600060608486031215612d7757612d76612bab565b5b6000612d8586828701612bf9565b9350506020612d9686828701612bf9565b9250506040612da786828701612c2f565b9150509250925092565b600060ff82169050919050565b612dc781612db1565b82525050565b6000602082019050612de26000830184612dbe565b92915050565b612df181612bd0565b82525050565b6000602082019050612e0c6000830184612de8565b92915050565b600060208284031215612e2857612e27612bab565b5b6000612e3684828501612bf9565b91505092915050565b600060208284031215612e5557612e54612bab565b5b6000612e6384828501612c2f565b91505092915050565b612e7581612c84565b8114612e8057600080fd5b50565b600081359050612e9281612e6c565b92915050565b60008060408385031215612eaf57612eae612bab565b5b6000612ebd85828601612bf9565b9250506020612ece85828601612e83565b9150509250929050565b60008060408385031215612eef57612eee612bab565b5b6000612efd85828601612bf9565b9250506020612f0e85828601612bf9565b9150509250929050565b600060208284031215612f2e57612f2d612bab565b5b6000612f3c84828501612e83565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f8c57607f821691505b602082108103612f9f57612f9e612f45565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613001602883612b04565b915061300c82612fa5565b604082019050919050565b6000602082019050818103600083015261303081612ff4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061307182612c0e565b915061307c83612c0e565b925082820190508082111561309457613093613037565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130d0602083612b04565b91506130db8261309a565b602082019050919050565b600060208201905081810360008301526130ff816130c3565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b600061313c601883612b04565b915061314782613106565b602082019050919050565b6000602082019050818103600083015261316b8161312f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131ce602583612b04565b91506131d982613172565b604082019050919050565b600060208201905081810360008301526131fd816131c1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061323e82612c0e565b915061324983612c0e565b92508261325957613258613204565b5b828204905092915050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b60006132c0603f83612b04565b91506132cb82613264565b604082019050919050565b600060208201905081810360008301526132ef816132b3565b9050919050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613352602883612b04565b915061335d826132f6565b604082019050919050565b6000602082019050818103600083015261338181613345565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b60006133e4602b83612b04565b91506133ef82613388565b604082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000613476602a83612b04565b91506134818261341a565b604082019050919050565b600060208201905081810360008301526134a581613469565b9050919050565b7f73776170456e61626c656420616c72656164792061742074686973207374617460008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613508602283612b04565b9150613513826134ac565b604082019050919050565b60006020820190508181036000830152613537816134fb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061359a602683612b04565b91506135a58261353e565b604082019050919050565b600060208201905081810360008301526135c98161358d565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160008201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000602082015250565b600061362c603783612b04565b9150613637826135d0565b604082019050919050565b6000602082019050818103600083015261365b8161361f565b9050919050565b60008151905061367181612c18565b92915050565b60006020828403121561368d5761368c612bab565b5b600061369b84828501613662565b91505092915050565b60006040820190506136b96000830185612de8565b6136c66020830184612d34565b9392505050565b6000815190506136dc81612e6c565b92915050565b6000602082840312156136f8576136f7612bab565b5b6000613706848285016136cd565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061376b602483612b04565b91506137768261370f565b604082019050919050565b6000602082019050818103600083015261379a8161375e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137fd602283612b04565b9150613808826137a1565b604082019050919050565b6000602082019050818103600083015261382c816137f0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061388f602583612b04565b915061389a82613833565b604082019050919050565b600060208201905081810360008301526138be81613882565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613921602383612b04565b915061392c826138c5565b604082019050919050565b6000602082019050818103600083015261395081613914565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b600061398d601883612b04565b915061399882613957565b602082019050919050565b600060208201905081810360008301526139bc81613980565b9050919050565b60006139ce82612c0e565b91506139d983612c0e565b92508282026139e781612c0e565b915082820484148315176139fe576139fd613037565b5b5092915050565b6000613a1082612c0e565b9150613a1b83612c0e565b9250828203905081811115613a3357613a32613037565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613a6f601d83612b04565b9150613a7a82613a39565b602082019050919050565b60006020820190508181036000830152613a9e81613a62565b9050919050565b600081905092915050565b50565b6000613ac0600083613aa5565b9150613acb82613ab0565b600082019050919050565b6000613ae182613ab3565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b47602683612b04565b9150613b5282613aeb565b604082019050919050565b60006020820190508181036000830152613b7681613b3a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613bea81612be2565b92915050565b600060208284031215613c0657613c05612bab565b5b6000613c1484828501613bdb565b91505092915050565b6000819050919050565b6000613c42613c3d613c3884613c1d565b612cba565b612c0e565b9050919050565b613c5281613c27565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c8d81612bd0565b82525050565b6000613c9f8383613c84565b60208301905092915050565b6000602082019050919050565b6000613cc382613c58565b613ccd8185613c63565b9350613cd883613c74565b8060005b83811015613d09578151613cf08882613c93565b9750613cfb83613cab565b925050600181019050613cdc565b5085935050505092915050565b600060a082019050613d2b6000830188612d34565b613d386020830187613c49565b8181036040830152613d4a8186613cb8565b9050613d596060830185612de8565b613d666080830184612d34565b9695505050505050565b600060c082019050613d856000830189612de8565b613d926020830188612d34565b613d9f6040830187613c49565b613dac6060830186613c49565b613db96080830185612de8565b613dc660a0830184612d34565b979650505050505050565b600080600060608486031215613dea57613de9612bab565b5b6000613df886828701613662565b9350506020613e0986828701613662565b9250506040613e1a86828701613662565b9150509250925092565b6000606082019050613e396000830186612d34565b613e466020830185612d34565b613e536040830184612d34565b949350505050565b6000604082019050613e706000830185612d34565b613e7d6020830184612d34565b939250505056fea2646970667358221220367463564ae27cc02d2e095d57c2054334399931195c82416e6cb5174effffac64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101dc5760003560e01c806375f0a87411610102578063bb85c6d111610095578063e01af92c11610064578063e01af92c146106d3578063e2f45605146106fc578063f2fde38b14610727578063f9d0831a14610750576101e3565b8063bb85c6d114610619578063c024666814610642578063dc4c7dbc1461066b578063dd62ed3e14610696576101e3565b806395d89b41116100d157806395d89b411461054b578063a457c2d714610576578063a9059cbb146105b3578063afa4f3b2146105f0576101e3565b806375f0a874146104b35780637b3c83b1146104de5780638a8c523c146105095780638da5cb5b14610520576101e3565b8063395093511161017a5780635fc2e596116101495780635fc2e596146104095780636ddd17131461043457806370a082311461045f578063715018a61461049c576101e3565b8063395093511461033957806349bd5a5e146103765780634ada218b146103a15780634fbee193146103cc576101e3565b806318160ddd116101b657806318160ddd1461027b57806323b872dd146102a65780632ce86fbf146102e3578063313ce5671461030e576101e3565b806306fdde03146101e8578063095ea7b3146102135780631694505e14610250576101e3565b366101e357005b600080fd5b3480156101f457600080fd5b506101fd610779565b60405161020a9190612b89565b60405180910390f35b34801561021f57600080fd5b5061023a60048036038101906102359190612c44565b61080b565b6040516102479190612c9f565b60405180910390f35b34801561025c57600080fd5b50610265610829565b6040516102729190612d19565b60405180910390f35b34801561028757600080fd5b5061029061084f565b60405161029d9190612d43565b60405180910390f35b3480156102b257600080fd5b506102cd60048036038101906102c89190612d5e565b610859565b6040516102da9190612c9f565b60405180910390f35b3480156102ef57600080fd5b506102f8610978565b6040516103059190612d43565b60405180910390f35b34801561031a57600080fd5b5061032361097e565b6040516103309190612dcd565b60405180910390f35b34801561034557600080fd5b50610360600480360381019061035b9190612c44565b610987565b60405161036d9190612c9f565b60405180910390f35b34801561038257600080fd5b5061038b610a33565b6040516103989190612df7565b60405180910390f35b3480156103ad57600080fd5b506103b6610a59565b6040516103c39190612c9f565b60405180910390f35b3480156103d857600080fd5b506103f360048036038101906103ee9190612e12565b610a6c565b6040516104009190612c9f565b60405180910390f35b34801561041557600080fd5b5061041e610ac2565b60405161042b9190612d43565b60405180910390f35b34801561044057600080fd5b50610449610ac8565b6040516104569190612c9f565b60405180910390f35b34801561046b57600080fd5b5061048660048036038101906104819190612e12565b610adb565b6040516104939190612d43565b60405180910390f35b3480156104a857600080fd5b506104b1610b23565b005b3480156104bf57600080fd5b506104c8610c7b565b6040516104d59190612df7565b60405180910390f35b3480156104ea57600080fd5b506104f3610ca1565b6040516105009190612d43565b60405180910390f35b34801561051557600080fd5b5061051e610ca7565b005b34801561052c57600080fd5b50610535610dc6565b6040516105429190612df7565b60405180910390f35b34801561055757600080fd5b50610560610df0565b60405161056d9190612b89565b60405180910390f35b34801561058257600080fd5b5061059d60048036038101906105989190612c44565b610e82565b6040516105aa9190612c9f565b60405180910390f35b3480156105bf57600080fd5b506105da60048036038101906105d59190612c44565b610f6d565b6040516105e79190612c9f565b60405180910390f35b3480156105fc57600080fd5b5061061760048036038101906106129190612e3f565b610f8b565b005b34801561062557600080fd5b50610640600480360381019061063b9190612e12565b6110bc565b005b34801561064e57600080fd5b5061066960048036038101906106649190612e98565b6112ef565b005b34801561067757600080fd5b506106806114c1565b60405161068d9190612d43565b60405180910390f35b3480156106a257600080fd5b506106bd60048036038101906106b89190612ed8565b6114c7565b6040516106ca9190612d43565b60405180910390f35b3480156106df57600080fd5b506106fa60048036038101906106f59190612f18565b61154e565b005b34801561070857600080fd5b50610711611657565b60405161071e9190612d43565b60405180910390f35b34801561073357600080fd5b5061074e60048036038101906107499190612e12565b61165d565b005b34801561075c57600080fd5b5061077760048036038101906107729190612e12565b611823565b005b60606003805461078890612f74565b80601f01602080910402602001604051908101604052809291908181526020018280546107b490612f74565b80156108015780601f106107d657610100808354040283529160200191610801565b820191906000526020600020905b8154815290600101906020018083116107e457829003601f168201915b5050505050905090565b600061081f610818611a93565b8484611a9b565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108a5611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610961578281101561094c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161094390613017565b60405180910390fd5b61096085610958611a93565b858403611a9b565b5b61096c858585611c64565b60019150509392505050565b600a5481565b60006012905090565b6000610a29610994611a93565b8484600160006109a2611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610a249190613066565b611a9b565b6001905092915050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601160029054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b600b5481565b601160019054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b2b611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb1906130e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095481565b610caf611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d35906130e6565b60405180910390fd5b601160029054906101000a900460ff1615610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590613152565b60405180910390fd5b6001601160026101000a81548160ff0219169083151502179055506001601160016101000a81548160ff021916908315150217905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060048054610dff90612f74565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2b90612f74565b8015610e785780601f10610e4d57610100808354040283529160200191610e78565b820191906000526020600020905b815481529060010190602001808311610e5b57829003601f168201915b5050505050905090565b60008060016000610e91611a93565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610f4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f45906131e4565b60405180910390fd5b610f62610f59611a93565b85858403611a9b565b600191505092915050565b6000610f81610f7a611a93565b8484611c64565b6001905092915050565b610f93611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611022576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611019906130e6565b60405180910390fd5b620f424061102e61084f565b6110389190613233565b8111611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906132d6565b60405180910390fd5b806010819055507f7c26bfee26f82e8cb57af48f4019cc64582db6fac7bad778433f10572ae8b1456010546040516110b19190612d43565b60405180910390a150565b6110c4611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611153576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114a906130e6565b60405180910390fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036111e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111da90613368565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611252576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611249906133fa565b60405180910390fd5b80600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fa964ba5c52d7e7bfcae4fb1ae4db9f211756d0e618e85fac5283b882a39e7a0b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516112e49190612df7565b60405180910390a150565b6112f7611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d906130e6565b60405180910390fd5b801515600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f9061348c565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff167f9d8f7706ea1113d1a167b526eca956215946dd36cc7df39eb16180222d8b5df7826040516114b59190612c9f565b60405180910390a25050565b600c5481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611556611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dc906130e6565b60405180910390fd5b801515601160019054906101000a900460ff1615150361163a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116319061351e565b60405180910390fd5b80601160016101000a81548160ff02191690831515021790555050565b60105481565b611665611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116eb906130e6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611763576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175a906135b0565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61182b611a93565b73ffffffffffffffffffffffffffffffffffffffff16600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146118ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b1906130e6565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611928576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191f90613642565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361198b57611985473373ffffffffffffffffffffffffffffffffffffffff166121c990919063ffffffff16565b50611a90565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119cb9190612df7565b602060405180830381865afa1580156119e8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a0c9190613677565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611a499291906136a4565b6020604051808303816000875af1158015611a68573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a8c91906136e2565b5050505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611b0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b0190613781565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7090613813565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c579190612d43565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611cd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cca906138a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611d42576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d3990613937565b60405180910390fd5b601160029054906101000a900460ff1680611da65750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611dfa5750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611e39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e30906139a3565b60405180910390fd5b60008103611e5257611e4d83836000612284565b6121c4565b6000611e5d30610adb565b905060006010548210159050808015611e835750601160009054906101000a900460ff16155b8015611edc5750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611ef757506000600e54600d54611ef59190613066565b115b8015611f0f5750601160019054906101000a900460ff165b15611fe8576001601160006101000a81548160ff0219169083151502179055506000600e54600d54611f419190613066565b90506000600a54600954611f559190613066565b90506000600c54600b54611f699190613066565b90506000821115611f9a576000838387611f8391906139c3565b611f8d9190613233565b9050611f9881612503565b505b6000811115611fc9576000838287611fb291906139c3565b611fbc9190613233565b9050611fc78161283d565b505b6000601160006101000a81548160ff0219169083151502179055505050505b6000600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061208b5750600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120a25750601160009054906101000a900460ff165b156120b05760009050612175565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff160361210f57600d549050612174565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361216e57600e549050612173565b600090505b5b5b60008111156121b55760006064828661218e91906139c3565b6121989190613233565b905080856121a69190613a05565b94506121b3873083612284565b505b6121c0868686612284565b5050505b505050565b60008147101561220e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220590613a85565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff168360405161223490613ad6565b60006040518083038185875af1925050503d8060008114612271576040519150601f19603f3d011682016040523d82523d6000602084013e612276565b606091505b505090508091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122ea906138a5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235990613937565b60405180910390fd5b61236d838383612aef565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ea90613b5d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124869190613066565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124ea9190612d43565b60405180910390a36124fd848484612af4565b50505050565b60006002826125129190613233565b9050600081836125229190613a05565b905060004790506000600267ffffffffffffffff81111561254657612545613b7d565b5b6040519080825280602002602001820160405280156125745781602001602082028036833780820191505090505b509050308160008151811061258c5761258b613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612633573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126579190613bf0565b8160018151811061266b5761266a613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478560008430426040518663ffffffff1660e01b8152600401612709959493929190613d16565b600060405180830381600087803b15801561272357600080fd5b505af1158015612737573d6000803e3d6000fd5b50505050600082476127499190613a05565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308760008061dead426040518863ffffffff1660e01b81526004016127b496959493929190613d70565b60606040518083038185885af11580156127d2573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906127f79190613dd1565b5050507f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185828660405161282d93929190613e24565b60405180910390a1505050505050565b60004790506000600267ffffffffffffffff81111561285f5761285e613b7d565b5b60405190808252806020026020018201604052801561288d5781602001602082028036833780820191505090505b50905030816000815181106128a5576128a4613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561294c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129709190613bf0565b8160018151811061298457612983613bac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008430426040518663ffffffff1660e01b8152600401612a22959493929190613d16565b600060405180830381600087803b158015612a3c57600080fd5b505af1158015612a50573d6000803e3d6000fd5b5050505060008247612a629190613a05565b9050612aaf81600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166121c990919063ffffffff16565b507f957ad1fc6d4d41da6d1a8d37303289ef3c4b78e0285ff5df1e12070ef0e629998482604051612ae1929190613e5b565b60405180910390a150505050565b505050565b505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b33578082015181840152602081019050612b18565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b5b82612af9565b612b658185612b04565b9350612b75818560208601612b15565b612b7e81612b3f565b840191505092915050565b60006020820190508181036000830152612ba38184612b50565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bdb82612bb0565b9050919050565b612beb81612bd0565b8114612bf657600080fd5b50565b600081359050612c0881612be2565b92915050565b6000819050919050565b612c2181612c0e565b8114612c2c57600080fd5b50565b600081359050612c3e81612c18565b92915050565b60008060408385031215612c5b57612c5a612bab565b5b6000612c6985828601612bf9565b9250506020612c7a85828601612c2f565b9150509250929050565b60008115159050919050565b612c9981612c84565b82525050565b6000602082019050612cb46000830184612c90565b92915050565b6000819050919050565b6000612cdf612cda612cd584612bb0565b612cba565b612bb0565b9050919050565b6000612cf182612cc4565b9050919050565b6000612d0382612ce6565b9050919050565b612d1381612cf8565b82525050565b6000602082019050612d2e6000830184612d0a565b92915050565b612d3d81612c0e565b82525050565b6000602082019050612d586000830184612d34565b92915050565b600080600060608486031215612d7757612d76612bab565b5b6000612d8586828701612bf9565b9350506020612d9686828701612bf9565b9250506040612da786828701612c2f565b9150509250925092565b600060ff82169050919050565b612dc781612db1565b82525050565b6000602082019050612de26000830184612dbe565b92915050565b612df181612bd0565b82525050565b6000602082019050612e0c6000830184612de8565b92915050565b600060208284031215612e2857612e27612bab565b5b6000612e3684828501612bf9565b91505092915050565b600060208284031215612e5557612e54612bab565b5b6000612e6384828501612c2f565b91505092915050565b612e7581612c84565b8114612e8057600080fd5b50565b600081359050612e9281612e6c565b92915050565b60008060408385031215612eaf57612eae612bab565b5b6000612ebd85828601612bf9565b9250506020612ece85828601612e83565b9150509250929050565b60008060408385031215612eef57612eee612bab565b5b6000612efd85828601612bf9565b9250506020612f0e85828601612bf9565b9150509250929050565b600060208284031215612f2e57612f2d612bab565b5b6000612f3c84828501612e83565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612f8c57607f821691505b602082108103612f9f57612f9e612f45565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613001602883612b04565b915061300c82612fa5565b604082019050919050565b6000602082019050818103600083015261303081612ff4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061307182612c0e565b915061307c83612c0e565b925082820190508082111561309457613093613037565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006130d0602083612b04565b91506130db8261309a565b602082019050919050565b600060208201905081810360008301526130ff816130c3565b9050919050565b7f54726164696e6720616c726561647920656e61626c65642e0000000000000000600082015250565b600061313c601883612b04565b915061314782613106565b602082019050919050565b6000602082019050818103600083015261316b8161312f565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006131ce602583612b04565b91506131d982613172565b604082019050919050565b600060208201905081810360008301526131fd816131c1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061323e82612c0e565b915061324983612c0e565b92508261325957613258613204565b5b828204905092915050565b7f53776170546f6b656e734174416d6f756e74206d75737420626520677265617460008201527f6572207468616e20302e3030303125206f6620746f74616c20737570706c7900602082015250565b60006132c0603f83612b04565b91506132cb82613264565b604082019050919050565b600060208201905081810360008301526132ef816132b3565b9050919050565b7f4d61726b6574696e672077616c6c657420697320616c7265616479207468617460008201527f2061646472657373000000000000000000000000000000000000000000000000602082015250565b6000613352602883612b04565b915061335d826132f6565b604082019050919050565b6000602082019050818103600083015261338181613345565b9050919050565b7f4d61726b6574696e672077616c6c65742063616e6e6f7420626520746865207a60008201527f65726f2061646472657373000000000000000000000000000000000000000000602082015250565b60006133e4602b83612b04565b91506133ef82613388565b604082019050919050565b60006020820190508181036000830152613413816133d7565b9050919050565b7f4163636f756e7420697320616c7265616479207468652076616c7565206f662060008201527f276578636c756465642700000000000000000000000000000000000000000000602082015250565b6000613476602a83612b04565b91506134818261341a565b604082019050919050565b600060208201905081810360008301526134a581613469565b9050919050565b7f73776170456e61626c656420616c72656164792061742074686973207374617460008201527f652e000000000000000000000000000000000000000000000000000000000000602082015250565b6000613508602283612b04565b9150613513826134ac565b604082019050919050565b60006020820190508181036000830152613537816134fb565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061359a602683612b04565b91506135a58261353e565b604082019050919050565b600060208201905081810360008301526135c98161358d565b9050919050565b7f4f776e65722063616e6e6f7420636c61696d20636f6e7472616374277320626160008201527f6c616e6365206f6620697473206f776e20746f6b656e73000000000000000000602082015250565b600061362c603783612b04565b9150613637826135d0565b604082019050919050565b6000602082019050818103600083015261365b8161361f565b9050919050565b60008151905061367181612c18565b92915050565b60006020828403121561368d5761368c612bab565b5b600061369b84828501613662565b91505092915050565b60006040820190506136b96000830185612de8565b6136c66020830184612d34565b9392505050565b6000815190506136dc81612e6c565b92915050565b6000602082840312156136f8576136f7612bab565b5b6000613706848285016136cd565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061376b602483612b04565b91506137768261370f565b604082019050919050565b6000602082019050818103600083015261379a8161375e565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006137fd602283612b04565b9150613808826137a1565b604082019050919050565b6000602082019050818103600083015261382c816137f0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061388f602583612b04565b915061389a82613833565b604082019050919050565b600060208201905081810360008301526138be81613882565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613921602383612b04565b915061392c826138c5565b604082019050919050565b6000602082019050818103600083015261395081613914565b9050919050565b7f54726164696e67206e6f742079657420656e61626c6564210000000000000000600082015250565b600061398d601883612b04565b915061399882613957565b602082019050919050565b600060208201905081810360008301526139bc81613980565b9050919050565b60006139ce82612c0e565b91506139d983612c0e565b92508282026139e781612c0e565b915082820484148315176139fe576139fd613037565b5b5092915050565b6000613a1082612c0e565b9150613a1b83612c0e565b9250828203905081811115613a3357613a32613037565b5b92915050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b6000613a6f601d83612b04565b9150613a7a82613a39565b602082019050919050565b60006020820190508181036000830152613a9e81613a62565b9050919050565b600081905092915050565b50565b6000613ac0600083613aa5565b9150613acb82613ab0565b600082019050919050565b6000613ae182613ab3565b9150819050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613b47602683612b04565b9150613b5282613aeb565b604082019050919050565b60006020820190508181036000830152613b7681613b3a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050613bea81612be2565b92915050565b600060208284031215613c0657613c05612bab565b5b6000613c1484828501613bdb565b91505092915050565b6000819050919050565b6000613c42613c3d613c3884613c1d565b612cba565b612c0e565b9050919050565b613c5281613c27565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c8d81612bd0565b82525050565b6000613c9f8383613c84565b60208301905092915050565b6000602082019050919050565b6000613cc382613c58565b613ccd8185613c63565b9350613cd883613c74565b8060005b83811015613d09578151613cf08882613c93565b9750613cfb83613cab565b925050600181019050613cdc565b5085935050505092915050565b600060a082019050613d2b6000830188612d34565b613d386020830187613c49565b8181036040830152613d4a8186613cb8565b9050613d596060830185612de8565b613d666080830184612d34565b9695505050505050565b600060c082019050613d856000830189612de8565b613d926020830188612d34565b613d9f6040830187613c49565b613dac6060830186613c49565b613db96080830185612de8565b613dc660a0830184612d34565b979650505050505050565b600080600060608486031215613dea57613de9612bab565b5b6000613df886828701613662565b9350506020613e0986828701613662565b9250506040613e1a86828701613662565b9150509250925092565b6000606082019050613e396000830186612d34565b613e466020830185612d34565b613e536040830184612d34565b949350505050565b6000604082019050613e706000830185612d34565b613e7d6020830184612d34565b939250505056fea2646970667358221220367463564ae27cc02d2e095d57c2054334399931195c82416e6cb5174effffac64736f6c63430008120033
Deployed Bytecode Sourcemap
19611:7922:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14896:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15810:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19695:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15217:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15987:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19883:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15116:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16568:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19743:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23150:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22630:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19926:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20202:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15333:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14083:148;;;;;;;;;;;;;:::i;:::-;;20088:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19843:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23185:175;;;;;;;;;;;;;:::i;:::-;;13869:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15004:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16791:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15468:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25687:304;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22763:379;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22332:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19966:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15651:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25500:179;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20128:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14239:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21859:465;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14896:100;14950:13;14983:5;14976:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14896:100;:::o;15810:169::-;15893:4;15910:39;15919:12;:10;:12::i;:::-;15933:7;15942:6;15910:8;:39::i;:::-;15967:4;15960:11;;15810:169;;;;:::o;19695:41::-;;;;;;;;;;;;;:::o;15217:108::-;15278:7;15305:12;;15298:19;;15217:108;:::o;15987:573::-;16127:4;16144:24;16171:11;:19;16183:6;16171:19;;;;;;;;;;;;;;;:33;16191:12;:10;:12::i;:::-;16171:33;;;;;;;;;;;;;;;;16144:60;;16239:17;16219:16;:37;16215:265;;16301:6;16281:16;:26;;16273:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;16396:57;16405:6;16413:12;:10;:12::i;:::-;16446:6;16427:16;:25;16396:8;:57::i;:::-;16215:265;16492:36;16502:6;16510:9;16521:6;16492:9;:36::i;:::-;16548:4;16541:11;;;15987:573;;;;;:::o;19883:34::-;;;;:::o;15116:93::-;15174:5;15199:2;15192:9;;15116:93;:::o;16568:215::-;16656:4;16673:80;16682:12;:10;:12::i;:::-;16696:7;16742:10;16705:11;:25;16717:12;:10;:12::i;:::-;16705:25;;;;;;;;;;;;;;;:34;16731:7;16705:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;16673:8;:80::i;:::-;16771:4;16764:11;;16568:215;;;;:::o;19743:29::-;;;;;;;;;;;;;:::o;23150:26::-;;;;;;;;;;;;;:::o;22630:125::-;22695:4;22719:19;:28;22739:7;22719:28;;;;;;;;;;;;;;;;;;;;;;;;;22712:35;;22630:125;;;:::o;19926:33::-;;;;:::o;20202:26::-;;;;;;;;;;;;;:::o;15333:127::-;15407:7;15434:9;:18;15444:7;15434:18;;;;;;;;;;;;;;;;15427:25;;15333:127;;;:::o;14083:148::-;14006:12;:10;:12::i;:::-;13996:22;;:6;;;;;;;;;;;:22;;;13988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14190:1:::1;14153:40;;14174:6;;;;;;;;;;;14153:40;;;;;;;;;;;;14221:1;14204:6;;:19;;;;;;;;;;;;;;;;;;14083:148::o:0;20088:31::-;;;;;;;;;;;;;:::o;19843:33::-;;;;:::o;23185:175::-;14006:12;:10;:12::i;:::-;13996:22;;:6;;;;;;;;;;;:22;;;13988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23248:14:::1;;;;;;;;;;;23247:15;23239:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;23319:4;23302:14;;:21;;;;;;;;;;;;;;;;;;23348:4;23334:11;;:18;;;;;;;;;;;;;;;;;;23185:175::o:0;13869:79::-;13907:7;13934:6;;;;;;;;;;;13927:13;;13869:79;:::o;15004:104::-;15060:13;15093:7;15086:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15004:104;:::o;16791:413::-;16884:4;16901:24;16928:11;:25;16940:12;:10;:12::i;:::-;16928:25;;;;;;;;;;;;;;;:34;16954:7;16928:34;;;;;;;;;;;;;;;;16901:61;;17001:15;16981:16;:35;;16973:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17094:67;17103:12;:10;:12::i;:::-;17117:7;17145:15;17126:16;:34;17094:8;:67::i;:::-;17192:4;17185:11;;;16791:413;;;;:::o;15468:175::-;15554:4;15571:42;15581:12;:10;:12::i;:::-;15595:9;15606:6;15571:9;:42::i;:::-;15631:4;15624:11;;15468:175;;;;:::o;25687:304::-;14006:12;:10;:12::i;:::-;13996:22;;:6;;;;;;;;;;;:22;;;13988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25802:9:::1;25786:13;:11;:13::i;:::-;:25;;;;:::i;:::-;25774:9;:37;25766:113;;;;;;;;;;;;:::i;:::-;;;;;;;;;25911:9;25890:18;:30;;;;25938:45;25964:18;;25938:45;;;;;;:::i;:::-;;;;;;;;25687:304:::0;:::o;22763:379::-;14006:12;:10;:12::i;:::-;13996:22;;:6;;;;;;;;;;;:22;;;13988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22877:15:::1;;;;;;;;;;;22857:35;;:16;:35;;::::0;22849:87:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22983:1;22955:30;;:16;:30;;::::0;22947:85:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;23061:16;23043:15;;:34;;;;;;;;;;;;;;;;;;23095:39;23118:15;;;;;;;;;;;23095:39;;;;;;:::i;:::-;;;;;;;;22763:379:::0;:::o;22332:290::-;14006:12;:10;:12::i;:::-;13996:22;;:6;;;;;;;;;;;:22;;;13988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;22458:8:::1;22426:40;;:19;:28;22446:7;22426:28;;;;;;;;;;;;;;;;;;;;;;;;;:40;;::::0;22418:94:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22554:8;22523:19;:28;22543:7;22523:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;22596:7;22580:34;;;22605:8;22580:34;;;;;;:::i;:::-;;;;;;;;22332:290:::0;;:::o;19966:34::-;;;;:::o;15651:151::-;15740:7;15767:11;:18;15779:5;15767:18;;;;;;;;;;;;;;;:27;15786:7;15767:27;;;;;;;;;;;;;;;;15760:34;;15651:151;;;;:::o;25500:179::-;14006:12;:10;:12::i;:::-;13996:22;;:6;;;;;;;;;;;:22;;;13988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25591:8:::1;25576:23;;:11;;;;;;;;;;;:23;;::::0;25568:70:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;25663:8;25649:11;;:22;;;;;;;;;;;;;;;;;;25500:179:::0;:::o;20128:34::-;;;;:::o;14239:244::-;14006:12;:10;:12::i;:::-;13996:22;;:6;;;;;;;;;;;:22;;;13988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14348:1:::1;14328:22;;:8;:22;;::::0;14320:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14438:8;14409:38;;14430:6;;;;;;;;;;;14409:38;;;;;;;;;;;;14467:8;14458:6;;:17;;;;;;;;;;;;;;;;;;14239:244:::0;:::o;21859:465::-;14006:12;:10;:12::i;:::-;13996:22;;:6;;;;;;;;;;;:22;;;13988:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21955:4:::1;21938:22;;:5;:22;;::::0;21930:90:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;22052:3;22035:21;;:5;:21;;::::0;22031:127:::1;;22073:52;22103:21;22081:10;22073:29;;;;:52;;;;:::i;:::-;;22140:7;;22031:127;22168:17;22195:5;22168:33;;22212:15;22230:10;:20;;;22259:4;22230:35;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22212:53;;22276:10;:19;;;22296:10;22308:7;22276:40;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;21919:405;;14066:1;21859:465:::0;:::o;13192:98::-;13245:7;13272:10;13265:17;;13192:98;:::o;18959:380::-;19112:1;19095:19;;:5;:19;;;19087:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19193:1;19174:21;;:7;:21;;;19166:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19277:6;19247:11;:18;19259:5;19247:18;;;;;;;;;;;;;;;:27;19266:7;19247:27;;;;;;;;;;;;;;;:36;;;;19315:7;19299:32;;19308:5;19299:32;;;19324:6;19299:32;;;;;;:::i;:::-;;;;;;;;18959:380;;;:::o;23368:2124::-;23481:1;23465:18;;:4;:18;;;23457:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23558:1;23544:16;;:2;:16;;;23536:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23619:14;;;;;;;;;;;:43;;;;23637:19;:25;23657:4;23637:25;;;;;;;;;;;;;;;;;;;;;;;;;23619:43;:70;;;;23666:19;:23;23686:2;23666:23;;;;;;;;;;;;;;;;;;;;;;;;;23619:70;23611:107;;;;;;;;;;;;:::i;:::-;;;;;;;;;23752:1;23742:6;:11;23738:93;;23770:28;23786:4;23792:2;23796:1;23770:15;:28::i;:::-;23813:7;;23738:93;23837:28;23868:24;23886:4;23868:9;:24::i;:::-;23837:55;;23905:12;23944:18;;23920:20;:42;;23905:57;;23979:7;:33;;;;;24004:8;;;;;;;;;;;24003:9;23979:33;:69;;;;;24035:13;;;;;;;;;;;24029:19;;:2;:19;;;23979:69;:124;;;;;24102:1;24083:16;;24065:15;;:34;;;;:::i;:::-;:38;23979:124;:152;;;;;24120:11;;;;;;;;;;;23979:152;23975:895;;;24169:4;24158:8;;:15;;;;;;;;;;;;;;;;;;24190:16;24227;;24209:15;;:34;;;;:::i;:::-;24190:53;;24258:22;24303:18;;24283:17;;:38;;;;:::i;:::-;24258:63;;24336:22;24381:18;;24361:17;;:38;;;;:::i;:::-;24336:63;;24437:1;24420:14;:18;24416:183;;;24459:23;24525:8;24508:14;24485:20;:37;;;;:::i;:::-;:48;;;;:::i;:::-;24459:74;;24552:31;24567:15;24552:14;:31::i;:::-;24440:159;24416:183;24648:1;24631:14;:18;24627:189;;;24670:23;24736:8;24719:14;24696:20;:37;;;;:::i;:::-;:48;;;;:::i;:::-;24670:74;;24763:37;24784:15;24763:20;:37::i;:::-;24651:165;24627:189;24853:5;24842:8;;:16;;;;;;;;;;;;;;;;;;24143:727;;;23975:895;24882:18;24915:19;:25;24935:4;24915:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;24944:19;:23;24964:2;24944:23;;;;;;;;;;;;;;;;;;;;;;;;;24915:52;:64;;;;24971:8;;;;;;;;;;;24915:64;24911:333;;;25009:1;24996:14;;24911:333;;;25040:13;;;;;;;;;;;25032:21;;:4;:21;;;25028:216;;25083:15;;25070:28;;25028:216;;;25126:13;;;;;;;;;;;25120:19;;:2;:19;;;25116:128;;25169:16;;25156:29;;25116:128;;;25231:1;25218:14;;25116:128;25028:216;24911:333;25273:1;25260:10;:14;25256:183;;;25291:12;25330:3;25316:10;25307:6;:19;;;;:::i;:::-;25306:27;;;;:::i;:::-;25291:42;;25366:4;25357:6;:13;;;;:::i;:::-;25348:22;;25385:42;25401:4;25415;25422;25385:15;:42::i;:::-;25276:163;25256:183;25451:33;25467:4;25473:2;25477:6;25451:15;:33::i;:::-;23446:2046;;;23368:2124;;;;:::o;9102:266::-;9181:4;9230:6;9205:21;:31;;9197:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9284:12;9302:9;:14;;9324:6;9302:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9283:52;;;9353:7;9346:14;;;9102:266;;;;:::o;17212:733::-;17370:1;17352:20;;:6;:20;;;17344:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;17454:1;17433:23;;:9;:23;;;17425:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;17509:47;17530:6;17538:9;17549:6;17509:20;:47::i;:::-;17569:21;17593:9;:17;17603:6;17593:17;;;;;;;;;;;;;;;;17569:41;;17646:6;17629:13;:23;;17621:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;17767:6;17751:13;:22;17731:9;:17;17741:6;17731:17;;;;;;;;;;;;;;;:42;;;;17819:6;17795:9;:20;17805:9;17795:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;17860:9;17843:35;;17852:6;17843:35;;;17871:6;17843:35;;;;;;:::i;:::-;;;;;;;;17891:46;17911:6;17919:9;17930:6;17891:19;:46::i;:::-;17333:612;17212:733;;;:::o;25999:876::-;26058:12;26082:1;26073:6;:10;;;;:::i;:::-;26058:25;;26094:17;26123:4;26114:6;:13;;;;:::i;:::-;26094:33;;26140:22;26165:21;26140:46;;26199:21;26237:1;26223:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26199:40;;26268:4;26250;26255:1;26250:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;26294:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;26284:4;26289:1;26284:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;26329:15;;;;;;;;;;;:66;;;26410:4;26429:1;26445:4;26472;26492:15;26329:179;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26529:18;26574:14;26550:21;:38;;;;:::i;:::-;26529:59;;26601:15;;;;;;;;;;;:31;;;26640:10;26674:4;26694:9;26718:1;26734;26758:6;26780:15;26601:205;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;26824:43;26839:4;26845:10;26857:9;26824:43;;;;;;;;:::i;:::-;;;;;;;;26047:828;;;;;25999:876;:::o;26883:647::-;26953:22;26978:21;26953:46;;27012:21;27050:1;27036:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27012:40;;27081:4;27063;27068:1;27063:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;27107:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27097:4;27102:1;27097:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;27142:15;;;;;;;;;;;:66;;;27223:11;27249:1;27265:4;27292;27312:15;27142:186;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27341:18;27386:14;27362:21;:38;;;;:::i;:::-;27341:59;;27413:46;27448:10;27421:15;;;;;;;;;;;27413:34;;;;:46;;;;:::i;:::-;;27477:45;27498:11;27511:10;27477:45;;;;;;;:::i;:::-;;;;;;;;26942:588;;;26883:647;:::o;19347:125::-;;;;:::o;19480:124::-;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:::-;6572:6;6621:2;6609:9;6600:7;6596:23;6592:32;6589:119;;;6627:79;;:::i;:::-;6589:119;6747:1;6772:53;6817:7;6808:6;6797:9;6793:22;6772:53;:::i;:::-;6762:63;;6718:117;6513:329;;;;:::o;6848:116::-;6918:21;6933:5;6918:21;:::i;:::-;6911:5;6908:32;6898:60;;6954:1;6951;6944:12;6898:60;6848:116;:::o;6970:133::-;7013:5;7051:6;7038:20;7029:29;;7067:30;7091:5;7067:30;:::i;:::-;6970:133;;;;:::o;7109:468::-;7174:6;7182;7231:2;7219:9;7210:7;7206:23;7202:32;7199:119;;;7237:79;;:::i;:::-;7199:119;7357:1;7382:53;7427:7;7418:6;7407:9;7403:22;7382:53;:::i;:::-;7372:63;;7328:117;7484:2;7510:50;7552:7;7543:6;7532:9;7528:22;7510:50;:::i;:::-;7500:60;;7455:115;7109:468;;;;;:::o;7583:474::-;7651:6;7659;7708:2;7696:9;7687:7;7683:23;7679:32;7676:119;;;7714:79;;:::i;:::-;7676:119;7834:1;7859:53;7904:7;7895:6;7884:9;7880:22;7859:53;:::i;:::-;7849:63;;7805:117;7961:2;7987:53;8032:7;8023:6;8012:9;8008:22;7987:53;:::i;:::-;7977:63;;7932:118;7583:474;;;;;:::o;8063:323::-;8119:6;8168:2;8156:9;8147:7;8143:23;8139:32;8136:119;;;8174:79;;:::i;:::-;8136:119;8294:1;8319:50;8361:7;8352:6;8341:9;8337:22;8319:50;:::i;:::-;8309:60;;8265:114;8063:323;;;;:::o;8392:180::-;8440:77;8437:1;8430:88;8537:4;8534:1;8527:15;8561:4;8558:1;8551:15;8578:320;8622:6;8659:1;8653:4;8649:12;8639:22;;8706:1;8700:4;8696:12;8727:18;8717:81;;8783:4;8775:6;8771:17;8761:27;;8717:81;8845:2;8837:6;8834:14;8814:18;8811:38;8808:84;;8864:18;;:::i;:::-;8808:84;8629:269;8578:320;;;:::o;8904:227::-;9044:34;9040:1;9032:6;9028:14;9021:58;9113:10;9108:2;9100:6;9096:15;9089:35;8904:227;:::o;9137:366::-;9279:3;9300:67;9364:2;9359:3;9300:67;:::i;:::-;9293:74;;9376:93;9465:3;9376:93;:::i;:::-;9494:2;9489:3;9485:12;9478:19;;9137:366;;;:::o;9509:419::-;9675:4;9713:2;9702:9;9698:18;9690:26;;9762:9;9756:4;9752:20;9748:1;9737:9;9733:17;9726:47;9790:131;9916:4;9790:131;:::i;:::-;9782:139;;9509:419;;;:::o;9934:180::-;9982:77;9979:1;9972:88;10079:4;10076:1;10069:15;10103:4;10100:1;10093:15;10120:191;10160:3;10179:20;10197:1;10179:20;:::i;:::-;10174:25;;10213:20;10231:1;10213:20;:::i;:::-;10208:25;;10256:1;10253;10249:9;10242:16;;10277:3;10274:1;10271:10;10268:36;;;10284:18;;:::i;:::-;10268:36;10120:191;;;;:::o;10317:182::-;10457:34;10453:1;10445:6;10441:14;10434:58;10317:182;:::o;10505:366::-;10647:3;10668:67;10732:2;10727:3;10668:67;:::i;:::-;10661:74;;10744:93;10833:3;10744:93;:::i;:::-;10862:2;10857:3;10853:12;10846:19;;10505:366;;;:::o;10877:419::-;11043:4;11081:2;11070:9;11066:18;11058:26;;11130:9;11124:4;11120:20;11116:1;11105:9;11101:17;11094:47;11158:131;11284:4;11158:131;:::i;:::-;11150:139;;10877:419;;;:::o;11302:174::-;11442:26;11438:1;11430:6;11426:14;11419:50;11302:174;:::o;11482:366::-;11624:3;11645:67;11709:2;11704:3;11645:67;:::i;:::-;11638:74;;11721:93;11810:3;11721:93;:::i;:::-;11839:2;11834:3;11830:12;11823:19;;11482:366;;;:::o;11854:419::-;12020:4;12058:2;12047:9;12043:18;12035:26;;12107:9;12101:4;12097:20;12093:1;12082:9;12078:17;12071:47;12135:131;12261:4;12135:131;:::i;:::-;12127:139;;11854:419;;;:::o;12279:224::-;12419:34;12415:1;12407:6;12403:14;12396:58;12488:7;12483:2;12475:6;12471:15;12464:32;12279:224;:::o;12509:366::-;12651:3;12672:67;12736:2;12731:3;12672:67;:::i;:::-;12665:74;;12748:93;12837:3;12748:93;:::i;:::-;12866:2;12861:3;12857:12;12850:19;;12509:366;;;:::o;12881:419::-;13047:4;13085:2;13074:9;13070:18;13062:26;;13134:9;13128:4;13124:20;13120:1;13109:9;13105:17;13098:47;13162:131;13288:4;13162:131;:::i;:::-;13154:139;;12881:419;;;:::o;13306:180::-;13354:77;13351:1;13344:88;13451:4;13448:1;13441:15;13475:4;13472:1;13465:15;13492:185;13532:1;13549:20;13567:1;13549:20;:::i;:::-;13544:25;;13583:20;13601:1;13583:20;:::i;:::-;13578:25;;13622:1;13612:35;;13627:18;;:::i;:::-;13612:35;13669:1;13666;13662:9;13657:14;;13492:185;;;;:::o;13683:250::-;13823:34;13819:1;13811:6;13807:14;13800:58;13892:33;13887:2;13879:6;13875:15;13868:58;13683:250;:::o;13939:366::-;14081:3;14102:67;14166:2;14161:3;14102:67;:::i;:::-;14095:74;;14178:93;14267:3;14178:93;:::i;:::-;14296:2;14291:3;14287:12;14280:19;;13939:366;;;:::o;14311:419::-;14477:4;14515:2;14504:9;14500:18;14492:26;;14564:9;14558:4;14554:20;14550:1;14539:9;14535:17;14528:47;14592:131;14718:4;14592:131;:::i;:::-;14584:139;;14311:419;;;:::o;14736:227::-;14876:34;14872:1;14864:6;14860:14;14853:58;14945:10;14940:2;14932:6;14928:15;14921:35;14736:227;:::o;14969:366::-;15111:3;15132:67;15196:2;15191:3;15132:67;:::i;:::-;15125:74;;15208:93;15297:3;15208:93;:::i;:::-;15326:2;15321:3;15317:12;15310:19;;14969:366;;;:::o;15341:419::-;15507:4;15545:2;15534:9;15530:18;15522:26;;15594:9;15588:4;15584:20;15580:1;15569:9;15565:17;15558:47;15622:131;15748:4;15622:131;:::i;:::-;15614:139;;15341:419;;;:::o;15766:230::-;15906:34;15902:1;15894:6;15890:14;15883:58;15975:13;15970:2;15962:6;15958:15;15951:38;15766:230;:::o;16002:366::-;16144:3;16165:67;16229:2;16224:3;16165:67;:::i;:::-;16158:74;;16241:93;16330:3;16241:93;:::i;:::-;16359:2;16354:3;16350:12;16343:19;;16002:366;;;:::o;16374:419::-;16540:4;16578:2;16567:9;16563:18;16555:26;;16627:9;16621:4;16617:20;16613:1;16602:9;16598:17;16591:47;16655:131;16781:4;16655:131;:::i;:::-;16647:139;;16374:419;;;:::o;16799:229::-;16939:34;16935:1;16927:6;16923:14;16916:58;17008:12;17003:2;16995:6;16991:15;16984:37;16799:229;:::o;17034:366::-;17176:3;17197:67;17261:2;17256:3;17197:67;:::i;:::-;17190:74;;17273:93;17362:3;17273:93;:::i;:::-;17391:2;17386:3;17382:12;17375:19;;17034:366;;;:::o;17406:419::-;17572:4;17610:2;17599:9;17595:18;17587:26;;17659:9;17653:4;17649:20;17645:1;17634:9;17630:17;17623:47;17687:131;17813:4;17687:131;:::i;:::-;17679:139;;17406:419;;;:::o;17831:221::-;17971:34;17967:1;17959:6;17955:14;17948:58;18040:4;18035:2;18027:6;18023:15;18016:29;17831:221;:::o;18058:366::-;18200:3;18221:67;18285:2;18280:3;18221:67;:::i;:::-;18214:74;;18297:93;18386:3;18297:93;:::i;:::-;18415:2;18410:3;18406:12;18399:19;;18058:366;;;:::o;18430:419::-;18596:4;18634:2;18623:9;18619:18;18611:26;;18683:9;18677:4;18673:20;18669:1;18658:9;18654:17;18647:47;18711:131;18837:4;18711:131;:::i;:::-;18703:139;;18430:419;;;:::o;18855:225::-;18995:34;18991:1;18983:6;18979:14;18972:58;19064:8;19059:2;19051:6;19047:15;19040:33;18855:225;:::o;19086:366::-;19228:3;19249:67;19313:2;19308:3;19249:67;:::i;:::-;19242:74;;19325:93;19414:3;19325:93;:::i;:::-;19443:2;19438:3;19434:12;19427:19;;19086:366;;;:::o;19458:419::-;19624:4;19662:2;19651:9;19647:18;19639:26;;19711:9;19705:4;19701:20;19697:1;19686:9;19682:17;19675:47;19739:131;19865:4;19739:131;:::i;:::-;19731:139;;19458:419;;;:::o;19883:242::-;20023:34;20019:1;20011:6;20007:14;20000:58;20092:25;20087:2;20079:6;20075:15;20068:50;19883:242;:::o;20131:366::-;20273:3;20294:67;20358:2;20353:3;20294:67;:::i;:::-;20287:74;;20370:93;20459:3;20370:93;:::i;:::-;20488:2;20483:3;20479:12;20472:19;;20131:366;;;:::o;20503:419::-;20669:4;20707:2;20696:9;20692:18;20684:26;;20756:9;20750:4;20746:20;20742:1;20731:9;20727:17;20720:47;20784:131;20910:4;20784:131;:::i;:::-;20776:139;;20503:419;;;:::o;20928:143::-;20985:5;21016:6;21010:13;21001:22;;21032:33;21059:5;21032:33;:::i;:::-;20928:143;;;;:::o;21077:351::-;21147:6;21196:2;21184:9;21175:7;21171:23;21167:32;21164:119;;;21202:79;;:::i;:::-;21164:119;21322:1;21347:64;21403:7;21394:6;21383:9;21379:22;21347:64;:::i;:::-;21337:74;;21293:128;21077:351;;;;:::o;21434:332::-;21555:4;21593:2;21582:9;21578:18;21570:26;;21606:71;21674:1;21663:9;21659:17;21650:6;21606:71;:::i;:::-;21687:72;21755:2;21744:9;21740:18;21731:6;21687:72;:::i;:::-;21434:332;;;;;:::o;21772:137::-;21826:5;21857:6;21851:13;21842:22;;21873:30;21897:5;21873:30;:::i;:::-;21772:137;;;;:::o;21915:345::-;21982:6;22031:2;22019:9;22010:7;22006:23;22002:32;21999:119;;;22037:79;;:::i;:::-;21999:119;22157:1;22182:61;22235:7;22226:6;22215:9;22211:22;22182:61;:::i;:::-;22172:71;;22128:125;21915:345;;;;:::o;22266:223::-;22406:34;22402:1;22394:6;22390:14;22383:58;22475:6;22470:2;22462:6;22458:15;22451:31;22266:223;:::o;22495:366::-;22637:3;22658:67;22722:2;22717:3;22658:67;:::i;:::-;22651:74;;22734:93;22823:3;22734:93;:::i;:::-;22852:2;22847:3;22843:12;22836:19;;22495:366;;;:::o;22867:419::-;23033:4;23071:2;23060:9;23056:18;23048:26;;23120:9;23114:4;23110:20;23106:1;23095:9;23091:17;23084:47;23148:131;23274:4;23148:131;:::i;:::-;23140:139;;22867:419;;;:::o;23292:221::-;23432:34;23428:1;23420:6;23416:14;23409:58;23501:4;23496:2;23488:6;23484:15;23477:29;23292:221;:::o;23519:366::-;23661:3;23682:67;23746:2;23741:3;23682:67;:::i;:::-;23675:74;;23758:93;23847:3;23758:93;:::i;:::-;23876:2;23871:3;23867:12;23860:19;;23519:366;;;:::o;23891:419::-;24057:4;24095:2;24084:9;24080:18;24072:26;;24144:9;24138:4;24134:20;24130:1;24119:9;24115:17;24108:47;24172:131;24298:4;24172:131;:::i;:::-;24164:139;;23891:419;;;:::o;24316:224::-;24456:34;24452:1;24444:6;24440:14;24433:58;24525:7;24520:2;24512:6;24508:15;24501:32;24316:224;:::o;24546:366::-;24688:3;24709:67;24773:2;24768:3;24709:67;:::i;:::-;24702:74;;24785:93;24874:3;24785:93;:::i;:::-;24903:2;24898:3;24894:12;24887:19;;24546:366;;;:::o;24918:419::-;25084:4;25122:2;25111:9;25107:18;25099:26;;25171:9;25165:4;25161:20;25157:1;25146:9;25142:17;25135:47;25199:131;25325:4;25199:131;:::i;:::-;25191:139;;24918:419;;;:::o;25343:222::-;25483:34;25479:1;25471:6;25467:14;25460:58;25552:5;25547:2;25539:6;25535:15;25528:30;25343:222;:::o;25571:366::-;25713:3;25734:67;25798:2;25793:3;25734:67;:::i;:::-;25727:74;;25810:93;25899:3;25810:93;:::i;:::-;25928:2;25923:3;25919:12;25912:19;;25571:366;;;:::o;25943:419::-;26109:4;26147:2;26136:9;26132:18;26124:26;;26196:9;26190:4;26186:20;26182:1;26171:9;26167:17;26160:47;26224:131;26350:4;26224:131;:::i;:::-;26216:139;;25943:419;;;:::o;26368:174::-;26508:26;26504:1;26496:6;26492:14;26485:50;26368:174;:::o;26548:366::-;26690:3;26711:67;26775:2;26770:3;26711:67;:::i;:::-;26704:74;;26787:93;26876:3;26787:93;:::i;:::-;26905:2;26900:3;26896:12;26889:19;;26548:366;;;:::o;26920:419::-;27086:4;27124:2;27113:9;27109:18;27101:26;;27173:9;27167:4;27163:20;27159:1;27148:9;27144:17;27137:47;27201:131;27327:4;27201:131;:::i;:::-;27193:139;;26920:419;;;:::o;27345:410::-;27385:7;27408:20;27426:1;27408:20;:::i;:::-;27403:25;;27442:20;27460:1;27442:20;:::i;:::-;27437:25;;27497:1;27494;27490:9;27519:30;27537:11;27519:30;:::i;:::-;27508:41;;27698:1;27689:7;27685:15;27682:1;27679:22;27659:1;27652:9;27632:83;27609:139;;27728:18;;:::i;:::-;27609:139;27393:362;27345:410;;;;:::o;27761:194::-;27801:4;27821:20;27839:1;27821:20;:::i;:::-;27816:25;;27855:20;27873:1;27855:20;:::i;:::-;27850:25;;27899:1;27896;27892:9;27884:17;;27923:1;27917:4;27914:11;27911:37;;;27928:18;;:::i;:::-;27911:37;27761:194;;;;:::o;27961:179::-;28101:31;28097:1;28089:6;28085:14;28078:55;27961:179;:::o;28146:366::-;28288:3;28309:67;28373:2;28368:3;28309:67;:::i;:::-;28302:74;;28385:93;28474:3;28385:93;:::i;:::-;28503:2;28498:3;28494:12;28487:19;;28146:366;;;:::o;28518:419::-;28684:4;28722:2;28711:9;28707:18;28699:26;;28771:9;28765:4;28761:20;28757:1;28746:9;28742:17;28735:47;28799:131;28925:4;28799:131;:::i;:::-;28791:139;;28518:419;;;:::o;28943:147::-;29044:11;29081:3;29066:18;;28943:147;;;;:::o;29096:114::-;;:::o;29216:398::-;29375:3;29396:83;29477:1;29472:3;29396:83;:::i;:::-;29389:90;;29488:93;29577:3;29488:93;:::i;:::-;29606:1;29601:3;29597:11;29590:18;;29216:398;;;:::o;29620:379::-;29804:3;29826:147;29969:3;29826:147;:::i;:::-;29819:154;;29990:3;29983:10;;29620:379;;;:::o;30005:225::-;30145:34;30141:1;30133:6;30129:14;30122:58;30214:8;30209:2;30201:6;30197:15;30190:33;30005:225;:::o;30236:366::-;30378:3;30399:67;30463:2;30458:3;30399:67;:::i;:::-;30392:74;;30475:93;30564:3;30475:93;:::i;:::-;30593:2;30588:3;30584:12;30577:19;;30236:366;;;:::o;30608:419::-;30774:4;30812:2;30801:9;30797:18;30789:26;;30861:9;30855:4;30851:20;30847:1;30836:9;30832:17;30825:47;30889:131;31015:4;30889:131;:::i;:::-;30881:139;;30608:419;;;:::o;31033:180::-;31081:77;31078:1;31071:88;31178:4;31175:1;31168:15;31202:4;31199:1;31192:15;31219:180;31267:77;31264:1;31257:88;31364:4;31361:1;31354:15;31388:4;31385:1;31378:15;31405:143;31462:5;31493:6;31487:13;31478:22;;31509:33;31536:5;31509:33;:::i;:::-;31405:143;;;;:::o;31554:351::-;31624:6;31673:2;31661:9;31652:7;31648:23;31644:32;31641:119;;;31679:79;;:::i;:::-;31641:119;31799:1;31824:64;31880:7;31871:6;31860:9;31856:22;31824:64;:::i;:::-;31814:74;;31770:128;31554:351;;;;:::o;31911:85::-;31956:7;31985:5;31974:16;;31911:85;;;:::o;32002:158::-;32060:9;32093:61;32111:42;32120:32;32146:5;32120:32;:::i;:::-;32111:42;:::i;:::-;32093:61;:::i;:::-;32080:74;;32002:158;;;:::o;32166:147::-;32261:45;32300:5;32261:45;:::i;:::-;32256:3;32249:58;32166:147;;:::o;32319:114::-;32386:6;32420:5;32414:12;32404:22;;32319:114;;;:::o;32439:184::-;32538:11;32572:6;32567:3;32560:19;32612:4;32607:3;32603:14;32588:29;;32439:184;;;;:::o;32629:132::-;32696:4;32719:3;32711:11;;32749:4;32744:3;32740:14;32732:22;;32629:132;;;:::o;32767:108::-;32844:24;32862:5;32844:24;:::i;:::-;32839:3;32832:37;32767:108;;:::o;32881:179::-;32950:10;32971:46;33013:3;33005:6;32971:46;:::i;:::-;33049:4;33044:3;33040:14;33026:28;;32881:179;;;;:::o;33066:113::-;33136:4;33168;33163:3;33159:14;33151:22;;33066:113;;;:::o;33215:732::-;33334:3;33363:54;33411:5;33363:54;:::i;:::-;33433:86;33512:6;33507:3;33433:86;:::i;:::-;33426:93;;33543:56;33593:5;33543:56;:::i;:::-;33622:7;33653:1;33638:284;33663:6;33660:1;33657:13;33638:284;;;33739:6;33733:13;33766:63;33825:3;33810:13;33766:63;:::i;:::-;33759:70;;33852:60;33905:6;33852:60;:::i;:::-;33842:70;;33698:224;33685:1;33682;33678:9;33673:14;;33638:284;;;33642:14;33938:3;33931:10;;33339:608;;;33215:732;;;;:::o;33953:831::-;34216:4;34254:3;34243:9;34239:19;34231:27;;34268:71;34336:1;34325:9;34321:17;34312:6;34268:71;:::i;:::-;34349:80;34425:2;34414:9;34410:18;34401:6;34349:80;:::i;:::-;34476:9;34470:4;34466:20;34461:2;34450:9;34446:18;34439:48;34504:108;34607:4;34598:6;34504:108;:::i;:::-;34496:116;;34622:72;34690:2;34679:9;34675:18;34666:6;34622:72;:::i;:::-;34704:73;34772:3;34761:9;34757:19;34748:6;34704:73;:::i;:::-;33953:831;;;;;;;;:::o;34790:807::-;35039:4;35077:3;35066:9;35062:19;35054:27;;35091:71;35159:1;35148:9;35144:17;35135:6;35091:71;:::i;:::-;35172:72;35240:2;35229:9;35225:18;35216:6;35172:72;:::i;:::-;35254:80;35330:2;35319:9;35315:18;35306:6;35254:80;:::i;:::-;35344;35420:2;35409:9;35405:18;35396:6;35344:80;:::i;:::-;35434:73;35502:3;35491:9;35487:19;35478:6;35434:73;:::i;:::-;35517;35585:3;35574:9;35570:19;35561:6;35517:73;:::i;:::-;34790:807;;;;;;;;;:::o;35603:663::-;35691:6;35699;35707;35756:2;35744:9;35735:7;35731:23;35727:32;35724:119;;;35762:79;;:::i;:::-;35724:119;35882:1;35907:64;35963:7;35954:6;35943:9;35939:22;35907:64;:::i;:::-;35897:74;;35853:128;36020:2;36046:64;36102:7;36093:6;36082:9;36078:22;36046:64;:::i;:::-;36036:74;;35991:129;36159:2;36185:64;36241:7;36232:6;36221:9;36217:22;36185:64;:::i;:::-;36175:74;;36130:129;35603:663;;;;;:::o;36272:442::-;36421:4;36459:2;36448:9;36444:18;36436:26;;36472:71;36540:1;36529:9;36525:17;36516:6;36472:71;:::i;:::-;36553:72;36621:2;36610:9;36606:18;36597:6;36553:72;:::i;:::-;36635;36703:2;36692:9;36688:18;36679:6;36635:72;:::i;:::-;36272:442;;;;;;:::o;36720:332::-;36841:4;36879:2;36868:9;36864:18;36856:26;;36892:71;36960:1;36949:9;36945:17;36936:6;36892:71;:::i;:::-;36973:72;37041:2;37030:9;37026:18;37017:6;36973:72;:::i;:::-;36720:332;;;;;:::o
Swarm Source
ipfs://367463564ae27cc02d2e095d57c2054334399931195c82416e6cb5174effffac
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|---|---|---|---|---|
ETH | Ether (ETH) | 100.00% | $2,485.2 | 0.00067865 | $1.69 |
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.