Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 36 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 18023127 | 459 days ago | IN | 0 ETH | 0.00167455 | ||||
Approve | 18023124 | 459 days ago | IN | 0 ETH | 0.0015801 | ||||
Approve | 18023121 | 459 days ago | IN | 0 ETH | 0.00153984 | ||||
Renounce Ownersh... | 18023119 | 459 days ago | IN | 0 ETH | 0.00067308 | ||||
Approve | 18023119 | 459 days ago | IN | 0 ETH | 0.00136754 | ||||
Approve | 18023115 | 459 days ago | IN | 0 ETH | 0.00151958 | ||||
Approve | 18023112 | 459 days ago | IN | 0 ETH | 0.00143739 | ||||
Approve | 18023112 | 459 days ago | IN | 0 ETH | 0.00143739 | ||||
Approve | 18023109 | 459 days ago | IN | 0 ETH | 0.00139422 | ||||
Approve | 18023107 | 459 days ago | IN | 0 ETH | 0.00199741 | ||||
Approve | 18023107 | 459 days ago | IN | 0 ETH | 0.00143061 | ||||
Approve | 18023107 | 459 days ago | IN | 0 ETH | 0.00143061 | ||||
Approve | 18023107 | 459 days ago | IN | 0 ETH | 0.00143061 | ||||
Approve | 18023107 | 459 days ago | IN | 0 ETH | 0.00143061 | ||||
Approve | 18023107 | 459 days ago | IN | 0 ETH | 0.00143061 | ||||
Approve | 18023107 | 459 days ago | IN | 0 ETH | 0.00143061 | ||||
Set Max Buy | 18023107 | 459 days ago | IN | 0 ETH | 0.00079979 | ||||
Set Max Wallet | 18023106 | 459 days ago | IN | 0 ETH | 0.00077733 | ||||
Set Tax Fee | 18023084 | 459 days ago | IN | 0 ETH | 0.00077631 | ||||
Set Fee | 18023083 | 459 days ago | IN | 0 ETH | 0.00079932 | ||||
Approve | 18023023 | 459 days ago | IN | 0 ETH | 0.00158802 | ||||
Approve | 18023021 | 459 days ago | IN | 0 ETH | 0.00169729 | ||||
Approve | 18023017 | 459 days ago | IN | 0 ETH | 0.0014373 | ||||
Approve | 18023016 | 459 days ago | IN | 0 ETH | 0.00138111 | ||||
Approve | 18023016 | 459 days ago | IN | 0 ETH | 0.00147558 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
ZAZA
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-08-29 */ /** * SPDX-License-Identifier: UNLICENSED Get off that reggie shit and buy yourself some ZAZA * https://t.me/ZazaTokenPortal */ pragma solidity ^0.8.18; interface IERC20 { function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } contract Ownable is Context { address private _owner; address private _previousOwner; 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); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract ZAZA is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "ZAZA"; string private constant _symbol = "ZAZA"; uint8 private constant _decimals = 9; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1e12 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private minContractTokensToSwap = 1e9 * 10**9; mapping (address => uint256) private _rOwned; mapping (address => uint256) private _tOwned; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private _isExcludedFromMaxWallet; mapping (address => bool) private _bots; uint256 private _taxFee = 0; uint256 private _teamFee = 0; uint256 private _maxWalletSize = 1e10 * 10**9; uint256 private _maxBuy = 0; uint256 private _buyFee = 12; uint256 private _sellFee = 12; uint256 private _previousTaxFee = _taxFee; uint256 private _previousteamFee = _teamFee; address payable private _developmentWallet; address payable private _marketingWallet; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen = false; bool private _swapAll = true; bool private inSwap = false; mapping(address => bool) private automatedMarketMakerPairs; event Response(bool dev, bool marketing); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _developmentWallet = payable(0x88C7b4E83c13a37D7ba0D1a607e66F01544D1420); _marketingWallet = payable(0x3520Bdf50ECa61b2B06267D9110D7dd5D9F243CC); _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_developmentWallet] = true; _isExcludedFromFee[_marketingWallet] = true; _isExcludedFromMaxWallet[owner()] = true; _isExcludedFromMaxWallet[address(this)] = true; _isExcludedFromMaxWallet[_developmentWallet] = true; _isExcludedFromMaxWallet[_marketingWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if(from != owner() && to != owner()) { require(!_bots[from] && !_bots[to]); if(to != uniswapV2Pair && !_isExcludedFromMaxWallet[to] && _maxWalletSize != 0) { require(balanceOf(address(to)) + amount <= _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } if(from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) { require(tradingOpen, "Trading not yet enabled."); if(_maxBuy != 0) { require(amount <= _maxBuy, "TOKEN: Max buy exceeded!"); } _teamFee = _buyFee; } uint256 contractTokenBalance = balanceOf(address(this)); if(!inSwap && from != uniswapV2Pair && tradingOpen) { _teamFee = _sellFee; if (automatedMarketMakerPairs[to]) { if(contractTokenBalance > minContractTokensToSwap) { if(!_swapAll) { contractTokenBalance = minContractTokensToSwap; } swapBack(contractTokenBalance); } } } } bool takeFee = true; if(_isExcludedFromFee[from] || _isExcludedFromFee[to]) { takeFee = false; } if(!automatedMarketMakerPairs[from] && !automatedMarketMakerPairs[to]) { takeFee = false; } _tokenTransfer(from,to,amount,takeFee); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable owner(), block.timestamp ); } function swapBack(uint256 contractTokenBalance) private { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { (bool development, ) = _developmentWallet.call{value: amount.div(2)}(""); (bool marketing, ) = _marketingWallet.call{value: amount.div(2)}(""); emit Response(development, marketing); } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { if(!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if(!takeFee) restoreAllFee(); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _taxFee, _teamFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRate() private view returns(uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns(uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if(rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); tradingOpen = true; automatedMarketMakerPairs[uniswapV2Pair] = true; } function setDevelopmentWallet (address payable development) external onlyOwner() { _isExcludedFromFee[_developmentWallet] = false; _developmentWallet = development; _isExcludedFromFee[development] = true; } function setMarketingWallet (address payable marketing) external onlyOwner { _isExcludedFromFee[_marketingWallet] = false; _marketingWallet = marketing; _isExcludedFromFee[marketing] = true; } function excludeFromFee(address[] calldata ads, bool onoff) public onlyOwner { for (uint i = 0; i < ads.length; i++) { _isExcludedFromFee[ads[i]] = onoff; } } function isExcludedFromFee(address ad) public view returns (bool) { return _isExcludedFromFee[ad]; } function excludeFromMaxWallet(address[] calldata ads, bool onoff) public onlyOwner { for (uint i = 0; i < ads.length; i++) { _isExcludedFromMaxWallet[ads[i]] = onoff; } } function isExcludedMaxWallet(address ad) public view returns (bool) { return _isExcludedFromMaxWallet[ad]; } function setFee(uint256 buy, uint256 sell) external onlyOwner { _buyFee = buy; _sellFee = sell; } function setTaxFee(uint256 tax) external onlyOwner { _taxFee = tax; } function getTaxFee() public view returns (uint) { return _taxFee; } function setMinContractTokensToSwap(uint256 numToken) external onlyOwner { minContractTokensToSwap = numToken * 10**9; } function setMaxWallet(uint256 amt) external onlyOwner { _maxWalletSize = amt * 10**9; } function setMaxBuy(uint256 amt) external onlyOwner { _maxBuy = amt * 10**9; } function setSwapAll(bool onoff) external onlyOwner { _swapAll = onoff; } function setBots(address[] calldata bots_, bool onoff) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { _bots[bots_[i]] = onoff; } } function isBot(address ad) public view returns (bool) { return _bots[ad]; } function manualswap() external onlyOwner { uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external onlyOwner { uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function thisBalance() public view returns (uint) { return balanceOf(address(this)); } function amountInPool() public view returns (uint) { return balanceOf(uniswapV2Pair); } function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function removeAllFee() private { if(_taxFee == 0 && _teamFee == 0) return; _previousTaxFee = _taxFee; _previousteamFee = _teamFee; _taxFee = 0; _teamFee = 0; } function restoreAllFee() private { _taxFee = _previousTaxFee; _teamFee = _previousteamFee; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function tokenFromReflection(uint256 rAmount) private view returns(uint256) { require(rAmount <= _rTotal, "Amount must be less than total reflections"); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"dev","type":"bool"},{"indexed":false,"internalType":"bool","name":"marketing","type":"bool"}],"name":"Response","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":[],"name":"amountInPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"ads","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"ads","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"excludeFromMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ad","type":"address"}],"name":"isExcludedMaxWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","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":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"development","type":"address"}],"name":"setDevelopmentWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buy","type":"uint256"},{"internalType":"uint256","name":"sell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amt","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numToken","type":"uint256"}],"name":"setMinContractTokensToSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setSwapAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tax","type":"uint256"}],"name":"setTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"thisBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052683635c9adc5dea000006000196200001d9190620006cf565b6000196200002c919062000736565b600255670de0b6b3a76400006004556000600b556000600c55678ac7230489e80000600d556000600e55600c600f55600c601055600b54601155600c546012556000601660146101000a81548160ff0219169083151502179055506001601660156101000a81548160ff02191690831515021790555060006016806101000a81548160ff021916908315150217905550348015620000c957600080fd5b506000620000dc6200066560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507388c7b4e83c13a37d7ba0d1a607e66f01544d1420601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733520bdf50eca61b2b06267d9110d7dd5d9f243cc601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600254600560006200023b6200066560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600860006200028f6200066d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000620004426200066d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005ef6200066560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea0000060405162000657919062000782565b60405180910390a36200079f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620006dc8262000696565b9150620006e98362000696565b925082620006fc57620006fb620006a0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007438262000696565b9150620007508362000696565b92508282039050818111156200076b576200076a62000707565b5b92915050565b6200077c8162000696565b82525050565b600060208201905062000799600083018462000771565b92915050565b6147a180620007af6000396000f3fe6080604052600436106101e75760003560e01c806372ac248611610102578063c9567bf911610095578063de30aad111610064578063de30aad1146106c1578063e1ab04c9146106ea578063f53bc83514610727578063f66608fe14610750576101ee565b8063c9567bf914610619578063db8aeab114610630578063db92dbb614610659578063dd62ed3e14610684576101ee565b80639c0db5f3116100d15780639c0db5f314610573578063a9059cbb1461059c578063c3c8cd80146105d9578063c4081a4c146105f0576101ee565b806372ac2486146104cb5780638da5cb5b146104f457806395d89b411461051f5780639a7a23d61461054a576101ee565b80633bbac5791161017a5780635d098b38116101495780635d098b38146104375780636fc3eaec1461046057806370a0823114610477578063715018a6146104b4576101ee565b80633bbac5791461036b57806352f7c988146103a85780635342acb4146103d15780635d0044ca1461040e576101ee565b806323b872dd116101b657806323b872dd146102af57806327f3a72a146102ec57806328875c1614610317578063313ce56714610340576101ee565b806306fdde03146101f3578063095ea7b31461021e57806312dfbd331461025b57806318160ddd14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861077b565b6040516102159190613604565b60405180910390f35b34801561022a57600080fd5b50610245600480360381019061024091906136c4565b6107b8565b604051610252919061371f565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d919061373a565b6107d6565b005b34801561029057600080fd5b50610299610884565b6040516102a69190613776565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d19190613791565b610895565b6040516102e3919061371f565b60405180910390f35b3480156102f857600080fd5b5061030161096e565b60405161030e9190613776565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190613875565b61097e565b005b34801561034c57600080fd5b50610355610ab8565b60405161036291906138f1565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d919061390c565b610ac1565b60405161039f919061371f565b60405180910390f35b3480156103b457600080fd5b506103cf60048036038101906103ca9190613939565b610b17565b005b3480156103dd57600080fd5b506103f860048036038101906103f3919061390c565b610bbe565b604051610405919061371f565b60405180910390f35b34801561041a57600080fd5b506104356004803603810190610430919061373a565b610c14565b005b34801561044357600080fd5b5061045e600480360381019061045991906139b7565b610cc2565b005b34801561046c57600080fd5b50610475610e6d565b005b34801561048357600080fd5b5061049e6004803603810190610499919061390c565b610f13565b6040516104ab9190613776565b60405180910390f35b3480156104c057600080fd5b506104c9610f64565b005b3480156104d757600080fd5b506104f260048036038101906104ed91906139b7565b6110b7565b005b34801561050057600080fd5b50610509611262565b60405161051691906139f3565b60405180910390f35b34801561052b57600080fd5b5061053461128b565b6040516105419190613604565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c9190613a0e565b6112c8565b005b34801561057f57600080fd5b5061059a60048036038101906105959190613875565b6113fb565b005b3480156105a857600080fd5b506105c360048036038101906105be91906136c4565b611535565b6040516105d0919061371f565b60405180910390f35b3480156105e557600080fd5b506105ee611553565b005b3480156105fc57600080fd5b506106176004803603810190610612919061373a565b611601565b005b34801561062557600080fd5b5061062e6116a0565b005b34801561063c57600080fd5b5061065760048036038101906106529190613875565b611be6565b005b34801561066557600080fd5b5061066e611d20565b60405161067b9190613776565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190613a4e565b611d52565b6040516106b89190613776565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e39190613a8e565b611dd9565b005b3480156106f657600080fd5b50610711600480360381019061070c919061390c565b611e8b565b60405161071e919061371f565b60405180910390f35b34801561073357600080fd5b5061074e6004803603810190610749919061373a565b611ee1565b005b34801561075c57600080fd5b50610765611f8f565b6040516107729190613776565b60405180910390f35b60606040518060400160405280600481526020017f5a415a4100000000000000000000000000000000000000000000000000000000815250905090565b60006107cc6107c5611f99565b8484611fa1565b6001905092915050565b6107de611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086290613b07565b60405180910390fd5b633b9aca008161087b9190613b56565b60048190555050565b6000683635c9adc5dea00000905090565b60006108a284848461216a565b610963846108ae611f99565b61095e8560405180606001604052806028815260200161474460289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610914611f99565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129089092919063ffffffff16565b611fa1565b600190509392505050565b600061097930610f13565b905090565b610986611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0a90613b07565b60405180910390fd5b60005b83839050811015610ab2578160086000868685818110610a3957610a38613b98565b5b9050602002016020810190610a4e919061390c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610aaa90613bc7565b915050610a16565b50505050565b60006009905090565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b1f611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390613b07565b60405180910390fd5b81600f81905550806010819055505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c1c611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090613b07565b60405180910390fd5b633b9aca0081610cb99190613b56565b600d8190555050565b610cca611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4e90613b07565b60405180910390fd5b600060086000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e75611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990613b07565b60405180910390fd5b6000479050610f108161296c565b50565b6000610f5d600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aec565b9050919050565b610f6c611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff090613b07565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110bf611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390613b07565b60405180910390fd5b600060086000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f5a415a4100000000000000000000000000000000000000000000000000000000815250905090565b6112d0611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135490613b07565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490613c81565b60405180910390fd5b6113f78282612b5a565b5050565b611403611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148790613b07565b60405180910390fd5b60005b8383905081101561152f5781600a60008686858181106114b6576114b5613b98565b5b90506020020160208101906114cb919061390c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152790613bc7565b915050611493565b50505050565b6000611549611542611f99565b848461216a565b6001905092915050565b61155b611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115df90613b07565b60405180910390fd5b60006115f330610f13565b90506115fe81612bb5565b50565b611609611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d90613b07565b60405180910390fd5b80600b8190555050565b6116a8611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c90613b07565b60405180910390fd5b601660149054906101000a900460ff1615611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90613ced565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061181530601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611fa1565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118849190613d22565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190f9190613d22565b6040518363ffffffff1660e01b815260040161192c929190613d4f565b6020604051808303816000875af115801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f9190613d22565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306119f830610f13565b600080611a03611262565b426040518863ffffffff1660e01b8152600401611a2596959493929190613dbd565b60606040518083038185885af1158015611a43573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a689190613e33565b505050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b0a929190613e86565b6020604051808303816000875af1158015611b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4d9190613ec4565b506001601660146101000a81548160ff021916908315150217905550600160176000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611bee611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7290613b07565b60405180910390fd5b60005b83839050811015611d1a578160096000868685818110611ca157611ca0613b98565b5b9050602002016020810190611cb6919061390c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d1290613bc7565b915050611c7e565b50505050565b6000611d4d601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f13565b905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611de1611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6590613b07565b60405180910390fd5b80601660156101000a81548160ff02191690831515021790555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611ee9611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d90613b07565b60405180910390fd5b633b9aca0081611f869190613b56565b600e8190555050565b6000600b54905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200790613f63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361207f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207690613ff5565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161215d9190613776565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d090614087565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223f90614119565b60405180910390fd5b6000811161228b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612282906141ab565b60405180910390fd5b612293611262565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561230157506122d1611262565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561279757600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123aa5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6123b357600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561245b5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561246a57506000600d5414155b156124c857600d548161247c84610f13565b61248691906141cb565b11156124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be90614271565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156125735750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125c95750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561267757601660149054906101000a900460ff1661261d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612614906142dd565b60405180910390fd5b6000600e541461266d57600e5481111561266c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266390614349565b60405180910390fd5b5b600f54600c819055505b600061268230610f13565b905060168054906101000a900460ff161580156126ed5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127055750601660149054906101000a900460ff165b1561279557601054600c81905550601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127945760045481111561279357601660159054906101000a900460ff166127895760045490505b61279281612e2c565b5b5b5b505b600060019050600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061283e5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561284857600090505b601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128ec5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128f657600090505b61290284848484612e51565b50505050565b6000838311158290612950576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129479190613604565b60405180910390fd5b506000838561295f9190614369565b9050809150509392505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166129bb600284612e7e90919063ffffffff16565b6040516129c7906143ce565b60006040518083038185875af1925050503d8060008114612a04576040519150601f19603f3d011682016040523d82523d6000602084013e612a09565b606091505b505090506000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a5c600285612e7e90919063ffffffff16565b604051612a68906143ce565b60006040518083038185875af1925050503d8060008114612aa5576040519150601f19603f3d011682016040523d82523d6000602084013e612aaa565b606091505b505090507fc45e9b3ac19bf635feaed560109cb8931031fbbc86809d50d65d41a2cf2fe8b98282604051612adf9291906143e3565b60405180910390a1505050565b6000600254821115612b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2a9061447e565b60405180910390fd5b6000612b3d612ec8565b9050612b528184612e7e90919063ffffffff16565b915050919050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60016016806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612bec57612beb61449e565b5b604051908082528060200260200182016040528015612c1a5781602001602082028036833780820191505090505b5090503081600081518110612c3257612c31613b98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cfd9190613d22565b81600181518110612d1157612d10613b98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d7830601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fa1565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ddc95949392919061458b565b600060405180830381600087803b158015612df657600080fd5b505af1158015612e0a573d6000803e3d6000fd5b505050505060006016806101000a81548160ff02191690831515021790555050565b612e3581612bb5565b60004790506000811115612e4d57612e4c4761296c565b5b5050565b80612e5f57612e5e612ef3565b5b612e6a848484612f30565b80612e7857612e776130fb565b5b50505050565b6000612ec083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061310f565b905092915050565b6000806000612ed5613172565b91509150612eec8183612e7e90919063ffffffff16565b9250505090565b6000600b54148015612f0757506000600c54145b612f2e57600b54601181905550600c546012819055506000600b819055506000600c819055505b565b600080600080600080612f42876131d4565b955095509550955095509550612fa086600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323c90919063ffffffff16565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061303585600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461328690919063ffffffff16565b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613081816132e4565b61308b84836133a1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130e89190613776565b60405180910390a3505050505050505050565b601154600b81905550601254600c81905550565b60008083118290613156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314d9190613604565b60405180910390fd5b50600083856131659190614614565b9050809150509392505050565b600080600060025490506000683635c9adc5dea0000090506131a8683635c9adc5dea00000600254612e7e90919063ffffffff16565b8210156131c757600254683635c9adc5dea000009350935050506131d0565b81819350935050505b9091565b60008060008060008060008060006131f18a600b54600c546133db565b9250925092506000613201612ec8565b905060008060006132148e878787613471565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061327e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612908565b905092915050565b600080828461329591906141cb565b9050838110156132da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d190614691565b60405180910390fd5b8091505092915050565b60006132ee612ec8565b9050600061330582846134fa90919063ffffffff16565b905061335981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461328690919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6133b68260025461323c90919063ffffffff16565b6002819055506133d18160035461328690919063ffffffff16565b6003819055505050565b60008060008061340760646133f9888a6134fa90919063ffffffff16565b612e7e90919063ffffffff16565b905060006134316064613423888b6134fa90919063ffffffff16565b612e7e90919063ffffffff16565b9050600061345a8261344c858c61323c90919063ffffffff16565b61323c90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061348a85896134fa90919063ffffffff16565b905060006134a186896134fa90919063ffffffff16565b905060006134b887896134fa90919063ffffffff16565b905060006134e1826134d3858761323c90919063ffffffff16565b61323c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361350c576000905061356e565b6000828461351a9190613b56565b90508284826135299190614614565b14613569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356090614723565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135ae578082015181840152602081019050613593565b60008484015250505050565b6000601f19601f8301169050919050565b60006135d682613574565b6135e0818561357f565b93506135f0818560208601613590565b6135f9816135ba565b840191505092915050565b6000602082019050818103600083015261361e81846135cb565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061365b82613630565b9050919050565b61366b81613650565b811461367657600080fd5b50565b60008135905061368881613662565b92915050565b6000819050919050565b6136a18161368e565b81146136ac57600080fd5b50565b6000813590506136be81613698565b92915050565b600080604083850312156136db576136da613626565b5b60006136e985828601613679565b92505060206136fa858286016136af565b9150509250929050565b60008115159050919050565b61371981613704565b82525050565b60006020820190506137346000830184613710565b92915050565b6000602082840312156137505761374f613626565b5b600061375e848285016136af565b91505092915050565b6137708161368e565b82525050565b600060208201905061378b6000830184613767565b92915050565b6000806000606084860312156137aa576137a9613626565b5b60006137b886828701613679565b93505060206137c986828701613679565b92505060406137da868287016136af565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112613809576138086137e4565b5b8235905067ffffffffffffffff811115613826576138256137e9565b5b602083019150836020820283011115613842576138416137ee565b5b9250929050565b61385281613704565b811461385d57600080fd5b50565b60008135905061386f81613849565b92915050565b60008060006040848603121561388e5761388d613626565b5b600084013567ffffffffffffffff8111156138ac576138ab61362b565b5b6138b8868287016137f3565b935093505060206138cb86828701613860565b9150509250925092565b600060ff82169050919050565b6138eb816138d5565b82525050565b600060208201905061390660008301846138e2565b92915050565b60006020828403121561392257613921613626565b5b600061393084828501613679565b91505092915050565b600080604083850312156139505761394f613626565b5b600061395e858286016136af565b925050602061396f858286016136af565b9150509250929050565b600061398482613630565b9050919050565b61399481613979565b811461399f57600080fd5b50565b6000813590506139b18161398b565b92915050565b6000602082840312156139cd576139cc613626565b5b60006139db848285016139a2565b91505092915050565b6139ed81613650565b82525050565b6000602082019050613a0860008301846139e4565b92915050565b60008060408385031215613a2557613a24613626565b5b6000613a3385828601613679565b9250506020613a4485828601613860565b9150509250929050565b60008060408385031215613a6557613a64613626565b5b6000613a7385828601613679565b9250506020613a8485828601613679565b9150509250929050565b600060208284031215613aa457613aa3613626565b5b6000613ab284828501613860565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613af160208361357f565b9150613afc82613abb565b602082019050919050565b60006020820190508181036000830152613b2081613ae4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b618261368e565b9150613b6c8361368e565b9250828202613b7a8161368e565b91508282048414831517613b9157613b90613b27565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613bd28261368e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c0457613c03613b27565b5b600182019050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613c6b60398361357f565b9150613c7682613c0f565b604082019050919050565b60006020820190508181036000830152613c9a81613c5e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613cd760178361357f565b9150613ce282613ca1565b602082019050919050565b60006020820190508181036000830152613d0681613cca565b9050919050565b600081519050613d1c81613662565b92915050565b600060208284031215613d3857613d37613626565b5b6000613d4684828501613d0d565b91505092915050565b6000604082019050613d6460008301856139e4565b613d7160208301846139e4565b9392505050565b6000819050919050565b6000819050919050565b6000613da7613da2613d9d84613d78565b613d82565b61368e565b9050919050565b613db781613d8c565b82525050565b600060c082019050613dd260008301896139e4565b613ddf6020830188613767565b613dec6040830187613dae565b613df96060830186613dae565b613e0660808301856139e4565b613e1360a0830184613767565b979650505050505050565b600081519050613e2d81613698565b92915050565b600080600060608486031215613e4c57613e4b613626565b5b6000613e5a86828701613e1e565b9350506020613e6b86828701613e1e565b9250506040613e7c86828701613e1e565b9150509250925092565b6000604082019050613e9b60008301856139e4565b613ea86020830184613767565b9392505050565b600081519050613ebe81613849565b92915050565b600060208284031215613eda57613ed9613626565b5b6000613ee884828501613eaf565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f4d60248361357f565b9150613f5882613ef1565b604082019050919050565b60006020820190508181036000830152613f7c81613f40565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fdf60228361357f565b9150613fea82613f83565b604082019050919050565b6000602082019050818103600083015261400e81613fd2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061407160258361357f565b915061407c82614015565b604082019050919050565b600060208201905081810360008301526140a081614064565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061410360238361357f565b915061410e826140a7565b604082019050919050565b60006020820190508181036000830152614132816140f6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061419560298361357f565b91506141a082614139565b604082019050919050565b600060208201905081810360008301526141c481614188565b9050919050565b60006141d68261368e565b91506141e18361368e565b92508282019050808211156141f9576141f8613b27565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061425b60238361357f565b9150614266826141ff565b604082019050919050565b6000602082019050818103600083015261428a8161424e565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006142c760188361357f565b91506142d282614291565b602082019050919050565b600060208201905081810360008301526142f6816142ba565b9050919050565b7f544f4b454e3a204d617820627579206578636565646564210000000000000000600082015250565b600061433360188361357f565b915061433e826142fd565b602082019050919050565b6000602082019050818103600083015261436281614326565b9050919050565b60006143748261368e565b915061437f8361368e565b925082820390508181111561439757614396613b27565b5b92915050565b600081905092915050565b50565b60006143b860008361439d565b91506143c3826143a8565b600082019050919050565b60006143d9826143ab565b9150819050919050565b60006040820190506143f86000830185613710565b6144056020830184613710565b9392505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614468602a8361357f565b91506144738261440c565b604082019050919050565b600060208201905081810360008301526144978161445b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61450281613650565b82525050565b600061451483836144f9565b60208301905092915050565b6000602082019050919050565b6000614538826144cd565b61454281856144d8565b935061454d836144e9565b8060005b8381101561457e5781516145658882614508565b975061457083614520565b925050600181019050614551565b5085935050505092915050565b600060a0820190506145a06000830188613767565b6145ad6020830187613dae565b81810360408301526145bf818661452d565b90506145ce60608301856139e4565b6145db6080830184613767565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061461f8261368e565b915061462a8361368e565b92508261463a576146396145e5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061467b601b8361357f565b915061468682614645565b602082019050919050565b600060208201905081810360008301526146aa8161466e565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061470d60218361357f565b9150614718826146b1565b604082019050919050565b6000602082019050818103600083015261473c81614700565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d813e2d871f4f96c09d8d0031a9c834cc5bb3efd2cfe8d56dd1e2ae8fd23303d64736f6c63430008120033
Deployed Bytecode
0x6080604052600436106101e75760003560e01c806372ac248611610102578063c9567bf911610095578063de30aad111610064578063de30aad1146106c1578063e1ab04c9146106ea578063f53bc83514610727578063f66608fe14610750576101ee565b8063c9567bf914610619578063db8aeab114610630578063db92dbb614610659578063dd62ed3e14610684576101ee565b80639c0db5f3116100d15780639c0db5f314610573578063a9059cbb1461059c578063c3c8cd80146105d9578063c4081a4c146105f0576101ee565b806372ac2486146104cb5780638da5cb5b146104f457806395d89b411461051f5780639a7a23d61461054a576101ee565b80633bbac5791161017a5780635d098b38116101495780635d098b38146104375780636fc3eaec1461046057806370a0823114610477578063715018a6146104b4576101ee565b80633bbac5791461036b57806352f7c988146103a85780635342acb4146103d15780635d0044ca1461040e576101ee565b806323b872dd116101b657806323b872dd146102af57806327f3a72a146102ec57806328875c1614610317578063313ce56714610340576101ee565b806306fdde03146101f3578063095ea7b31461021e57806312dfbd331461025b57806318160ddd14610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020861077b565b6040516102159190613604565b60405180910390f35b34801561022a57600080fd5b50610245600480360381019061024091906136c4565b6107b8565b604051610252919061371f565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d919061373a565b6107d6565b005b34801561029057600080fd5b50610299610884565b6040516102a69190613776565b60405180910390f35b3480156102bb57600080fd5b506102d660048036038101906102d19190613791565b610895565b6040516102e3919061371f565b60405180910390f35b3480156102f857600080fd5b5061030161096e565b60405161030e9190613776565b60405180910390f35b34801561032357600080fd5b5061033e60048036038101906103399190613875565b61097e565b005b34801561034c57600080fd5b50610355610ab8565b60405161036291906138f1565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d919061390c565b610ac1565b60405161039f919061371f565b60405180910390f35b3480156103b457600080fd5b506103cf60048036038101906103ca9190613939565b610b17565b005b3480156103dd57600080fd5b506103f860048036038101906103f3919061390c565b610bbe565b604051610405919061371f565b60405180910390f35b34801561041a57600080fd5b506104356004803603810190610430919061373a565b610c14565b005b34801561044357600080fd5b5061045e600480360381019061045991906139b7565b610cc2565b005b34801561046c57600080fd5b50610475610e6d565b005b34801561048357600080fd5b5061049e6004803603810190610499919061390c565b610f13565b6040516104ab9190613776565b60405180910390f35b3480156104c057600080fd5b506104c9610f64565b005b3480156104d757600080fd5b506104f260048036038101906104ed91906139b7565b6110b7565b005b34801561050057600080fd5b50610509611262565b60405161051691906139f3565b60405180910390f35b34801561052b57600080fd5b5061053461128b565b6040516105419190613604565b60405180910390f35b34801561055657600080fd5b50610571600480360381019061056c9190613a0e565b6112c8565b005b34801561057f57600080fd5b5061059a60048036038101906105959190613875565b6113fb565b005b3480156105a857600080fd5b506105c360048036038101906105be91906136c4565b611535565b6040516105d0919061371f565b60405180910390f35b3480156105e557600080fd5b506105ee611553565b005b3480156105fc57600080fd5b506106176004803603810190610612919061373a565b611601565b005b34801561062557600080fd5b5061062e6116a0565b005b34801561063c57600080fd5b5061065760048036038101906106529190613875565b611be6565b005b34801561066557600080fd5b5061066e611d20565b60405161067b9190613776565b60405180910390f35b34801561069057600080fd5b506106ab60048036038101906106a69190613a4e565b611d52565b6040516106b89190613776565b60405180910390f35b3480156106cd57600080fd5b506106e860048036038101906106e39190613a8e565b611dd9565b005b3480156106f657600080fd5b50610711600480360381019061070c919061390c565b611e8b565b60405161071e919061371f565b60405180910390f35b34801561073357600080fd5b5061074e6004803603810190610749919061373a565b611ee1565b005b34801561075c57600080fd5b50610765611f8f565b6040516107729190613776565b60405180910390f35b60606040518060400160405280600481526020017f5a415a4100000000000000000000000000000000000000000000000000000000815250905090565b60006107cc6107c5611f99565b8484611fa1565b6001905092915050565b6107de611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461086b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086290613b07565b60405180910390fd5b633b9aca008161087b9190613b56565b60048190555050565b6000683635c9adc5dea00000905090565b60006108a284848461216a565b610963846108ae611f99565b61095e8560405180606001604052806028815260200161474460289139600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610914611f99565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546129089092919063ffffffff16565b611fa1565b600190509392505050565b600061097930610f13565b905090565b610986611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0a90613b07565b60405180910390fd5b60005b83839050811015610ab2578160086000868685818110610a3957610a38613b98565b5b9050602002016020810190610a4e919061390c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610aaa90613bc7565b915050610a16565b50505050565b60006009905090565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610b1f611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba390613b07565b60405180910390fd5b81600f81905550806010819055505050565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610c1c611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca090613b07565b60405180910390fd5b633b9aca0081610cb99190613b56565b600d8190555050565b610cca611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d57576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4e90613b07565b60405180910390fd5b600060086000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610e75611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ef990613b07565b60405180910390fd5b6000479050610f108161296c565b50565b6000610f5d600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aec565b9050919050565b610f6c611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ff9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ff090613b07565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6110bf611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461114c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114390613b07565b60405180910390fd5b600060086000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f5a415a4100000000000000000000000000000000000000000000000000000000815250905090565b6112d0611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135490613b07565b60405180910390fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e490613c81565b60405180910390fd5b6113f78282612b5a565b5050565b611403611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611490576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148790613b07565b60405180910390fd5b60005b8383905081101561152f5781600a60008686858181106114b6576114b5613b98565b5b90506020020160208101906114cb919061390c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061152790613bc7565b915050611493565b50505050565b6000611549611542611f99565b848461216a565b6001905092915050565b61155b611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115df90613b07565b60405180910390fd5b60006115f330610f13565b90506115fe81612bb5565b50565b611609611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d90613b07565b60405180910390fd5b80600b8190555050565b6116a8611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611735576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172c90613b07565b60405180910390fd5b601660149054906101000a900460ff1615611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90613ced565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061181530601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16683635c9adc5dea00000611fa1565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611860573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118849190613d22565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061190f9190613d22565b6040518363ffffffff1660e01b815260040161192c929190613d4f565b6020604051808303816000875af115801561194b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196f9190613d22565b601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306119f830610f13565b600080611a03611262565b426040518863ffffffff1660e01b8152600401611a2596959493929190613dbd565b60606040518083038185885af1158015611a43573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611a689190613e33565b505050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611b0a929190613e86565b6020604051808303816000875af1158015611b29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4d9190613ec4565b506001601660146101000a81548160ff021916908315150217905550600160176000601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b611bee611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7290613b07565b60405180910390fd5b60005b83839050811015611d1a578160096000868685818110611ca157611ca0613b98565b5b9050602002016020810190611cb6919061390c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611d1290613bc7565b915050611c7e565b50505050565b6000611d4d601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610f13565b905090565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611de1611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e6590613b07565b60405180910390fd5b80601660156101000a81548160ff02191690831515021790555050565b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611ee9611f99565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f6d90613b07565b60405180910390fd5b633b9aca0081611f869190613b56565b600e8190555050565b6000600b54905090565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200790613f63565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361207f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207690613ff5565b60405180910390fd5b80600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161215d9190613776565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036121d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d090614087565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612248576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161223f90614119565b60405180910390fd5b6000811161228b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612282906141ab565b60405180910390fd5b612293611262565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561230157506122d1611262565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561279757600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156123aa5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6123b357600080fd5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561245b5750600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561246a57506000600d5414155b156124c857600d548161247c84610f13565b61248691906141cb565b11156124c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124be90614271565b60405180910390fd5b5b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156125735750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156125c95750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561267757601660149054906101000a900460ff1661261d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612614906142dd565b60405180910390fd5b6000600e541461266d57600e5481111561266c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161266390614349565b60405180910390fd5b5b600f54600c819055505b600061268230610f13565b905060168054906101000a900460ff161580156126ed5750601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156127055750601660149054906101000a900460ff165b1561279557601054600c81905550601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156127945760045481111561279357601660159054906101000a900460ff166127895760045490505b61279281612e2c565b5b5b5b505b600060019050600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061283e5750600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561284857600090505b601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156128ec5750601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156128f657600090505b61290284848484612e51565b50505050565b6000838311158290612950576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129479190613604565b60405180910390fd5b506000838561295f9190614369565b9050809150509392505050565b6000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166129bb600284612e7e90919063ffffffff16565b6040516129c7906143ce565b60006040518083038185875af1925050503d8060008114612a04576040519150601f19603f3d011682016040523d82523d6000602084013e612a09565b606091505b505090506000601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16612a5c600285612e7e90919063ffffffff16565b604051612a68906143ce565b60006040518083038185875af1925050503d8060008114612aa5576040519150601f19603f3d011682016040523d82523d6000602084013e612aaa565b606091505b505090507fc45e9b3ac19bf635feaed560109cb8931031fbbc86809d50d65d41a2cf2fe8b98282604051612adf9291906143e3565b60405180910390a1505050565b6000600254821115612b33576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2a9061447e565b60405180910390fd5b6000612b3d612ec8565b9050612b528184612e7e90919063ffffffff16565b915050919050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60016016806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612bec57612beb61449e565b5b604051908082528060200260200182016040528015612c1a5781602001602082028036833780820191505090505b5090503081600081518110612c3257612c31613b98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cfd9190613d22565b81600181518110612d1157612d10613b98565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612d7830601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611fa1565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612ddc95949392919061458b565b600060405180830381600087803b158015612df657600080fd5b505af1158015612e0a573d6000803e3d6000fd5b505050505060006016806101000a81548160ff02191690831515021790555050565b612e3581612bb5565b60004790506000811115612e4d57612e4c4761296c565b5b5050565b80612e5f57612e5e612ef3565b5b612e6a848484612f30565b80612e7857612e776130fb565b5b50505050565b6000612ec083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061310f565b905092915050565b6000806000612ed5613172565b91509150612eec8183612e7e90919063ffffffff16565b9250505090565b6000600b54148015612f0757506000600c54145b612f2e57600b54601181905550600c546012819055506000600b819055506000600c819055505b565b600080600080600080612f42876131d4565b955095509550955095509550612fa086600560008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461323c90919063ffffffff16565b600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061303585600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461328690919063ffffffff16565b600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550613081816132e4565b61308b84836133a1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516130e89190613776565b60405180910390a3505050505050505050565b601154600b81905550601254600c81905550565b60008083118290613156576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161314d9190613604565b60405180910390fd5b50600083856131659190614614565b9050809150509392505050565b600080600060025490506000683635c9adc5dea0000090506131a8683635c9adc5dea00000600254612e7e90919063ffffffff16565b8210156131c757600254683635c9adc5dea000009350935050506131d0565b81819350935050505b9091565b60008060008060008060008060006131f18a600b54600c546133db565b9250925092506000613201612ec8565b905060008060006132148e878787613471565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061327e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612908565b905092915050565b600080828461329591906141cb565b9050838110156132da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132d190614691565b60405180910390fd5b8091505092915050565b60006132ee612ec8565b9050600061330582846134fa90919063ffffffff16565b905061335981600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461328690919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6133b68260025461323c90919063ffffffff16565b6002819055506133d18160035461328690919063ffffffff16565b6003819055505050565b60008060008061340760646133f9888a6134fa90919063ffffffff16565b612e7e90919063ffffffff16565b905060006134316064613423888b6134fa90919063ffffffff16565b612e7e90919063ffffffff16565b9050600061345a8261344c858c61323c90919063ffffffff16565b61323c90919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061348a85896134fa90919063ffffffff16565b905060006134a186896134fa90919063ffffffff16565b905060006134b887896134fa90919063ffffffff16565b905060006134e1826134d3858761323c90919063ffffffff16565b61323c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361350c576000905061356e565b6000828461351a9190613b56565b90508284826135299190614614565b14613569576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356090614723565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156135ae578082015181840152602081019050613593565b60008484015250505050565b6000601f19601f8301169050919050565b60006135d682613574565b6135e0818561357f565b93506135f0818560208601613590565b6135f9816135ba565b840191505092915050565b6000602082019050818103600083015261361e81846135cb565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061365b82613630565b9050919050565b61366b81613650565b811461367657600080fd5b50565b60008135905061368881613662565b92915050565b6000819050919050565b6136a18161368e565b81146136ac57600080fd5b50565b6000813590506136be81613698565b92915050565b600080604083850312156136db576136da613626565b5b60006136e985828601613679565b92505060206136fa858286016136af565b9150509250929050565b60008115159050919050565b61371981613704565b82525050565b60006020820190506137346000830184613710565b92915050565b6000602082840312156137505761374f613626565b5b600061375e848285016136af565b91505092915050565b6137708161368e565b82525050565b600060208201905061378b6000830184613767565b92915050565b6000806000606084860312156137aa576137a9613626565b5b60006137b886828701613679565b93505060206137c986828701613679565b92505060406137da868287016136af565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112613809576138086137e4565b5b8235905067ffffffffffffffff811115613826576138256137e9565b5b602083019150836020820283011115613842576138416137ee565b5b9250929050565b61385281613704565b811461385d57600080fd5b50565b60008135905061386f81613849565b92915050565b60008060006040848603121561388e5761388d613626565b5b600084013567ffffffffffffffff8111156138ac576138ab61362b565b5b6138b8868287016137f3565b935093505060206138cb86828701613860565b9150509250925092565b600060ff82169050919050565b6138eb816138d5565b82525050565b600060208201905061390660008301846138e2565b92915050565b60006020828403121561392257613921613626565b5b600061393084828501613679565b91505092915050565b600080604083850312156139505761394f613626565b5b600061395e858286016136af565b925050602061396f858286016136af565b9150509250929050565b600061398482613630565b9050919050565b61399481613979565b811461399f57600080fd5b50565b6000813590506139b18161398b565b92915050565b6000602082840312156139cd576139cc613626565b5b60006139db848285016139a2565b91505092915050565b6139ed81613650565b82525050565b6000602082019050613a0860008301846139e4565b92915050565b60008060408385031215613a2557613a24613626565b5b6000613a3385828601613679565b9250506020613a4485828601613860565b9150509250929050565b60008060408385031215613a6557613a64613626565b5b6000613a7385828601613679565b9250506020613a8485828601613679565b9150509250929050565b600060208284031215613aa457613aa3613626565b5b6000613ab284828501613860565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613af160208361357f565b9150613afc82613abb565b602082019050919050565b60006020820190508181036000830152613b2081613ae4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613b618261368e565b9150613b6c8361368e565b9250828202613b7a8161368e565b91508282048414831517613b9157613b90613b27565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613bd28261368e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613c0457613c03613b27565b5b600182019050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613c6b60398361357f565b9150613c7682613c0f565b604082019050919050565b60006020820190508181036000830152613c9a81613c5e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000613cd760178361357f565b9150613ce282613ca1565b602082019050919050565b60006020820190508181036000830152613d0681613cca565b9050919050565b600081519050613d1c81613662565b92915050565b600060208284031215613d3857613d37613626565b5b6000613d4684828501613d0d565b91505092915050565b6000604082019050613d6460008301856139e4565b613d7160208301846139e4565b9392505050565b6000819050919050565b6000819050919050565b6000613da7613da2613d9d84613d78565b613d82565b61368e565b9050919050565b613db781613d8c565b82525050565b600060c082019050613dd260008301896139e4565b613ddf6020830188613767565b613dec6040830187613dae565b613df96060830186613dae565b613e0660808301856139e4565b613e1360a0830184613767565b979650505050505050565b600081519050613e2d81613698565b92915050565b600080600060608486031215613e4c57613e4b613626565b5b6000613e5a86828701613e1e565b9350506020613e6b86828701613e1e565b9250506040613e7c86828701613e1e565b9150509250925092565b6000604082019050613e9b60008301856139e4565b613ea86020830184613767565b9392505050565b600081519050613ebe81613849565b92915050565b600060208284031215613eda57613ed9613626565b5b6000613ee884828501613eaf565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613f4d60248361357f565b9150613f5882613ef1565b604082019050919050565b60006020820190508181036000830152613f7c81613f40565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fdf60228361357f565b9150613fea82613f83565b604082019050919050565b6000602082019050818103600083015261400e81613fd2565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061407160258361357f565b915061407c82614015565b604082019050919050565b600060208201905081810360008301526140a081614064565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061410360238361357f565b915061410e826140a7565b604082019050919050565b60006020820190508181036000830152614132816140f6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061419560298361357f565b91506141a082614139565b604082019050919050565b600060208201905081810360008301526141c481614188565b9050919050565b60006141d68261368e565b91506141e18361368e565b92508282019050808211156141f9576141f8613b27565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061425b60238361357f565b9150614266826141ff565b604082019050919050565b6000602082019050818103600083015261428a8161424e565b9050919050565b7f54726164696e67206e6f742079657420656e61626c65642e0000000000000000600082015250565b60006142c760188361357f565b91506142d282614291565b602082019050919050565b600060208201905081810360008301526142f6816142ba565b9050919050565b7f544f4b454e3a204d617820627579206578636565646564210000000000000000600082015250565b600061433360188361357f565b915061433e826142fd565b602082019050919050565b6000602082019050818103600083015261436281614326565b9050919050565b60006143748261368e565b915061437f8361368e565b925082820390508181111561439757614396613b27565b5b92915050565b600081905092915050565b50565b60006143b860008361439d565b91506143c3826143a8565b600082019050919050565b60006143d9826143ab565b9150819050919050565b60006040820190506143f86000830185613710565b6144056020830184613710565b9392505050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614468602a8361357f565b91506144738261440c565b604082019050919050565b600060208201905081810360008301526144978161445b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61450281613650565b82525050565b600061451483836144f9565b60208301905092915050565b6000602082019050919050565b6000614538826144cd565b61454281856144d8565b935061454d836144e9565b8060005b8381101561457e5781516145658882614508565b975061457083614520565b925050600181019050614551565b5085935050505092915050565b600060a0820190506145a06000830188613767565b6145ad6020830187613dae565b81810360408301526145bf818661452d565b90506145ce60608301856139e4565b6145db6080830184613767565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061461f8261368e565b915061462a8361368e565b92508261463a576146396145e5565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061467b601b8361357f565b915061468682614645565b602082019050919050565b600060208201905081810360008301526146aa8161466e565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061470d60218361357f565b9150614718826146b1565b604082019050919050565b6000602082019050818103600083015261473c81614700565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d813e2d871f4f96c09d8d0031a9c834cc5bb3efd2cfe8d56dd1e2ae8fd23303d64736f6c63430008120033
Deployed Bytecode Sourcemap
9086:14929:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11480:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22116:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20148:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23574:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;22805:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21212:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19160:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;23483:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20784:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19832:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19362:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20290:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18928:224;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21051:153;;;;;;;;;;;;;:::i;:::-;;21819:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8167:148;;;;;;;;;;;;;:::i;:::-;;18678:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7953:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;23388:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21429:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20592:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;22630:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20885:154;;;;;;;;;;;;;:::i;:::-;;19960:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17903:767;;;;;;;;;;;;;:::i;:::-;;19484:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21320:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21965:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20498:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19702:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20399:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20055:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11480:83;11517:13;11550:5;;;;;;;;;;;;;;;;;11543:12;;11480:83;:::o;22116:161::-;22191:4;22208:39;22217:12;:10;:12::i;:::-;22231:7;22240:6;22208:8;:39::i;:::-;22265:4;22258:11;;22116:161;;;;:::o;20148:134::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20269:5:::1;20258:8;:16;;;;:::i;:::-;20232:23;:42;;;;20148:134:::0;:::o;23574:95::-;23627:7;9389:12;23647:14;;23574:95;:::o;22805:313::-;22903:4;22920:36;22930:6;22938:9;22949:6;22920:9;:36::i;:::-;22967:121;22976:6;22984:12;:10;:12::i;:::-;22998:89;23036:6;22998:89;;;;;;;;;;;;;;;;;:11;:19;23010:6;22998:19;;;;;;;;;;;;;;;:33;23018:12;:10;:12::i;:::-;22998:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;22967:8;:121::i;:::-;23106:4;23099:11;;22805:313;;;;;:::o;21212:100::-;21256:4;21280:24;21298:4;21280:9;:24::i;:::-;21273:31;;21212:100;:::o;19160:194::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19253:6:::1;19248:99;19269:3;;:10;;19265:1;:14;19248:99;;;19330:5;19301:18;:26;19320:3;;19324:1;19320:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19301:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;19281:3;;;;;:::i;:::-;;;;19248:99;;;;19160:194:::0;;;:::o;23483:83::-;23524:5;9297:1;23542:16;;23483:83;:::o;20784:89::-;20832:4;20856:5;:9;20862:2;20856:9;;;;;;;;;;;;;;;;;;;;;;;;;20849:16;;20784:89;;;:::o;19832:120::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19915:3:::1;19905:7;:13;;;;19940:4;19929:8;:15;;;;19832:120:::0;;:::o;19362:114::-;19422:4;19446:18;:22;19465:2;19446:22;;;;;;;;;;;;;;;;;;;;;;;;;19439:29;;19362:114;;;:::o;20290:101::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20378:5:::1;20372:3;:11;;;;:::i;:::-;20355:14;:28;;;;20290:101:::0;:::o;18928:224::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19053:5:::1;19014:18;:36;19033:16;;;;;;;;;;;19014:36;;;;;;;;;;;;;;;;:44;;;;;;;;;;;;;;;;;;19088:9;19069:16;;:28;;;;;;;;;;;;;;;;;;19140:4;19108:18;:29;19127:9;19108:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;18928:224:::0;:::o;21051:153::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21103:26:::1;21132:21;21103:50;;21164:32;21177:18;21164:12;:32::i;:::-;21092:112;21051:153::o:0;21819:138::-;21885:7;21912:37;21932:7;:16;21940:7;21932:16;;;;;;;;;;;;;;;;21912:19;:37::i;:::-;21905:44;;21819:138;;;:::o;8167:148::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8274:1:::1;8237:40;;8258:6;::::0;::::1;;;;;;;;8237:40;;;;;;;;;;;;8305:1;8288:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;8167:148::o:0;18678:238::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18811:5:::1;18770:18;:38;18789:18;;;;;;;;;;;18770:38;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;18848:11;18827:18;;:32;;;;;;;;;;;;;;;;;;18904:4;18870:18;:31;18889:11;18870:31;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;18678:238:::0;:::o;7953:79::-;7991:7;8018:6;;;;;;;;;;;8011:13;;7953:79;:::o;23388:87::-;23427:13;23460:7;;;;;;;;;;;;;;;;;23453:14;;23388:87;:::o;21429:244::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21538:13:::1;;;;;;;;;;;21530:21;;:4;:21;;::::0;21522:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;21624:41;21653:4;21659:5;21624:28;:41::i;:::-;21429:244:::0;;:::o;20592:180::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20680:6:::1;20675:90;20696:5;;:12;;20692:1;:16;20675:90;;;20748:5;20730;:15;20736:5;;20742:1;20736:8;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;20730:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;20710:3;;;;;:::i;:::-;;;;20675:90;;;;20592:180:::0;;;:::o;22630:167::-;22708:4;22725:42;22735:12;:10;:12::i;:::-;22749:9;22760:6;22725:9;:42::i;:::-;22785:4;22778:11;;22630:167;;;;:::o;20885:154::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20937:23:::1;20963:24;20981:4;20963:9;:24::i;:::-;20937:50;;20998:33;21015:15;20998:16;:33::i;:::-;20926:113;20885:154::o:0;19960:83::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20032:3:::1;20022:7;:13;;;;19960:83:::0;:::o;17903:767::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17967:11:::1;;;;;;;;;;;17966:12;17958:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;18016:35;18073:42;18016:100;;18145:16;18127:15;;:34;;;;;;;;;;;;;;;;;;18172:58;18189:4;18204:15;;;;;;;;;;;9389:12;18172:8;:58::i;:::-;18275:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18257:56;;;18322:4;18329:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18257:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18241:13;;:112;;;;;;;;;;;;;;;;;;18364:15;;;;;;;;;;;:31;;;18403:21;18434:4;18440:24;18458:4;18440:9;:24::i;:::-;18465:1;18467::::0;18469:7:::1;:5;:7::i;:::-;18477:15;18364:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;18511:13;;;;;;;;;;;18504:29;;;18542:15;;;;;;;;;;;18560:14;18504:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18600:4;18586:11;;:18;;;;;;;;;;;;;;;;;;18658:4;18615:25;:40;18641:13;;;;;;;;;;;18615:40;;;;;;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;17947:723;17903:767::o:0;19484:206::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19583:6:::1;19578:105;19599:3;;:10;;19595:1;:14;19578:105;;;19666:5;19631:24;:32;19656:3;;19660:1;19656:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19631:32;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;19611:3;;;;;:::i;:::-;;;;19578:105;;;;19484:206:::0;;;:::o;21320:101::-;21365:4;21389:24;21399:13;;;;;;;;;;;21389:9;:24::i;:::-;21382:31;;21320:101;:::o;21965:143::-;22046:7;22073:11;:18;22085:5;22073:18;;;;;;;;;;;;;;;:27;22092:7;22073:27;;;;;;;;;;;;;;;;22066:34;;21965:143;;;;:::o;20498:86::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20571:5:::1;20560:8;;:16;;;;;;;;;;;;;;;;;;20498:86:::0;:::o;19702:122::-;19764:4;19788:24;:28;19813:2;19788:28;;;;;;;;;;;;;;;;;;;;;;;;;19781:35;;19702:122;;;:::o;20399:91::-;8090:12;:10;:12::i;:::-;8080:22;;:6;;;;;;;;;;:22;;;8072:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20477:5:::1;20471:3;:11;;;;:::i;:::-;20461:7;:21;;;;20399:91:::0;:::o;20055:81::-;20097:4;20121:7;;20114:14;;20055:81;:::o;7493:98::-;7546:7;7573:10;7566:17;;7493:98;:::o;23677:335::-;23787:1;23770:19;;:5;:19;;;23762:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23868:1;23849:21;;:7;:21;;;23841:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;23950:6;23920:11;:18;23932:5;23920:18;;;;;;;;;;;;;;;:27;23939:7;23920:27;;;;;;;;;;;;;;;:36;;;;23988:7;23972:32;;23981:5;23972:32;;;23997:6;23972:32;;;;;;:::i;:::-;;;;;;;;23677:335;;;:::o;11575:1923::-;11679:1;11663:18;;:4;:18;;;11655:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11756:1;11742:16;;:2;:16;;;11734:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11826:1;11817:6;:10;11809:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11897:7;:5;:7::i;:::-;11889:15;;:4;:15;;;;:32;;;;;11914:7;:5;:7::i;:::-;11908:13;;:2;:13;;;;11889:32;11886:1282;;;11961:5;:11;11967:4;11961:11;;;;;;;;;;;;;;;;;;;;;;;;;11960:12;:26;;;;;11977:5;:9;11983:2;11977:9;;;;;;;;;;;;;;;;;;;;;;;;;11976:10;11960:26;11952:35;;;;;;12013:13;;;;;;;;;;;12007:19;;:2;:19;;;;:52;;;;;12031:24;:28;12056:2;12031:28;;;;;;;;;;;;;;;;;;;;;;;;;12030:29;12007:52;:75;;;;;12081:1;12063:14;;:19;;12007:75;12004:212;;;12146:14;;12136:6;12111:22;12129:2;12111:9;:22::i;:::-;:31;;;;:::i;:::-;:49;;12103:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;12004:212;12255:13;;;;;;;;;;;12247:21;;:4;:21;;;:55;;;;;12286:15;;;;;;;;;;;12272:30;;:2;:30;;;;12247:55;:82;;;;;12307:18;:22;12326:2;12307:22;;;;;;;;;;;;;;;;;;;;;;;;;12306:23;12247:82;12244:343;;;12358:11;;;;;;;;;;;12350:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12433:1;12422:7;;:12;12419:114;;12477:7;;12467:6;:17;;12459:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;12419:114;12564:7;;12553:8;:18;;;;12244:343;12601:28;12632:24;12650:4;12632:9;:24::i;:::-;12601:55;;12677:6;;;;;;;;;;12676:7;:32;;;;;12695:13;;;;;;;;;;;12687:21;;:4;:21;;;;12676:32;:47;;;;;12712:11;;;;;;;;;;;12676:47;12673:484;;;12757:8;;12746;:19;;;;12790:25;:29;12816:2;12790:29;;;;;;;;;;;;;;;;;;;;;;;;;12786:354;;;12870:23;;12847:20;:46;12844:277;;;12926:8;;;;;;;;;;;12922:119;;12990:23;;12967:46;;12922:119;13067:30;13076:20;13067:8;:30::i;:::-;12844:277;12786:354;12673:484;11923:1245;11886:1282;13178:12;13193:4;13178:19;;13213:18;:24;13232:4;13213:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;13241:18;:22;13260:2;13241:22;;;;;;;;;;;;;;;;;;;;;;;;;13213:50;13210:97;;;13290:5;13280:15;;13210:97;13323:25;:31;13349:4;13323:31;;;;;;;;;;;;;;;;;;;;;;;;;13322:32;:66;;;;;13359:25;:29;13385:2;13359:29;;;;;;;;;;;;;;;;;;;;;;;;;13358:30;13322:66;13319:113;;;13415:5;13405:15;;13319:113;13452:38;13467:4;13472:2;13475:6;13482:7;13452:14;:38::i;:::-;11644:1854;11575:1923;;;:::o;3903:192::-;3989:7;4022:1;4017;:6;;4025:12;4009:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4049:9;4065:1;4061;:5;;;;:::i;:::-;4049:17;;4086:1;4079:8;;;3903:192;;;;;:::o;14752:266::-;14810:16;14832:18;;;;;;;;;;;:23;;14863:13;14874:1;14863:6;:10;;:13;;;;:::i;:::-;14832:49;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14809:72;;;14893:14;14913:16;;;;;;;;;;;:21;;14942:13;14953:1;14942:6;:10;;:13;;;;:::i;:::-;14913:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14892:68;;;14978:32;14987:11;15000:9;14978:32;;;;;;;:::i;:::-;;;;;;;;14798:220;;14752:266;:::o;23126:254::-;23193:7;23232;;23221;:18;;23213:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;23297:19;23320:10;:8;:10::i;:::-;23297:33;;23348:24;23360:11;23348:7;:11;;:24;;;;:::i;:::-;23341:31;;;23126:254;;;:::o;21681:130::-;21798:5;21764:25;:31;21790:4;21764:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;21681:130;;:::o;14253:483::-;10675:4;10666:6;;:13;;;;;;;;;;;;;;;;;;14331:21:::1;14369:1;14355:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14331:40;;14400:4;14382;14387:1;14382:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;14426:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14416:4;14421:1;14416:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;14459:62;14476:4;14491:15;;;;;;;;;;;14509:11;14459:8;:62::i;:::-;14532:15;;;;;;;;;;;:66;;;14613:11;14639:1;14655:4;14682;14702:15;14532:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;14320:416;10711:5:::0;10702:6;;:14;;;;;;;;;;;;;;;;;;14253:483;:::o;13960:285::-;14037:38;14054:20;14037:16;:38::i;:::-;14088:26;14117:21;14088:50;;14173:1;14152:18;:22;14149:89;;;14191:35;14204:21;14191:12;:35::i;:::-;14149:89;14016:229;13960:285;:::o;15030:263::-;15142:7;15138:40;;15164:14;:12;:14::i;:::-;15138:40;15189:44;15207:6;15215:9;15226:6;15189:17;:44::i;:::-;15248:7;15244:41;;15270:15;:13;:15::i;:::-;15244:41;15030:263;;;;:::o;5301:132::-;5359:7;5386:39;5390:1;5393;5386:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;5379:46;;5301:132;;;;:::o;16634:163::-;16675:7;16696:15;16713;16732:19;:17;:19::i;:::-;16695:56;;;;16769:20;16781:7;16769;:11;;:20;;;;:::i;:::-;16762:27;;;;16634:163;:::o;22285:210::-;22342:1;22331:7;;:12;:29;;;;;22359:1;22347:8;;:13;22331:29;22362:7;22328:41;22397:7;;22379:15;:25;;;;22434:8;;22415:16;:27;;;;22463:1;22453:7;:11;;;;22486:1;22475:8;:12;;;;22285:210;:::o;15301:490::-;15400:15;15417:23;15442:12;15456:23;15481:12;15495:13;15512:19;15523:7;15512:10;:19::i;:::-;15399:132;;;;;;;;;;;;15560:28;15580:7;15560;:15;15568:6;15560:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15542:7;:15;15550:6;15542:15;;;;;;;;;;;;;;;:46;;;;15620:39;15643:15;15620:7;:18;15628:9;15620:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15599:7;:18;15607:9;15599:18;;;;;;;;;;;;;;;:60;;;;15673:16;15683:5;15673:9;:16::i;:::-;15700:23;15712:4;15718;15700:11;:23::i;:::-;15756:9;15739:44;;15748:6;15739:44;;;15767:15;15739:44;;;;;;:::i;:::-;;;;;;;;15388:403;;;;;;15301:490;;;:::o;22507:115::-;22561:15;;22551:7;:25;;;;22598:16;;22587:8;:27;;;;22507:115::o;5929:278::-;6015:7;6047:1;6043;:5;6050:12;6035:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;6074:9;6090:1;6086;:5;;;;:::i;:::-;6074:17;;6198:1;6191:8;;;5929:278;;;;;:::o;16805:255::-;16855:7;16864;16884:15;16902:7;;16884:25;;16920:15;9389:12;16920:25;;16969:20;9389:12;16969:7;;:11;;:20;;;;:::i;:::-;16959:7;:30;16956:60;;;16999:7;;9389:12;16991:25;;;;;;;;16956:60;17035:7;17044;17027:25;;;;;;16805:255;;;:::o;15799:468::-;15858:7;15867;15876;15885;15894;15903;15924:23;15949:12;15963:13;15980:39;15992:7;16001;;16010:8;;15980:11;:39::i;:::-;15923:96;;;;;;16030:19;16053:10;:8;:10::i;:::-;16030:33;;16075:15;16092:23;16117:12;16133:46;16145:7;16154:4;16160:5;16167:11;16133;:46::i;:::-;16074:105;;;;;;16198:7;16207:15;16224:4;16230:15;16247:4;16253:5;16190:69;;;;;;;;;;;;;;;;;;;15799:468;;;;;;;:::o;3464:136::-;3522:7;3549:43;3553:1;3556;3549:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3542:50;;3464:136;;;;:::o;3000:181::-;3058:7;3078:9;3094:1;3090;:5;;;;:::i;:::-;3078:17;;3119:1;3114;:6;;3106:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3172:1;3165:8;;;3000:181;;;;:::o;17485:214::-;17538:19;17561:10;:8;:10::i;:::-;17538:33;;17582:13;17598:22;17608:11;17598:5;:9;;:22;;;;:::i;:::-;17582:38;;17658:33;17685:5;17658:7;:22;17674:4;17658:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;17633:7;:22;17649:4;17633:22;;;;;;;;;;;;;;;:58;;;;17527:172;;17485:214;:::o;17707:147::-;17785:17;17797:4;17785:7;;:11;;:17;;;;:::i;:::-;17775:7;:27;;;;17826:20;17841:4;17826:10;;:14;;:20;;;;:::i;:::-;17813:10;:33;;;;17707:147;;:::o;16275:351::-;16368:7;16377;16386;16406:12;16421:28;16445:3;16421:19;16433:6;16421:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16406:43;;16460:13;16476:29;16501:3;16476:20;16488:7;16476;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;16460:45;;16516:23;16542:28;16564:5;16542:17;16554:4;16542:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16516:54;;16589:15;16606:4;16612:5;16581:37;;;;;;;;;16275:351;;;;;;;:::o;17068:409::-;17178:7;17187;17196;17216:15;17234:24;17246:11;17234:7;:11;;:24;;;;:::i;:::-;17216:42;;17269:12;17284:21;17293:11;17284:4;:8;;:21;;;;:::i;:::-;17269:36;;17316:13;17332:22;17342:11;17332:5;:9;;:22;;;;:::i;:::-;17316:38;;17365:23;17391:28;17413:5;17391:17;17403:4;17391:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17365:54;;17438:7;17447:15;17464:4;17430:39;;;;;;;;;;17068:409;;;;;;;;:::o;4354:471::-;4412:7;4662:1;4657;:6;4653:47;;4687:1;4680:8;;;;4653:47;4712:9;4728:1;4724;:5;;;;:::i;:::-;4712:17;;4757:1;4752;4748;:5;;;;:::i;:::-;:10;4740:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4816:1;4809:8;;;4354:471;;;;;:::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;1553:117;1662:1;1659;1652: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:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:117::-;4867:1;4864;4857:12;4881:117;4990:1;4987;4980:12;5004:117;5113:1;5110;5103:12;5144:568;5217:8;5227:6;5277:3;5270:4;5262:6;5258:17;5254:27;5244:122;;5285:79;;:::i;:::-;5244:122;5398:6;5385:20;5375:30;;5428:18;5420:6;5417:30;5414:117;;;5450:79;;:::i;:::-;5414:117;5564:4;5556:6;5552:17;5540:29;;5618:3;5610:4;5602:6;5598:17;5588:8;5584:32;5581:41;5578:128;;;5625:79;;:::i;:::-;5578:128;5144:568;;;;;:::o;5718:116::-;5788:21;5803:5;5788:21;:::i;:::-;5781:5;5778:32;5768:60;;5824:1;5821;5814:12;5768:60;5718:116;:::o;5840:133::-;5883:5;5921:6;5908:20;5899:29;;5937:30;5961:5;5937:30;:::i;:::-;5840:133;;;;:::o;5979:698::-;6071:6;6079;6087;6136:2;6124:9;6115:7;6111:23;6107:32;6104:119;;;6142:79;;:::i;:::-;6104:119;6290:1;6279:9;6275:17;6262:31;6320:18;6312:6;6309:30;6306:117;;;6342:79;;:::i;:::-;6306:117;6455:80;6527:7;6518:6;6507:9;6503:22;6455:80;:::i;:::-;6437:98;;;;6233:312;6584:2;6610:50;6652:7;6643:6;6632:9;6628:22;6610:50;:::i;:::-;6600:60;;6555:115;5979:698;;;;;:::o;6683:86::-;6718:7;6758:4;6751:5;6747:16;6736:27;;6683:86;;;:::o;6775:112::-;6858:22;6874:5;6858:22;:::i;:::-;6853:3;6846:35;6775:112;;:::o;6893:214::-;6982:4;7020:2;7009:9;7005:18;6997:26;;7033:67;7097:1;7086:9;7082:17;7073:6;7033:67;:::i;:::-;6893:214;;;;:::o;7113:329::-;7172:6;7221:2;7209:9;7200:7;7196:23;7192:32;7189:119;;;7227:79;;:::i;:::-;7189:119;7347:1;7372:53;7417:7;7408:6;7397:9;7393:22;7372:53;:::i;:::-;7362:63;;7318:117;7113:329;;;;:::o;7448:474::-;7516:6;7524;7573:2;7561:9;7552:7;7548:23;7544:32;7541:119;;;7579:79;;:::i;:::-;7541:119;7699:1;7724:53;7769:7;7760:6;7749:9;7745:22;7724:53;:::i;:::-;7714:63;;7670:117;7826:2;7852:53;7897:7;7888:6;7877:9;7873:22;7852:53;:::i;:::-;7842:63;;7797:118;7448:474;;;;;:::o;7928:104::-;7973:7;8002:24;8020:5;8002:24;:::i;:::-;7991:35;;7928:104;;;:::o;8038:138::-;8119:32;8145:5;8119:32;:::i;:::-;8112:5;8109:43;8099:71;;8166:1;8163;8156:12;8099:71;8038:138;:::o;8182:155::-;8236:5;8274:6;8261:20;8252:29;;8290:41;8325:5;8290:41;:::i;:::-;8182:155;;;;:::o;8343:345::-;8410:6;8459:2;8447:9;8438:7;8434:23;8430:32;8427:119;;;8465:79;;:::i;:::-;8427:119;8585:1;8610:61;8663:7;8654:6;8643:9;8639:22;8610:61;:::i;:::-;8600:71;;8556:125;8343:345;;;;:::o;8694:118::-;8781:24;8799:5;8781:24;:::i;:::-;8776:3;8769:37;8694:118;;:::o;8818:222::-;8911:4;8949:2;8938:9;8934:18;8926:26;;8962:71;9030:1;9019:9;9015:17;9006:6;8962:71;:::i;:::-;8818:222;;;;:::o;9046:468::-;9111:6;9119;9168:2;9156:9;9147:7;9143:23;9139:32;9136:119;;;9174:79;;:::i;:::-;9136:119;9294:1;9319:53;9364:7;9355:6;9344:9;9340:22;9319:53;:::i;:::-;9309:63;;9265:117;9421:2;9447:50;9489:7;9480:6;9469:9;9465:22;9447:50;:::i;:::-;9437:60;;9392:115;9046:468;;;;;:::o;9520:474::-;9588:6;9596;9645:2;9633:9;9624:7;9620:23;9616:32;9613:119;;;9651:79;;:::i;:::-;9613:119;9771:1;9796:53;9841:7;9832:6;9821:9;9817:22;9796:53;:::i;:::-;9786:63;;9742:117;9898:2;9924:53;9969:7;9960:6;9949:9;9945:22;9924:53;:::i;:::-;9914:63;;9869:118;9520:474;;;;;:::o;10000:323::-;10056:6;10105:2;10093:9;10084:7;10080:23;10076:32;10073:119;;;10111:79;;:::i;:::-;10073:119;10231:1;10256:50;10298:7;10289:6;10278:9;10274:22;10256:50;:::i;:::-;10246:60;;10202:114;10000:323;;;;:::o;10329:182::-;10469:34;10465:1;10457:6;10453:14;10446:58;10329:182;:::o;10517:366::-;10659:3;10680:67;10744:2;10739:3;10680:67;:::i;:::-;10673:74;;10756:93;10845:3;10756:93;:::i;:::-;10874:2;10869:3;10865:12;10858:19;;10517:366;;;:::o;10889:419::-;11055:4;11093:2;11082:9;11078:18;11070:26;;11142:9;11136:4;11132:20;11128:1;11117:9;11113:17;11106:47;11170:131;11296:4;11170:131;:::i;:::-;11162:139;;10889:419;;;:::o;11314:180::-;11362:77;11359:1;11352:88;11459:4;11456:1;11449:15;11483:4;11480:1;11473:15;11500:410;11540:7;11563:20;11581:1;11563:20;:::i;:::-;11558:25;;11597:20;11615:1;11597:20;:::i;:::-;11592:25;;11652:1;11649;11645:9;11674:30;11692:11;11674:30;:::i;:::-;11663:41;;11853:1;11844:7;11840:15;11837:1;11834:22;11814:1;11807:9;11787:83;11764:139;;11883:18;;:::i;:::-;11764:139;11548:362;11500:410;;;;:::o;11916:180::-;11964:77;11961:1;11954:88;12061:4;12058:1;12051:15;12085:4;12082:1;12075:15;12102:233;12141:3;12164:24;12182:5;12164:24;:::i;:::-;12155:33;;12210:66;12203:5;12200:77;12197:103;;12280:18;;:::i;:::-;12197:103;12327:1;12320:5;12316:13;12309:20;;12102:233;;;:::o;12341:244::-;12481:34;12477:1;12469:6;12465:14;12458:58;12550:27;12545:2;12537:6;12533:15;12526:52;12341:244;:::o;12591:366::-;12733:3;12754:67;12818:2;12813:3;12754:67;:::i;:::-;12747:74;;12830:93;12919:3;12830:93;:::i;:::-;12948:2;12943:3;12939:12;12932:19;;12591:366;;;:::o;12963:419::-;13129:4;13167:2;13156:9;13152:18;13144:26;;13216:9;13210:4;13206:20;13202:1;13191:9;13187:17;13180:47;13244:131;13370:4;13244:131;:::i;:::-;13236:139;;12963:419;;;:::o;13388:173::-;13528:25;13524:1;13516:6;13512:14;13505:49;13388:173;:::o;13567:366::-;13709:3;13730:67;13794:2;13789:3;13730:67;:::i;:::-;13723:74;;13806:93;13895:3;13806:93;:::i;:::-;13924:2;13919:3;13915:12;13908:19;;13567:366;;;:::o;13939:419::-;14105:4;14143:2;14132:9;14128:18;14120:26;;14192:9;14186:4;14182:20;14178:1;14167:9;14163:17;14156:47;14220:131;14346:4;14220:131;:::i;:::-;14212:139;;13939:419;;;:::o;14364:143::-;14421:5;14452:6;14446:13;14437:22;;14468:33;14495:5;14468:33;:::i;:::-;14364:143;;;;:::o;14513:351::-;14583:6;14632:2;14620:9;14611:7;14607:23;14603:32;14600:119;;;14638:79;;:::i;:::-;14600:119;14758:1;14783:64;14839:7;14830:6;14819:9;14815:22;14783:64;:::i;:::-;14773:74;;14729:128;14513:351;;;;:::o;14870:332::-;14991:4;15029:2;15018:9;15014:18;15006:26;;15042:71;15110:1;15099:9;15095:17;15086:6;15042:71;:::i;:::-;15123:72;15191:2;15180:9;15176:18;15167:6;15123:72;:::i;:::-;14870:332;;;;;:::o;15208:85::-;15253:7;15282:5;15271:16;;15208:85;;;:::o;15299:60::-;15327:3;15348:5;15341:12;;15299:60;;;:::o;15365:158::-;15423:9;15456:61;15474:42;15483:32;15509:5;15483:32;:::i;:::-;15474:42;:::i;:::-;15456:61;:::i;:::-;15443:74;;15365:158;;;:::o;15529:147::-;15624:45;15663:5;15624:45;:::i;:::-;15619:3;15612:58;15529:147;;:::o;15682:807::-;15931:4;15969:3;15958:9;15954:19;15946:27;;15983:71;16051:1;16040:9;16036:17;16027:6;15983:71;:::i;:::-;16064:72;16132:2;16121:9;16117:18;16108:6;16064:72;:::i;:::-;16146:80;16222:2;16211:9;16207:18;16198:6;16146:80;:::i;:::-;16236;16312:2;16301:9;16297:18;16288:6;16236:80;:::i;:::-;16326:73;16394:3;16383:9;16379:19;16370:6;16326:73;:::i;:::-;16409;16477:3;16466:9;16462:19;16453:6;16409:73;:::i;:::-;15682:807;;;;;;;;;:::o;16495:143::-;16552:5;16583:6;16577:13;16568:22;;16599:33;16626:5;16599:33;:::i;:::-;16495:143;;;;:::o;16644:663::-;16732:6;16740;16748;16797:2;16785:9;16776:7;16772:23;16768:32;16765:119;;;16803:79;;:::i;:::-;16765:119;16923:1;16948:64;17004:7;16995:6;16984:9;16980:22;16948:64;:::i;:::-;16938:74;;16894:128;17061:2;17087:64;17143:7;17134:6;17123:9;17119:22;17087:64;:::i;:::-;17077:74;;17032:129;17200:2;17226:64;17282:7;17273:6;17262:9;17258:22;17226:64;:::i;:::-;17216:74;;17171:129;16644:663;;;;;:::o;17313:332::-;17434:4;17472:2;17461:9;17457:18;17449:26;;17485:71;17553:1;17542:9;17538:17;17529:6;17485:71;:::i;:::-;17566:72;17634:2;17623:9;17619:18;17610:6;17566:72;:::i;:::-;17313:332;;;;;:::o;17651:137::-;17705:5;17736:6;17730:13;17721:22;;17752:30;17776:5;17752:30;:::i;:::-;17651:137;;;;:::o;17794:345::-;17861:6;17910:2;17898:9;17889:7;17885:23;17881:32;17878:119;;;17916:79;;:::i;:::-;17878:119;18036:1;18061:61;18114:7;18105:6;18094:9;18090:22;18061:61;:::i;:::-;18051:71;;18007:125;17794:345;;;;:::o;18145:223::-;18285:34;18281:1;18273:6;18269:14;18262:58;18354:6;18349:2;18341:6;18337:15;18330:31;18145:223;:::o;18374:366::-;18516:3;18537:67;18601:2;18596:3;18537:67;:::i;:::-;18530:74;;18613:93;18702:3;18613:93;:::i;:::-;18731:2;18726:3;18722:12;18715:19;;18374:366;;;:::o;18746:419::-;18912:4;18950:2;18939:9;18935:18;18927:26;;18999:9;18993:4;18989:20;18985:1;18974:9;18970:17;18963:47;19027:131;19153:4;19027:131;:::i;:::-;19019:139;;18746:419;;;:::o;19171:221::-;19311:34;19307:1;19299:6;19295:14;19288:58;19380:4;19375:2;19367:6;19363:15;19356:29;19171:221;:::o;19398:366::-;19540:3;19561:67;19625:2;19620:3;19561:67;:::i;:::-;19554:74;;19637:93;19726:3;19637:93;:::i;:::-;19755:2;19750:3;19746:12;19739:19;;19398:366;;;:::o;19770:419::-;19936:4;19974:2;19963:9;19959:18;19951:26;;20023:9;20017:4;20013:20;20009:1;19998:9;19994:17;19987:47;20051:131;20177:4;20051:131;:::i;:::-;20043:139;;19770:419;;;:::o;20195:224::-;20335:34;20331:1;20323:6;20319:14;20312:58;20404:7;20399:2;20391:6;20387:15;20380:32;20195:224;:::o;20425:366::-;20567:3;20588:67;20652:2;20647:3;20588:67;:::i;:::-;20581:74;;20664:93;20753:3;20664:93;:::i;:::-;20782:2;20777:3;20773:12;20766:19;;20425:366;;;:::o;20797:419::-;20963:4;21001:2;20990:9;20986:18;20978:26;;21050:9;21044:4;21040:20;21036:1;21025:9;21021:17;21014:47;21078:131;21204:4;21078:131;:::i;:::-;21070:139;;20797:419;;;:::o;21222:222::-;21362:34;21358:1;21350:6;21346:14;21339:58;21431:5;21426:2;21418:6;21414:15;21407:30;21222:222;:::o;21450:366::-;21592:3;21613:67;21677:2;21672:3;21613:67;:::i;:::-;21606:74;;21689:93;21778:3;21689:93;:::i;:::-;21807:2;21802:3;21798:12;21791:19;;21450:366;;;:::o;21822:419::-;21988:4;22026:2;22015:9;22011:18;22003:26;;22075:9;22069:4;22065:20;22061:1;22050:9;22046:17;22039:47;22103:131;22229:4;22103:131;:::i;:::-;22095:139;;21822:419;;;:::o;22247:228::-;22387:34;22383:1;22375:6;22371:14;22364:58;22456:11;22451:2;22443:6;22439:15;22432:36;22247:228;:::o;22481:366::-;22623:3;22644:67;22708:2;22703:3;22644:67;:::i;:::-;22637:74;;22720:93;22809:3;22720:93;:::i;:::-;22838:2;22833:3;22829:12;22822:19;;22481:366;;;:::o;22853:419::-;23019:4;23057:2;23046:9;23042:18;23034:26;;23106:9;23100:4;23096:20;23092:1;23081:9;23077:17;23070:47;23134:131;23260:4;23134:131;:::i;:::-;23126:139;;22853:419;;;:::o;23278:191::-;23318:3;23337:20;23355:1;23337:20;:::i;:::-;23332:25;;23371:20;23389:1;23371:20;:::i;:::-;23366:25;;23414:1;23411;23407:9;23400:16;;23435:3;23432:1;23429:10;23426:36;;;23442:18;;:::i;:::-;23426:36;23278:191;;;;:::o;23475:222::-;23615:34;23611:1;23603:6;23599:14;23592:58;23684:5;23679:2;23671:6;23667:15;23660:30;23475:222;:::o;23703:366::-;23845:3;23866:67;23930:2;23925:3;23866:67;:::i;:::-;23859:74;;23942:93;24031:3;23942:93;:::i;:::-;24060:2;24055:3;24051:12;24044:19;;23703:366;;;:::o;24075:419::-;24241:4;24279:2;24268:9;24264:18;24256:26;;24328:9;24322:4;24318:20;24314:1;24303:9;24299:17;24292:47;24356:131;24482:4;24356:131;:::i;:::-;24348:139;;24075:419;;;:::o;24500:174::-;24640:26;24636:1;24628:6;24624:14;24617:50;24500:174;:::o;24680:366::-;24822:3;24843:67;24907:2;24902:3;24843:67;:::i;:::-;24836:74;;24919:93;25008:3;24919:93;:::i;:::-;25037:2;25032:3;25028:12;25021:19;;24680:366;;;:::o;25052:419::-;25218:4;25256:2;25245:9;25241:18;25233:26;;25305:9;25299:4;25295:20;25291:1;25280:9;25276:17;25269:47;25333:131;25459:4;25333:131;:::i;:::-;25325:139;;25052:419;;;:::o;25477:174::-;25617:26;25613:1;25605:6;25601:14;25594:50;25477:174;:::o;25657:366::-;25799:3;25820:67;25884:2;25879:3;25820:67;:::i;:::-;25813:74;;25896:93;25985:3;25896:93;:::i;:::-;26014:2;26009:3;26005:12;25998:19;;25657:366;;;:::o;26029:419::-;26195:4;26233:2;26222:9;26218:18;26210:26;;26282:9;26276:4;26272:20;26268:1;26257:9;26253:17;26246:47;26310:131;26436:4;26310:131;:::i;:::-;26302:139;;26029:419;;;:::o;26454:194::-;26494:4;26514:20;26532:1;26514:20;:::i;:::-;26509:25;;26548:20;26566:1;26548:20;:::i;:::-;26543:25;;26592:1;26589;26585:9;26577:17;;26616:1;26610:4;26607:11;26604:37;;;26621:18;;:::i;:::-;26604:37;26454:194;;;;:::o;26654:147::-;26755:11;26792:3;26777:18;;26654:147;;;;:::o;26807:114::-;;:::o;26927:398::-;27086:3;27107:83;27188:1;27183:3;27107:83;:::i;:::-;27100:90;;27199:93;27288:3;27199:93;:::i;:::-;27317:1;27312:3;27308:11;27301:18;;26927:398;;;:::o;27331:379::-;27515:3;27537:147;27680:3;27537:147;:::i;:::-;27530:154;;27701:3;27694:10;;27331:379;;;:::o;27716:308::-;27825:4;27863:2;27852:9;27848:18;27840:26;;27876:65;27938:1;27927:9;27923:17;27914:6;27876:65;:::i;:::-;27951:66;28013:2;28002:9;27998:18;27989:6;27951:66;:::i;:::-;27716:308;;;;;:::o;28030:229::-;28170:34;28166:1;28158:6;28154:14;28147:58;28239:12;28234:2;28226:6;28222:15;28215:37;28030:229;:::o;28265:366::-;28407:3;28428:67;28492:2;28487:3;28428:67;:::i;:::-;28421:74;;28504:93;28593:3;28504:93;:::i;:::-;28622:2;28617:3;28613:12;28606:19;;28265:366;;;:::o;28637:419::-;28803:4;28841:2;28830:9;28826:18;28818:26;;28890:9;28884:4;28880:20;28876:1;28865:9;28861:17;28854:47;28918:131;29044:4;28918:131;:::i;:::-;28910:139;;28637:419;;;:::o;29062:180::-;29110:77;29107:1;29100:88;29207:4;29204:1;29197:15;29231:4;29228:1;29221:15;29248:114;29315:6;29349:5;29343:12;29333:22;;29248:114;;;:::o;29368:184::-;29467:11;29501:6;29496:3;29489:19;29541:4;29536:3;29532:14;29517:29;;29368:184;;;;:::o;29558:132::-;29625:4;29648:3;29640:11;;29678:4;29673:3;29669:14;29661:22;;29558:132;;;:::o;29696:108::-;29773:24;29791:5;29773:24;:::i;:::-;29768:3;29761:37;29696:108;;:::o;29810:179::-;29879:10;29900:46;29942:3;29934:6;29900:46;:::i;:::-;29978:4;29973:3;29969:14;29955:28;;29810:179;;;;:::o;29995:113::-;30065:4;30097;30092:3;30088:14;30080:22;;29995:113;;;:::o;30144:732::-;30263:3;30292:54;30340:5;30292:54;:::i;:::-;30362:86;30441:6;30436:3;30362:86;:::i;:::-;30355:93;;30472:56;30522:5;30472:56;:::i;:::-;30551:7;30582:1;30567:284;30592:6;30589:1;30586:13;30567:284;;;30668:6;30662:13;30695:63;30754:3;30739:13;30695:63;:::i;:::-;30688:70;;30781:60;30834:6;30781:60;:::i;:::-;30771:70;;30627:224;30614:1;30611;30607:9;30602:14;;30567:284;;;30571:14;30867:3;30860:10;;30268:608;;;30144:732;;;;:::o;30882:831::-;31145:4;31183:3;31172:9;31168:19;31160:27;;31197:71;31265:1;31254:9;31250:17;31241:6;31197:71;:::i;:::-;31278:80;31354:2;31343:9;31339:18;31330:6;31278:80;:::i;:::-;31405:9;31399:4;31395:20;31390:2;31379:9;31375:18;31368:48;31433:108;31536:4;31527:6;31433:108;:::i;:::-;31425:116;;31551:72;31619:2;31608:9;31604:18;31595:6;31551:72;:::i;:::-;31633:73;31701:3;31690:9;31686:19;31677:6;31633:73;:::i;:::-;30882:831;;;;;;;;:::o;31719:180::-;31767:77;31764:1;31757:88;31864:4;31861:1;31854:15;31888:4;31885:1;31878:15;31905:185;31945:1;31962:20;31980:1;31962:20;:::i;:::-;31957:25;;31996:20;32014:1;31996:20;:::i;:::-;31991:25;;32035:1;32025:35;;32040:18;;:::i;:::-;32025:35;32082:1;32079;32075:9;32070:14;;31905:185;;;;:::o;32096:177::-;32236:29;32232:1;32224:6;32220:14;32213:53;32096:177;:::o;32279:366::-;32421:3;32442:67;32506:2;32501:3;32442:67;:::i;:::-;32435:74;;32518:93;32607:3;32518:93;:::i;:::-;32636:2;32631:3;32627:12;32620:19;;32279:366;;;:::o;32651:419::-;32817:4;32855:2;32844:9;32840:18;32832:26;;32904:9;32898:4;32894:20;32890:1;32879:9;32875:17;32868:47;32932:131;33058:4;32932:131;:::i;:::-;32924:139;;32651:419;;;:::o;33076:220::-;33216:34;33212:1;33204:6;33200:14;33193:58;33285:3;33280:2;33272:6;33268:15;33261:28;33076:220;:::o;33302:366::-;33444:3;33465:67;33529:2;33524:3;33465:67;:::i;:::-;33458:74;;33541:93;33630:3;33541:93;:::i;:::-;33659:2;33654:3;33650:12;33643:19;;33302:366;;;:::o;33674:419::-;33840:4;33878:2;33867:9;33863:18;33855:26;;33927:9;33921:4;33917:20;33913:1;33902:9;33898:17;33891:47;33955:131;34081:4;33955:131;:::i;:::-;33947:139;;33674:419;;;:::o
Swarm Source
ipfs://d813e2d871f4f96c09d8d0031a9c834cc5bb3efd2cfe8d56dd1e2ae8fd23303d
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.