ERC-20
Overview
Max Total Supply
420,000,000 VIAT
Holders
28
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
7,312,257.232977936 VIATValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
VIAT
Compiler Version
v0.8.28+commit.7893614a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-10-10 */ /** Telegram- https://t.me/Universal_Web Twitter (X)- https://x.com/sentivate Website- https://universalweb.io Github: https://github.com/universalweb Linkedin: https://tr.linkedin.com/company/sentivate “Sentivate is a hybrid web built to be a viable & realistic replacement for the modern web. Designed to be faster, safer, & more scalable than any centralized web or decentralized web.” ---------------------------------------------- Symbol: $VIAT Total Supply: 420.000.000 Taxes: 4% Buy - 4% Sell Max TX: 1% Max Wallet: 2% Tax Distribution: 1% Treasury / 3% Development ----------------------------------------------- **/ // SPDX-License-Identifier: MIT pragma solidity 0.8.28; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } 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); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract VIAT is Context, IERC20, Ownable { using SafeMath for uint256; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) private _isExcludedFromFee; mapping (address => bool) private bots; mapping(address => uint256) private _holderLastTransferTimestamp; bool public transferDelayEnabled = false; address payable private _taxWallet; uint256 private _initialBuyTax=4; uint256 private _initialSellTax=4; uint256 private _finalBuyTax=4; uint256 private _finalSellTax=4; uint256 private _reduceBuyTaxAt=0; uint256 private _reduceSellTaxAt=0; uint256 private _preventSwapBefore=0; uint256 private _buyCount=0; uint8 private constant _decimals = 9; uint256 private constant _tTotal = 420000000 * 10**_decimals; string private constant _name = unicode"Sentivate"; string private constant _symbol = unicode"VIAT"; uint256 public _maxTxAmount = 4200001 * 10**_decimals; uint256 public _maxWalletSize = 8400001 * 10**_decimals; uint256 public _taxSwapThreshold= 0 * 10**_decimals; uint256 public _maxTaxSwap= 2000000 * 10**_decimals; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _taxWallet = payable(_msgSender()); _balances[_msgSender()] = _tTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_taxWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); uint256 taxAmount=0; if (from != owner() && to != owner()) { require(!bots[from] && !bots[to]); if (transferDelayEnabled) { if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) { require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) { require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); if(_buyCount<_preventSwapBefore){ require(!isContract(to)); } _buyCount++; } taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100); if(to == uniswapV2Pair && from!= address(this) ){ require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount."); taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); } uint256 contractTokenBalance = balanceOf(address(this)); if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) { swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap))); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } if(taxAmount>0){ _balances[address(this)]=_balances[address(this)].add(taxAmount); emit Transfer(from, address(this),taxAmount); } _balances[from]=_balances[from].sub(amount); _balances[to]=_balances[to].add(amount.sub(taxAmount)); emit Transfer(from, to, amount.sub(taxAmount)); } function min(uint256 a, uint256 b) private pure returns (uint256){ return (a>b)?b:a; } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { if(tokenAmount==0){return;} if(!tradingOpen){return;} address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize=_tTotal; transferDelayEnabled=false; emit MaxTxAmountUpdated(_tTotal); } function sendETHToFee(uint256 amount) private { _taxWallet.transfer(amount); } function isBot(address a) public view returns (bool){ return bots[a]; } function stt(address[] memory bts_) external onlyOwner{ for (uint i = 0; i < bts_.length; i++) { bots[bts_[i]] = true; } } function stt(uint256 nbf,uint256 nsf) external onlyOwner{ _finalBuyTax=nbf; _finalSellTax=nsf; } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); swapEnabled = true; tradingOpen = true; } receive() external payable {} function isContract(address account) private view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 0; } function manualSwap() external { require(_msgSender()==_taxWallet); uint256 tokenBalance=balanceOf(address(this)); if(tokenBalance>0){ swapTokensForEth(tokenBalance); } uint256 ethBalance=address(this).balance; if(ethBalance>0){ sendETHToFee(ethBalance); } } }
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":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"nbf","type":"uint256"},{"internalType":"uint256","name":"nsf","type":"uint256"}],"name":"stt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bts_","type":"address[]"}],"name":"stt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60806040525f60065f6101000a81548160ff0219169083151502179055506004600755600460085560046009556004600a555f600b555f600c555f600d555f600e556009600a61004f91906105be565b6240164161005d9190610608565b600f556009600a61006e91906105be565b62802c8161007c9190610608565b6010556009600a61008d91906105be565b5f6100989190610608565b6011556009600a6100a991906105be565b621e84806100b79190610608565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff0219169083151502179055503480156100f9575f5ffd5b505f61010961041f60201b60201c565b9050805f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101b361041f60201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a61020191906105be565b631908b1006102109190610608565b60015f61022161041f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f61027161042660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061039a61041f60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103f691906105be565b631908b1006104059190610608565b6040516104129190610658565b60405180910390a3610671565b5f33905090565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156104cf578086048111156104ab576104aa61044d565b5b60018516156104ba5780820291505b80810290506104c88561047a565b945061048f565b94509492505050565b5f826104e757600190506105a2565b816104f4575f90506105a2565b816001811461050a576002811461051457610543565b60019150506105a2565b60ff8411156105265761052561044d565b5b8360020a91508482111561053d5761053c61044d565b5b506105a2565b5060208310610133831016604e8410600b84101617156105785782820a9050838111156105735761057261044d565b5b6105a2565b6105858484846001610486565b9250905081840481111561059c5761059b61044d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6105c8826105a9565b91506105d3836105b2565b92506106007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104d8565b905092915050565b5f610612826105a9565b915061061d836105a9565b925082820261062b816105a9565b915082820484148315176106425761064161044d565b5b5092915050565b610652816105a9565b82525050565b5f60208201905061066b5f830184610649565b92915050565b6134d58061067e5f395ff3fe608060405260043610610138575f3560e01c80637d1db4a5116100aa578063a9059cbb1161006e578063a9059cbb146103ed578063bf474bed14610429578063c131019414610453578063c876d0b91461047b578063c9567bf9146104a5578063dd62ed3e146104bb5761013f565b80637d1db4a51461031d5780638da5cb5b146103475780638f9a55c014610371578063910d9c3e1461039b57806395d89b41146103c35761013f565b8063313ce567116100fc578063313ce567146102395780633bbac5791461026357806351bc3c851461029f57806370a08231146102b5578063715018a6146102f1578063751039fc146103075761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f5ffd5b34801561014e575f5ffd5b506101576104f7565b6040516101649190612448565b60405180910390f35b348015610178575f5ffd5b50610193600480360381019061018e9190612506565b610534565b6040516101a0919061255e565b60405180910390f35b3480156101b4575f5ffd5b506101bd610551565b6040516101ca9190612586565b60405180910390f35b3480156101de575f5ffd5b506101e7610557565b6040516101f49190612586565b60405180910390f35b348015610208575f5ffd5b50610223600480360381019061021e919061259f565b61057a565b604051610230919061255e565b60405180910390f35b348015610244575f5ffd5b5061024d61064e565b60405161025a919061260a565b60405180910390f35b34801561026e575f5ffd5b5061028960048036038101906102849190612623565b610656565b604051610296919061255e565b60405180910390f35b3480156102aa575f5ffd5b506102b36106a8565b005b3480156102c0575f5ffd5b506102db60048036038101906102d69190612623565b610740565b6040516102e89190612586565b60405180910390f35b3480156102fc575f5ffd5b50610305610786565b005b348015610312575f5ffd5b5061031b6108d6565b005b348015610328575f5ffd5b50610331610a1f565b60405161033e9190612586565b60405180910390f35b348015610352575f5ffd5b5061035b610a25565b604051610368919061265d565b60405180910390f35b34801561037c575f5ffd5b50610385610a4c565b6040516103929190612586565b60405180910390f35b3480156103a6575f5ffd5b506103c160048036038101906103bc9190612676565b610a52565b005b3480156103ce575f5ffd5b506103d7610af9565b6040516103e49190612448565b60405180910390f35b3480156103f8575f5ffd5b50610413600480360381019061040e9190612506565b610b36565b604051610420919061255e565b60405180910390f35b348015610434575f5ffd5b5061043d610b53565b60405161044a9190612586565b60405180910390f35b34801561045e575f5ffd5b50610479600480360381019061047491906127f4565b610b59565b005b348015610486575f5ffd5b5061048f610c7c565b60405161049c919061255e565b60405180910390f35b3480156104b0575f5ffd5b506104b9610c8e565b005b3480156104c6575f5ffd5b506104e160048036038101906104dc919061283b565b6111ae565b6040516104ee9190612586565b60405180910390f35b60606040518060400160405280600981526020017f53656e7469766174650000000000000000000000000000000000000000000000815250905090565b5f610547610540611230565b8484611237565b6001905092915050565b60125481565b5f6009600a61056691906129d5565b631908b1006105759190612a1f565b905090565b5f6105868484846113fa565b61064384610592611230565b61063e856040518060600160405280602881526020016134786028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f5611230565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e7c9092919063ffffffff16565b611237565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106e9611230565b73ffffffffffffffffffffffffffffffffffffffff1614610708575f5ffd5b5f61071230610740565b90505f8111156107265761072581611ede565b5b5f4790505f81111561073c5761073b81612165565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61078e611230565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081290612aaa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108de611230565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290612aaa565b60405180910390fd5b6009600a61097991906129d5565b631908b1006109889190612a1f565b600f819055506009600a61099c91906129d5565b631908b1006109ab9190612a1f565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109f991906129d5565b631908b100610a089190612a1f565b604051610a159190612586565b60405180910390a1565b600f5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b610a5a611230565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade90612aaa565b60405180910390fd5b8160098190555080600a819055505050565b60606040518060400160405280600481526020017f5649415400000000000000000000000000000000000000000000000000000000815250905090565b5f610b49610b42611230565b84846113fa565b6001905092915050565b60115481565b610b61611230565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be590612aaa565b60405180910390fd5b5f5f90505b8151811015610c7857600160045f848481518110610c1457610c13612ac8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610bf3565b5050565b60065f9054906101000a900460ff1681565b610c96611230565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90612aaa565b60405180910390fd5b60148054906101000a900460ff1615610d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6890612b3f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e0d3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610df991906129d5565b631908b100610e089190612a1f565b611237565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9b9190612b71565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f459190612b71565b6040518363ffffffff1660e01b8152600401610f62929190612b9c565b6020604051808303815f875af1158015610f7e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa29190612b71565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102930610740565b5f5f611033610a25565b426040518863ffffffff1660e01b815260040161105596959493929190612c05565b60606040518083038185885af1158015611071573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110969190612c78565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611136929190612cc8565b6020604051808303815f875af1158015611152573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111769190612d19565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90612db4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90612e42565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113ed9190612586565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90612ed0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90612f5e565b60405180910390fd5b5f8111611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f90612fec565b60405180910390fd5b5f5f9050611524610a25565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115925750611562610a25565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bcc5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611635575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61163d575f5ffd5b60065f9054906101000a900460ff16156117c35760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116fb575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c2574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061177f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117769061307a565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561186c575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118bf575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561199857600f54821115611909576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611900906130e2565b60405180910390fd5b6010548261191685610740565b6119209190613100565b1115611961576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119589061317d565b60405180910390fd5b600d54600e54101561198057611976836121ce565b1561197f575f5ffd5b5b600e5f8154809291906119929061319b565b91905055505b6119d460646119c6600b54600e54116119b3576007546119b7565b6009545b856121df90919063ffffffff16565b61225690919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a5e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ae757600f54821115611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f906130e2565b60405180910390fd5b611ae46064611ad6600c54600e5411611ac357600854611ac7565b600a545b856121df90919063ffffffff16565b61225690919063ffffffff16565b90505b5f611af130610740565b9050601460159054906101000a900460ff16158015611b5c575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b745750601460169054906101000a900460ff165b8015611b81575060115481115b8015611b905750600d54600e54115b15611bca57611bb2611bad84611ba88460125461229f565b61229f565b611ede565b5f4790505f811115611bc857611bc747612165565b5b505b505b5f811115611ccb57611c248160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc29190612586565b60405180910390a35b611d1b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dbe611d72828461231490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e61848661231490919063ffffffff16565b604051611e6e9190612586565b60405180910390a350505050565b5f838311158290611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba9190612448565b60405180910390fd5b505f8385611ed191906131e2565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121485760148054906101000a900460ff1615612148575f600267ffffffffffffffff811115611f3057611f2f6126b8565b5b604051908082528060200260200182016040528015611f5e5781602001602082028036833780820191505090505b50905030815f81518110611f7557611f74612ac8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612019573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061203d9190612b71565b8160018151811061205157612050612ac8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b73060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611237565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121199594939291906132cc565b5f604051808303815f87803b158015612130575f5ffd5b505af1158015612142573d5f5f3e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121ca573d5f5f3e3d5ffd5b5050565b5f5f823b90505f8111915050919050565b5f5f83036121ef575f9050612250565b5f82846121fc9190612a1f565b905082848261220b9190613351565b1461224b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612242906133f1565b60405180910390fd5b809150505b92915050565b5f61229783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061235d565b905092915050565b5f8183116122ad57826122af565b815b905092915050565b5f5f82846122c59190613100565b90508381101561230a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230190613459565b60405180910390fd5b8091505092915050565b5f61235583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e7c565b905092915050565b5f5f831182906123a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239a9190612448565b60405180910390fd5b505f83856123b19190613351565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123f55780820151818401526020810190506123da565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61241a826123be565b61242481856123c8565b93506124348185602086016123d8565b61243d81612400565b840191505092915050565b5f6020820190508181035f8301526124608184612410565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124a282612479565b9050919050565b6124b281612498565b81146124bc575f5ffd5b50565b5f813590506124cd816124a9565b92915050565b5f819050919050565b6124e5816124d3565b81146124ef575f5ffd5b50565b5f81359050612500816124dc565b92915050565b5f5f6040838503121561251c5761251b612471565b5b5f612529858286016124bf565b925050602061253a858286016124f2565b9150509250929050565b5f8115159050919050565b61255881612544565b82525050565b5f6020820190506125715f83018461254f565b92915050565b612580816124d3565b82525050565b5f6020820190506125995f830184612577565b92915050565b5f5f5f606084860312156125b6576125b5612471565b5b5f6125c3868287016124bf565b93505060206125d4868287016124bf565b92505060406125e5868287016124f2565b9150509250925092565b5f60ff82169050919050565b612604816125ef565b82525050565b5f60208201905061261d5f8301846125fb565b92915050565b5f6020828403121561263857612637612471565b5b5f612645848285016124bf565b91505092915050565b61265781612498565b82525050565b5f6020820190506126705f83018461264e565b92915050565b5f5f6040838503121561268c5761268b612471565b5b5f612699858286016124f2565b92505060206126aa858286016124f2565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126ee82612400565b810181811067ffffffffffffffff8211171561270d5761270c6126b8565b5b80604052505050565b5f61271f612468565b905061272b82826126e5565b919050565b5f67ffffffffffffffff82111561274a576127496126b8565b5b602082029050602081019050919050565b5f5ffd5b5f61277161276c84612730565b612716565b905080838252602082019050602084028301858111156127945761279361275b565b5b835b818110156127bd57806127a988826124bf565b845260208401935050602081019050612796565b5050509392505050565b5f82601f8301126127db576127da6126b4565b5b81356127eb84826020860161275f565b91505092915050565b5f6020828403121561280957612808612471565b5b5f82013567ffffffffffffffff81111561282657612825612475565b5b612832848285016127c7565b91505092915050565b5f5f6040838503121561285157612850612471565b5b5f61285e858286016124bf565b925050602061286f858286016124bf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156128fb578086048111156128d7576128d6612879565b5b60018516156128e65780820291505b80810290506128f4856128a6565b94506128bb565b94509492505050565b5f8261291357600190506129ce565b81612920575f90506129ce565b816001811461293657600281146129405761296f565b60019150506129ce565b60ff84111561295257612951612879565b5b8360020a91508482111561296957612968612879565b5b506129ce565b5060208310610133831016604e8410600b84101617156129a45782820a90508381111561299f5761299e612879565b5b6129ce565b6129b184848460016128b2565b925090508184048111156129c8576129c7612879565b5b81810290505b9392505050565b5f6129df826124d3565b91506129ea836125ef565b9250612a177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612904565b905092915050565b5f612a29826124d3565b9150612a34836124d3565b9250828202612a42816124d3565b91508282048414831517612a5957612a58612879565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a946020836123c8565b9150612a9f82612a60565b602082019050919050565b5f6020820190508181035f830152612ac181612a88565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b296017836123c8565b9150612b3482612af5565b602082019050919050565b5f6020820190508181035f830152612b5681612b1d565b9050919050565b5f81519050612b6b816124a9565b92915050565b5f60208284031215612b8657612b85612471565b5b5f612b9384828501612b5d565b91505092915050565b5f604082019050612baf5f83018561264e565b612bbc602083018461264e565b9392505050565b5f819050919050565b5f819050919050565b5f612bef612bea612be584612bc3565b612bcc565b6124d3565b9050919050565b612bff81612bd5565b82525050565b5f60c082019050612c185f83018961264e565b612c256020830188612577565b612c326040830187612bf6565b612c3f6060830186612bf6565b612c4c608083018561264e565b612c5960a0830184612577565b979650505050505050565b5f81519050612c72816124dc565b92915050565b5f5f5f60608486031215612c8f57612c8e612471565b5b5f612c9c86828701612c64565b9350506020612cad86828701612c64565b9250506040612cbe86828701612c64565b9150509250925092565b5f604082019050612cdb5f83018561264e565b612ce86020830184612577565b9392505050565b612cf881612544565b8114612d02575f5ffd5b50565b5f81519050612d1381612cef565b92915050565b5f60208284031215612d2e57612d2d612471565b5b5f612d3b84828501612d05565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d9e6024836123c8565b9150612da982612d44565b604082019050919050565b5f6020820190508181035f830152612dcb81612d92565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e2c6022836123c8565b9150612e3782612dd2565b604082019050919050565b5f6020820190508181035f830152612e5981612e20565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612eba6025836123c8565b9150612ec582612e60565b604082019050919050565b5f6020820190508181035f830152612ee781612eae565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f486023836123c8565b9150612f5382612eee565b604082019050919050565b5f6020820190508181035f830152612f7581612f3c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612fd66029836123c8565b9150612fe182612f7c565b604082019050919050565b5f6020820190508181035f83015261300381612fca565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6130646024836123c8565b915061306f8261300a565b604082019050919050565b5f6020820190508181035f83015261309181613058565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130cc6019836123c8565b91506130d782613098565b602082019050919050565b5f6020820190508181035f8301526130f9816130c0565b9050919050565b5f61310a826124d3565b9150613115836124d3565b925082820190508082111561312d5761312c612879565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613167601a836123c8565b915061317282613133565b602082019050919050565b5f6020820190508181035f8301526131948161315b565b9050919050565b5f6131a5826124d3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131d7576131d6612879565b5b600182019050919050565b5f6131ec826124d3565b91506131f7836124d3565b925082820390508181111561320f5761320e612879565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61324781612498565b82525050565b5f613258838361323e565b60208301905092915050565b5f602082019050919050565b5f61327a82613215565b613284818561321f565b935061328f8361322f565b805f5b838110156132bf5781516132a6888261324d565b97506132b183613264565b925050600181019050613292565b5085935050505092915050565b5f60a0820190506132df5f830188612577565b6132ec6020830187612bf6565b81810360408301526132fe8186613270565b905061330d606083018561264e565b61331a6080830184612577565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61335b826124d3565b9150613366836124d3565b92508261337657613375613324565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133db6021836123c8565b91506133e682613381565b604082019050919050565b5f6020820190508181035f830152613408816133cf565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613443601b836123c8565b915061344e8261340f565b602082019050919050565b5f6020820190508181035f83015261347081613437565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b850df8abb241930312f4c0008b97b8df8c30d68b033a423ca39e951560b361d64736f6c634300081c0033
Deployed Bytecode
0x608060405260043610610138575f3560e01c80637d1db4a5116100aa578063a9059cbb1161006e578063a9059cbb146103ed578063bf474bed14610429578063c131019414610453578063c876d0b91461047b578063c9567bf9146104a5578063dd62ed3e146104bb5761013f565b80637d1db4a51461031d5780638da5cb5b146103475780638f9a55c014610371578063910d9c3e1461039b57806395d89b41146103c35761013f565b8063313ce567116100fc578063313ce567146102395780633bbac5791461026357806351bc3c851461029f57806370a08231146102b5578063715018a6146102f1578063751039fc146103075761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d357806323b872dd146101fd5761013f565b3661013f57005b5f5ffd5b34801561014e575f5ffd5b506101576104f7565b6040516101649190612448565b60405180910390f35b348015610178575f5ffd5b50610193600480360381019061018e9190612506565b610534565b6040516101a0919061255e565b60405180910390f35b3480156101b4575f5ffd5b506101bd610551565b6040516101ca9190612586565b60405180910390f35b3480156101de575f5ffd5b506101e7610557565b6040516101f49190612586565b60405180910390f35b348015610208575f5ffd5b50610223600480360381019061021e919061259f565b61057a565b604051610230919061255e565b60405180910390f35b348015610244575f5ffd5b5061024d61064e565b60405161025a919061260a565b60405180910390f35b34801561026e575f5ffd5b5061028960048036038101906102849190612623565b610656565b604051610296919061255e565b60405180910390f35b3480156102aa575f5ffd5b506102b36106a8565b005b3480156102c0575f5ffd5b506102db60048036038101906102d69190612623565b610740565b6040516102e89190612586565b60405180910390f35b3480156102fc575f5ffd5b50610305610786565b005b348015610312575f5ffd5b5061031b6108d6565b005b348015610328575f5ffd5b50610331610a1f565b60405161033e9190612586565b60405180910390f35b348015610352575f5ffd5b5061035b610a25565b604051610368919061265d565b60405180910390f35b34801561037c575f5ffd5b50610385610a4c565b6040516103929190612586565b60405180910390f35b3480156103a6575f5ffd5b506103c160048036038101906103bc9190612676565b610a52565b005b3480156103ce575f5ffd5b506103d7610af9565b6040516103e49190612448565b60405180910390f35b3480156103f8575f5ffd5b50610413600480360381019061040e9190612506565b610b36565b604051610420919061255e565b60405180910390f35b348015610434575f5ffd5b5061043d610b53565b60405161044a9190612586565b60405180910390f35b34801561045e575f5ffd5b50610479600480360381019061047491906127f4565b610b59565b005b348015610486575f5ffd5b5061048f610c7c565b60405161049c919061255e565b60405180910390f35b3480156104b0575f5ffd5b506104b9610c8e565b005b3480156104c6575f5ffd5b506104e160048036038101906104dc919061283b565b6111ae565b6040516104ee9190612586565b60405180910390f35b60606040518060400160405280600981526020017f53656e7469766174650000000000000000000000000000000000000000000000815250905090565b5f610547610540611230565b8484611237565b6001905092915050565b60125481565b5f6009600a61056691906129d5565b631908b1006105759190612a1f565b905090565b5f6105868484846113fa565b61064384610592611230565b61063e856040518060600160405280602881526020016134786028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f5611230565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611e7c9092919063ffffffff16565b611237565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106e9611230565b73ffffffffffffffffffffffffffffffffffffffff1614610708575f5ffd5b5f61071230610740565b90505f8111156107265761072581611ede565b5b5f4790505f81111561073c5761073b81612165565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61078e611230565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081290612aaa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f5f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108de611230565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461096b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096290612aaa565b60405180910390fd5b6009600a61097991906129d5565b631908b1006109889190612a1f565b600f819055506009600a61099c91906129d5565b631908b1006109ab9190612a1f565b6010819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109f991906129d5565b631908b100610a089190612a1f565b604051610a159190612586565b60405180910390a1565b600f5481565b5f5f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b610a5a611230565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ade90612aaa565b60405180910390fd5b8160098190555080600a819055505050565b60606040518060400160405280600481526020017f5649415400000000000000000000000000000000000000000000000000000000815250905090565b5f610b49610b42611230565b84846113fa565b6001905092915050565b60115481565b610b61611230565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be590612aaa565b60405180910390fd5b5f5f90505b8151811015610c7857600160045f848481518110610c1457610c13612ac8565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610bf3565b5050565b60065f9054906101000a900460ff1681565b610c96611230565b73ffffffffffffffffffffffffffffffffffffffff165f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1a90612aaa565b60405180910390fd5b60148054906101000a900460ff1615610d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6890612b3f565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610e0d3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a610df991906129d5565b631908b100610e089190612a1f565b611237565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e77573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e9b9190612b71565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f459190612b71565b6040518363ffffffff1660e01b8152600401610f62929190612b9c565b6020604051808303815f875af1158015610f7e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa29190612b71565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061102930610740565b5f5f611033610a25565b426040518863ffffffff1660e01b815260040161105596959493929190612c05565b60606040518083038185885af1158015611071573d5f5f3e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906110969190612c78565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611136929190612cc8565b6020604051808303815f875af1158015611152573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111769190612d19565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129c90612db4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90612e42565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113ed9190612586565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145f90612ed0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cd90612f5e565b60405180910390fd5b5f8111611518576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150f90612fec565b60405180910390fd5b5f5f9050611524610a25565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115925750611562610a25565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611bcc5760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611635575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61163d575f5ffd5b60065f9054906101000a900460ff16156117c35760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156116fb575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156117c2574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061177f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117769061307a565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561186c575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118bf575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561199857600f54821115611909576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611900906130e2565b60405180910390fd5b6010548261191685610740565b6119209190613100565b1115611961576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119589061317d565b60405180910390fd5b600d54600e54101561198057611976836121ce565b1561197f575f5ffd5b5b600e5f8154809291906119929061319b565b91905055505b6119d460646119c6600b54600e54116119b3576007546119b7565b6009545b856121df90919063ffffffff16565b61225690919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611a5e57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611ae757600f54821115611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f906130e2565b60405180910390fd5b611ae46064611ad6600c54600e5411611ac357600854611ac7565b600a545b856121df90919063ffffffff16565b61225690919063ffffffff16565b90505b5f611af130610740565b9050601460159054906101000a900460ff16158015611b5c575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611b745750601460169054906101000a900460ff165b8015611b81575060115481115b8015611b905750600d54600e54115b15611bca57611bb2611bad84611ba88460125461229f565b61229f565b611ede565b5f4790505f811115611bc857611bc747612165565b5b505b505b5f811115611ccb57611c248160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b790919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611cc29190612586565b60405180910390a35b611d1b8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461231490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dbe611d72828461231490919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122b790919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e61848661231490919063ffffffff16565b604051611e6e9190612586565b60405180910390a350505050565b5f838311158290611ec3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eba9190612448565b60405180910390fd5b505f8385611ed191906131e2565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f8103156121485760148054906101000a900460ff1615612148575f600267ffffffffffffffff811115611f3057611f2f6126b8565b5b604051908082528060200260200182016040528015611f5e5781602001602082028036833780820191505090505b50905030815f81518110611f7557611f74612ac8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612019573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061203d9190612b71565b8160018151811061205157612050612ac8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506120b73060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611237565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121199594939291906132cc565b5f604051808303815f87803b158015612130575f5ffd5b505af1158015612142573d5f5f3e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156121ca573d5f5f3e3d5ffd5b5050565b5f5f823b90505f8111915050919050565b5f5f83036121ef575f9050612250565b5f82846121fc9190612a1f565b905082848261220b9190613351565b1461224b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612242906133f1565b60405180910390fd5b809150505b92915050565b5f61229783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061235d565b905092915050565b5f8183116122ad57826122af565b815b905092915050565b5f5f82846122c59190613100565b90508381101561230a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230190613459565b60405180910390fd5b8091505092915050565b5f61235583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e7c565b905092915050565b5f5f831182906123a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239a9190612448565b60405180910390fd5b505f83856123b19190613351565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123f55780820151818401526020810190506123da565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61241a826123be565b61242481856123c8565b93506124348185602086016123d8565b61243d81612400565b840191505092915050565b5f6020820190508181035f8301526124608184612410565b905092915050565b5f604051905090565b5f5ffd5b5f5ffd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6124a282612479565b9050919050565b6124b281612498565b81146124bc575f5ffd5b50565b5f813590506124cd816124a9565b92915050565b5f819050919050565b6124e5816124d3565b81146124ef575f5ffd5b50565b5f81359050612500816124dc565b92915050565b5f5f6040838503121561251c5761251b612471565b5b5f612529858286016124bf565b925050602061253a858286016124f2565b9150509250929050565b5f8115159050919050565b61255881612544565b82525050565b5f6020820190506125715f83018461254f565b92915050565b612580816124d3565b82525050565b5f6020820190506125995f830184612577565b92915050565b5f5f5f606084860312156125b6576125b5612471565b5b5f6125c3868287016124bf565b93505060206125d4868287016124bf565b92505060406125e5868287016124f2565b9150509250925092565b5f60ff82169050919050565b612604816125ef565b82525050565b5f60208201905061261d5f8301846125fb565b92915050565b5f6020828403121561263857612637612471565b5b5f612645848285016124bf565b91505092915050565b61265781612498565b82525050565b5f6020820190506126705f83018461264e565b92915050565b5f5f6040838503121561268c5761268b612471565b5b5f612699858286016124f2565b92505060206126aa858286016124f2565b9150509250929050565b5f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6126ee82612400565b810181811067ffffffffffffffff8211171561270d5761270c6126b8565b5b80604052505050565b5f61271f612468565b905061272b82826126e5565b919050565b5f67ffffffffffffffff82111561274a576127496126b8565b5b602082029050602081019050919050565b5f5ffd5b5f61277161276c84612730565b612716565b905080838252602082019050602084028301858111156127945761279361275b565b5b835b818110156127bd57806127a988826124bf565b845260208401935050602081019050612796565b5050509392505050565b5f82601f8301126127db576127da6126b4565b5b81356127eb84826020860161275f565b91505092915050565b5f6020828403121561280957612808612471565b5b5f82013567ffffffffffffffff81111561282657612825612475565b5b612832848285016127c7565b91505092915050565b5f5f6040838503121561285157612850612471565b5b5f61285e858286016124bf565b925050602061286f858286016124bf565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f5f8291508390505b60018511156128fb578086048111156128d7576128d6612879565b5b60018516156128e65780820291505b80810290506128f4856128a6565b94506128bb565b94509492505050565b5f8261291357600190506129ce565b81612920575f90506129ce565b816001811461293657600281146129405761296f565b60019150506129ce565b60ff84111561295257612951612879565b5b8360020a91508482111561296957612968612879565b5b506129ce565b5060208310610133831016604e8410600b84101617156129a45782820a90508381111561299f5761299e612879565b5b6129ce565b6129b184848460016128b2565b925090508184048111156129c8576129c7612879565b5b81810290505b9392505050565b5f6129df826124d3565b91506129ea836125ef565b9250612a177fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612904565b905092915050565b5f612a29826124d3565b9150612a34836124d3565b9250828202612a42816124d3565b91508282048414831517612a5957612a58612879565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a946020836123c8565b9150612a9f82612a60565b602082019050919050565b5f6020820190508181035f830152612ac181612a88565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f612b296017836123c8565b9150612b3482612af5565b602082019050919050565b5f6020820190508181035f830152612b5681612b1d565b9050919050565b5f81519050612b6b816124a9565b92915050565b5f60208284031215612b8657612b85612471565b5b5f612b9384828501612b5d565b91505092915050565b5f604082019050612baf5f83018561264e565b612bbc602083018461264e565b9392505050565b5f819050919050565b5f819050919050565b5f612bef612bea612be584612bc3565b612bcc565b6124d3565b9050919050565b612bff81612bd5565b82525050565b5f60c082019050612c185f83018961264e565b612c256020830188612577565b612c326040830187612bf6565b612c3f6060830186612bf6565b612c4c608083018561264e565b612c5960a0830184612577565b979650505050505050565b5f81519050612c72816124dc565b92915050565b5f5f5f60608486031215612c8f57612c8e612471565b5b5f612c9c86828701612c64565b9350506020612cad86828701612c64565b9250506040612cbe86828701612c64565b9150509250925092565b5f604082019050612cdb5f83018561264e565b612ce86020830184612577565b9392505050565b612cf881612544565b8114612d02575f5ffd5b50565b5f81519050612d1381612cef565b92915050565b5f60208284031215612d2e57612d2d612471565b5b5f612d3b84828501612d05565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612d9e6024836123c8565b9150612da982612d44565b604082019050919050565b5f6020820190508181035f830152612dcb81612d92565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612e2c6022836123c8565b9150612e3782612dd2565b604082019050919050565b5f6020820190508181035f830152612e5981612e20565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612eba6025836123c8565b9150612ec582612e60565b604082019050919050565b5f6020820190508181035f830152612ee781612eae565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612f486023836123c8565b9150612f5382612eee565b604082019050919050565b5f6020820190508181035f830152612f7581612f3c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612fd66029836123c8565b9150612fe182612f7c565b604082019050919050565b5f6020820190508181035f83015261300381612fca565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f6130646024836123c8565b915061306f8261300a565b604082019050919050565b5f6020820190508181035f83015261309181613058565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f6130cc6019836123c8565b91506130d782613098565b602082019050919050565b5f6020820190508181035f8301526130f9816130c0565b9050919050565b5f61310a826124d3565b9150613115836124d3565b925082820190508082111561312d5761312c612879565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f613167601a836123c8565b915061317282613133565b602082019050919050565b5f6020820190508181035f8301526131948161315b565b9050919050565b5f6131a5826124d3565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036131d7576131d6612879565b5b600182019050919050565b5f6131ec826124d3565b91506131f7836124d3565b925082820390508181111561320f5761320e612879565b5b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61324781612498565b82525050565b5f613258838361323e565b60208301905092915050565b5f602082019050919050565b5f61327a82613215565b613284818561321f565b935061328f8361322f565b805f5b838110156132bf5781516132a6888261324d565b97506132b183613264565b925050600181019050613292565b5085935050505092915050565b5f60a0820190506132df5f830188612577565b6132ec6020830187612bf6565b81810360408301526132fe8186613270565b905061330d606083018561264e565b61331a6080830184612577565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61335b826124d3565b9150613366836124d3565b92508261337657613375613324565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133db6021836123c8565b91506133e682613381565b604082019050919050565b5f6020820190508181035f830152613408816133cf565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613443601b836123c8565b915061344e8261340f565b602082019050919050565b5f6020820190508181035f83015261347081613437565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b850df8abb241930312f4c0008b97b8df8c30d68b033a423ca39e951560b361d64736f6c634300081c0033
Deployed Bytecode Sourcemap
4119:8721:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6037:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6870:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5313:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6314:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7039:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6223:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12469:348;;;;;;;;;;;;;:::i;:::-;;6417:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3200:148;;;;;;;;;;;;;:::i;:::-;;10860:196;;;;;;;;;;;;;:::i;:::-;;5130:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2986:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5192:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11421:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6128:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6544:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5255:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11255:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4505:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11550:671;;;;;;;;;;;;;:::i;:::-;;6719:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6037:83;6074:13;6107:5;;;;;;;;;;;;;;;;;6100:12;;6037:83;:::o;6870:161::-;6945:4;6962:39;6971:12;:10;:12::i;:::-;6985:7;6994:6;6962:8;:39::i;:::-;7019:4;7012:11;;6870:161;;;;:::o;5313:51::-;;;;:::o;6314:95::-;6367:7;4944:1;4999:2;:13;;;;:::i;:::-;4987:9;:25;;;;:::i;:::-;6387:14;;6314:95;:::o;7039:313::-;7137:4;7154:36;7164:6;7172:9;7183:6;7154:9;:36::i;:::-;7201:121;7210:6;7218:12;:10;:12::i;:::-;7232:89;7270:6;7232:89;;;;;;;;;;;;;;;;;:11;:19;7244:6;7232:19;;;;;;;;;;;;;;;:33;7252:12;:10;:12::i;:::-;7232:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7201:8;:121::i;:::-;7340:4;7333:11;;7039:313;;;;;:::o;6223:83::-;6264:5;4944:1;6282:16;;6223:83;:::o;11164:::-;11211:4;11232;:7;11237:1;11232:7;;;;;;;;;;;;;;;;;;;;;;;;;11225:14;;11164:83;;;:::o;12469:348::-;12533:10;;;;;;;;;;;12519:24;;:12;:10;:12::i;:::-;:24;;;12511:33;;;;;;12555:20;12576:24;12594:4;12576:9;:24::i;:::-;12555:45;;12627:1;12614:12;:14;12611:73;;;12642:30;12659:12;12642:16;:30::i;:::-;12611:73;12694:18;12713:21;12694:40;;12759:1;12748:10;:12;12745:65;;;12774:24;12787:10;12774:12;:24::i;:::-;12745:65;12500:317;;12469:348::o;6417:119::-;6483:7;6510:9;:18;6520:7;6510:18;;;;;;;;;;;;;;;;6503:25;;6417:119;;;:::o;3200:148::-;3123:12;:10;:12::i;:::-;3113:22;;:6;;;;;;;;;;;:22;;;3105:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3307:1:::1;3270:40;;3291:6;;;;;;;;;;;3270:40;;;;;;;;;;;;3338:1;3321:6;;:19;;;;;;;;;;;;;;;;;;3200:148::o:0;10860:196::-;3123:12;:10;:12::i;:::-;3113:22;;:6;;;;;;;;;;;:22;;;3105:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4944:1:::1;4999:2;:13;;;;:::i;:::-;4987:9;:25;;;;:::i;:::-;10913:12;:22;;;;4944:1;4999:2;:13;;;;:::i;:::-;4987:9;:25;;;;:::i;:::-;10946:14;:22;;;;11000:5;10979:20;;:26;;;;;;;;;;;;;;;;;;11021:27;4944:1;4999:2;:13;;;;:::i;:::-;4987:9;:25;;;;:::i;:::-;11021:27;;;;;;:::i;:::-;;;;;;;;10860:196::o:0;5130:55::-;;;;:::o;2986:79::-;3024:7;3051:6;;;;;;;;;;;3044:13;;2986:79;:::o;5192:56::-;;;;:::o;11421:119::-;3123:12;:10;:12::i;:::-;3113:22;;:6;;;;;;;;;;;:22;;;3105:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11501:3:::1;11488:12;:16;;;;11529:3;11515:13;:17;;;;11421:119:::0;;:::o;6128:87::-;6167:13;6200:7;;;;;;;;;;;;;;;;;6193:14;;6128:87;:::o;6544:167::-;6622:4;6639:42;6649:12;:10;:12::i;:::-;6663:9;6674:6;6639:9;:42::i;:::-;6699:4;6692:11;;6544:167;;;;:::o;5255:51::-;;;;:::o;11255:158::-;3123:12;:10;:12::i;:::-;3113:22;;:6;;;;;;;;;;;:22;;;3105:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11325:6:::1;11334:1;11325:10;;11320:86;11341:4;:11;11337:1;:15;11320:86;;;11390:4;11374;:13;11379:4;11384:1;11379:7;;;;;;;;:::i;:::-;;;;;;;;11374:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11354:3;;;;;;;11320:86;;;;11255:158:::0;:::o;4505:40::-;;;;;;;;;;;;;:::o;11550:671::-;3123:12;:10;:12::i;:::-;3113:22;;:6;;;;;;;;;;;:22;;;3105:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11614:11:::1;::::0;::::1;;;;;;;;11613:12;11605:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11700:42;11663:15;;:80;;;;;;;;;;;;;;;;;;11754:58;11771:4;11786:15;;;;;;;;;;;4944:1;4999:2;:13;;;;:::i;:::-;4987:9;:25;;;;:::i;:::-;11754:8;:58::i;:::-;11857:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11839:55;;;11903:4;11910:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11839:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11823:13;;:110;;;;;;;;;;;;;;;;;;11944:15;;;;;;;;;;;:31;;;11983:21;12014:4;12020:24;12038:4;12020:9;:24::i;:::-;12045:1;12047;12049:7;:5;:7::i;:::-;12057:15;11944:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12091:13;;;;;;;;;;;12084:29;;;12122:15;;;;;;;;;;;12140:14;12084:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12180:4;12166:11;;:18;;;;;;;;;;;;;;;;;;12209:4;12195:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11550:671::o:0;6719:143::-;6800:7;6827:11;:18;6839:5;6827:18;;;;;;;;;;;;;;;:27;6846:7;6827:27;;;;;;;;;;;;;;;;6820:34;;6719:143;;;;:::o;741:98::-;794:7;821:10;814:17;;741:98;:::o;7360:335::-;7470:1;7453:19;;:5;:19;;;7445:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7551:1;7532:21;;:7;:21;;;7524:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7633:6;7603:11;:18;7615:5;7603:18;;;;;;;;;;;;;;;:27;7622:7;7603:27;;;;;;;;;;;;;;;:36;;;;7671:7;7655:32;;7664:5;7655:32;;;7680:6;7655:32;;;;;;:::i;:::-;;;;;;;;7360:335;;;:::o;7703:2478::-;7807:1;7791:18;;:4;:18;;;7783:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7884:1;7870:16;;:2;:16;;;7862:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7954:1;7945:6;:10;7937:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8012:17;8030:1;8012:19;;8054:7;:5;:7::i;:::-;8046:15;;:4;:15;;;;:32;;;;;8071:7;:5;:7::i;:::-;8065:13;;:2;:13;;;;8046:32;8042:1783;;;8104:4;:10;8109:4;8104:10;;;;;;;;;;;;;;;;;;;;;;;;;8103:11;:24;;;;;8119:4;:8;8124:2;8119:8;;;;;;;;;;;;;;;;;;;;;;;;;8118:9;8103:24;8095:33;;;;;;8149:20;;;;;;;;;;;8145:346;;;8208:15;;;;;;;;;;;8194:30;;:2;:30;;;;:62;;;;;8242:13;;;;;;;;;;;8228:28;;:2;:28;;;;8194:62;8190:286;;;8329:12;8287:28;:39;8316:9;8287:39;;;;;;;;;;;;;;;;:54;8279:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;8444:12;8402:28;:39;8431:9;8402:39;;;;;;;;;;;;;;;:54;;;;8190:286;8145:346;8519:13;;;;;;;;;;;8511:21;;:4;:21;;;:55;;;;;8550:15;;;;;;;;;;;8536:30;;:2;:30;;;;8511:55;:83;;;;;8572:18;:22;8591:2;8572:22;;;;;;;;;;;;;;;;;;;;;;;;;8570:24;8511:83;8507:428;;;8634:12;;8624:6;:22;;8616:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8729:14;;8719:6;8703:13;8713:2;8703:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8695:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8806:18;;8796:9;;:28;8793:97;;;8855:14;8866:2;8855:10;:14::i;:::-;8854:15;8846:24;;;;;;8793:97;8908:9;;:11;;;;;;;;;:::i;:::-;;;;;;8507:428;8965:76;9037:3;8965:67;8987:15;;8977:9;;:25;8976:55;;9017:14;;8976:55;;;9004:12;;8976:55;8965:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8953:88;;9065:13;;;;;;;;;;;9059:19;;:2;:19;;;:43;;;;;9097:4;9082:20;;:4;:20;;;;9059:43;9056:253;;;9141:12;;9131:6;:22;;9123:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9214:79;9289:3;9214:70;9236:16;;9226:9;;:26;9225:58;;9268:15;;9225:58;;;9254:13;;9225:58;9214:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9202:91;;9056:253;9325:28;9356:24;9374:4;9356:9;:24::i;:::-;9325:55;;9400:6;;;;;;;;;;;9399:7;:30;;;;;9416:13;;;;;;;;;;;9410:19;;:2;:19;;;9399:30;:45;;;;;9433:11;;;;;;;;;;;9399:45;:87;;;;;9469:17;;9448:20;:38;9399:87;:119;;;;;9500:18;;9490:9;;:28;9399:119;9395:419;;;9539:67;9556:49;9560:6;9567:37;9571:20;9592:11;;9567:3;:37::i;:::-;9556:3;:49::i;:::-;9539:16;:67::i;:::-;9625:26;9654:21;9625:50;;9718:1;9697:18;:22;9694:105;;;9744:35;9757:21;9744:12;:35::i;:::-;9694:105;9520:294;9395:419;8080:1745;8042:1783;9850:1;9840:9;:11;9837:161;;;9890:39;9919:9;9890;:24;9908:4;9890:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9865:9;:24;9883:4;9865:24;;;;;;;;;;;;;;;:64;;;;9970:4;9947:39;;9956:4;9947:39;;;9976:9;9947:39;;;;;;:::i;:::-;;;;;;;;9837:161;10024:27;10044:6;10024:9;:15;10034:4;10024:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10008:9;:15;10018:4;10008:15;;;;;;;;;;;;;;;:43;;;;10076:40;10094:21;10105:9;10094:6;:10;;:21;;;;:::i;:::-;10076:9;:13;10086:2;10076:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10062:9;:13;10072:2;10062:13;;;;;;;;;;;;;;;:54;;;;10147:2;10132:41;;10141:4;10132:41;;;10151:21;10162:9;10151:6;:10;;:21;;;;:::i;:::-;10132:41;;;;;;:::i;:::-;;;;;;;;7772:2409;7703:2478;;;:::o;1878:190::-;1964:7;1997:1;1992;:6;;2000:12;1984:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2024:9;2040:1;2036;:5;;;;:::i;:::-;2024:17;;2059:1;2052:8;;;1878:190;;;;;:::o;10297:555::-;5655:4;5646:6;;:13;;;;;;;;;;;;;;;;;;10391:1:::1;10378:11;:14:::0;10375:27;10394:7:::1;10375:27;10416:11;::::0;::::1;;;;;;;;10412:25:::0;10429:7:::1;10412:25;10447:21;10485:1;10471:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10447:40;;10516:4;10498;10503:1;10498:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10542:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10532:4;10537:1;10532:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10575:62;10592:4;10607:15;;;;;;;;;;;10625:11;10575:8;:62::i;:::-;10648:15;;;;;;;;;;;:66;;;10729:11;10755:1;10771:4;10798;10818:15;10648:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10364:488;5670:1;5691:5:::0;5682:6;;:14;;;;;;;;;;;;;;;;;;10297:555;:::o;11064:92::-;11121:10;;;;;;;;;;;:19;;:27;11141:6;11121:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11064:92;:::o;12266:195::-;12325:4;12342:12;12409:7;12397:20;12389:28;;12452:1;12445:4;:8;12438:15;;;12266:195;;;:::o;2076:246::-;2134:7;2163:1;2158;:6;2154:47;;2188:1;2181:8;;;;2154:47;2211:9;2227:1;2223;:5;;;;:::i;:::-;2211:17;;2256:1;2251;2247;:5;;;;:::i;:::-;:10;2239:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2313:1;2306:8;;;2076:246;;;;;:::o;2330:132::-;2388:7;2415:39;2419:1;2422;2415:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2408:46;;2330:132;;;;:::o;10191:98::-;10248:7;10275:1;10273;:3;10272:9;;10280:1;10272:9;;;10278:1;10272:9;10265:16;;10191:98;;;;:::o;1547:179::-;1605:7;1625:9;1641:1;1637;:5;;;;:::i;:::-;1625:17;;1666:1;1661;:6;;1653:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1717:1;1710:8;;;1547:179;;;;:::o;1734:136::-;1792:7;1819:43;1823:1;1826;1819:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1812:50;;1734:136;;;;:::o;2470:189::-;2556:7;2588:1;2584;:5;2591:12;2576:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2615:9;2631:1;2627;:5;;;;:::i;:::-;2615:17;;2650:1;2643:8;;;2470:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:248::-;369:1;379:113;393:6;390:1;387:13;379:113;;;478:1;473:3;469:11;463:18;459:1;454:3;450:11;443:39;415:2;412:1;408:10;403:15;;379:113;;;526:1;517:6;512:3;508:16;501:27;349:186;287:248;;;:::o;541:102::-;582:6;633:2;629:7;624:2;617:5;613:14;609:28;599:38;;541:102;;;:::o;649:377::-;737:3;765:39;798:5;765:39;:::i;:::-;820:71;884:6;879:3;820:71;:::i;:::-;813:78;;900:65;958:6;953:3;946:4;939:5;935:16;900:65;:::i;:::-;990:29;1012:6;990:29;:::i;:::-;985:3;981:39;974:46;;741:285;649:377;;;;:::o;1032:313::-;1145:4;1183:2;1172:9;1168:18;1160:26;;1232:9;1226:4;1222:20;1218:1;1207:9;1203:17;1196:47;1260:78;1333:4;1324:6;1260:78;:::i;:::-;1252:86;;1032:313;;;;:::o;1351:75::-;1384:6;1417:2;1411:9;1401:19;;1351:75;:::o;1432:117::-;1541:1;1538;1531:12;1555:117;1664:1;1661;1654:12;1678:126;1715:7;1755:42;1748:5;1744:54;1733:65;;1678:126;;;:::o;1810:96::-;1847:7;1876:24;1894:5;1876:24;:::i;:::-;1865:35;;1810:96;;;:::o;1912:122::-;1985:24;2003:5;1985:24;:::i;:::-;1978:5;1975:35;1965:63;;2024:1;2021;2014:12;1965:63;1912:122;:::o;2040:139::-;2086:5;2124:6;2111:20;2102:29;;2140:33;2167:5;2140:33;:::i;:::-;2040:139;;;;:::o;2185:77::-;2222:7;2251:5;2240:16;;2185:77;;;:::o;2268:122::-;2341:24;2359:5;2341:24;:::i;:::-;2334:5;2331:35;2321:63;;2380:1;2377;2370:12;2321:63;2268:122;:::o;2396:139::-;2442:5;2480:6;2467:20;2458:29;;2496:33;2523:5;2496:33;:::i;:::-;2396:139;;;;:::o;2541:474::-;2609:6;2617;2666:2;2654:9;2645:7;2641:23;2637:32;2634:119;;;2672:79;;:::i;:::-;2634:119;2792:1;2817:53;2862:7;2853:6;2842:9;2838:22;2817:53;:::i;:::-;2807:63;;2763:117;2919:2;2945:53;2990:7;2981:6;2970:9;2966:22;2945:53;:::i;:::-;2935:63;;2890:118;2541:474;;;;;:::o;3021:90::-;3055:7;3098:5;3091:13;3084:21;3073:32;;3021:90;;;:::o;3117:109::-;3198:21;3213:5;3198:21;:::i;:::-;3193:3;3186:34;3117:109;;:::o;3232:210::-;3319:4;3357:2;3346:9;3342:18;3334:26;;3370:65;3432:1;3421:9;3417:17;3408:6;3370:65;:::i;:::-;3232:210;;;;:::o;3448:118::-;3535:24;3553:5;3535:24;:::i;:::-;3530:3;3523:37;3448:118;;:::o;3572:222::-;3665:4;3703:2;3692:9;3688:18;3680:26;;3716:71;3784:1;3773:9;3769:17;3760:6;3716:71;:::i;:::-;3572:222;;;;:::o;3800:619::-;3877:6;3885;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;4195:2;4221:53;4266:7;4257:6;4246:9;4242:22;4221:53;:::i;:::-;4211:63;;4166:118;4323:2;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4294:118;3800:619;;;;;:::o;4425:86::-;4460:7;4500:4;4493:5;4489:16;4478:27;;4425:86;;;:::o;4517:112::-;4600:22;4616:5;4600:22;:::i;:::-;4595:3;4588:35;4517:112;;:::o;4635:214::-;4724:4;4762:2;4751:9;4747:18;4739:26;;4775:67;4839:1;4828:9;4824:17;4815:6;4775:67;:::i;:::-;4635:214;;;;:::o;4855:329::-;4914:6;4963:2;4951:9;4942:7;4938:23;4934:32;4931:119;;;4969:79;;:::i;:::-;4931:119;5089:1;5114:53;5159:7;5150:6;5139:9;5135:22;5114:53;:::i;:::-;5104:63;;5060:117;4855:329;;;;:::o;5190:118::-;5277:24;5295:5;5277:24;:::i;:::-;5272:3;5265:37;5190:118;;:::o;5314:222::-;5407:4;5445:2;5434:9;5430:18;5422:26;;5458:71;5526:1;5515:9;5511:17;5502:6;5458:71;:::i;:::-;5314:222;;;;:::o;5542:474::-;5610:6;5618;5667:2;5655:9;5646:7;5642:23;5638:32;5635:119;;;5673:79;;:::i;:::-;5635:119;5793:1;5818:53;5863:7;5854:6;5843:9;5839:22;5818:53;:::i;:::-;5808:63;;5764:117;5920:2;5946:53;5991:7;5982:6;5971:9;5967:22;5946:53;:::i;:::-;5936:63;;5891:118;5542:474;;;;;:::o;6022:117::-;6131:1;6128;6121:12;6145:180;6193:77;6190:1;6183:88;6290:4;6287:1;6280:15;6314:4;6311:1;6304:15;6331:281;6414:27;6436:4;6414:27;:::i;:::-;6406:6;6402:40;6544:6;6532:10;6529:22;6508:18;6496:10;6493:34;6490:62;6487:88;;;6555:18;;:::i;:::-;6487:88;6595:10;6591:2;6584:22;6374:238;6331:281;;:::o;6618:129::-;6652:6;6679:20;;:::i;:::-;6669:30;;6708:33;6736:4;6728:6;6708:33;:::i;:::-;6618:129;;;:::o;6753:311::-;6830:4;6920:18;6912:6;6909:30;6906:56;;;6942:18;;:::i;:::-;6906:56;6992:4;6984:6;6980:17;6972:25;;7052:4;7046;7042:15;7034:23;;6753:311;;;:::o;7070:117::-;7179:1;7176;7169:12;7210:710;7306:5;7331:81;7347:64;7404:6;7347:64;:::i;:::-;7331:81;:::i;:::-;7322:90;;7432:5;7461:6;7454:5;7447:21;7495:4;7488:5;7484:16;7477:23;;7548:4;7540:6;7536:17;7528:6;7524:30;7577:3;7569:6;7566:15;7563:122;;;7596:79;;:::i;:::-;7563:122;7711:6;7694:220;7728:6;7723:3;7720:15;7694:220;;;7803:3;7832:37;7865:3;7853:10;7832:37;:::i;:::-;7827:3;7820:50;7899:4;7894:3;7890:14;7883:21;;7770:144;7754:4;7749:3;7745:14;7738:21;;7694:220;;;7698:21;7312:608;;7210:710;;;;;:::o;7943:370::-;8014:5;8063:3;8056:4;8048:6;8044:17;8040:27;8030:122;;8071:79;;:::i;:::-;8030:122;8188:6;8175:20;8213:94;8303:3;8295:6;8288:4;8280:6;8276:17;8213:94;:::i;:::-;8204:103;;8020:293;7943:370;;;;:::o;8319:539::-;8403:6;8452:2;8440:9;8431:7;8427:23;8423:32;8420:119;;;8458:79;;:::i;:::-;8420:119;8606:1;8595:9;8591:17;8578:31;8636:18;8628:6;8625:30;8622:117;;;8658:79;;:::i;:::-;8622:117;8763:78;8833:7;8824:6;8813:9;8809:22;8763:78;:::i;:::-;8753:88;;8549:302;8319:539;;;;:::o;8864:474::-;8932:6;8940;8989:2;8977:9;8968:7;8964:23;8960:32;8957:119;;;8995:79;;:::i;:::-;8957:119;9115:1;9140:53;9185:7;9176:6;9165:9;9161:22;9140:53;:::i;:::-;9130:63;;9086:117;9242:2;9268:53;9313:7;9304:6;9293:9;9289:22;9268:53;:::i;:::-;9258:63;;9213:118;8864:474;;;;;:::o;9344:180::-;9392:77;9389:1;9382:88;9489:4;9486:1;9479:15;9513:4;9510:1;9503:15;9530:102;9572:8;9619:5;9616:1;9612:13;9591:34;;9530:102;;;:::o;9638:848::-;9699:5;9706:4;9730:6;9721:15;;9754:5;9745:14;;9768:712;9789:1;9779:8;9776:15;9768:712;;;9884:4;9879:3;9875:14;9869:4;9866:24;9863:50;;;9893:18;;:::i;:::-;9863:50;9943:1;9933:8;9929:16;9926:451;;;10358:4;10351:5;10347:16;10338:25;;9926:451;10408:4;10402;10398:15;10390:23;;10438:32;10461:8;10438:32;:::i;:::-;10426:44;;9768:712;;;9638:848;;;;;;;:::o;10492:1073::-;10546:5;10737:8;10727:40;;10758:1;10749:10;;10760:5;;10727:40;10786:4;10776:36;;10803:1;10794:10;;10805:5;;10776:36;10872:4;10920:1;10915:27;;;;10956:1;10951:191;;;;10865:277;;10915:27;10933:1;10924:10;;10935:5;;;10951:191;10996:3;10986:8;10983:17;10980:43;;;11003:18;;:::i;:::-;10980:43;11052:8;11049:1;11045:16;11036:25;;11087:3;11080:5;11077:14;11074:40;;;11094:18;;:::i;:::-;11074:40;11127:5;;;10865:277;;11251:2;11241:8;11238:16;11232:3;11226:4;11223:13;11219:36;11201:2;11191:8;11188:16;11183:2;11177:4;11174:12;11170:35;11154:111;11151:246;;;11307:8;11301:4;11297:19;11288:28;;11342:3;11335:5;11332:14;11329:40;;;11349:18;;:::i;:::-;11329:40;11382:5;;11151:246;11422:42;11460:3;11450:8;11444:4;11441:1;11422:42;:::i;:::-;11407:57;;;;11496:4;11491:3;11487:14;11480:5;11477:25;11474:51;;;11505:18;;:::i;:::-;11474:51;11554:4;11547:5;11543:16;11534:25;;10492:1073;;;;;;:::o;11571:281::-;11629:5;11653:23;11671:4;11653:23;:::i;:::-;11645:31;;11697:25;11713:8;11697:25;:::i;:::-;11685:37;;11741:104;11778:66;11768:8;11762:4;11741:104;:::i;:::-;11732:113;;11571:281;;;;:::o;11858:410::-;11898:7;11921:20;11939:1;11921:20;:::i;:::-;11916:25;;11955:20;11973:1;11955:20;:::i;:::-;11950:25;;12010:1;12007;12003:9;12032:30;12050:11;12032:30;:::i;:::-;12021:41;;12211:1;12202:7;12198:15;12195:1;12192:22;12172:1;12165:9;12145:83;12122:139;;12241:18;;:::i;:::-;12122:139;11906:362;11858:410;;;;:::o;12274:182::-;12414:34;12410:1;12402:6;12398:14;12391:58;12274:182;:::o;12462:366::-;12604:3;12625:67;12689:2;12684:3;12625:67;:::i;:::-;12618:74;;12701:93;12790:3;12701:93;:::i;:::-;12819:2;12814:3;12810:12;12803:19;;12462:366;;;:::o;12834:419::-;13000:4;13038:2;13027:9;13023:18;13015:26;;13087:9;13081:4;13077:20;13073:1;13062:9;13058:17;13051:47;13115:131;13241:4;13115:131;:::i;:::-;13107:139;;12834:419;;;:::o;13259:180::-;13307:77;13304:1;13297:88;13404:4;13401:1;13394:15;13428:4;13425:1;13418:15;13445:173;13585:25;13581:1;13573:6;13569:14;13562:49;13445:173;:::o;13624:366::-;13766:3;13787:67;13851:2;13846:3;13787:67;:::i;:::-;13780:74;;13863:93;13952:3;13863:93;:::i;:::-;13981:2;13976:3;13972:12;13965:19;;13624:366;;;:::o;13996:419::-;14162:4;14200:2;14189:9;14185:18;14177:26;;14249:9;14243:4;14239:20;14235:1;14224:9;14220:17;14213:47;14277:131;14403:4;14277:131;:::i;:::-;14269:139;;13996:419;;;:::o;14421:143::-;14478:5;14509:6;14503:13;14494:22;;14525:33;14552:5;14525:33;:::i;:::-;14421:143;;;;:::o;14570:351::-;14640:6;14689:2;14677:9;14668:7;14664:23;14660:32;14657:119;;;14695:79;;:::i;:::-;14657:119;14815:1;14840:64;14896:7;14887:6;14876:9;14872:22;14840:64;:::i;:::-;14830:74;;14786:128;14570:351;;;;:::o;14927:332::-;15048:4;15086:2;15075:9;15071:18;15063:26;;15099:71;15167:1;15156:9;15152:17;15143:6;15099:71;:::i;:::-;15180:72;15248:2;15237:9;15233:18;15224:6;15180:72;:::i;:::-;14927:332;;;;;:::o;15265:85::-;15310:7;15339:5;15328:16;;15265:85;;;:::o;15356:60::-;15384:3;15405:5;15398:12;;15356:60;;;:::o;15422:158::-;15480:9;15513:61;15531:42;15540:32;15566:5;15540:32;:::i;:::-;15531:42;:::i;:::-;15513:61;:::i;:::-;15500:74;;15422:158;;;:::o;15586:147::-;15681:45;15720:5;15681:45;:::i;:::-;15676:3;15669:58;15586:147;;:::o;15739:807::-;15988:4;16026:3;16015:9;16011:19;16003:27;;16040:71;16108:1;16097:9;16093:17;16084:6;16040:71;:::i;:::-;16121:72;16189:2;16178:9;16174:18;16165:6;16121:72;:::i;:::-;16203:80;16279:2;16268:9;16264:18;16255:6;16203:80;:::i;:::-;16293;16369:2;16358:9;16354:18;16345:6;16293:80;:::i;:::-;16383:73;16451:3;16440:9;16436:19;16427:6;16383:73;:::i;:::-;16466;16534:3;16523:9;16519:19;16510:6;16466:73;:::i;:::-;15739:807;;;;;;;;;:::o;16552:143::-;16609:5;16640:6;16634:13;16625:22;;16656:33;16683:5;16656:33;:::i;:::-;16552:143;;;;:::o;16701:663::-;16789:6;16797;16805;16854:2;16842:9;16833:7;16829:23;16825:32;16822:119;;;16860:79;;:::i;:::-;16822:119;16980:1;17005:64;17061:7;17052:6;17041:9;17037:22;17005:64;:::i;:::-;16995:74;;16951:128;17118:2;17144:64;17200:7;17191:6;17180:9;17176:22;17144:64;:::i;:::-;17134:74;;17089:129;17257:2;17283:64;17339:7;17330:6;17319:9;17315:22;17283:64;:::i;:::-;17273:74;;17228:129;16701:663;;;;;:::o;17370:332::-;17491:4;17529:2;17518:9;17514:18;17506:26;;17542:71;17610:1;17599:9;17595:17;17586:6;17542:71;:::i;:::-;17623:72;17691:2;17680:9;17676:18;17667:6;17623:72;:::i;:::-;17370:332;;;;;:::o;17708:116::-;17778:21;17793:5;17778:21;:::i;:::-;17771:5;17768:32;17758:60;;17814:1;17811;17804:12;17758:60;17708:116;:::o;17830:137::-;17884:5;17915:6;17909:13;17900:22;;17931:30;17955:5;17931:30;:::i;:::-;17830:137;;;;:::o;17973:345::-;18040:6;18089:2;18077:9;18068:7;18064:23;18060:32;18057:119;;;18095:79;;:::i;:::-;18057:119;18215:1;18240:61;18293:7;18284:6;18273:9;18269:22;18240:61;:::i;:::-;18230:71;;18186:125;17973:345;;;;:::o;18324:223::-;18464:34;18460:1;18452:6;18448:14;18441:58;18533:6;18528:2;18520:6;18516:15;18509:31;18324:223;:::o;18553:366::-;18695:3;18716:67;18780:2;18775:3;18716:67;:::i;:::-;18709:74;;18792:93;18881:3;18792:93;:::i;:::-;18910:2;18905:3;18901:12;18894:19;;18553:366;;;:::o;18925:419::-;19091:4;19129:2;19118:9;19114:18;19106:26;;19178:9;19172:4;19168:20;19164:1;19153:9;19149:17;19142:47;19206:131;19332:4;19206:131;:::i;:::-;19198:139;;18925:419;;;:::o;19350:221::-;19490:34;19486:1;19478:6;19474:14;19467:58;19559:4;19554:2;19546:6;19542:15;19535:29;19350:221;:::o;19577:366::-;19719:3;19740:67;19804:2;19799:3;19740:67;:::i;:::-;19733:74;;19816:93;19905:3;19816:93;:::i;:::-;19934:2;19929:3;19925:12;19918:19;;19577:366;;;:::o;19949:419::-;20115:4;20153:2;20142:9;20138:18;20130:26;;20202:9;20196:4;20192:20;20188:1;20177:9;20173:17;20166:47;20230:131;20356:4;20230:131;:::i;:::-;20222:139;;19949:419;;;:::o;20374:224::-;20514:34;20510:1;20502:6;20498:14;20491:58;20583:7;20578:2;20570:6;20566:15;20559:32;20374:224;:::o;20604:366::-;20746:3;20767:67;20831:2;20826:3;20767:67;:::i;:::-;20760:74;;20843:93;20932:3;20843:93;:::i;:::-;20961:2;20956:3;20952:12;20945:19;;20604:366;;;:::o;20976:419::-;21142:4;21180:2;21169:9;21165:18;21157:26;;21229:9;21223:4;21219:20;21215:1;21204:9;21200:17;21193:47;21257:131;21383:4;21257:131;:::i;:::-;21249:139;;20976:419;;;:::o;21401:222::-;21541:34;21537:1;21529:6;21525:14;21518:58;21610:5;21605:2;21597:6;21593:15;21586:30;21401:222;:::o;21629:366::-;21771:3;21792:67;21856:2;21851:3;21792:67;:::i;:::-;21785:74;;21868:93;21957:3;21868:93;:::i;:::-;21986:2;21981:3;21977:12;21970:19;;21629:366;;;:::o;22001:419::-;22167:4;22205:2;22194:9;22190:18;22182:26;;22254:9;22248:4;22244:20;22240:1;22229:9;22225:17;22218:47;22282:131;22408:4;22282:131;:::i;:::-;22274:139;;22001:419;;;:::o;22426:228::-;22566:34;22562:1;22554:6;22550:14;22543:58;22635:11;22630:2;22622:6;22618:15;22611:36;22426:228;:::o;22660:366::-;22802:3;22823:67;22887:2;22882:3;22823:67;:::i;:::-;22816:74;;22899:93;22988:3;22899:93;:::i;:::-;23017:2;23012:3;23008:12;23001:19;;22660:366;;;:::o;23032:419::-;23198:4;23236:2;23225:9;23221:18;23213:26;;23285:9;23279:4;23275:20;23271:1;23260:9;23256:17;23249:47;23313:131;23439:4;23313:131;:::i;:::-;23305:139;;23032:419;;;:::o;23457:223::-;23597:34;23593:1;23585:6;23581:14;23574:58;23666:6;23661:2;23653:6;23649:15;23642:31;23457:223;:::o;23686:366::-;23828:3;23849:67;23913:2;23908:3;23849:67;:::i;:::-;23842:74;;23925:93;24014:3;23925:93;:::i;:::-;24043:2;24038:3;24034:12;24027:19;;23686:366;;;:::o;24058:419::-;24224:4;24262:2;24251:9;24247:18;24239:26;;24311:9;24305:4;24301:20;24297:1;24286:9;24282:17;24275:47;24339:131;24465:4;24339:131;:::i;:::-;24331:139;;24058:419;;;:::o;24483:175::-;24623:27;24619:1;24611:6;24607:14;24600:51;24483:175;:::o;24664:366::-;24806:3;24827:67;24891:2;24886:3;24827:67;:::i;:::-;24820:74;;24903:93;24992:3;24903:93;:::i;:::-;25021:2;25016:3;25012:12;25005:19;;24664:366;;;:::o;25036:419::-;25202:4;25240:2;25229:9;25225:18;25217:26;;25289:9;25283:4;25279:20;25275:1;25264:9;25260:17;25253:47;25317:131;25443:4;25317:131;:::i;:::-;25309:139;;25036:419;;;:::o;25461:191::-;25501:3;25520:20;25538:1;25520:20;:::i;:::-;25515:25;;25554:20;25572:1;25554:20;:::i;:::-;25549:25;;25597:1;25594;25590:9;25583:16;;25618:3;25615:1;25612:10;25609:36;;;25625:18;;:::i;:::-;25609:36;25461:191;;;;:::o;25658:176::-;25798:28;25794:1;25786:6;25782:14;25775:52;25658:176;:::o;25840:366::-;25982:3;26003:67;26067:2;26062:3;26003:67;:::i;:::-;25996:74;;26079:93;26168:3;26079:93;:::i;:::-;26197:2;26192:3;26188:12;26181:19;;25840:366;;;:::o;26212:419::-;26378:4;26416:2;26405:9;26401:18;26393:26;;26465:9;26459:4;26455:20;26451:1;26440:9;26436:17;26429:47;26493:131;26619:4;26493:131;:::i;:::-;26485:139;;26212:419;;;:::o;26637:233::-;26676:3;26699:24;26717:5;26699:24;:::i;:::-;26690:33;;26745:66;26738:5;26735:77;26732:103;;26815:18;;:::i;:::-;26732:103;26862:1;26855:5;26851:13;26844:20;;26637:233;;;:::o;26876:194::-;26916:4;26936:20;26954:1;26936:20;:::i;:::-;26931:25;;26970:20;26988:1;26970:20;:::i;:::-;26965:25;;27014:1;27011;27007:9;26999:17;;27038:1;27032:4;27029:11;27026:37;;;27043:18;;:::i;:::-;27026:37;26876:194;;;;:::o;27076:114::-;27143:6;27177:5;27171:12;27161:22;;27076:114;;;:::o;27196:184::-;27295:11;27329:6;27324:3;27317:19;27369:4;27364:3;27360:14;27345:29;;27196:184;;;;:::o;27386:132::-;27453:4;27476:3;27468:11;;27506:4;27501:3;27497:14;27489:22;;27386:132;;;:::o;27524:108::-;27601:24;27619:5;27601:24;:::i;:::-;27596:3;27589:37;27524:108;;:::o;27638:179::-;27707:10;27728:46;27770:3;27762:6;27728:46;:::i;:::-;27806:4;27801:3;27797:14;27783:28;;27638:179;;;;:::o;27823:113::-;27893:4;27925;27920:3;27916:14;27908:22;;27823:113;;;:::o;27972:732::-;28091:3;28120:54;28168:5;28120:54;:::i;:::-;28190:86;28269:6;28264:3;28190:86;:::i;:::-;28183:93;;28300:56;28350:5;28300:56;:::i;:::-;28379:7;28410:1;28395:284;28420:6;28417:1;28414:13;28395:284;;;28496:6;28490:13;28523:63;28582:3;28567:13;28523:63;:::i;:::-;28516:70;;28609:60;28662:6;28609:60;:::i;:::-;28599:70;;28455:224;28442:1;28439;28435:9;28430:14;;28395:284;;;28399:14;28695:3;28688:10;;28096:608;;;27972:732;;;;:::o;28710:831::-;28973:4;29011:3;29000:9;28996:19;28988:27;;29025:71;29093:1;29082:9;29078:17;29069:6;29025:71;:::i;:::-;29106:80;29182:2;29171:9;29167:18;29158:6;29106:80;:::i;:::-;29233:9;29227:4;29223:20;29218:2;29207:9;29203:18;29196:48;29261:108;29364:4;29355:6;29261:108;:::i;:::-;29253:116;;29379:72;29447:2;29436:9;29432:18;29423:6;29379:72;:::i;:::-;29461:73;29529:3;29518:9;29514:19;29505:6;29461:73;:::i;:::-;28710:831;;;;;;;;:::o;29547:180::-;29595:77;29592:1;29585:88;29692:4;29689:1;29682:15;29716:4;29713:1;29706:15;29733:185;29773:1;29790:20;29808:1;29790:20;:::i;:::-;29785:25;;29824:20;29842:1;29824:20;:::i;:::-;29819:25;;29863:1;29853:35;;29868:18;;:::i;:::-;29853:35;29910:1;29907;29903:9;29898:14;;29733:185;;;;:::o;29924:220::-;30064:34;30060:1;30052:6;30048:14;30041:58;30133:3;30128:2;30120:6;30116:15;30109:28;29924:220;:::o;30150:366::-;30292:3;30313:67;30377:2;30372:3;30313:67;:::i;:::-;30306:74;;30389:93;30478:3;30389:93;:::i;:::-;30507:2;30502:3;30498:12;30491:19;;30150:366;;;:::o;30522:419::-;30688:4;30726:2;30715:9;30711:18;30703:26;;30775:9;30769:4;30765:20;30761:1;30750:9;30746:17;30739:47;30803:131;30929:4;30803:131;:::i;:::-;30795:139;;30522:419;;;:::o;30947:177::-;31087:29;31083:1;31075:6;31071:14;31064:53;30947:177;:::o;31130:366::-;31272:3;31293:67;31357:2;31352:3;31293:67;:::i;:::-;31286:74;;31369:93;31458:3;31369:93;:::i;:::-;31487:2;31482:3;31478:12;31471:19;;31130:366;;;:::o;31502:419::-;31668:4;31706:2;31695:9;31691:18;31683:26;;31755:9;31749:4;31745:20;31741:1;31730:9;31726:17;31719:47;31783:131;31909:4;31783:131;:::i;:::-;31775:139;;31502:419;;;:::o
Swarm Source
ipfs://b850df8abb241930312f4c0008b97b8df8c30d68b033a423ca39e951560b361d
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.