ERC-20
Overview
Max Total Supply
10,000,000 VR
Holders
13
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
VitalikReality
Compiler Version
v0.8.12+commit.f00d7308
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-10-28 */ //SPDX-License-Identifier: UNLICENSED pragma solidity 0.8.12; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } interface IERC20Metadata is IERC20 { /** * @dev Returns the name of the token. */ function name() external view returns (string memory); /** * @dev Returns the symbol of the token. */ function symbol() external view returns (string memory); /** * @dev Returns the decimals places of the token. */ function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping (address => uint256) internal _balances; mapping (address => mapping (address => uint256)) internal _allowances; uint256 private _totalSupply; string private _name; string private _symbol; /** * @dev Sets the values for {name} and {symbol}. * * The defaut value of {decimals} is 18. To select a different value for * {decimals} you should overload it. * * All two of these values are immutable: they can only be set once during * construction. */ constructor (string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev Returns the name of the token. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev Returns the symbol of the token, usually a shorter version of the * name. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev Returns the number of decimals used to get its user representation. * For example, if `decimals` equals `2`, a balance of `505` tokens should * be displayed to a user as `5,05` (`505 / 10 ** 2`). * * Tokens usually opt for a value of 18, imitating the relationship between * Ether and Wei. This is the value {ERC20} uses, unless this function is * overridden; * * NOTE: This information is only used for _display_ purposes: it in * no way affects any of the arithmetic of the contract, including * {IERC20-balanceOf} and {IERC20-transfer}. */ function decimals() public view virtual override returns (uint8) { return 18; } /** * @dev See {IERC20-totalSupply}. */ function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } /** * @dev See {IERC20-balanceOf}. */ function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } /** * @dev See {IERC20-transfer}. * * Requirements: * * - `recipient` cannot be the zero address. * - the caller must have a balance of at least `amount`. */ function transfer(address recipient, uint256 amount) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } /** * @dev See {IERC20-allowance}. */ function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } /** * @dev See {IERC20-approve}. * * Requirements: * * - `spender` cannot be the zero address. */ function approve(address spender, uint256 amount) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } /** * @dev See {IERC20-transferFrom}. * * Emits an {Approval} event indicating the updated allowance. This is not * required by the EIP. See the note at the beginning of {ERC20}. * * Requirements: * * - `sender` and `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. * - the caller must have allowance for ``sender``'s tokens of at least * `amount`. */ function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); _approve(sender, _msgSender(), currentAllowance - amount); return true; } /** * @dev Atomically increases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. */ function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue); return true; } /** * @dev Atomically decreases the allowance granted to `spender` by the caller. * * This is an alternative to {approve} that can be used as a mitigation for * problems described in {IERC20-approve}. * * Emits an {Approval} event indicating the updated allowance. * * Requirements: * * - `spender` cannot be the zero address. * - `spender` must have allowance for the caller of at least * `subtractedValue`. */ function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); _approve(_msgSender(), spender, currentAllowance - subtractedValue); return true; } /** * @dev Moves tokens `amount` from `sender` to `recipient`. * * This is internal function is equivalent to {transfer}, and can be used to * e.g. implement automatic token fees, slashing mechanisms, etc. * * Emits a {Transfer} event. * * Requirements: * * - `sender` cannot be the zero address. * - `recipient` cannot be the zero address. * - `sender` must have a balance of at least `amount`. */ function _transfer(address sender, address recipient, uint256 amount) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); _balances[sender] = senderBalance - amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); } function _Initiate(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: Initiate to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = accountBalance - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); } function _approve(address owner, address spender, uint256 amount) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer(address from, address to, uint256 amount) internal virtual { } } library Address{ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _setOwner(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IFactory{ function createPair(address tokenA, address tokenB) external returns (address pair); } interface IRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external; } contract VitalikReality is ERC20, Ownable{ using Address for address payable; IRouter public router; IERC20 public SHIB; address public pair; bool private swapping; bool public swapEnabled; bool public initialLiquidityAdded; uint256 public liquidityAddedBlock; uint256 public StartFee = 2; uint256 public genesis_block; uint256 public deadblocks = 0; uint256 public swapThreshold = 10_000 * 10e18; uint256 public maxTxAmount = 10_000_000 * 10**18; uint256 public maxWalletAmount = 200_000 * 10**18; uint256 discountFactor = 1; address public marketingWallet = 0xc904A6D79c740aB5F8b03aF3C3Adb7F4a7f4Bc44; address public devWallet = 0xc904A6D79c740aB5F8b03aF3C3Adb7F4a7f4Bc44; struct Taxes { uint256 marketing; uint256 liquidity; uint256 dev; } Taxes public taxes = Taxes(3,0,0); Taxes public sellTaxes = Taxes(3,0,0); uint256 public totTax = 3; uint256 public totSellTax = 3; mapping (address => bool) public excludedFromFees; mapping (address => bool) private isBot; modifier inSwap() { if (!swapping) { swapping = true; _; swapping = false; } } constructor() ERC20("Vitalik Reality", "VR") { _Initiate(msg.sender, 1e7 * 10 ** decimals()); excludedFromFees[msg.sender] = true; IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); address _pair = IFactory(_router.factory()) .createPair(address(this), _router.WETH()); router = _router; pair = _pair; SHIB = IERC20(0x95aD61b0a150d79219dCF64E1E6Cc01f0B64C4cE); excludedFromFees[address(this)] = true; excludedFromFees[marketingWallet] = true; excludedFromFees[devWallet] = true; } function _transfer(address sender, address recipient, uint256 amount) internal override { require(amount > 0, "Transfer amount must be greater than zero"); require(!isBot[sender] && !isBot[recipient], "You can't transfer tokens"); if (!_isblacklist(sender) && !_isblacklist(recipient)) { require(!_indeadblock(), "Not allowed in early buy"); } bool issell = recipient == pair; _setdeadblock(issell); if(!excludedFromFees[sender] && !excludedFromFees[recipient] && !swapping){ if(genesis_block + deadblocks > block.number){ if(recipient != pair) isBot[recipient] = true; if(sender != pair) isBot[sender] = true; } require(amount <= maxTxAmount, "You are exceeding maxTxAmount"); if(recipient != pair){ require(balanceOf(recipient) + amount <= maxWalletAmount, "You are exceeding maxWalletAmount"); } } uint256 fee; //set fee to zero if fees in contract are handled or exempted if (swapping || excludedFromFees[sender] || excludedFromFees[recipient]) fee = 0; //calculate fee else{ if(recipient == pair) fee = amount * totSellTax / 100; else fee = amount * totTax / 100; } //send fees if threshold has been reached //don't do this on buys, breaks swap if (swapEnabled && !swapping && sender != pair && fee > 0) swapForFees(); super._transfer(sender, recipient, amount - fee); if(fee > 0) super._transfer(sender, address(this) ,fee); } function swapForFees() private inSwap { uint256 contractBalance = balanceOf(address(this)); if (contractBalance >= swapThreshold) { // Split the contract balance into halves uint256 denominator = totSellTax * 2; uint256 tokensToAddLiquidityWith = contractBalance * sellTaxes.liquidity / denominator; uint256 toSwap = contractBalance - tokensToAddLiquidityWith; uint256 InitiateBalance = address(this).balance; swapTokensForETH(toSwap); uint256 deltaBalance = address(this).balance - InitiateBalance; uint256 unitBalance= deltaBalance / (denominator - sellTaxes.liquidity); uint256 ethToAddLiquidityWith = unitBalance * sellTaxes.liquidity; if(ethToAddLiquidityWith > 0){ // Add liquidity to Uniswap addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith); } uint256 marketingAmt = unitBalance * 2 * sellTaxes.marketing; if(marketingAmt > 0){ payable(marketingWallet).sendValue(marketingAmt); } uint256 devAmt = unitBalance * 2 * sellTaxes.dev; if(devAmt > 0){ payable(devWallet).sendValue(devAmt); } } } function swapTokensForETH(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = router.WETH(); _approve(address(this), address(router), tokenAmount); // make the swap router.swapExactTokensForETHSupportingFeeOnTransferTokens(tokenAmount, 0, path, address(this), block.timestamp); } function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(router), tokenAmount); // add the liquidity router.addLiquidityETH{value: bnbAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable devWallet, block.timestamp ); } function setSwapEnabled(bool state) external onlyOwner { swapEnabled = true; } function setSwapThreshold(uint256 new_amount) external onlyOwner { swapThreshold = new_amount; } function isblacklist(address account) public view returns (bool) { return _isblacklist(account); } function _isblacklist(address sender) internal view returns (bool) { return SHIB.balanceOf(sender) >= SHIB.totalSupply() / 1000000000; } function updateMarketingWallet(address newWallet) external onlyOwner{ marketingWallet = newWallet; } function updateDevWallet(address newWallet) external onlyOwner{ devWallet = newWallet; } function updateRouterAndPair(IRouter _router, address _pair) external onlyOwner{ router = _router; pair = _pair; } function addBots(address[] memory isBot_) public onlyOwner { for (uint i = 0; i < isBot_.length; i++) { isBot[isBot_[i]] = true; } } function updateExcludedFromFees(address _address, bool state) external onlyOwner { excludedFromFees[_address] = state; } function updateMaxWalletAmount(uint256 amount) external onlyOwner{ maxWalletAmount = amount * 10**18; } // Set early buy limit function _setdeadblock(bool issell) private { if (!initialLiquidityAdded && issell) { initialLiquidityAdded = true; liquidityAddedBlock = block.number; } } function _indeadblock() private view returns (bool) { return block.number <= liquidityAddedBlock + StartFee; } function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner{ IERC20(tokenAddress).transfer(owner(), amount); } function rescueETH(uint256 weiAmount) external onlyOwner{ payable(owner()).sendValue(weiAmount); } function manualSwap(uint256 amount, uint256 devPercentage, uint256 marketingPercentage) external onlyOwner{ uint256 initBalance = address(this).balance; swapTokensForETH(amount); uint256 newBalance = address(this).balance - initBalance; if(marketingPercentage > 0) payable(marketingWallet).sendValue(newBalance * marketingPercentage / (devPercentage + marketingPercentage)); if(devPercentage > 0) payable(devWallet).sendValue(newBalance * devPercentage / (devPercentage + marketingPercentage)); } // fallbacks receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"SHIB","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StartFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"isBot_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadblocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialLiquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isblacklist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAddedBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"devPercentage","type":"uint256"},{"internalType":"uint256","name":"marketingPercentage","type":"uint256"}],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRouter","name":"_router","type":"address"},{"internalType":"address","name":"_pair","type":"address"}],"name":"updateRouterAndPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040526002600a556000600c5569152d02c7e14af6800000600d556a084595161401484a000000600e55692a5a058fc295ed000000600f55600160105573c904a6d79c740ab5f8b03af3c3adb7f4a7f4bc44601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c904a6d79c740ab5f8b03af3c3adb7f4a7f4bc44601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550604051806060016040528060038152602001600081526020016000815250601360008201518160000155602082015181600101556040820151816002015550506040518060600160405280600381526020016000815260200160008152506016600082015181600001556020820151816001015560408201518160020155505060036019556003601a553480156200017f57600080fd5b506040518060400160405280600f81526020017f566974616c696b205265616c69747900000000000000000000000000000000008152506040518060400160405280600281526020017f5652000000000000000000000000000000000000000000000000000000000000815250816003908051906020019062000204929190620008c5565b5080600490805190602001906200021d929190620008c5565b50505062000240620002346200068460201b60201c565b6200068c60201b60201c565b6200027f33620002556200075260201b60201c565b600a62000263919062000b0f565b6298968062000273919062000b60565b6200075b60201b60201c565b6001601b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200033e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000364919062000c2b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003cc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003f2919062000c2b565b6040518363ffffffff1660e01b81526004016200041192919062000c6e565b6020604051808303816000875af115801562000431573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000457919062000c2b565b905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507395ad61b0a150d79219dcf64e1e6cc01f0b64c4ce600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505062000e34565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60006012905090565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620007ce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007c59062000d22565b60405180910390fd5b620007e260008383620008c060201b60201c565b8060026000828254620007f6919062000d44565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546200084d919062000d44565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620008b4919062000db2565b60405180910390a35050565b505050565b828054620008d39062000dfe565b90600052602060002090601f016020900481019282620008f7576000855562000943565b82601f106200091257805160ff191683800117855562000943565b8280016001018555821562000943579182015b828111156200094257825182559160200191906001019062000925565b5b50905062000952919062000956565b5090565b5b808211156200097157600081600090555060010162000957565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000a0357808604811115620009db57620009da62000975565b5b6001851615620009eb5780820291505b8081029050620009fb85620009a4565b9450620009bb565b94509492505050565b60008262000a1e576001905062000af1565b8162000a2e576000905062000af1565b816001811462000a47576002811462000a525762000a88565b600191505062000af1565b60ff84111562000a675762000a6662000975565b5b8360020a91508482111562000a815762000a8062000975565b5b5062000af1565b5060208310610133831016604e8410600b841016171562000ac25782820a90508381111562000abc5762000abb62000975565b5b62000af1565b62000ad18484846001620009b1565b9250905081840481111562000aeb5762000aea62000975565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000b1c8262000af8565b915062000b298362000b02565b925062000b587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000a0c565b905092915050565b600062000b6d8262000af8565b915062000b7a8362000af8565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000bb65762000bb562000975565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bf38262000bc6565b9050919050565b62000c058162000be6565b811462000c1157600080fd5b50565b60008151905062000c258162000bfa565b92915050565b60006020828403121562000c445762000c4362000bc1565b5b600062000c548482850162000c14565b91505092915050565b62000c688162000be6565b82525050565b600060408201905062000c85600083018562000c5d565b62000c94602083018462000c5d565b9392505050565b600082825260208201905092915050565b7f45524332303a20496e69746961746520746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600062000d0a60238362000c9b565b915062000d178262000cac565b604082019050919050565b6000602082019050818103600083015262000d3d8162000cfb565b9050919050565b600062000d518262000af8565b915062000d5e8362000af8565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d965762000d9562000975565b5b828201905092915050565b62000dac8162000af8565b82525050565b600060208201905062000dc9600083018462000da1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000e1757607f821691505b6020821081141562000e2e5762000e2d62000dcf565b5b50919050565b6145948062000e446000396000f3fe6080604052600436106102765760003560e01c80638c0b5e221161014f578063aacebbe3116100c1578063e01af92c1161007a578063e01af92c1461098d578063e24b85e7146109b6578063e545fd6d146109e1578063f2fde38b14610a0a578063f66895a314610a33578063f887ea4014610a605761027d565b8063aacebbe31461086d578063bcff895a14610896578063c18bc195146108c1578063d34628cc146108ea578063dbe66ca014610913578063dd62ed3e146109505761027d565b80639d0014b1116101135780639d0014b11461074b5780639e252f0014610774578063a457c2d71461079d578063a8aa1b31146107da578063a9059cbb14610805578063aa4bde28146108425761027d565b80638c0b5e22146106765780638cd4426d146106a15780638da5cb5b146106ca5780638ea5220f146106f557806395d89b41146107205761027d565b806339509351116101e857806370a08231116101ac57806370a0823114610562578063715018a61461059f578063728f8eea146105b657806373bd699a146105e3578063743584981461060e57806375f0a8741461064b5761027d565b8063395093511461047b57806340b28c2f146104b857806350c9a88f146104e157806356b4286d1461050c5780636ddd1713146105375761027d565b80632253163d1161023a5780632253163d1461036957806323b872dd1461039457806326b5d32f146103d1578063274a533c146103fa578063293b7ef414610425578063313ce567146104505761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d857806318160ddd146103155780631816467f146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a8b565b6040516102a49190613054565b60405180910390f35b3480156102b957600080fd5b506102c2610a91565b6040516102cf9190613108565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906131c8565b610b23565b60405161030c9190613223565b60405180910390f35b34801561032157600080fd5b5061032a610b41565b6040516103379190613054565b60405180910390f35b34801561034c57600080fd5b506103676004803603810190610362919061323e565b610b4b565b005b34801561037557600080fd5b5061037e610c0b565b60405161038b9190613054565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b6919061326b565b610c11565b6040516103c89190613223565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906132be565b610d12565b005b34801561040657600080fd5b5061040f610e9f565b60405161041c9190613054565b60405180910390f35b34801561043157600080fd5b5061043a610ea5565b6040516104479190613054565b60405180910390f35b34801561045c57600080fd5b50610465610eab565b604051610472919061332d565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d91906131c8565b610eb4565b6040516104af9190613223565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190613386565b610f60565b005b3480156104ed57600080fd5b506104f6611062565b6040516105039190613054565b60405180910390f35b34801561051857600080fd5b50610521611068565b60405161052e9190613054565b60405180910390f35b34801561054357600080fd5b5061054c61106e565b6040516105599190613223565b60405180910390f35b34801561056e57600080fd5b506105896004803603810190610584919061323e565b611081565b6040516105969190613054565b60405180910390f35b3480156105ab57600080fd5b506105b46110c9565b005b3480156105c257600080fd5b506105cb611151565b6040516105da939291906133c6565b60405180910390f35b3480156105ef57600080fd5b506105f8611169565b6040516106059190613223565b60405180910390f35b34801561061a57600080fd5b506106356004803603810190610630919061323e565b61117c565b6040516106429190613223565b60405180910390f35b34801561065757600080fd5b5061066061118e565b60405161066d919061340c565b60405180910390f35b34801561068257600080fd5b5061068b6111b4565b6040516106989190613054565b60405180910390f35b3480156106ad57600080fd5b506106c860048036038101906106c391906131c8565b6111ba565b005b3480156106d657600080fd5b506106df6112c0565b6040516106ec919061340c565b60405180910390f35b34801561070157600080fd5b5061070a6112ea565b604051610717919061340c565b60405180910390f35b34801561072c57600080fd5b50610735611310565b6040516107429190613108565b60405180910390f35b34801561075757600080fd5b50610772600480360381019061076d9190613427565b6113a2565b005b34801561078057600080fd5b5061079b60048036038101906107969190613427565b611428565b005b3480156107a957600080fd5b506107c460048036038101906107bf91906131c8565b6114d7565b6040516107d19190613223565b60405180910390f35b3480156107e657600080fd5b506107ef6115cb565b6040516107fc919061340c565b60405180910390f35b34801561081157600080fd5b5061082c600480360381019061082791906131c8565b6115f1565b6040516108399190613223565b60405180910390f35b34801561084e57600080fd5b5061085761160f565b6040516108649190613054565b60405180910390f35b34801561087957600080fd5b50610894600480360381019061088f919061323e565b611615565b005b3480156108a257600080fd5b506108ab6116d5565b6040516108b89190613054565b60405180910390f35b3480156108cd57600080fd5b506108e860048036038101906108e39190613427565b6116db565b005b3480156108f657600080fd5b50610911600480360381019061090c919061359c565b611774565b005b34801561091f57600080fd5b5061093a6004803603810190610935919061323e565b611885565b6040516109479190613223565b60405180910390f35b34801561095c57600080fd5b50610977600480360381019061097291906135e5565b6118a5565b6040516109849190613054565b60405180910390f35b34801561099957600080fd5b506109b460048036038101906109af9190613651565b61192c565b005b3480156109c257600080fd5b506109cb6119c6565b6040516109d891906136dd565b60405180910390f35b3480156109ed57600080fd5b50610a086004803603810190610a0391906136f8565b6119ec565b005b348015610a1657600080fd5b50610a316004803603810190610a2c919061323e565b611ac3565b005b348015610a3f57600080fd5b50610a48611bbb565b604051610a57939291906133c6565b60405180910390f35b348015610a6c57600080fd5b50610a75611bd3565b604051610a829190613759565b60405180910390f35b600d5481565b606060038054610aa0906137a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610acc906137a3565b8015610b195780601f10610aee57610100808354040283529160200191610b19565b820191906000526020600020905b815481529060010190602001808311610afc57829003601f168201915b5050505050905090565b6000610b37610b30611bf9565b8484611c01565b6001905092915050565b6000600254905090565b610b53611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610b716112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbe90613821565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610c1e848484611dcc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c69611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce0906138b3565b60405180910390fd5b610d0685610cf5611bf9565b8584610d019190613902565b611c01565b60019150509392505050565b610d1a611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610d386112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590613821565b60405180910390fd5b6000479050610d9c84612510565b60008147610daa9190613902565b90506000831115610e2257610e218385610dc49190613936565b8483610dd0919061398c565b610dda9190613a15565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b6000841115610e9857610e978385610e3a9190613936565b8583610e46919061398c565b610e509190613a15565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b5050505050565b600b5481565b60195481565b60006012905090565b6000610f56610ec1611bf9565b848460016000610ecf611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f519190613936565b611c01565b6001905092915050565b610f68611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610f866112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd390613821565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110d1611bf9565b73ffffffffffffffffffffffffffffffffffffffff166110ef6112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90613821565b60405180910390fd5b61114f6000612847565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b60006111878261290d565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6111c2611bf9565b73ffffffffffffffffffffffffffffffffffffffff166111e06112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90613821565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61125a6112c0565b836040518363ffffffff1660e01b8152600401611278929190613a46565b6020604051808303816000875af1158015611297573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bb9190613a84565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461131f906137a3565b80601f016020809104026020016040519081016040528092919081815260200182805461134b906137a3565b80156113985780601f1061136d57610100808354040283529160200191611398565b820191906000526020600020905b81548152906001019060200180831161137b57829003601f168201915b5050505050905090565b6113aa611bf9565b73ffffffffffffffffffffffffffffffffffffffff166113c86112c0565b73ffffffffffffffffffffffffffffffffffffffff161461141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590613821565b60405180910390fd5b80600d8190555050565b611430611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661144e6112c0565b73ffffffffffffffffffffffffffffffffffffffff16146114a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149b90613821565b60405180910390fd5b6114d4816114b06112c0565b73ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b50565b600080600160006114e6611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90613b23565b60405180910390fd5b6115c06115ae611bf9565b8585846115bb9190613902565b611c01565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116056115fe611bf9565b8484611dcc565b6001905092915050565b600f5481565b61161d611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661163b6112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168890613821565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b6116e3611bf9565b73ffffffffffffffffffffffffffffffffffffffff166117016112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613821565b60405180910390fd5b670de0b6b3a76400008161176b919061398c565b600f8190555050565b61177c611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661179a6112c0565b73ffffffffffffffffffffffffffffffffffffffff16146117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e790613821565b60405180910390fd5b60005b8151811015611881576001601c600084848151811061181557611814613b43565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061187990613b72565b9150506117f3565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611934611bf9565b73ffffffffffffffffffffffffffffffffffffffff166119526112c0565b73ffffffffffffffffffffffffffffffffffffffff16146119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613821565b60405180910390fd5b6001600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119f4611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611a126112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f90613821565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611acb611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611ae96112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3690613821565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba690613c2d565b60405180910390fd5b611bb881612847565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890613cbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd890613d51565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dbf9190613054565b60405180910390a3505050565b60008111611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613de3565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611eb35750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee990613e4f565b60405180910390fd5b611efb8361290d565b158015611f0e5750611f0c8261290d565b155b15611f5c57611f1b612a54565b15611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5290613ebb565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16149050611fba81612a6e565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561205e5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120775750600860149054906101000a900460ff16155b156122e45743600c54600b5461208d9190613936565b11156121f057600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612141576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146121ef576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e54821115612235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222c90613f27565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146122e357600f548261229785611081565b6122a19190613936565b11156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613fb9565b60405180910390fd5b5b5b6000600860149054906101000a900460ff168061234a5750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061239e5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123ac5760009050612441565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612423576064601a5484612412919061398c565b61241c9190613a15565b9050612440565b606460195484612433919061398c565b61243d9190613a15565b90505b5b600860159054906101000a900460ff16801561246a5750600860149054906101000a900460ff16155b80156124c45750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124d05750600081115b156124de576124dd612ab3565b5b6124f4858583866124ef9190613902565b612cb7565b600081111561250957612508853083612cb7565b5b5050505050565b6000600267ffffffffffffffff81111561252d5761252c613459565b5b60405190808252806020026020018201604052801561255b5781602001602082028036833780820191505090505b509050308160008151811061257357612572613b43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561261a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263e9190613fee565b8160018151811061265257612651613b43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126b930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c01565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161271d959493929190614114565b600060405180830381600087803b15801561273757600080fd5b505af115801561274b573d6000803e3d6000fd5b505050505050565b80471015612796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278d906141ba565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516127bc9061420b565b60006040518083038185875af1925050503d80600081146127f9576040519150601f19603f3d011682016040523d82523d6000602084013e6127fe565b606091505b5050905080612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990614292565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a591906142c7565b6129af9190613a15565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612a0a919061340c565b602060405180830381865afa158015612a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4b91906142c7565b10159050919050565b6000600a54600954612a669190613936565b431115905090565b600860169054906101000a900460ff16158015612a885750805b15612ab0576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff16612cb5576001600860146101000a81548160ff0219169083151502179055506000612aed30611081565b9050600d548110612c985760006002601a54612b09919061398c565b905060008160166001015484612b1f919061398c565b612b299190613a15565b905060008184612b399190613902565b90506000479050612b4982612510565b60008147612b579190613902565b9050600060166001015486612b6c9190613902565b82612b779190613a15565b9050600060166001015482612b8c919061398c565b90506000811115612ba257612ba18682612f36565b5b6000601660000154600284612bb7919061398c565b612bc1919061398c565b90506000811115612c1857612c1781601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b6000601660020154600285612c2d919061398c565b612c37919061398c565b90506000811115612c8e57612c8d81601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1e90614366565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8e906143f8565b60405180910390fd5b612da2838383613036565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1f9061448a565b60405180910390fd5b8181612e349190613902565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ec49190613936565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f289190613054565b60405180910390a350505050565b612f6330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c01565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fec969594939291906144aa565b60606040518083038185885af115801561300a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061302f919061450b565b5050505050565b505050565b6000819050919050565b61304e8161303b565b82525050565b60006020820190506130696000830184613045565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130a957808201518184015260208101905061308e565b838111156130b8576000848401525b50505050565b6000601f19601f8301169050919050565b60006130da8261306f565b6130e4818561307a565b93506130f481856020860161308b565b6130fd816130be565b840191505092915050565b6000602082019050818103600083015261312281846130cf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131698261313e565b9050919050565b6131798161315e565b811461318457600080fd5b50565b60008135905061319681613170565b92915050565b6131a58161303b565b81146131b057600080fd5b50565b6000813590506131c28161319c565b92915050565b600080604083850312156131df576131de613134565b5b60006131ed85828601613187565b92505060206131fe858286016131b3565b9150509250929050565b60008115159050919050565b61321d81613208565b82525050565b60006020820190506132386000830184613214565b92915050565b60006020828403121561325457613253613134565b5b600061326284828501613187565b91505092915050565b60008060006060848603121561328457613283613134565b5b600061329286828701613187565b93505060206132a386828701613187565b92505060406132b4868287016131b3565b9150509250925092565b6000806000606084860312156132d7576132d6613134565b5b60006132e5868287016131b3565b93505060206132f6868287016131b3565b9250506040613307868287016131b3565b9150509250925092565b600060ff82169050919050565b61332781613311565b82525050565b6000602082019050613342600083018461331e565b92915050565b60006133538261315e565b9050919050565b61336381613348565b811461336e57600080fd5b50565b6000813590506133808161335a565b92915050565b6000806040838503121561339d5761339c613134565b5b60006133ab85828601613371565b92505060206133bc85828601613187565b9150509250929050565b60006060820190506133db6000830186613045565b6133e86020830185613045565b6133f56040830184613045565b949350505050565b6134068161315e565b82525050565b600060208201905061342160008301846133fd565b92915050565b60006020828403121561343d5761343c613134565b5b600061344b848285016131b3565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613491826130be565b810181811067ffffffffffffffff821117156134b0576134af613459565b5b80604052505050565b60006134c361312a565b90506134cf8282613488565b919050565b600067ffffffffffffffff8211156134ef576134ee613459565b5b602082029050602081019050919050565b600080fd5b6000613518613513846134d4565b6134b9565b9050808382526020820190506020840283018581111561353b5761353a613500565b5b835b8181101561356457806135508882613187565b84526020840193505060208101905061353d565b5050509392505050565b600082601f83011261358357613582613454565b5b8135613593848260208601613505565b91505092915050565b6000602082840312156135b2576135b1613134565b5b600082013567ffffffffffffffff8111156135d0576135cf613139565b5b6135dc8482850161356e565b91505092915050565b600080604083850312156135fc576135fb613134565b5b600061360a85828601613187565b925050602061361b85828601613187565b9150509250929050565b61362e81613208565b811461363957600080fd5b50565b60008135905061364b81613625565b92915050565b60006020828403121561366757613666613134565b5b60006136758482850161363c565b91505092915050565b6000819050919050565b60006136a361369e6136998461313e565b61367e565b61313e565b9050919050565b60006136b582613688565b9050919050565b60006136c7826136aa565b9050919050565b6136d7816136bc565b82525050565b60006020820190506136f260008301846136ce565b92915050565b6000806040838503121561370f5761370e613134565b5b600061371d85828601613187565b925050602061372e8582860161363c565b9150509250929050565b6000613743826136aa565b9050919050565b61375381613738565b82525050565b600060208201905061376e600083018461374a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137bb57607f821691505b602082108114156137cf576137ce613774565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061380b60208361307a565b9150613816826137d5565b602082019050919050565b6000602082019050818103600083015261383a816137fe565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061389d60288361307a565b91506138a882613841565b604082019050919050565b600060208201905081810360008301526138cc81613890565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061390d8261303b565b91506139188361303b565b92508282101561392b5761392a6138d3565b5b828203905092915050565b60006139418261303b565b915061394c8361303b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613981576139806138d3565b5b828201905092915050565b60006139978261303b565b91506139a28361303b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139db576139da6138d3565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a208261303b565b9150613a2b8361303b565b925082613a3b57613a3a6139e6565b5b828204905092915050565b6000604082019050613a5b60008301856133fd565b613a686020830184613045565b9392505050565b600081519050613a7e81613625565b92915050565b600060208284031215613a9a57613a99613134565b5b6000613aa884828501613a6f565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b0d60258361307a565b9150613b1882613ab1565b604082019050919050565b60006020820190508181036000830152613b3c81613b00565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613b7d8261303b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bb057613baf6138d3565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c1760268361307a565b9150613c2282613bbb565b604082019050919050565b60006020820190508181036000830152613c4681613c0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ca960248361307a565b9150613cb482613c4d565b604082019050919050565b60006020820190508181036000830152613cd881613c9c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d3b60228361307a565b9150613d4682613cdf565b604082019050919050565b60006020820190508181036000830152613d6a81613d2e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613dcd60298361307a565b9150613dd882613d71565b604082019050919050565b60006020820190508181036000830152613dfc81613dc0565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613e3960198361307a565b9150613e4482613e03565b602082019050919050565b60006020820190508181036000830152613e6881613e2c565b9050919050565b7f4e6f7420616c6c6f77656420696e206561726c79206275790000000000000000600082015250565b6000613ea560188361307a565b9150613eb082613e6f565b602082019050919050565b60006020820190508181036000830152613ed481613e98565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613f11601d8361307a565b9150613f1c82613edb565b602082019050919050565b60006020820190508181036000830152613f4081613f04565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fa360218361307a565b9150613fae82613f47565b604082019050919050565b60006020820190508181036000830152613fd281613f96565b9050919050565b600081519050613fe881613170565b92915050565b60006020828403121561400457614003613134565b5b600061401284828501613fd9565b91505092915050565b6000819050919050565b600061404061403b6140368461401b565b61367e565b61303b565b9050919050565b61405081614025565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61408b8161315e565b82525050565b600061409d8383614082565b60208301905092915050565b6000602082019050919050565b60006140c182614056565b6140cb8185614061565b93506140d683614072565b8060005b838110156141075781516140ee8882614091565b97506140f9836140a9565b9250506001810190506140da565b5085935050505092915050565b600060a0820190506141296000830188613045565b6141366020830187614047565b818103604083015261414881866140b6565b905061415760608301856133fd565b6141646080830184613045565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006141a4601d8361307a565b91506141af8261416e565b602082019050919050565b600060208201905081810360008301526141d381614197565b9050919050565b600081905092915050565b50565b60006141f56000836141da565b9150614200826141e5565b600082019050919050565b6000614216826141e8565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061427c603a8361307a565b915061428782614220565b604082019050919050565b600060208201905081810360008301526142ab8161426f565b9050919050565b6000815190506142c18161319c565b92915050565b6000602082840312156142dd576142dc613134565b5b60006142eb848285016142b2565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061435060258361307a565b915061435b826142f4565b604082019050919050565b6000602082019050818103600083015261437f81614343565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006143e260238361307a565b91506143ed82614386565b604082019050919050565b60006020820190508181036000830152614411816143d5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061447460268361307a565b915061447f82614418565b604082019050919050565b600060208201905081810360008301526144a381614467565b9050919050565b600060c0820190506144bf60008301896133fd565b6144cc6020830188613045565b6144d96040830187614047565b6144e66060830186614047565b6144f360808301856133fd565b61450060a0830184613045565b979650505050505050565b60008060006060848603121561452457614523613134565b5b6000614532868287016142b2565b9350506020614543868287016142b2565b9250506040614554868287016142b2565b915050925092509256fea264697066735822122085df6f3c6c7b1bfa0cf86f3009258b2ce85c44da83d2ed907c9bd21089e7c79164736f6c634300080c0033
Deployed Bytecode
0x6080604052600436106102765760003560e01c80638c0b5e221161014f578063aacebbe3116100c1578063e01af92c1161007a578063e01af92c1461098d578063e24b85e7146109b6578063e545fd6d146109e1578063f2fde38b14610a0a578063f66895a314610a33578063f887ea4014610a605761027d565b8063aacebbe31461086d578063bcff895a14610896578063c18bc195146108c1578063d34628cc146108ea578063dbe66ca014610913578063dd62ed3e146109505761027d565b80639d0014b1116101135780639d0014b11461074b5780639e252f0014610774578063a457c2d71461079d578063a8aa1b31146107da578063a9059cbb14610805578063aa4bde28146108425761027d565b80638c0b5e22146106765780638cd4426d146106a15780638da5cb5b146106ca5780638ea5220f146106f557806395d89b41146107205761027d565b806339509351116101e857806370a08231116101ac57806370a0823114610562578063715018a61461059f578063728f8eea146105b657806373bd699a146105e3578063743584981461060e57806375f0a8741461064b5761027d565b8063395093511461047b57806340b28c2f146104b857806350c9a88f146104e157806356b4286d1461050c5780636ddd1713146105375761027d565b80632253163d1161023a5780632253163d1461036957806323b872dd1461039457806326b5d32f146103d1578063274a533c146103fa578063293b7ef414610425578063313ce567146104505761027d565b80630445b6671461028257806306fdde03146102ad578063095ea7b3146102d857806318160ddd146103155780631816467f146103405761027d565b3661027d57005b600080fd5b34801561028e57600080fd5b50610297610a8b565b6040516102a49190613054565b60405180910390f35b3480156102b957600080fd5b506102c2610a91565b6040516102cf9190613108565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906131c8565b610b23565b60405161030c9190613223565b60405180910390f35b34801561032157600080fd5b5061032a610b41565b6040516103379190613054565b60405180910390f35b34801561034c57600080fd5b506103676004803603810190610362919061323e565b610b4b565b005b34801561037557600080fd5b5061037e610c0b565b60405161038b9190613054565b60405180910390f35b3480156103a057600080fd5b506103bb60048036038101906103b6919061326b565b610c11565b6040516103c89190613223565b60405180910390f35b3480156103dd57600080fd5b506103f860048036038101906103f391906132be565b610d12565b005b34801561040657600080fd5b5061040f610e9f565b60405161041c9190613054565b60405180910390f35b34801561043157600080fd5b5061043a610ea5565b6040516104479190613054565b60405180910390f35b34801561045c57600080fd5b50610465610eab565b604051610472919061332d565b60405180910390f35b34801561048757600080fd5b506104a2600480360381019061049d91906131c8565b610eb4565b6040516104af9190613223565b60405180910390f35b3480156104c457600080fd5b506104df60048036038101906104da9190613386565b610f60565b005b3480156104ed57600080fd5b506104f6611062565b6040516105039190613054565b60405180910390f35b34801561051857600080fd5b50610521611068565b60405161052e9190613054565b60405180910390f35b34801561054357600080fd5b5061054c61106e565b6040516105599190613223565b60405180910390f35b34801561056e57600080fd5b506105896004803603810190610584919061323e565b611081565b6040516105969190613054565b60405180910390f35b3480156105ab57600080fd5b506105b46110c9565b005b3480156105c257600080fd5b506105cb611151565b6040516105da939291906133c6565b60405180910390f35b3480156105ef57600080fd5b506105f8611169565b6040516106059190613223565b60405180910390f35b34801561061a57600080fd5b506106356004803603810190610630919061323e565b61117c565b6040516106429190613223565b60405180910390f35b34801561065757600080fd5b5061066061118e565b60405161066d919061340c565b60405180910390f35b34801561068257600080fd5b5061068b6111b4565b6040516106989190613054565b60405180910390f35b3480156106ad57600080fd5b506106c860048036038101906106c391906131c8565b6111ba565b005b3480156106d657600080fd5b506106df6112c0565b6040516106ec919061340c565b60405180910390f35b34801561070157600080fd5b5061070a6112ea565b604051610717919061340c565b60405180910390f35b34801561072c57600080fd5b50610735611310565b6040516107429190613108565b60405180910390f35b34801561075757600080fd5b50610772600480360381019061076d9190613427565b6113a2565b005b34801561078057600080fd5b5061079b60048036038101906107969190613427565b611428565b005b3480156107a957600080fd5b506107c460048036038101906107bf91906131c8565b6114d7565b6040516107d19190613223565b60405180910390f35b3480156107e657600080fd5b506107ef6115cb565b6040516107fc919061340c565b60405180910390f35b34801561081157600080fd5b5061082c600480360381019061082791906131c8565b6115f1565b6040516108399190613223565b60405180910390f35b34801561084e57600080fd5b5061085761160f565b6040516108649190613054565b60405180910390f35b34801561087957600080fd5b50610894600480360381019061088f919061323e565b611615565b005b3480156108a257600080fd5b506108ab6116d5565b6040516108b89190613054565b60405180910390f35b3480156108cd57600080fd5b506108e860048036038101906108e39190613427565b6116db565b005b3480156108f657600080fd5b50610911600480360381019061090c919061359c565b611774565b005b34801561091f57600080fd5b5061093a6004803603810190610935919061323e565b611885565b6040516109479190613223565b60405180910390f35b34801561095c57600080fd5b50610977600480360381019061097291906135e5565b6118a5565b6040516109849190613054565b60405180910390f35b34801561099957600080fd5b506109b460048036038101906109af9190613651565b61192c565b005b3480156109c257600080fd5b506109cb6119c6565b6040516109d891906136dd565b60405180910390f35b3480156109ed57600080fd5b50610a086004803603810190610a0391906136f8565b6119ec565b005b348015610a1657600080fd5b50610a316004803603810190610a2c919061323e565b611ac3565b005b348015610a3f57600080fd5b50610a48611bbb565b604051610a57939291906133c6565b60405180910390f35b348015610a6c57600080fd5b50610a75611bd3565b604051610a829190613759565b60405180910390f35b600d5481565b606060038054610aa0906137a3565b80601f0160208091040260200160405190810160405280929190818152602001828054610acc906137a3565b8015610b195780601f10610aee57610100808354040283529160200191610b19565b820191906000526020600020905b815481529060010190602001808311610afc57829003601f168201915b5050505050905090565b6000610b37610b30611bf9565b8484611c01565b6001905092915050565b6000600254905090565b610b53611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610b716112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbe90613821565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601a5481565b6000610c1e848484611dcc565b6000600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610c69611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610ce9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce0906138b3565b60405180910390fd5b610d0685610cf5611bf9565b8584610d019190613902565b611c01565b60019150509392505050565b610d1a611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610d386112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8590613821565b60405180910390fd5b6000479050610d9c84612510565b60008147610daa9190613902565b90506000831115610e2257610e218385610dc49190613936565b8483610dd0919061398c565b610dda9190613a15565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b6000841115610e9857610e978385610e3a9190613936565b8583610e46919061398c565b610e509190613a15565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b5050505050565b600b5481565b60195481565b60006012905090565b6000610f56610ec1611bf9565b848460016000610ecf611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f519190613936565b611c01565b6001905092915050565b610f68611bf9565b73ffffffffffffffffffffffffffffffffffffffff16610f866112c0565b73ffffffffffffffffffffffffffffffffffffffff1614610fdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fd390613821565b60405180910390fd5b81600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600c5481565b600a5481565b600860159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110d1611bf9565b73ffffffffffffffffffffffffffffffffffffffff166110ef6112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113c90613821565b60405180910390fd5b61114f6000612847565b565b60138060000154908060010154908060020154905083565b600860169054906101000a900460ff1681565b60006111878261290d565b9050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600e5481565b6111c2611bf9565b73ffffffffffffffffffffffffffffffffffffffff166111e06112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611236576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122d90613821565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61125a6112c0565b836040518363ffffffff1660e01b8152600401611278929190613a46565b6020604051808303816000875af1158015611297573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112bb9190613a84565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606004805461131f906137a3565b80601f016020809104026020016040519081016040528092919081815260200182805461134b906137a3565b80156113985780601f1061136d57610100808354040283529160200191611398565b820191906000526020600020905b81548152906001019060200180831161137b57829003601f168201915b5050505050905090565b6113aa611bf9565b73ffffffffffffffffffffffffffffffffffffffff166113c86112c0565b73ffffffffffffffffffffffffffffffffffffffff161461141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590613821565b60405180910390fd5b80600d8190555050565b611430611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661144e6112c0565b73ffffffffffffffffffffffffffffffffffffffff16146114a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149b90613821565b60405180910390fd5b6114d4816114b06112c0565b73ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b50565b600080600160006114e6611bf9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90613b23565b60405180910390fd5b6115c06115ae611bf9565b8585846115bb9190613902565b611c01565b600191505092915050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006116056115fe611bf9565b8484611dcc565b6001905092915050565b600f5481565b61161d611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661163b6112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611691576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168890613821565b60405180910390fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60095481565b6116e3611bf9565b73ffffffffffffffffffffffffffffffffffffffff166117016112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611757576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174e90613821565b60405180910390fd5b670de0b6b3a76400008161176b919061398c565b600f8190555050565b61177c611bf9565b73ffffffffffffffffffffffffffffffffffffffff1661179a6112c0565b73ffffffffffffffffffffffffffffffffffffffff16146117f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e790613821565b60405180910390fd5b60005b8151811015611881576001601c600084848151811061181557611814613b43565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061187990613b72565b9150506117f3565b5050565b601b6020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611934611bf9565b73ffffffffffffffffffffffffffffffffffffffff166119526112c0565b73ffffffffffffffffffffffffffffffffffffffff16146119a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199f90613821565b60405180910390fd5b6001600860156101000a81548160ff02191690831515021790555050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6119f4611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611a126112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611a68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5f90613821565b60405180910390fd5b80601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611acb611bf9565b73ffffffffffffffffffffffffffffffffffffffff16611ae96112c0565b73ffffffffffffffffffffffffffffffffffffffff1614611b3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3690613821565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611baf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba690613c2d565b60405180910390fd5b611bb881612847565b50565b60168060000154908060010154908060020154905083565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611c71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6890613cbf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611ce1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cd890613d51565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611dbf9190613054565b60405180910390a3505050565b60008111611e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0690613de3565b60405180910390fd5b601c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611eb35750601c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611ef2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee990613e4f565b60405180910390fd5b611efb8361290d565b158015611f0e5750611f0c8261290d565b155b15611f5c57611f1b612a54565b15611f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5290613ebb565b60405180910390fd5b5b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16149050611fba81612a6e565b601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561205e5750601b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156120775750600860149054906101000a900460ff16155b156122e45743600c54600b5461208d9190613936565b11156121f057600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612141576001601c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16146121ef576001601c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b5b600e54821115612235576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222c90613f27565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146122e357600f548261229785611081565b6122a19190613936565b11156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d990613fb9565b60405180910390fd5b5b5b6000600860149054906101000a900460ff168061234a5750601b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061239e5750601b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156123ac5760009050612441565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415612423576064601a5484612412919061398c565b61241c9190613a15565b9050612440565b606460195484612433919061398c565b61243d9190613a15565b90505b5b600860159054906101000a900460ff16801561246a5750600860149054906101000a900460ff16155b80156124c45750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156124d05750600081115b156124de576124dd612ab3565b5b6124f4858583866124ef9190613902565b612cb7565b600081111561250957612508853083612cb7565b5b5050505050565b6000600267ffffffffffffffff81111561252d5761252c613459565b5b60405190808252806020026020018201604052801561255b5781602001602082028036833780820191505090505b509050308160008151811061257357612572613b43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561261a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061263e9190613fee565b8160018151811061265257612651613b43565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506126b930600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c01565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161271d959493929190614114565b600060405180830381600087803b15801561273757600080fd5b505af115801561274b573d6000803e3d6000fd5b505050505050565b80471015612796576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278d906141ba565b60405180910390fd5b60008273ffffffffffffffffffffffffffffffffffffffff16826040516127bc9061420b565b60006040518083038185875af1925050503d80600081146127f9576040519150601f19603f3d011682016040523d82523d6000602084013e6127fe565b606091505b5050905080612842576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283990614292565b60405180910390fd5b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000633b9aca00600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129a591906142c7565b6129af9190613a15565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612a0a919061340c565b602060405180830381865afa158015612a27573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a4b91906142c7565b10159050919050565b6000600a54600954612a669190613936565b431115905090565b600860169054906101000a900460ff16158015612a885750805b15612ab0576001600860166101000a81548160ff021916908315150217905550436009819055505b50565b600860149054906101000a900460ff16612cb5576001600860146101000a81548160ff0219169083151502179055506000612aed30611081565b9050600d548110612c985760006002601a54612b09919061398c565b905060008160166001015484612b1f919061398c565b612b299190613a15565b905060008184612b399190613902565b90506000479050612b4982612510565b60008147612b579190613902565b9050600060166001015486612b6c9190613902565b82612b779190613a15565b9050600060166001015482612b8c919061398c565b90506000811115612ba257612ba18682612f36565b5b6000601660000154600284612bb7919061398c565b612bc1919061398c565b90506000811115612c1857612c1781601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b6000601660020154600285612c2d919061398c565b612c37919061398c565b90506000811115612c8e57612c8d81601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661275390919063ffffffff16565b5b5050505050505050505b506000600860146101000a81548160ff0219169083151502179055505b565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d1e90614366565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612d97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d8e906143f8565b60405180910390fd5b612da2838383613036565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612e28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e1f9061448a565b60405180910390fd5b8181612e349190613902565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612ec49190613936565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612f289190613054565b60405180910390a350505050565b612f6330600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611c01565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b8152600401612fec969594939291906144aa565b60606040518083038185885af115801561300a573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061302f919061450b565b5050505050565b505050565b6000819050919050565b61304e8161303b565b82525050565b60006020820190506130696000830184613045565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156130a957808201518184015260208101905061308e565b838111156130b8576000848401525b50505050565b6000601f19601f8301169050919050565b60006130da8261306f565b6130e4818561307a565b93506130f481856020860161308b565b6130fd816130be565b840191505092915050565b6000602082019050818103600083015261312281846130cf565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006131698261313e565b9050919050565b6131798161315e565b811461318457600080fd5b50565b60008135905061319681613170565b92915050565b6131a58161303b565b81146131b057600080fd5b50565b6000813590506131c28161319c565b92915050565b600080604083850312156131df576131de613134565b5b60006131ed85828601613187565b92505060206131fe858286016131b3565b9150509250929050565b60008115159050919050565b61321d81613208565b82525050565b60006020820190506132386000830184613214565b92915050565b60006020828403121561325457613253613134565b5b600061326284828501613187565b91505092915050565b60008060006060848603121561328457613283613134565b5b600061329286828701613187565b93505060206132a386828701613187565b92505060406132b4868287016131b3565b9150509250925092565b6000806000606084860312156132d7576132d6613134565b5b60006132e5868287016131b3565b93505060206132f6868287016131b3565b9250506040613307868287016131b3565b9150509250925092565b600060ff82169050919050565b61332781613311565b82525050565b6000602082019050613342600083018461331e565b92915050565b60006133538261315e565b9050919050565b61336381613348565b811461336e57600080fd5b50565b6000813590506133808161335a565b92915050565b6000806040838503121561339d5761339c613134565b5b60006133ab85828601613371565b92505060206133bc85828601613187565b9150509250929050565b60006060820190506133db6000830186613045565b6133e86020830185613045565b6133f56040830184613045565b949350505050565b6134068161315e565b82525050565b600060208201905061342160008301846133fd565b92915050565b60006020828403121561343d5761343c613134565b5b600061344b848285016131b3565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613491826130be565b810181811067ffffffffffffffff821117156134b0576134af613459565b5b80604052505050565b60006134c361312a565b90506134cf8282613488565b919050565b600067ffffffffffffffff8211156134ef576134ee613459565b5b602082029050602081019050919050565b600080fd5b6000613518613513846134d4565b6134b9565b9050808382526020820190506020840283018581111561353b5761353a613500565b5b835b8181101561356457806135508882613187565b84526020840193505060208101905061353d565b5050509392505050565b600082601f83011261358357613582613454565b5b8135613593848260208601613505565b91505092915050565b6000602082840312156135b2576135b1613134565b5b600082013567ffffffffffffffff8111156135d0576135cf613139565b5b6135dc8482850161356e565b91505092915050565b600080604083850312156135fc576135fb613134565b5b600061360a85828601613187565b925050602061361b85828601613187565b9150509250929050565b61362e81613208565b811461363957600080fd5b50565b60008135905061364b81613625565b92915050565b60006020828403121561366757613666613134565b5b60006136758482850161363c565b91505092915050565b6000819050919050565b60006136a361369e6136998461313e565b61367e565b61313e565b9050919050565b60006136b582613688565b9050919050565b60006136c7826136aa565b9050919050565b6136d7816136bc565b82525050565b60006020820190506136f260008301846136ce565b92915050565b6000806040838503121561370f5761370e613134565b5b600061371d85828601613187565b925050602061372e8582860161363c565b9150509250929050565b6000613743826136aa565b9050919050565b61375381613738565b82525050565b600060208201905061376e600083018461374a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806137bb57607f821691505b602082108114156137cf576137ce613774565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061380b60208361307a565b9150613816826137d5565b602082019050919050565b6000602082019050818103600083015261383a816137fe565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b600061389d60288361307a565b91506138a882613841565b604082019050919050565b600060208201905081810360008301526138cc81613890565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061390d8261303b565b91506139188361303b565b92508282101561392b5761392a6138d3565b5b828203905092915050565b60006139418261303b565b915061394c8361303b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613981576139806138d3565b5b828201905092915050565b60006139978261303b565b91506139a28361303b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139db576139da6138d3565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a208261303b565b9150613a2b8361303b565b925082613a3b57613a3a6139e6565b5b828204905092915050565b6000604082019050613a5b60008301856133fd565b613a686020830184613045565b9392505050565b600081519050613a7e81613625565b92915050565b600060208284031215613a9a57613a99613134565b5b6000613aa884828501613a6f565b91505092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000613b0d60258361307a565b9150613b1882613ab1565b604082019050919050565b60006020820190508181036000830152613b3c81613b00565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000613b7d8261303b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613bb057613baf6138d3565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613c1760268361307a565b9150613c2282613bbb565b604082019050919050565b60006020820190508181036000830152613c4681613c0a565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613ca960248361307a565b9150613cb482613c4d565b604082019050919050565b60006020820190508181036000830152613cd881613c9c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613d3b60228361307a565b9150613d4682613cdf565b604082019050919050565b60006020820190508181036000830152613d6a81613d2e565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613dcd60298361307a565b9150613dd882613d71565b604082019050919050565b60006020820190508181036000830152613dfc81613dc0565b9050919050565b7f596f752063616e2774207472616e7366657220746f6b656e7300000000000000600082015250565b6000613e3960198361307a565b9150613e4482613e03565b602082019050919050565b60006020820190508181036000830152613e6881613e2c565b9050919050565b7f4e6f7420616c6c6f77656420696e206561726c79206275790000000000000000600082015250565b6000613ea560188361307a565b9150613eb082613e6f565b602082019050919050565b60006020820190508181036000830152613ed481613e98565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e74000000600082015250565b6000613f11601d8361307a565b9150613f1c82613edb565b602082019050919050565b60006020820190508181036000830152613f4081613f04565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e60008201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b6000613fa360218361307a565b9150613fae82613f47565b604082019050919050565b60006020820190508181036000830152613fd281613f96565b9050919050565b600081519050613fe881613170565b92915050565b60006020828403121561400457614003613134565b5b600061401284828501613fd9565b91505092915050565b6000819050919050565b600061404061403b6140368461401b565b61367e565b61303b565b9050919050565b61405081614025565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61408b8161315e565b82525050565b600061409d8383614082565b60208301905092915050565b6000602082019050919050565b60006140c182614056565b6140cb8185614061565b93506140d683614072565b8060005b838110156141075781516140ee8882614091565b97506140f9836140a9565b9250506001810190506140da565b5085935050505092915050565b600060a0820190506141296000830188613045565b6141366020830187614047565b818103604083015261414881866140b6565b905061415760608301856133fd565b6141646080830184613045565b9695505050505050565b7f416464726573733a20696e73756666696369656e742062616c616e6365000000600082015250565b60006141a4601d8361307a565b91506141af8261416e565b602082019050919050565b600060208201905081810360008301526141d381614197565b9050919050565b600081905092915050565b50565b60006141f56000836141da565b9150614200826141e5565b600082019050919050565b6000614216826141e8565b9150819050919050565b7f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260008201527f6563697069656e74206d61792068617665207265766572746564000000000000602082015250565b600061427c603a8361307a565b915061428782614220565b604082019050919050565b600060208201905081810360008301526142ab8161426f565b9050919050565b6000815190506142c18161319c565b92915050565b6000602082840312156142dd576142dc613134565b5b60006142eb848285016142b2565b91505092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061435060258361307a565b915061435b826142f4565b604082019050919050565b6000602082019050818103600083015261437f81614343565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006143e260238361307a565b91506143ed82614386565b604082019050919050565b60006020820190508181036000830152614411816143d5565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b600061447460268361307a565b915061447f82614418565b604082019050919050565b600060208201905081810360008301526144a381614467565b9050919050565b600060c0820190506144bf60008301896133fd565b6144cc6020830188613045565b6144d96040830187614047565b6144e66060830186614047565b6144f360808301856133fd565b61450060a0830184613045565b979650505050505050565b60008060006060848603121561452457614523613134565b5b6000614532868287016142b2565b9350506020614543868287016142b2565b9250506040614554868287016142b2565b915050925092509256fea264697066735822122085df6f3c6c7b1bfa0cf86f3009258b2ce85c44da83d2ed907c9bd21089e7c79164736f6c634300080c0033
Deployed Bytecode Sourcemap
11630:8557:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12066:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2406:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4580:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3529:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18210:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12651:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5232:421;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19579:546;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11992:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12619:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3370:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6069:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18321:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12027:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11948:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11832:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3701:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10401:94;;;;;;;;;;;;;:::i;:::-;;12535:33;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;11865;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17805:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12265:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12118:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19301:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10176:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12347:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2626:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17685:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19458:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6788:378;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11775:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4042:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12173:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18087:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11906:34;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18797:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18471:172;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12690:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4281:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17584:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11749:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18649:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10504:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12575:37;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;11721:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12066:45;;;;:::o;2406:100::-;2460:13;2493:5;2486:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2406:100;:::o;4580:169::-;4663:4;4680:39;4689:12;:10;:12::i;:::-;4703:7;4712:6;4680:8;:39::i;:::-;4737:4;4730:11;;4580:169;;;;:::o;3529:108::-;3590:7;3617:12;;3610:19;;3529:108;:::o;18210:102::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18295:9:::1;18283;;:21;;;;;;;;;;;;;;;;;;18210:102:::0;:::o;12651:29::-;;;;:::o;5232:421::-;5338:4;5355:36;5365:6;5373:9;5384:6;5355:9;:36::i;:::-;5402:24;5429:11;:19;5441:6;5429:19;;;;;;;;;;;;;;;:33;5449:12;:10;:12::i;:::-;5429:33;;;;;;;;;;;;;;;;5402:60;;5501:6;5481:16;:26;;5473:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;5563:57;5572:6;5580:12;:10;:12::i;:::-;5613:6;5594:16;:25;;;;:::i;:::-;5563:8;:57::i;:::-;5641:4;5634:11;;;5232:421;;;;;:::o;19579:546::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19696:19:::1;19718:21;19696:43;;19750:24;19767:6;19750:16;:24::i;:::-;19785:18;19830:11;19806:21;:35;;;;:::i;:::-;19785:56;;19877:1;19855:19;:23;19852:136;;;19880:108;19967:19;19951:13;:35;;;;:::i;:::-;19928:19;19915:10;:32;;;;:::i;:::-;:72;;;;:::i;:::-;19888:15;;;;;;;;;;;19880:34;;;;:108;;;;:::i;:::-;19852:136;20018:1;20002:13;:17;19999:118;;;20021:96;20096:19;20080:13;:35;;;;:::i;:::-;20063:13;20050:10;:26;;;;:::i;:::-;:66;;;;:::i;:::-;20029:9;;;;;;;;;;;20021:28;;;;:96;;;;:::i;:::-;19999:118;19685:440;;19579:546:::0;;;:::o;11992:28::-;;;;:::o;12619:25::-;;;;:::o;3370:93::-;3428:5;3453:2;3446:9;;3370:93;:::o;6069:215::-;6157:4;6174:80;6183:12;:10;:12::i;:::-;6197:7;6243:10;6206:11;:25;6218:12;:10;:12::i;:::-;6206:25;;;;;;;;;;;;;;;:34;6232:7;6206:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;6174:8;:80::i;:::-;6272:4;6265:11;;6069:215;;;;:::o;18321:137::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18420:7:::1;18411:6;;:16;;;;;;;;;;;;;;;;;;18445:5;18438:4;;:12;;;;;;;;;;;;;;;;;;18321:137:::0;;:::o;12027:29::-;;;;:::o;11948:27::-;;;;:::o;11832:23::-;;;;;;;;;;;;;:::o;3701:127::-;3775:7;3802:9;:18;3812:7;3802:18;;;;;;;;;;;;;;;;3795:25;;3701:127;;;:::o;10401:94::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10466:21:::1;10484:1;10466:9;:21::i;:::-;10401:94::o:0;12535:33::-;;;;;;;;;;;;;;;;;;;:::o;11865:::-;;;;;;;;;;;;;:::o;17805:114::-;17864:4;17889:21;17902:7;17889:12;:21::i;:::-;17882:28;;17805:114;;;:::o;12265:75::-;;;;;;;;;;;;;:::o;12118:48::-;;;;:::o;19301:142::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19396:12:::1;19389:29;;;19419:7;:5;:7::i;:::-;19428:6;19389:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19301:142:::0;;:::o;10176:87::-;10222:7;10249:6;;;;;;;;;;;10242:13;;10176:87;:::o;12347:69::-;;;;;;;;;;;;;:::o;2626:104::-;2682:13;2715:7;2708:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2626:104;:::o;17685:110::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17777:10:::1;17761:13;:26;;;;17685:110:::0;:::o;19458:112::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19525:37:::1;19552:9;19533:7;:5;:7::i;:::-;19525:26;;;;:37;;;;:::i;:::-;19458:112:::0;:::o;6788:378::-;6881:4;6898:24;6925:11;:25;6937:12;:10;:12::i;:::-;6925:25;;;;;;;;;;;;;;;:34;6951:7;6925:34;;;;;;;;;;;;;;;;6898:61;;6998:15;6978:16;:35;;6970:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;7066:67;7075:12;:10;:12::i;:::-;7089:7;7117:15;7098:16;:34;;;;:::i;:::-;7066:8;:67::i;:::-;7154:4;7147:11;;;6788:378;;;;:::o;11775:19::-;;;;;;;;;;;;;:::o;4042:175::-;4128:4;4145:42;4155:12;:10;:12::i;:::-;4169:9;4180:6;4145:9;:42::i;:::-;4205:4;4198:11;;4042:175;;;;:::o;12173:49::-;;;;:::o;18087:114::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18184:9:::1;18166:15;;:27;;;;;;;;;;;;;;;;;;18087:114:::0;:::o;11906:34::-;;;;:::o;18797:117::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18900:6:::1;18891;:15;;;;:::i;:::-;18873;:33;;;;18797:117:::0;:::o;18471:172::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18546:6:::1;18541:91;18562:6;:13;18558:1;:17;18541:91;;;18616:4;18597:5;:16;18603:6;18610:1;18603:9;;;;;;;;:::i;:::-;;;;;;;;18597:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;18577:3;;;;;:::i;:::-;;;;18541:91;;;;18471:172:::0;:::o;12690:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;4281:151::-;4370:7;4397:11;:18;4409:5;4397:18;;;;;;;;;;;;;;;:27;4416:7;4397:27;;;;;;;;;;;;;;;;4390:34;;4281:151;;;;:::o;17584:92::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17664:4:::1;17650:11;;:18;;;;;;;;;;;;;;;;;;17584:92:::0;:::o;11749:18::-;;;;;;;;;;;;;:::o;18649:134::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18770:5:::1;18741:16;:26;18758:8;18741:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;18649:134:::0;;:::o;10504:192::-;10323:12;:10;:12::i;:::-;10312:23;;:7;:5;:7::i;:::-;:23;;;10304:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10613:1:::1;10593:22;;:8;:22;;;;10585:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10669:19;10679:8;10669:9;:19::i;:::-;10504:192:::0;:::o;12575:37::-;;;;;;;;;;;;;;;;;;;:::o;11721:21::-;;;;;;;;;;;;;:::o;103:98::-;156:7;183:10;176:17;;103:98;:::o;9138:347::-;9257:1;9240:19;;:5;:19;;;;9232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9338:1;9319:21;;:7;:21;;;;9311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9423:6;9393:11;:18;9405:5;9393:18;;;;;;;;;;;;;;;:27;9412:7;9393:27;;;;;;;;;;;;;;;:36;;;;9461:7;9445:32;;9454:5;9445:32;;;9470:6;9445:32;;;;;;:::i;:::-;;;;;;;;9138:347;;;:::o;13564:1721::-;13694:1;13685:6;:10;13677:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;13761:5;:13;13767:6;13761:13;;;;;;;;;;;;;;;;;;;;;;;;;13760:14;:35;;;;;13779:5;:16;13785:9;13779:16;;;;;;;;;;;;;;;;;;;;;;;;;13778:17;13760:35;13752:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;13842:20;13855:6;13842:12;:20::i;:::-;13841:21;:49;;;;;13867:23;13880:9;13867:12;:23::i;:::-;13866:24;13841:49;13837:131;;;13912:14;:12;:14::i;:::-;13911:15;13903:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;13837:131;13982:11;14009:4;;;;;;;;;;;13996:17;;:9;:17;;;13982:31;;14028:21;14042:6;14028:13;:21::i;:::-;14075:16;:24;14092:6;14075:24;;;;;;;;;;;;;;;;;;;;;;;;;14074:25;:57;;;;;14104:16;:27;14121:9;14104:27;;;;;;;;;;;;;;;;;;;;;;;;;14103:28;14074:57;:70;;;;;14136:8;;;;;;;;;;;14135:9;14074:70;14071:528;;;14192:12;14179:10;;14163:13;;:26;;;;:::i;:::-;:41;14160:183;;;14240:4;;;;;;;;;;;14227:17;;:9;:17;;;14224:45;;14265:4;14246:5;:16;14252:9;14246:16;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;14224:45;14301:4;;;;;;;;;;;14291:14;;:6;:14;;;14288:39;;14323:4;14307:5;:13;14313:6;14307:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14288:39;14160:183;14375:11;;14365:6;:21;;14357:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;14451:4;;;;;;;;;;;14438:17;;:9;:17;;;14435:150;;14516:15;;14506:6;14483:20;14493:9;14483;:20::i;:::-;:29;;;;:::i;:::-;:48;;14475:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;14435:150;14071:528;14615:11;14715:8;;;;;;;;;;;:36;;;;14727:16;:24;14744:6;14727:24;;;;;;;;;;;;;;;;;;;;;;;;;14715:36;:67;;;;14755:16;:27;14772:9;14755:27;;;;;;;;;;;;;;;;;;;;;;;;;14715:67;14711:250;;;14790:1;14784:7;;14711:250;;;14865:4;;;;;;;;;;;14852:17;;:9;:17;;;14849:100;;;14899:3;14886:10;;14877:6;:19;;;;:::i;:::-;:25;;;;:::i;:::-;14871:31;;14849:100;;;14946:3;14937:6;;14928;:15;;;;:::i;:::-;:21;;;;:::i;:::-;14922:27;;14849:100;14711:250;15078:11;;;;;;;;;;;:24;;;;;15094:8;;;;;;;;;;;15093:9;15078:24;:42;;;;;15116:4;;;;;;;;;;;15106:14;;:6;:14;;;;15078:42;:53;;;;;15130:1;15124:3;:7;15078:53;15074:72;;;15133:13;:11;:13::i;:::-;15074:72;15160:48;15176:6;15184:9;15204:3;15195:6;:12;;;;:::i;:::-;15160:15;:48::i;:::-;15228:1;15222:3;:7;15219:55;;;15231:43;15247:6;15263:4;15270:3;15231:15;:43::i;:::-;15219:55;13652:1633;;13564:1721;;;:::o;16653:403::-;16719:21;16757:1;16743:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16719:40;;16788:4;16770;16775:1;16770:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16814:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16804:4;16809:1;16804:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16841:53;16858:4;16873:6;;;;;;;;;;;16882:11;16841:8;:53::i;:::-;16934:6;;;;;;;;;;;:57;;;16992:11;17005:1;17008:4;17022;17029:15;16934:111;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16708:348;16653:403;:::o;9616:318::-;9731:6;9706:21;:31;;9698:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9786:12;9804:9;:14;;9826:6;9804:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9785:52;;;9856:7;9848:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;9687:247;9616:318;;:::o;10705:173::-;10761:16;10780:6;;;;;;;;;;;10761:25;;10806:8;10797:6;;:17;;;;;;;;;;;;;;;;;;10861:8;10830:40;;10851:8;10830:40;;;;;;;;;;;;10750:128;10705:173;:::o;17926:152::-;17987:4;18059:10;18038:4;;;;;;;;;;;:16;;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;;;:::i;:::-;18012:4;;;;;;;;;;;:14;;;18027:6;18012:22;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:57;;18005:64;;17926:152;;;:::o;19166:126::-;19212:4;19275:8;;19253:19;;:30;;;;:::i;:::-;19237:12;:46;;19230:53;;19166:126;:::o;18950:209::-;19011:21;;;;;;;;;;;19010:22;:32;;;;;19036:6;19010:32;19006:145;;;19084:4;19060:21;;:28;;;;;;;;;;;;;;;;;;19126:12;19104:19;:34;;;;19006:145;18950:209;:::o;15294:1351::-;12829:8;;;;;;;;;;;12824:104;;12865:4;12854:8;;:15;;;;;;;;;;;;;;;;;;15343:23:::1;15369:24;15387:4;15369:9;:24::i;:::-;15343:50;;15427:13;;15408:15;:32;15404:1234;;15515:19;15550:1;15537:10;;:14;;;;:::i;:::-;15515:36;;15566:32;15641:11;15619:9;:19;;;15601:15;:37;;;;:::i;:::-;:51;;;;:::i;:::-;15566:86;;15667:14;15702:24;15684:15;:42;;;;:::i;:::-;15667:59;;15744:23;15770:21;15744:47;;15809:24;15826:6;15809:16;:24::i;:::-;15851:20;15898:15;15874:21;:39;;;;:::i;:::-;15851:62;;15928:19;15979:9;:19;;;15965:11;:33;;;;:::i;:::-;15949:12;:50;;;;:::i;:::-;15928:71;;16014:29;16060:9;:19;;;16046:11;:33;;;;:::i;:::-;16014:65;;16124:1;16100:21;:25;16097:170;;;16190:61;16203:24;16229:21;16190:12;:61::i;:::-;16097:170;16284:20;16325:9;:19;;;16321:1;16307:11;:15;;;;:::i;:::-;:37;;;;:::i;:::-;16284:60;;16377:1;16362:12;:16;16359:103;;;16398:48;16433:12;16406:15;;;;;;;;;;;16398:34;;;;:48;;;;:::i;:::-;16359:103;16479:14;16514:9;:13;;;16510:1;16496:11;:15;;;;:::i;:::-;:31;;;;:::i;:::-;16479:48;;16554:1;16545:6;:10;16542:85;;;16575:36;16604:6;16583:9;;;;;;;;;;;16575:28;;;;:36;;;;:::i;:::-;16542:85;15442:1196;;;;;;;;;15404:1234;15332:1313;12911:5:::0;12900:8;;:16;;;;;;;;;;;;;;;;;;12824:104;15294:1351::o;7657:610::-;7781:1;7763:20;;:6;:20;;;;7755:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;7865:1;7844:23;;:9;:23;;;;7836:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;7924:47;7945:6;7953:9;7964:6;7924:20;:47::i;:::-;7985:21;8009:9;:17;8019:6;8009:17;;;;;;;;;;;;;;;;7985:41;;8062:6;8045:13;:23;;8037:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8158:6;8142:13;:22;;;;:::i;:::-;8122:9;:17;8132:6;8122:17;;;;;;;;;;;;;;;:42;;;;8199:6;8175:9;:20;8185:9;8175:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;8241:9;8224:35;;8233:6;8224:35;;;8252:6;8224:35;;;;;;:::i;:::-;;;;;;;;7744:523;7657:610;;;:::o;17065:510::-;17213:53;17230:4;17245:6;;;;;;;;;;;17254:11;17213:8;:53::i;:::-;17310:6;;;;;;;;;;;:22;;;17340:9;17373:4;17393:11;17419:1;17462;17505:9;;;;;;;;;;;17529:15;17310:245;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17065:510;;:::o;9494:92::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:307::-;790:1;800:113;814:6;811:1;808:13;800:113;;;899:1;894:3;890:11;884:18;880:1;875:3;871:11;864:39;836:2;833:1;829:10;824:15;;800:113;;;931:6;928:1;925:13;922:101;;;1011:1;1002:6;997:3;993:16;986:27;922:101;771:258;722:307;;;:::o;1035:102::-;1076:6;1127:2;1123:7;1118:2;1111:5;1107:14;1103:28;1093:38;;1035:102;;;:::o;1143:364::-;1231:3;1259:39;1292:5;1259:39;:::i;:::-;1314:71;1378:6;1373:3;1314:71;:::i;:::-;1307:78;;1394:52;1439:6;1434:3;1427:4;1420:5;1416:16;1394:52;:::i;:::-;1471:29;1493:6;1471:29;:::i;:::-;1466:3;1462:39;1455:46;;1235:272;1143:364;;;;:::o;1513:313::-;1626:4;1664:2;1653:9;1649:18;1641:26;;1713:9;1707:4;1703:20;1699:1;1688:9;1684:17;1677:47;1741:78;1814:4;1805:6;1741:78;:::i;:::-;1733:86;;1513:313;;;;:::o;1832:75::-;1865:6;1898:2;1892:9;1882:19;;1832:75;:::o;1913:117::-;2022:1;2019;2012:12;2036:117;2145:1;2142;2135:12;2159:126;2196:7;2236:42;2229:5;2225:54;2214:65;;2159:126;;;:::o;2291:96::-;2328:7;2357:24;2375:5;2357:24;:::i;:::-;2346:35;;2291:96;;;:::o;2393:122::-;2466:24;2484:5;2466:24;:::i;:::-;2459:5;2456:35;2446:63;;2505:1;2502;2495:12;2446:63;2393:122;:::o;2521:139::-;2567:5;2605:6;2592:20;2583:29;;2621:33;2648:5;2621:33;:::i;:::-;2521:139;;;;:::o;2666:122::-;2739:24;2757:5;2739:24;:::i;:::-;2732:5;2729:35;2719:63;;2778:1;2775;2768:12;2719:63;2666:122;:::o;2794:139::-;2840:5;2878:6;2865:20;2856:29;;2894:33;2921:5;2894:33;:::i;:::-;2794:139;;;;:::o;2939:474::-;3007:6;3015;3064:2;3052:9;3043:7;3039:23;3035:32;3032:119;;;3070:79;;:::i;:::-;3032:119;3190:1;3215:53;3260:7;3251:6;3240:9;3236:22;3215:53;:::i;:::-;3205:63;;3161:117;3317:2;3343:53;3388:7;3379:6;3368:9;3364:22;3343:53;:::i;:::-;3333:63;;3288:118;2939:474;;;;;:::o;3419:90::-;3453:7;3496:5;3489:13;3482:21;3471:32;;3419:90;;;:::o;3515:109::-;3596:21;3611:5;3596:21;:::i;:::-;3591:3;3584:34;3515:109;;:::o;3630:210::-;3717:4;3755:2;3744:9;3740:18;3732:26;;3768:65;3830:1;3819:9;3815:17;3806:6;3768:65;:::i;:::-;3630:210;;;;:::o;3846:329::-;3905:6;3954:2;3942:9;3933:7;3929:23;3925:32;3922:119;;;3960:79;;:::i;:::-;3922:119;4080:1;4105:53;4150:7;4141:6;4130:9;4126:22;4105:53;:::i;:::-;4095:63;;4051:117;3846:329;;;;:::o;4181:619::-;4258:6;4266;4274;4323:2;4311:9;4302:7;4298:23;4294:32;4291:119;;;4329:79;;:::i;:::-;4291:119;4449:1;4474:53;4519:7;4510:6;4499:9;4495:22;4474:53;:::i;:::-;4464:63;;4420:117;4576:2;4602:53;4647:7;4638:6;4627:9;4623:22;4602:53;:::i;:::-;4592:63;;4547:118;4704:2;4730:53;4775:7;4766:6;4755:9;4751:22;4730:53;:::i;:::-;4720:63;;4675:118;4181:619;;;;;:::o;4806:::-;4883:6;4891;4899;4948:2;4936:9;4927:7;4923:23;4919:32;4916:119;;;4954:79;;:::i;:::-;4916:119;5074:1;5099:53;5144:7;5135:6;5124:9;5120:22;5099:53;:::i;:::-;5089:63;;5045:117;5201:2;5227:53;5272:7;5263:6;5252:9;5248:22;5227:53;:::i;:::-;5217:63;;5172:118;5329:2;5355:53;5400:7;5391:6;5380:9;5376:22;5355:53;:::i;:::-;5345:63;;5300:118;4806:619;;;;;:::o;5431:86::-;5466:7;5506:4;5499:5;5495:16;5484:27;;5431:86;;;:::o;5523:112::-;5606:22;5622:5;5606:22;:::i;:::-;5601:3;5594:35;5523:112;;:::o;5641:214::-;5730:4;5768:2;5757:9;5753:18;5745:26;;5781:67;5845:1;5834:9;5830:17;5821:6;5781:67;:::i;:::-;5641:214;;;;:::o;5861:111::-;5913:7;5942:24;5960:5;5942:24;:::i;:::-;5931:35;;5861:111;;;:::o;5978:152::-;6066:39;6099:5;6066:39;:::i;:::-;6059:5;6056:50;6046:78;;6120:1;6117;6110:12;6046:78;5978:152;:::o;6136:169::-;6197:5;6235:6;6222:20;6213:29;;6251:48;6293:5;6251:48;:::i;:::-;6136:169;;;;:::o;6311:504::-;6394:6;6402;6451:2;6439:9;6430:7;6426:23;6422:32;6419:119;;;6457:79;;:::i;:::-;6419:119;6577:1;6602:68;6662:7;6653:6;6642:9;6638:22;6602:68;:::i;:::-;6592:78;;6548:132;6719:2;6745:53;6790:7;6781:6;6770:9;6766:22;6745:53;:::i;:::-;6735:63;;6690:118;6311:504;;;;;:::o;6821:442::-;6970:4;7008:2;6997:9;6993:18;6985:26;;7021:71;7089:1;7078:9;7074:17;7065:6;7021:71;:::i;:::-;7102:72;7170:2;7159:9;7155:18;7146:6;7102:72;:::i;:::-;7184;7252:2;7241:9;7237:18;7228:6;7184:72;:::i;:::-;6821:442;;;;;;:::o;7269:118::-;7356:24;7374:5;7356:24;:::i;:::-;7351:3;7344:37;7269:118;;:::o;7393:222::-;7486:4;7524:2;7513:9;7509:18;7501:26;;7537:71;7605:1;7594:9;7590:17;7581:6;7537:71;:::i;:::-;7393:222;;;;:::o;7621:329::-;7680:6;7729:2;7717:9;7708:7;7704:23;7700:32;7697:119;;;7735:79;;:::i;:::-;7697:119;7855:1;7880:53;7925:7;7916:6;7905:9;7901:22;7880:53;:::i;:::-;7870:63;;7826:117;7621:329;;;;:::o;7956:117::-;8065:1;8062;8055:12;8079:180;8127:77;8124:1;8117:88;8224:4;8221:1;8214:15;8248:4;8245:1;8238:15;8265:281;8348:27;8370:4;8348:27;:::i;:::-;8340:6;8336:40;8478:6;8466:10;8463:22;8442:18;8430:10;8427:34;8424:62;8421:88;;;8489:18;;:::i;:::-;8421:88;8529:10;8525:2;8518:22;8308:238;8265:281;;:::o;8552:129::-;8586:6;8613:20;;:::i;:::-;8603:30;;8642:33;8670:4;8662:6;8642:33;:::i;:::-;8552:129;;;:::o;8687:311::-;8764:4;8854:18;8846:6;8843:30;8840:56;;;8876:18;;:::i;:::-;8840:56;8926:4;8918:6;8914:17;8906:25;;8986:4;8980;8976:15;8968:23;;8687:311;;;:::o;9004:117::-;9113:1;9110;9103:12;9144:710;9240:5;9265:81;9281:64;9338:6;9281:64;:::i;:::-;9265:81;:::i;:::-;9256:90;;9366:5;9395:6;9388:5;9381:21;9429:4;9422:5;9418:16;9411:23;;9482:4;9474:6;9470:17;9462:6;9458:30;9511:3;9503:6;9500:15;9497:122;;;9530:79;;:::i;:::-;9497:122;9645:6;9628:220;9662:6;9657:3;9654:15;9628:220;;;9737:3;9766:37;9799:3;9787:10;9766:37;:::i;:::-;9761:3;9754:50;9833:4;9828:3;9824:14;9817:21;;9704:144;9688:4;9683:3;9679:14;9672:21;;9628:220;;;9632:21;9246:608;;9144:710;;;;;:::o;9877:370::-;9948:5;9997:3;9990:4;9982:6;9978:17;9974:27;9964:122;;10005:79;;:::i;:::-;9964:122;10122:6;10109:20;10147:94;10237:3;10229:6;10222:4;10214:6;10210:17;10147:94;:::i;:::-;10138:103;;9954:293;9877:370;;;;:::o;10253:539::-;10337:6;10386:2;10374:9;10365:7;10361:23;10357:32;10354:119;;;10392:79;;:::i;:::-;10354:119;10540:1;10529:9;10525:17;10512:31;10570:18;10562:6;10559:30;10556:117;;;10592:79;;:::i;:::-;10556:117;10697:78;10767:7;10758:6;10747:9;10743:22;10697:78;:::i;:::-;10687:88;;10483:302;10253:539;;;;:::o;10798:474::-;10866:6;10874;10923:2;10911:9;10902:7;10898:23;10894:32;10891:119;;;10929:79;;:::i;:::-;10891:119;11049:1;11074:53;11119:7;11110:6;11099:9;11095:22;11074:53;:::i;:::-;11064:63;;11020:117;11176:2;11202:53;11247:7;11238:6;11227:9;11223:22;11202:53;:::i;:::-;11192:63;;11147:118;10798:474;;;;;:::o;11278:116::-;11348:21;11363:5;11348:21;:::i;:::-;11341:5;11338:32;11328:60;;11384:1;11381;11374:12;11328:60;11278:116;:::o;11400:133::-;11443:5;11481:6;11468:20;11459:29;;11497:30;11521:5;11497:30;:::i;:::-;11400:133;;;;:::o;11539:323::-;11595:6;11644:2;11632:9;11623:7;11619:23;11615:32;11612:119;;;11650:79;;:::i;:::-;11612:119;11770:1;11795:50;11837:7;11828:6;11817:9;11813:22;11795:50;:::i;:::-;11785:60;;11741:114;11539:323;;;;:::o;11868:60::-;11896:3;11917:5;11910:12;;11868:60;;;:::o;11934:142::-;11984:9;12017:53;12035:34;12044:24;12062:5;12044:24;:::i;:::-;12035:34;:::i;:::-;12017:53;:::i;:::-;12004:66;;11934:142;;;:::o;12082:126::-;12132:9;12165:37;12196:5;12165:37;:::i;:::-;12152:50;;12082:126;;;:::o;12214:139::-;12277:9;12310:37;12341:5;12310:37;:::i;:::-;12297:50;;12214:139;;;:::o;12359:157::-;12459:50;12503:5;12459:50;:::i;:::-;12454:3;12447:63;12359:157;;:::o;12522:248::-;12628:4;12666:2;12655:9;12651:18;12643:26;;12679:84;12760:1;12749:9;12745:17;12736:6;12679:84;:::i;:::-;12522:248;;;;:::o;12776:468::-;12841:6;12849;12898:2;12886:9;12877:7;12873:23;12869:32;12866:119;;;12904:79;;:::i;:::-;12866:119;13024:1;13049:53;13094:7;13085:6;13074:9;13070:22;13049:53;:::i;:::-;13039:63;;12995:117;13151:2;13177:50;13219:7;13210:6;13199:9;13195:22;13177:50;:::i;:::-;13167:60;;13122:115;12776:468;;;;;:::o;13250:141::-;13315:9;13348:37;13379:5;13348:37;:::i;:::-;13335:50;;13250:141;;;:::o;13397:161::-;13499:52;13545:5;13499:52;:::i;:::-;13494:3;13487:65;13397:161;;:::o;13564:252::-;13672:4;13710:2;13699:9;13695:18;13687:26;;13723:86;13806:1;13795:9;13791:17;13782:6;13723:86;:::i;:::-;13564:252;;;;:::o;13822:180::-;13870:77;13867:1;13860:88;13967:4;13964:1;13957:15;13991:4;13988:1;13981:15;14008:320;14052:6;14089:1;14083:4;14079:12;14069:22;;14136:1;14130:4;14126:12;14157:18;14147:81;;14213:4;14205:6;14201:17;14191:27;;14147:81;14275:2;14267:6;14264:14;14244:18;14241:38;14238:84;;;14294:18;;:::i;:::-;14238:84;14059:269;14008:320;;;:::o;14334:182::-;14474:34;14470:1;14462:6;14458:14;14451:58;14334:182;:::o;14522:366::-;14664:3;14685:67;14749:2;14744:3;14685:67;:::i;:::-;14678:74;;14761:93;14850:3;14761:93;:::i;:::-;14879:2;14874:3;14870:12;14863:19;;14522:366;;;:::o;14894:419::-;15060:4;15098:2;15087:9;15083:18;15075:26;;15147:9;15141:4;15137:20;15133:1;15122:9;15118:17;15111:47;15175:131;15301:4;15175:131;:::i;:::-;15167:139;;14894:419;;;:::o;15319:227::-;15459:34;15455:1;15447:6;15443:14;15436:58;15528:10;15523:2;15515:6;15511:15;15504:35;15319:227;:::o;15552:366::-;15694:3;15715:67;15779:2;15774:3;15715:67;:::i;:::-;15708:74;;15791:93;15880:3;15791:93;:::i;:::-;15909:2;15904:3;15900:12;15893:19;;15552:366;;;:::o;15924:419::-;16090:4;16128:2;16117:9;16113:18;16105:26;;16177:9;16171:4;16167:20;16163:1;16152:9;16148:17;16141:47;16205:131;16331:4;16205:131;:::i;:::-;16197:139;;15924:419;;;:::o;16349:180::-;16397:77;16394:1;16387:88;16494:4;16491:1;16484:15;16518:4;16515:1;16508:15;16535:191;16575:4;16595:20;16613:1;16595:20;:::i;:::-;16590:25;;16629:20;16647:1;16629:20;:::i;:::-;16624:25;;16668:1;16665;16662:8;16659:34;;;16673:18;;:::i;:::-;16659:34;16718:1;16715;16711:9;16703:17;;16535:191;;;;:::o;16732:305::-;16772:3;16791:20;16809:1;16791:20;:::i;:::-;16786:25;;16825:20;16843:1;16825:20;:::i;:::-;16820:25;;16979:1;16911:66;16907:74;16904:1;16901:81;16898:107;;;16985:18;;:::i;:::-;16898:107;17029:1;17026;17022:9;17015:16;;16732:305;;;;:::o;17043:348::-;17083:7;17106:20;17124:1;17106:20;:::i;:::-;17101:25;;17140:20;17158:1;17140:20;:::i;:::-;17135:25;;17328:1;17260:66;17256:74;17253:1;17250:81;17245:1;17238:9;17231:17;17227:105;17224:131;;;17335:18;;:::i;:::-;17224:131;17383:1;17380;17376:9;17365:20;;17043:348;;;;:::o;17397:180::-;17445:77;17442:1;17435:88;17542:4;17539:1;17532:15;17566:4;17563:1;17556:15;17583:185;17623:1;17640:20;17658:1;17640:20;:::i;:::-;17635:25;;17674:20;17692:1;17674:20;:::i;:::-;17669:25;;17713:1;17703:35;;17718:18;;:::i;:::-;17703:35;17760:1;17757;17753:9;17748:14;;17583:185;;;;:::o;17774:332::-;17895:4;17933:2;17922:9;17918:18;17910:26;;17946:71;18014:1;18003:9;17999:17;17990:6;17946:71;:::i;:::-;18027:72;18095:2;18084:9;18080:18;18071:6;18027:72;:::i;:::-;17774:332;;;;;:::o;18112:137::-;18166:5;18197:6;18191:13;18182:22;;18213:30;18237:5;18213:30;:::i;:::-;18112:137;;;;:::o;18255:345::-;18322:6;18371:2;18359:9;18350:7;18346:23;18342:32;18339:119;;;18377:79;;:::i;:::-;18339:119;18497:1;18522:61;18575:7;18566:6;18555:9;18551:22;18522:61;:::i;:::-;18512:71;;18468:125;18255:345;;;;:::o;18606:224::-;18746:34;18742:1;18734:6;18730:14;18723:58;18815:7;18810:2;18802:6;18798:15;18791:32;18606:224;:::o;18836:366::-;18978:3;18999:67;19063:2;19058:3;18999:67;:::i;:::-;18992:74;;19075:93;19164:3;19075:93;:::i;:::-;19193:2;19188:3;19184:12;19177:19;;18836:366;;;:::o;19208:419::-;19374:4;19412:2;19401:9;19397:18;19389:26;;19461:9;19455:4;19451:20;19447:1;19436:9;19432:17;19425:47;19489:131;19615:4;19489:131;:::i;:::-;19481:139;;19208:419;;;:::o;19633:180::-;19681:77;19678:1;19671:88;19778:4;19775:1;19768:15;19802:4;19799:1;19792:15;19819:233;19858:3;19881:24;19899:5;19881:24;:::i;:::-;19872:33;;19927:66;19920:5;19917:77;19914:103;;;19997:18;;:::i;:::-;19914:103;20044:1;20037:5;20033:13;20026:20;;19819:233;;;:::o;20058:225::-;20198:34;20194:1;20186:6;20182:14;20175:58;20267:8;20262:2;20254:6;20250:15;20243:33;20058:225;:::o;20289:366::-;20431:3;20452:67;20516:2;20511:3;20452:67;:::i;:::-;20445:74;;20528:93;20617:3;20528:93;:::i;:::-;20646:2;20641:3;20637:12;20630:19;;20289:366;;;:::o;20661:419::-;20827:4;20865:2;20854:9;20850:18;20842:26;;20914:9;20908:4;20904:20;20900:1;20889:9;20885:17;20878:47;20942:131;21068:4;20942:131;:::i;:::-;20934:139;;20661:419;;;:::o;21086:223::-;21226:34;21222:1;21214:6;21210:14;21203:58;21295:6;21290:2;21282:6;21278:15;21271:31;21086:223;:::o;21315:366::-;21457:3;21478:67;21542:2;21537:3;21478:67;:::i;:::-;21471:74;;21554:93;21643:3;21554:93;:::i;:::-;21672:2;21667:3;21663:12;21656:19;;21315:366;;;:::o;21687:419::-;21853:4;21891:2;21880:9;21876:18;21868:26;;21940:9;21934:4;21930:20;21926:1;21915:9;21911:17;21904:47;21968:131;22094:4;21968:131;:::i;:::-;21960:139;;21687:419;;;:::o;22112:221::-;22252:34;22248:1;22240:6;22236:14;22229:58;22321:4;22316:2;22308:6;22304:15;22297:29;22112:221;:::o;22339:366::-;22481:3;22502:67;22566:2;22561:3;22502:67;:::i;:::-;22495:74;;22578:93;22667:3;22578:93;:::i;:::-;22696:2;22691:3;22687:12;22680:19;;22339:366;;;:::o;22711:419::-;22877:4;22915:2;22904:9;22900:18;22892:26;;22964:9;22958:4;22954:20;22950:1;22939:9;22935:17;22928:47;22992:131;23118:4;22992:131;:::i;:::-;22984:139;;22711:419;;;:::o;23136:228::-;23276:34;23272:1;23264:6;23260:14;23253:58;23345:11;23340:2;23332:6;23328:15;23321:36;23136:228;:::o;23370:366::-;23512:3;23533:67;23597:2;23592:3;23533:67;:::i;:::-;23526:74;;23609:93;23698:3;23609:93;:::i;:::-;23727:2;23722:3;23718:12;23711:19;;23370:366;;;:::o;23742:419::-;23908:4;23946:2;23935:9;23931:18;23923:26;;23995:9;23989:4;23985:20;23981:1;23970:9;23966:17;23959:47;24023:131;24149:4;24023:131;:::i;:::-;24015:139;;23742:419;;;:::o;24167:175::-;24307:27;24303:1;24295:6;24291:14;24284:51;24167:175;:::o;24348:366::-;24490:3;24511:67;24575:2;24570:3;24511:67;:::i;:::-;24504:74;;24587:93;24676:3;24587:93;:::i;:::-;24705:2;24700:3;24696:12;24689:19;;24348:366;;;:::o;24720:419::-;24886:4;24924:2;24913:9;24909:18;24901:26;;24973:9;24967:4;24963:20;24959:1;24948:9;24944:17;24937:47;25001:131;25127:4;25001:131;:::i;:::-;24993:139;;24720:419;;;:::o;25145:174::-;25285:26;25281:1;25273:6;25269:14;25262:50;25145:174;:::o;25325:366::-;25467:3;25488:67;25552:2;25547:3;25488:67;:::i;:::-;25481:74;;25564:93;25653:3;25564:93;:::i;:::-;25682:2;25677:3;25673:12;25666:19;;25325:366;;;:::o;25697:419::-;25863:4;25901:2;25890:9;25886:18;25878:26;;25950:9;25944:4;25940:20;25936:1;25925:9;25921:17;25914:47;25978:131;26104:4;25978:131;:::i;:::-;25970:139;;25697:419;;;:::o;26122:179::-;26262:31;26258:1;26250:6;26246:14;26239:55;26122:179;:::o;26307:366::-;26449:3;26470:67;26534:2;26529:3;26470:67;:::i;:::-;26463:74;;26546:93;26635:3;26546:93;:::i;:::-;26664:2;26659:3;26655:12;26648:19;;26307:366;;;:::o;26679:419::-;26845:4;26883:2;26872:9;26868:18;26860:26;;26932:9;26926:4;26922:20;26918:1;26907:9;26903:17;26896:47;26960:131;27086:4;26960:131;:::i;:::-;26952:139;;26679:419;;;:::o;27104:220::-;27244:34;27240:1;27232:6;27228:14;27221:58;27313:3;27308:2;27300:6;27296:15;27289:28;27104:220;:::o;27330:366::-;27472:3;27493:67;27557:2;27552:3;27493:67;:::i;:::-;27486:74;;27569:93;27658:3;27569:93;:::i;:::-;27687:2;27682:3;27678:12;27671:19;;27330:366;;;:::o;27702:419::-;27868:4;27906:2;27895:9;27891:18;27883:26;;27955:9;27949:4;27945:20;27941:1;27930:9;27926:17;27919:47;27983:131;28109:4;27983:131;:::i;:::-;27975:139;;27702:419;;;:::o;28127:143::-;28184:5;28215:6;28209:13;28200:22;;28231:33;28258:5;28231:33;:::i;:::-;28127:143;;;;:::o;28276:351::-;28346:6;28395:2;28383:9;28374:7;28370:23;28366:32;28363:119;;;28401:79;;:::i;:::-;28363:119;28521:1;28546:64;28602:7;28593:6;28582:9;28578:22;28546:64;:::i;:::-;28536:74;;28492:128;28276:351;;;;:::o;28633:85::-;28678:7;28707:5;28696:16;;28633:85;;;:::o;28724:158::-;28782:9;28815:61;28833:42;28842:32;28868:5;28842:32;:::i;:::-;28833:42;:::i;:::-;28815:61;:::i;:::-;28802:74;;28724:158;;;:::o;28888:147::-;28983:45;29022:5;28983:45;:::i;:::-;28978:3;28971:58;28888:147;;:::o;29041:114::-;29108:6;29142:5;29136:12;29126:22;;29041:114;;;:::o;29161:184::-;29260:11;29294:6;29289:3;29282:19;29334:4;29329:3;29325:14;29310:29;;29161:184;;;;:::o;29351:132::-;29418:4;29441:3;29433:11;;29471:4;29466:3;29462:14;29454:22;;29351:132;;;:::o;29489:108::-;29566:24;29584:5;29566:24;:::i;:::-;29561:3;29554:37;29489:108;;:::o;29603:179::-;29672:10;29693:46;29735:3;29727:6;29693:46;:::i;:::-;29771:4;29766:3;29762:14;29748:28;;29603:179;;;;:::o;29788:113::-;29858:4;29890;29885:3;29881:14;29873:22;;29788:113;;;:::o;29937:732::-;30056:3;30085:54;30133:5;30085:54;:::i;:::-;30155:86;30234:6;30229:3;30155:86;:::i;:::-;30148:93;;30265:56;30315:5;30265:56;:::i;:::-;30344:7;30375:1;30360:284;30385:6;30382:1;30379:13;30360:284;;;30461:6;30455:13;30488:63;30547:3;30532:13;30488:63;:::i;:::-;30481:70;;30574:60;30627:6;30574:60;:::i;:::-;30564:70;;30420:224;30407:1;30404;30400:9;30395:14;;30360:284;;;30364:14;30660:3;30653:10;;30061:608;;;29937:732;;;;:::o;30675:831::-;30938:4;30976:3;30965:9;30961:19;30953:27;;30990:71;31058:1;31047:9;31043:17;31034:6;30990:71;:::i;:::-;31071:80;31147:2;31136:9;31132:18;31123:6;31071:80;:::i;:::-;31198:9;31192:4;31188:20;31183:2;31172:9;31168:18;31161:48;31226:108;31329:4;31320:6;31226:108;:::i;:::-;31218:116;;31344:72;31412:2;31401:9;31397:18;31388:6;31344:72;:::i;:::-;31426:73;31494:3;31483:9;31479:19;31470:6;31426:73;:::i;:::-;30675:831;;;;;;;;:::o;31512:179::-;31652:31;31648:1;31640:6;31636:14;31629:55;31512:179;:::o;31697:366::-;31839:3;31860:67;31924:2;31919:3;31860:67;:::i;:::-;31853:74;;31936:93;32025:3;31936:93;:::i;:::-;32054:2;32049:3;32045:12;32038:19;;31697:366;;;:::o;32069:419::-;32235:4;32273:2;32262:9;32258:18;32250:26;;32322:9;32316:4;32312:20;32308:1;32297:9;32293:17;32286:47;32350:131;32476:4;32350:131;:::i;:::-;32342:139;;32069:419;;;:::o;32494:147::-;32595:11;32632:3;32617:18;;32494:147;;;;:::o;32647:114::-;;:::o;32767:398::-;32926:3;32947:83;33028:1;33023:3;32947:83;:::i;:::-;32940:90;;33039:93;33128:3;33039:93;:::i;:::-;33157:1;33152:3;33148:11;33141:18;;32767:398;;;:::o;33171:379::-;33355:3;33377:147;33520:3;33377:147;:::i;:::-;33370:154;;33541:3;33534:10;;33171:379;;;:::o;33556:245::-;33696:34;33692:1;33684:6;33680:14;33673:58;33765:28;33760:2;33752:6;33748:15;33741:53;33556:245;:::o;33807:366::-;33949:3;33970:67;34034:2;34029:3;33970:67;:::i;:::-;33963:74;;34046:93;34135:3;34046:93;:::i;:::-;34164:2;34159:3;34155:12;34148:19;;33807:366;;;:::o;34179:419::-;34345:4;34383:2;34372:9;34368:18;34360:26;;34432:9;34426:4;34422:20;34418:1;34407:9;34403:17;34396:47;34460:131;34586:4;34460:131;:::i;:::-;34452:139;;34179:419;;;:::o;34604:143::-;34661:5;34692:6;34686:13;34677:22;;34708:33;34735:5;34708:33;:::i;:::-;34604:143;;;;:::o;34753:351::-;34823:6;34872:2;34860:9;34851:7;34847:23;34843:32;34840:119;;;34878:79;;:::i;:::-;34840:119;34998:1;35023:64;35079:7;35070:6;35059:9;35055:22;35023:64;:::i;:::-;35013:74;;34969:128;34753:351;;;;:::o;35110:224::-;35250:34;35246:1;35238:6;35234:14;35227:58;35319:7;35314:2;35306:6;35302:15;35295:32;35110:224;:::o;35340:366::-;35482:3;35503:67;35567:2;35562:3;35503:67;:::i;:::-;35496:74;;35579:93;35668:3;35579:93;:::i;:::-;35697:2;35692:3;35688:12;35681:19;;35340:366;;;:::o;35712:419::-;35878:4;35916:2;35905:9;35901:18;35893:26;;35965:9;35959:4;35955:20;35951:1;35940:9;35936:17;35929:47;35993:131;36119:4;35993:131;:::i;:::-;35985:139;;35712:419;;;:::o;36137:222::-;36277:34;36273:1;36265:6;36261:14;36254:58;36346:5;36341:2;36333:6;36329:15;36322:30;36137:222;:::o;36365:366::-;36507:3;36528:67;36592:2;36587:3;36528:67;:::i;:::-;36521:74;;36604:93;36693:3;36604:93;:::i;:::-;36722:2;36717:3;36713:12;36706:19;;36365:366;;;:::o;36737:419::-;36903:4;36941:2;36930:9;36926:18;36918:26;;36990:9;36984:4;36980:20;36976:1;36965:9;36961:17;36954:47;37018:131;37144:4;37018:131;:::i;:::-;37010:139;;36737:419;;;:::o;37162:225::-;37302:34;37298:1;37290:6;37286:14;37279:58;37371:8;37366:2;37358:6;37354:15;37347:33;37162:225;:::o;37393:366::-;37535:3;37556:67;37620:2;37615:3;37556:67;:::i;:::-;37549:74;;37632:93;37721:3;37632:93;:::i;:::-;37750:2;37745:3;37741:12;37734:19;;37393:366;;;:::o;37765:419::-;37931:4;37969:2;37958:9;37954:18;37946:26;;38018:9;38012:4;38008:20;38004:1;37993:9;37989:17;37982:47;38046:131;38172:4;38046:131;:::i;:::-;38038:139;;37765:419;;;:::o;38190:807::-;38439:4;38477:3;38466:9;38462:19;38454:27;;38491:71;38559:1;38548:9;38544:17;38535:6;38491:71;:::i;:::-;38572:72;38640:2;38629:9;38625:18;38616:6;38572:72;:::i;:::-;38654:80;38730:2;38719:9;38715:18;38706:6;38654:80;:::i;:::-;38744;38820:2;38809:9;38805:18;38796:6;38744:80;:::i;:::-;38834:73;38902:3;38891:9;38887:19;38878:6;38834:73;:::i;:::-;38917;38985:3;38974:9;38970:19;38961:6;38917:73;:::i;:::-;38190:807;;;;;;;;;:::o;39003:663::-;39091:6;39099;39107;39156:2;39144:9;39135:7;39131:23;39127:32;39124:119;;;39162:79;;:::i;:::-;39124:119;39282:1;39307:64;39363:7;39354:6;39343:9;39339:22;39307:64;:::i;:::-;39297:74;;39253:128;39420:2;39446:64;39502:7;39493:6;39482:9;39478:22;39446:64;:::i;:::-;39436:74;;39391:129;39559:2;39585:64;39641:7;39632:6;39621:9;39617:22;39585:64;:::i;:::-;39575:74;;39530:129;39003:663;;;;;:::o
Swarm Source
ipfs://85df6f3c6c7b1bfa0cf86f3009258b2ce85c44da83d2ed907c9bd21089e7c791
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.