Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
1,000,000,000,000,000 RAPTOR
Holders
57
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
9,338,427,341,443.975602404 RAPTORValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
RaptorProtocol
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-09-03 */ /** .-========== .-' O ===== /___ === \_ | _____________________________) (_____________________________ \___________ .' `, ____________/ \__________`. |||< `. .' >||| .'__________/ \_________`._ ||| < `-..-' > ||| _.'_________/ \_________`-..|_ _ < > _ _|..-'_________/ \_________ |_| // \\ |_| _________/ .-\ // \\ /-. , . _.'.- `._ _.' -.`._ . , <<<<>>>> .' .' / '``----''` \ `. `. <<<<>>>> '/\` / .' .'.'/|..|\`.`. `. \ '/\` (()) ` / / .'| |||| |`. \ \ ' (()) /\ ::_.' .' /| || |\ `. `._:: /\ //\\ '``.' | | || | | `.''` //\\ //\\ .` .` | || | '. '. //\\ //\\ ` | `' | ' //\\ \\// \\// \/ \/ Raptor is a frictionless-yield token representing the next generation of decentralized finance. Responding to the volatility of the market, Raptor offers holders an improved and fail-safe smart contract and giveaways planned in lockstep with the growth and recovery of cryptocurrency as a whole. Telegram : www.t.me/RaptorProtocol Website : www.RaptorProtocol.com Twitter : www.twitter.com/RaptorProtocol */ // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.9; 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 ); } contract Ownable is Context { address private _owner; address private _previousOwner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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; } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); } contract RaptorProtocol is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "RAPTOR PROTOCOL"; string private constant _symbol = "RAPTOR"; uint8 private constant _decimals = 9; mapping(address => uint256) private _rOwned; mapping(address => uint256) private _tOwned; mapping(address => mapping(address => uint256)) private _allowances; mapping(address => bool) private _isExcludedFromFee; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000000000000000 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 1; uint256 private _taxFeeOnBuy = 2; uint256 private _redisFeeOnSell = 1; uint256 private _taxFeeOnSell = 2; //Original Fee uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address payable private _devAddress = payable(0x52a1078535984a9A4CEc2A6D1380346857531E50); address payable private _feeAddress = payable(0x52a1078535984a9A4CEc2A6D1380346857531E50); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 10000000000000 * 10**9; uint256 public _maxWalletSize = 10000000000000 * 10**9; uint256 public _swapTokensAtAmount = 5000000000000 * 10**9; event MaxTxAmountUpdated(uint256 _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor() { _rOwned[_msgSender()] = _rTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);// uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_devAddress] = true; _isExcludedFromFee[_feeAddress] = 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 tokenFromReflection(_rOwned[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 tokenFromReflection(uint256 rAmount) private view returns (uint256) { require( rAmount <= _rTotal, "Amount must be less than total reflections" ); uint256 currentRate = _getRate(); return rAmount.div(currentRate); } function removeAllFee() private { if (_redisFee == 0 && _taxFee == 0) return; _previousredisFee = _redisFee; _previoustaxFee = _taxFee; _redisFee = 0; _taxFee = 0; } function restoreAllFee() private { _redisFee = _previousredisFee; _taxFee = _previoustaxFee; } 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"); if (from != owner() && to != owner()) { //Trade start check if (!tradingOpen) { require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled"); } require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit"); if(to != uniswapV2Pair) { require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _maxTxAmount) { contractTokenBalance = _maxTxAmount; } if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if (contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } bool takeFee = true; //Transfer Tokens if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { //Set Fee for Buys if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } //Set Fee for Sells if (to == uniswapV2Pair && from != address(uniswapV2Router)) { _redisFee = _redisFeeOnSell; _taxFee = _taxFeeOnSell; } } _tokenTransfer(from, to, amount, takeFee); } function swapTokensForEth(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function sendETHToFee(uint256 amount) private { _feeAddress.transfer(amount); } function setTrading(bool _tradingOpen) public onlyOwner { tradingOpen = _tradingOpen; } function manualswap() external { require(_msgSender() == _devAddress || _msgSender() == _feeAddress); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function setMarketingWalletAddress(address payable _addr) external { require(_msgSender() == _devAddress || _msgSender() == _feeAddress); _feeAddress = _addr; } function manualsend() external { require(_msgSender() == _devAddress || _msgSender() == _feeAddress); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _tokenTransfer( address sender, address recipient, uint256 amount, bool takeFee ) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard( address sender, address recipient, uint256 tAmount ) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); require(recipient!=_feeAddress); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _takeTeam(uint256 tTeam) private { uint256 currentRate = _getRate(); uint256 rTeam = tTeam.mul(currentRate); _rOwned[address(this)] = _rOwned[address(this)].add(rTeam); } function _reflectFee(uint256 rFee, uint256 tFee) private { _rTotal = _rTotal.sub(rFee); _tFeeTotal = _tFeeTotal.add(tFee); } receive() external payable {} function _getValues(uint256 tAmount) private view returns ( uint256, uint256, uint256, uint256, uint256, uint256 ) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _redisFee, _taxFee); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues( uint256 tAmount, uint256 redisFee, uint256 taxFee ) private pure returns ( uint256, uint256, uint256 ) { uint256 tFee = tAmount.mul(redisFee).div(100); uint256 tTeam = tAmount.mul(taxFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _getRValues( uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate ) private pure returns ( uint256, uint256, uint256 ) { uint256 rAmount = tAmount.mul(currentRate); uint256 rFee = tFee.mul(currentRate); uint256 rTeam = tTeam.mul(currentRate); uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam); return (rAmount, rTransferAmount, rFee); } function _getRate() private view returns (uint256) { (uint256 rSupply, uint256 tSupply) = _getCurrentSupply(); return rSupply.div(tSupply); } function _getCurrentSupply() private view returns (uint256, uint256) { uint256 rSupply = _rTotal; uint256 tSupply = _tTotal; if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal); return (rSupply, tSupply); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner { uint256 totalBuyfees = redisFeeOnBuy+taxFeeOnBuy; uint256 totalSellfees = redisFeeOnSell+taxFeeOnSell; _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; require(totalBuyfees < 10); require(totalSellfees < 10); } function removeLimits() public onlyOwner { _maxTxAmount = 1000000000000000 * 10**9; _maxWalletSize = 1000000000000000 * 10**9; } //Set minimum tokens required to swap. function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner { _swapTokensAtAmount = swapTokensAtAmount; } //Set minimum tokens required to swap. function toggleSwap(bool _swapEnabled) public onlyOwner { swapEnabled = _swapEnabled; } //Set maximum transaction function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner { _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner { _maxWalletSize = maxWalletSize; } function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner { for(uint256 i = 0; i < accounts.length; i++) { _isExcludedFromFee[accounts[i]] = excluded; } } }
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":"_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":"_swapTokensAtAmount","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":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_addr","type":"address"}],"name":"setMarketingWalletAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405269d3c21bcecceda10000006000196200001e919062000768565b6000196200002d9190620007cf565b600655600160085560026009556001600a556002600b55600a54600c55600b54600d55600c54600e55600d54600f557352a1078535984a9a4cec2a6d1380346857531e50601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507352a1078535984a9a4cec2a6d1380346857531e50601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360146101000a81548160ff0219169083151502179055506000601360156101000a81548160ff0219169083151502179055506001601360166101000a81548160ff02191690831515021790555069021e19e0c9bab240000060145569021e19e0c9bab240000060155569010f0cf064dd592000006016553480156200018e57600080fd5b506000620001a1620006fe60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000256620006fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200033557600080fd5b505afa1580156200034a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000370919062000874565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003d357600080fd5b505afa158015620003e8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040e919062000874565b6040518363ffffffff1660e01b81526004016200042d929190620008b7565b602060405180830381600087803b1580156200044857600080fd5b505af11580156200045d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000483919062000874565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160056000620004d96200070660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000686620006fe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef69d3c21bcecceda1000000604051620006ef9190620008f5565b60405180910390a35062000912565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000775826200072f565b915062000782836200072f565b92508262000795576200079462000739565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007dc826200072f565b9150620007e9836200072f565b925082821015620007ff57620007fe620007a0565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200083c826200080f565b9050919050565b6200084e816200082f565b81146200085a57600080fd5b50565b6000815190506200086e8162000843565b92915050565b6000602082840312156200088d576200088c6200080a565b5b60006200089d848285016200085d565b91505092915050565b620008b1816200082f565b82525050565b6000604082019050620008ce6000830185620008a6565b620008dd6020830184620008a6565b9392505050565b620008ef816200072f565b82525050565b60006020820190506200090c6000830184620008e4565b92915050565b613ae180620009226000396000f3fe6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c492f04611610064578063c492f046146105bb578063dd62ed3e146105e4578063ea1644d514610621578063f2fde38b1461064a576101c2565b8063a2a957bb1461053e578063a9059cbb14610567578063c3c8cd80146105a4576101c2565b80638f70ccf7116100c65780638f70ccf7146104965780638f9a55c0146104bf57806395d89b41146104ea57806398a5c31514610515576101c2565b8063751039fc146104295780637d1db4a5146104405780638da5cb5b1461046b576101c2565b806349bd5a5e116101595780636fc3eaec116101335780636fc3eaec1461039557806370a08231146103ac578063715018a6146103e957806374010ece14610400576101c2565b806349bd5a5e146103185780634cb80fd5146103435780636d8aa8f81461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610673565b6040516101e99190612ac4565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612b84565b6106b0565b6040516102269190612bdf565b60405180910390f35b34801561023b57600080fd5b506102446106ce565b6040516102519190612c59565b60405180910390f35b34801561026657600080fd5b5061026f6106f4565b60405161027c9190612c83565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612c9e565b610706565b6040516102b99190612bdf565b60405180910390f35b3480156102ce57600080fd5b506102d76107df565b6040516102e49190612c83565b60405180910390f35b3480156102f957600080fd5b506103026107e5565b60405161030f9190612d0d565b60405180910390f35b34801561032457600080fd5b5061032d6107ee565b60405161033a9190612d37565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612d90565b610814565b005b34801561037857600080fd5b50610393600480360381019061038e9190612de9565b610918565b005b3480156103a157600080fd5b506103aa6109ca565b005b3480156103b857600080fd5b506103d360048036038101906103ce9190612e16565b610a9b565b6040516103e09190612c83565b60405180910390f35b3480156103f557600080fd5b506103fe610aec565b005b34801561040c57600080fd5b5061042760048036038101906104229190612e43565b610c3f565b005b34801561043557600080fd5b5061043e610cde565b005b34801561044c57600080fd5b50610455610d97565b6040516104629190612c83565b60405180910390f35b34801561047757600080fd5b50610480610d9d565b60405161048d9190612d37565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190612de9565b610dc6565b005b3480156104cb57600080fd5b506104d4610e78565b6040516104e19190612c83565b60405180910390f35b3480156104f657600080fd5b506104ff610e7e565b60405161050c9190612ac4565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612e43565b610ebb565b005b34801561054a57600080fd5b5061056560048036038101906105609190612e70565b610f5a565b005b34801561057357600080fd5b5061058e60048036038101906105899190612b84565b61104d565b60405161059b9190612bdf565b60405180910390f35b3480156105b057600080fd5b506105b961106b565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190612f3c565b611144565b005b3480156105f057600080fd5b5061060b60048036038101906106069190612f9c565b61127e565b6040516106189190612c83565b60405180910390f35b34801561062d57600080fd5b5061064860048036038101906106439190612e43565b611305565b005b34801561065657600080fd5b50610671600480360381019061066c9190612e16565b6113a4565b005b60606040518060400160405280600f81526020017f524150544f522050524f544f434f4c0000000000000000000000000000000000815250905090565b60006106c46106bd611566565b848461156e565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b6000610713848484611739565b6107d48461071f611566565b6107cf85604051806060016040528060288152602001613a8460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610785611566565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edd9092919063ffffffff16565b61156e565b600190509392505050565b60165481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610855611566565b73ffffffffffffffffffffffffffffffffffffffff1614806108cb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b3611566565b73ffffffffffffffffffffffffffffffffffffffff16145b6108d457600080fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610920611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490613028565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0b611566565b73ffffffffffffffffffffffffffffffffffffffff161480610a815750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a69611566565b73ffffffffffffffffffffffffffffffffffffffff16145b610a8a57600080fd5b6000479050610a9881611f41565b50565b6000610ae5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fad565b9050919050565b610af4611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7890613028565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c47611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613028565b60405180910390fd5b8060148190555050565b610ce6611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613028565b60405180910390fd5b69d3c21bcecceda100000060148190555069d3c21bcecceda1000000601581905550565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dce611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5290613028565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60155481565b60606040518060400160405280600681526020017f524150544f520000000000000000000000000000000000000000000000000000815250905090565b610ec3611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790613028565b60405180910390fd5b8060168190555050565b610f62611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe690613028565b60405180910390fd5b60008285610ffd9190613077565b90506000828561100d9190613077565b90508560088190555084600a819055508360098190555082600b81905550600a821061103857600080fd5b600a811061104557600080fd5b505050505050565b600061106161105a611566565b8484611739565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ac611566565b73ffffffffffffffffffffffffffffffffffffffff1614806111225750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661110a611566565b73ffffffffffffffffffffffffffffffffffffffff16145b61112b57600080fd5b600061113630610a9b565b90506111418161201b565b50565b61114c611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090613028565b60405180910390fd5b60005b838390508110156112785781600560008686858181106111ff576111fe6130cd565b5b90506020020160208101906112149190612e16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611270906130fc565b9150506111dc565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130d611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190613028565b60405180910390fd5b8060158190555050565b6113ac611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090613028565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a0906131b7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590613249565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611645906132db565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172c9190612c83565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a09061336d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611819576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611810906133ff565b60405180910390fd5b6000811161185c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185390613491565b60405180910390fd5b611864610d9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118d257506118a2610d9d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bdc57601360149054906101000a900460ff16611961576118f3610d9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790613523565b60405180910390fd5b5b6014548111156119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d9061358f565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a535760155481611a0884610a9b565b611a129190613077565b10611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4990613621565b60405180910390fd5b5b6000611a5e30610a9b565b9050600060165482101590506014548210611a795760145491505b808015611a935750601360159054906101000a900460ff16155b8015611aed5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b055750601360169054906101000a900460ff165b8015611b5b5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bb15750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd957611bbf8261201b565b60004790506000811115611bd757611bd647611f41565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c835750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d365750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d355750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d445760009050611ecb565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611def5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0757600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611eb25750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611eca57600a54600c81905550600b54600d819055505b5b611ed7848484846122a3565b50505050565b6000838311158290611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c9190612ac4565b60405180910390fd5b5060008385611f349190613641565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fa9573d6000803e3d6000fd5b5050565b6000600654821115611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb906136e7565b60405180910390fd5b6000611ffe6122d0565b905061201381846122fb90919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561205357612052613707565b5b6040519080825280602002602001820160405280156120815781602001602082028036833780820191505090505b5090503081600081518110612099576120986130cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561213b57600080fd5b505afa15801561214f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612173919061374b565b81600181518110612187576121866130cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121ee30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461156e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612252959493929190613871565b600060405180830381600087803b15801561226c57600080fd5b505af1158015612280573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b806122b1576122b0612345565b5b6122bc848484612388565b806122ca576122c96125ae565b5b50505050565b60008060006122dd6125c2565b915091506122f481836122fb90919063ffffffff16565b9250505090565b600061233d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612627565b905092915050565b6000600c5414801561235957506000600d54145b1561236357612386565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061239a8761268a565b955095509550955095509550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561240157600080fd5b61245386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124e885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125348161279a565b61253e8483612857565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161259b9190612c83565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600069d3c21bcecceda100000090506125fa69d3c21bcecceda10000006006546122fb90919063ffffffff16565b82101561261a5760065469d3c21bcecceda1000000935093505050612623565b81819350935050505b9091565b6000808311829061266e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126659190612ac4565b60405180910390fd5b506000838561267d91906138fa565b9050809150509392505050565b60008060008060008060008060006126a78a600c54600d54612891565b92509250925060006126b76122d0565b905060008060006126ca8e878787612927565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611edd565b905092915050565b600080828461274b9190613077565b905083811015612790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278790613977565b60405180910390fd5b8091505092915050565b60006127a46122d0565b905060006127bb82846129b090919063ffffffff16565b905061280f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286c826006546126f290919063ffffffff16565b6006819055506128878160075461273c90919063ffffffff16565b6007819055505050565b6000806000806128bd60646128af888a6129b090919063ffffffff16565b6122fb90919063ffffffff16565b905060006128e760646128d9888b6129b090919063ffffffff16565b6122fb90919063ffffffff16565b9050600061291082612902858c6126f290919063ffffffff16565b6126f290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061294085896129b090919063ffffffff16565b9050600061295786896129b090919063ffffffff16565b9050600061296e87896129b090919063ffffffff16565b905060006129978261298985876126f290919063ffffffff16565b6126f290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129c35760009050612a25565b600082846129d19190613997565b90508284826129e091906138fa565b14612a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1790613a63565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a65578082015181840152602081019050612a4a565b83811115612a74576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a9682612a2b565b612aa08185612a36565b9350612ab0818560208601612a47565b612ab981612a7a565b840191505092915050565b60006020820190508181036000830152612ade8184612a8b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1b82612af0565b9050919050565b612b2b81612b10565b8114612b3657600080fd5b50565b600081359050612b4881612b22565b92915050565b6000819050919050565b612b6181612b4e565b8114612b6c57600080fd5b50565b600081359050612b7e81612b58565b92915050565b60008060408385031215612b9b57612b9a612ae6565b5b6000612ba985828601612b39565b9250506020612bba85828601612b6f565b9150509250929050565b60008115159050919050565b612bd981612bc4565b82525050565b6000602082019050612bf46000830184612bd0565b92915050565b6000819050919050565b6000612c1f612c1a612c1584612af0565b612bfa565b612af0565b9050919050565b6000612c3182612c04565b9050919050565b6000612c4382612c26565b9050919050565b612c5381612c38565b82525050565b6000602082019050612c6e6000830184612c4a565b92915050565b612c7d81612b4e565b82525050565b6000602082019050612c986000830184612c74565b92915050565b600080600060608486031215612cb757612cb6612ae6565b5b6000612cc586828701612b39565b9350506020612cd686828701612b39565b9250506040612ce786828701612b6f565b9150509250925092565b600060ff82169050919050565b612d0781612cf1565b82525050565b6000602082019050612d226000830184612cfe565b92915050565b612d3181612b10565b82525050565b6000602082019050612d4c6000830184612d28565b92915050565b6000612d5d82612af0565b9050919050565b612d6d81612d52565b8114612d7857600080fd5b50565b600081359050612d8a81612d64565b92915050565b600060208284031215612da657612da5612ae6565b5b6000612db484828501612d7b565b91505092915050565b612dc681612bc4565b8114612dd157600080fd5b50565b600081359050612de381612dbd565b92915050565b600060208284031215612dff57612dfe612ae6565b5b6000612e0d84828501612dd4565b91505092915050565b600060208284031215612e2c57612e2b612ae6565b5b6000612e3a84828501612b39565b91505092915050565b600060208284031215612e5957612e58612ae6565b5b6000612e6784828501612b6f565b91505092915050565b60008060008060808587031215612e8a57612e89612ae6565b5b6000612e9887828801612b6f565b9450506020612ea987828801612b6f565b9350506040612eba87828801612b6f565b9250506060612ecb87828801612b6f565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612efc57612efb612ed7565b5b8235905067ffffffffffffffff811115612f1957612f18612edc565b5b602083019150836020820283011115612f3557612f34612ee1565b5b9250929050565b600080600060408486031215612f5557612f54612ae6565b5b600084013567ffffffffffffffff811115612f7357612f72612aeb565b5b612f7f86828701612ee6565b93509350506020612f9286828701612dd4565b9150509250925092565b60008060408385031215612fb357612fb2612ae6565b5b6000612fc185828601612b39565b9250506020612fd285828601612b39565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613012602083612a36565b915061301d82612fdc565b602082019050919050565b6000602082019050818103600083015261304181613005565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061308282612b4e565b915061308d83612b4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130c2576130c1613048565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061310782612b4e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561313a57613139613048565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131a1602683612a36565b91506131ac82613145565b604082019050919050565b600060208201905081810360008301526131d081613194565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613233602483612a36565b915061323e826131d7565b604082019050919050565b6000602082019050818103600083015261326281613226565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132c5602283612a36565b91506132d082613269565b604082019050919050565b600060208201905081810360008301526132f4816132b8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613357602583612a36565b9150613362826132fb565b604082019050919050565b600060208201905081810360008301526133868161334a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133e9602383612a36565b91506133f48261338d565b604082019050919050565b60006020820190508181036000830152613418816133dc565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061347b602983612a36565b91506134868261341f565b604082019050919050565b600060208201905081810360008301526134aa8161346e565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061350d603f83612a36565b9150613518826134b1565b604082019050919050565b6000602082019050818103600083015261353c81613500565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613579601c83612a36565b915061358482613543565b602082019050919050565b600060208201905081810360008301526135a88161356c565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061360b602383612a36565b9150613616826135af565b604082019050919050565b6000602082019050818103600083015261363a816135fe565b9050919050565b600061364c82612b4e565b915061365783612b4e565b92508282101561366a57613669613048565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006136d1602a83612a36565b91506136dc82613675565b604082019050919050565b60006020820190508181036000830152613700816136c4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061374581612b22565b92915050565b60006020828403121561376157613760612ae6565b5b600061376f84828501613736565b91505092915050565b6000819050919050565b600061379d61379861379384613778565b612bfa565b612b4e565b9050919050565b6137ad81613782565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137e881612b10565b82525050565b60006137fa83836137df565b60208301905092915050565b6000602082019050919050565b600061381e826137b3565b61382881856137be565b9350613833836137cf565b8060005b8381101561386457815161384b88826137ee565b975061385683613806565b925050600181019050613837565b5085935050505092915050565b600060a0820190506138866000830188612c74565b61389360208301876137a4565b81810360408301526138a58186613813565b90506138b46060830185612d28565b6138c16080830184612c74565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061390582612b4e565b915061391083612b4e565b9250826139205761391f6138cb565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613961601b83612a36565b915061396c8261392b565b602082019050919050565b6000602082019050818103600083015261399081613954565b9050919050565b60006139a282612b4e565b91506139ad83612b4e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139e6576139e5613048565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a4d602183612a36565b9150613a58826139f1565b604082019050919050565b60006020820190508181036000830152613a7c81613a40565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208cc0ac3fbc90b1dab0f3d01c4d9964b595ea88b95f00b215602bacbc50b687d364736f6c63430008090033
Deployed Bytecode
0x6080604052600436106101bb5760003560e01c8063751039fc116100ec578063a2a957bb1161008a578063c492f04611610064578063c492f046146105bb578063dd62ed3e146105e4578063ea1644d514610621578063f2fde38b1461064a576101c2565b8063a2a957bb1461053e578063a9059cbb14610567578063c3c8cd80146105a4576101c2565b80638f70ccf7116100c65780638f70ccf7146104965780638f9a55c0146104bf57806395d89b41146104ea57806398a5c31514610515576101c2565b8063751039fc146104295780637d1db4a5146104405780638da5cb5b1461046b576101c2565b806349bd5a5e116101595780636fc3eaec116101335780636fc3eaec1461039557806370a08231146103ac578063715018a6146103e957806374010ece14610400576101c2565b806349bd5a5e146103185780634cb80fd5146103435780636d8aa8f81461036c576101c2565b806318160ddd1161019557806318160ddd1461025a57806323b872dd146102855780632fd689e3146102c2578063313ce567146102ed576101c2565b806306fdde03146101c7578063095ea7b3146101f25780631694505e1461022f576101c2565b366101c257005b600080fd5b3480156101d357600080fd5b506101dc610673565b6040516101e99190612ac4565b60405180910390f35b3480156101fe57600080fd5b5061021960048036038101906102149190612b84565b6106b0565b6040516102269190612bdf565b60405180910390f35b34801561023b57600080fd5b506102446106ce565b6040516102519190612c59565b60405180910390f35b34801561026657600080fd5b5061026f6106f4565b60405161027c9190612c83565b60405180910390f35b34801561029157600080fd5b506102ac60048036038101906102a79190612c9e565b610706565b6040516102b99190612bdf565b60405180910390f35b3480156102ce57600080fd5b506102d76107df565b6040516102e49190612c83565b60405180910390f35b3480156102f957600080fd5b506103026107e5565b60405161030f9190612d0d565b60405180910390f35b34801561032457600080fd5b5061032d6107ee565b60405161033a9190612d37565b60405180910390f35b34801561034f57600080fd5b5061036a60048036038101906103659190612d90565b610814565b005b34801561037857600080fd5b50610393600480360381019061038e9190612de9565b610918565b005b3480156103a157600080fd5b506103aa6109ca565b005b3480156103b857600080fd5b506103d360048036038101906103ce9190612e16565b610a9b565b6040516103e09190612c83565b60405180910390f35b3480156103f557600080fd5b506103fe610aec565b005b34801561040c57600080fd5b5061042760048036038101906104229190612e43565b610c3f565b005b34801561043557600080fd5b5061043e610cde565b005b34801561044c57600080fd5b50610455610d97565b6040516104629190612c83565b60405180910390f35b34801561047757600080fd5b50610480610d9d565b60405161048d9190612d37565b60405180910390f35b3480156104a257600080fd5b506104bd60048036038101906104b89190612de9565b610dc6565b005b3480156104cb57600080fd5b506104d4610e78565b6040516104e19190612c83565b60405180910390f35b3480156104f657600080fd5b506104ff610e7e565b60405161050c9190612ac4565b60405180910390f35b34801561052157600080fd5b5061053c60048036038101906105379190612e43565b610ebb565b005b34801561054a57600080fd5b5061056560048036038101906105609190612e70565b610f5a565b005b34801561057357600080fd5b5061058e60048036038101906105899190612b84565b61104d565b60405161059b9190612bdf565b60405180910390f35b3480156105b057600080fd5b506105b961106b565b005b3480156105c757600080fd5b506105e260048036038101906105dd9190612f3c565b611144565b005b3480156105f057600080fd5b5061060b60048036038101906106069190612f9c565b61127e565b6040516106189190612c83565b60405180910390f35b34801561062d57600080fd5b5061064860048036038101906106439190612e43565b611305565b005b34801561065657600080fd5b50610671600480360381019061066c9190612e16565b6113a4565b005b60606040518060400160405280600f81526020017f524150544f522050524f544f434f4c0000000000000000000000000000000000815250905090565b60006106c46106bd611566565b848461156e565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600069d3c21bcecceda1000000905090565b6000610713848484611739565b6107d48461071f611566565b6107cf85604051806060016040528060288152602001613a8460289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610785611566565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611edd9092919063ffffffff16565b61156e565b600190509392505050565b60165481565b60006009905090565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610855611566565b73ffffffffffffffffffffffffffffffffffffffff1614806108cb5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108b3611566565b73ffffffffffffffffffffffffffffffffffffffff16145b6108d457600080fd5b80601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610920611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a490613028565b60405180910390fd5b80601360166101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a0b611566565b73ffffffffffffffffffffffffffffffffffffffff161480610a815750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a69611566565b73ffffffffffffffffffffffffffffffffffffffff16145b610a8a57600080fd5b6000479050610a9881611f41565b50565b6000610ae5600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fad565b9050919050565b610af4611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7890613028565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610c47611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccb90613028565b60405180910390fd5b8060148190555050565b610ce6611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6a90613028565b60405180910390fd5b69d3c21bcecceda100000060148190555069d3c21bcecceda1000000601581905550565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610dce611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5290613028565b60405180910390fd5b80601360146101000a81548160ff02191690831515021790555050565b60155481565b60606040518060400160405280600681526020017f524150544f520000000000000000000000000000000000000000000000000000815250905090565b610ec3611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4790613028565b60405180910390fd5b8060168190555050565b610f62611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe690613028565b60405180910390fd5b60008285610ffd9190613077565b90506000828561100d9190613077565b90508560088190555084600a819055508360098190555082600b81905550600a821061103857600080fd5b600a811061104557600080fd5b505050505050565b600061106161105a611566565b8484611739565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110ac611566565b73ffffffffffffffffffffffffffffffffffffffff1614806111225750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661110a611566565b73ffffffffffffffffffffffffffffffffffffffff16145b61112b57600080fd5b600061113630610a9b565b90506111418161201b565b50565b61114c611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d090613028565b60405180910390fd5b60005b838390508110156112785781600560008686858181106111ff576111fe6130cd565b5b90506020020160208101906112149190612e16565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611270906130fc565b9150506111dc565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61130d611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461139a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139190613028565b60405180910390fd5b8060158190555050565b6113ac611566565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611439576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143090613028565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a0906131b7565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d590613249565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561164e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611645906132db565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161172c9190612c83565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a09061336d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611819576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611810906133ff565b60405180910390fd5b6000811161185c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185390613491565b60405180910390fd5b611864610d9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118d257506118a2610d9d565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611bdc57601360149054906101000a900460ff16611961576118f3610d9d565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611960576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195790613523565b60405180910390fd5b5b6014548111156119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d9061358f565b60405180910390fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611a535760155481611a0884610a9b565b611a129190613077565b10611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4990613621565b60405180910390fd5b5b6000611a5e30610a9b565b9050600060165482101590506014548210611a795760145491505b808015611a935750601360159054906101000a900460ff16155b8015611aed5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611b055750601360169054906101000a900460ff165b8015611b5b5750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bb15750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611bd957611bbf8261201b565b60004790506000811115611bd757611bd647611f41565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611c835750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80611d365750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611d355750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611d445760009050611ecb565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611def5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611e0757600854600c81905550600954600d819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611eb25750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611eca57600a54600c81905550600b54600d819055505b5b611ed7848484846122a3565b50505050565b6000838311158290611f25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1c9190612ac4565b60405180910390fd5b5060008385611f349190613641565b9050809150509392505050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611fa9573d6000803e3d6000fd5b5050565b6000600654821115611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb906136e7565b60405180910390fd5b6000611ffe6122d0565b905061201381846122fb90919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561205357612052613707565b5b6040519080825280602002602001820160405280156120815781602001602082028036833780820191505090505b5090503081600081518110612099576120986130cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561213b57600080fd5b505afa15801561214f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612173919061374b565b81600181518110612187576121866130cd565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121ee30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461156e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612252959493929190613871565b600060405180830381600087803b15801561226c57600080fd5b505af1158015612280573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b806122b1576122b0612345565b5b6122bc848484612388565b806122ca576122c96125ae565b5b50505050565b60008060006122dd6125c2565b915091506122f481836122fb90919063ffffffff16565b9250505090565b600061233d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612627565b905092915050565b6000600c5414801561235957506000600d54145b1561236357612386565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b60008060008060008061239a8761268a565b955095509550955095509550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff16141561240157600080fd5b61245386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546126f290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506124e885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125348161279a565b61253e8483612857565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161259b9190612c83565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600069d3c21bcecceda100000090506125fa69d3c21bcecceda10000006006546122fb90919063ffffffff16565b82101561261a5760065469d3c21bcecceda1000000935093505050612623565b81819350935050505b9091565b6000808311829061266e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126659190612ac4565b60405180910390fd5b506000838561267d91906138fa565b9050809150509392505050565b60008060008060008060008060006126a78a600c54600d54612891565b92509250925060006126b76122d0565b905060008060006126ca8e878787612927565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061273483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611edd565b905092915050565b600080828461274b9190613077565b905083811015612790576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161278790613977565b60405180910390fd5b8091505092915050565b60006127a46122d0565b905060006127bb82846129b090919063ffffffff16565b905061280f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461273c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61286c826006546126f290919063ffffffff16565b6006819055506128878160075461273c90919063ffffffff16565b6007819055505050565b6000806000806128bd60646128af888a6129b090919063ffffffff16565b6122fb90919063ffffffff16565b905060006128e760646128d9888b6129b090919063ffffffff16565b6122fb90919063ffffffff16565b9050600061291082612902858c6126f290919063ffffffff16565b6126f290919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061294085896129b090919063ffffffff16565b9050600061295786896129b090919063ffffffff16565b9050600061296e87896129b090919063ffffffff16565b905060006129978261298985876126f290919063ffffffff16565b6126f290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156129c35760009050612a25565b600082846129d19190613997565b90508284826129e091906138fa565b14612a20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a1790613a63565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612a65578082015181840152602081019050612a4a565b83811115612a74576000848401525b50505050565b6000601f19601f8301169050919050565b6000612a9682612a2b565b612aa08185612a36565b9350612ab0818560208601612a47565b612ab981612a7a565b840191505092915050565b60006020820190508181036000830152612ade8184612a8b565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612b1b82612af0565b9050919050565b612b2b81612b10565b8114612b3657600080fd5b50565b600081359050612b4881612b22565b92915050565b6000819050919050565b612b6181612b4e565b8114612b6c57600080fd5b50565b600081359050612b7e81612b58565b92915050565b60008060408385031215612b9b57612b9a612ae6565b5b6000612ba985828601612b39565b9250506020612bba85828601612b6f565b9150509250929050565b60008115159050919050565b612bd981612bc4565b82525050565b6000602082019050612bf46000830184612bd0565b92915050565b6000819050919050565b6000612c1f612c1a612c1584612af0565b612bfa565b612af0565b9050919050565b6000612c3182612c04565b9050919050565b6000612c4382612c26565b9050919050565b612c5381612c38565b82525050565b6000602082019050612c6e6000830184612c4a565b92915050565b612c7d81612b4e565b82525050565b6000602082019050612c986000830184612c74565b92915050565b600080600060608486031215612cb757612cb6612ae6565b5b6000612cc586828701612b39565b9350506020612cd686828701612b39565b9250506040612ce786828701612b6f565b9150509250925092565b600060ff82169050919050565b612d0781612cf1565b82525050565b6000602082019050612d226000830184612cfe565b92915050565b612d3181612b10565b82525050565b6000602082019050612d4c6000830184612d28565b92915050565b6000612d5d82612af0565b9050919050565b612d6d81612d52565b8114612d7857600080fd5b50565b600081359050612d8a81612d64565b92915050565b600060208284031215612da657612da5612ae6565b5b6000612db484828501612d7b565b91505092915050565b612dc681612bc4565b8114612dd157600080fd5b50565b600081359050612de381612dbd565b92915050565b600060208284031215612dff57612dfe612ae6565b5b6000612e0d84828501612dd4565b91505092915050565b600060208284031215612e2c57612e2b612ae6565b5b6000612e3a84828501612b39565b91505092915050565b600060208284031215612e5957612e58612ae6565b5b6000612e6784828501612b6f565b91505092915050565b60008060008060808587031215612e8a57612e89612ae6565b5b6000612e9887828801612b6f565b9450506020612ea987828801612b6f565b9350506040612eba87828801612b6f565b9250506060612ecb87828801612b6f565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f840112612efc57612efb612ed7565b5b8235905067ffffffffffffffff811115612f1957612f18612edc565b5b602083019150836020820283011115612f3557612f34612ee1565b5b9250929050565b600080600060408486031215612f5557612f54612ae6565b5b600084013567ffffffffffffffff811115612f7357612f72612aeb565b5b612f7f86828701612ee6565b93509350506020612f9286828701612dd4565b9150509250925092565b60008060408385031215612fb357612fb2612ae6565b5b6000612fc185828601612b39565b9250506020612fd285828601612b39565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613012602083612a36565b915061301d82612fdc565b602082019050919050565b6000602082019050818103600083015261304181613005565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061308282612b4e565b915061308d83612b4e565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130c2576130c1613048565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061310782612b4e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561313a57613139613048565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006131a1602683612a36565b91506131ac82613145565b604082019050919050565b600060208201905081810360008301526131d081613194565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613233602483612a36565b915061323e826131d7565b604082019050919050565b6000602082019050818103600083015261326281613226565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006132c5602283612a36565b91506132d082613269565b604082019050919050565b600060208201905081810360008301526132f4816132b8565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613357602583612a36565b9150613362826132fb565b604082019050919050565b600060208201905081810360008301526133868161334a565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006133e9602383612a36565b91506133f48261338d565b604082019050919050565b60006020820190508181036000830152613418816133dc565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061347b602983612a36565b91506134868261341f565b604082019050919050565b600060208201905081810360008301526134aa8161346e565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b600061350d603f83612a36565b9150613518826134b1565b604082019050919050565b6000602082019050818103600083015261353c81613500565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613579601c83612a36565b915061358482613543565b602082019050919050565b600060208201905081810360008301526135a88161356c565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061360b602383612a36565b9150613616826135af565b604082019050919050565b6000602082019050818103600083015261363a816135fe565b9050919050565b600061364c82612b4e565b915061365783612b4e565b92508282101561366a57613669613048565b5b828203905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b60006136d1602a83612a36565b91506136dc82613675565b604082019050919050565b60006020820190508181036000830152613700816136c4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60008151905061374581612b22565b92915050565b60006020828403121561376157613760612ae6565b5b600061376f84828501613736565b91505092915050565b6000819050919050565b600061379d61379861379384613778565b612bfa565b612b4e565b9050919050565b6137ad81613782565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6137e881612b10565b82525050565b60006137fa83836137df565b60208301905092915050565b6000602082019050919050565b600061381e826137b3565b61382881856137be565b9350613833836137cf565b8060005b8381101561386457815161384b88826137ee565b975061385683613806565b925050600181019050613837565b5085935050505092915050565b600060a0820190506138866000830188612c74565b61389360208301876137a4565b81810360408301526138a58186613813565b90506138b46060830185612d28565b6138c16080830184612c74565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061390582612b4e565b915061391083612b4e565b9250826139205761391f6138cb565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613961601b83612a36565b915061396c8261392b565b602082019050919050565b6000602082019050818103600083015261399081613954565b9050919050565b60006139a282612b4e565b91506139ad83612b4e565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139e6576139e5613048565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a4d602183612a36565b9150613a58826139f1565b604082019050919050565b60006020820190508181036000830152613a7c81613a40565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208cc0ac3fbc90b1dab0f3d01c4d9964b595ea88b95f00b215602bacbc50b687d364736f6c63430008090033
Deployed Bytecode Sourcemap
5805:13624:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8229:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9154:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7065:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8506:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9355:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7383:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8415:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7113:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14059:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18811:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14251:221;;;;;;;;;;;;;:::i;:::-;;8609:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3292:148;;;;;;;;;;;;;:::i;:::-;;18951:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18421:147;;;;;;;;;;;;;:::i;:::-;;7263:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3078:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13714:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7322:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8320:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18620:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17922:491;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8755:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13823:222;;;;;;;;;;;;;:::i;:::-;;19190:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8962:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19067:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3448:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8229:83;8266:13;8299:5;;;;;;;;;;;;;;;;;8292:12;;8229:83;:::o;9154:193::-;9256:4;9278:39;9287:12;:10;:12::i;:::-;9301:7;9310:6;9278:8;:39::i;:::-;9335:4;9328:11;;9154:193;;;;:::o;7065:41::-;;;;;;;;;;;;;:::o;8506:95::-;8559:7;6367:24;8579:14;;8506:95;:::o;9355:446::-;9487:4;9504:36;9514:6;9522:9;9533:6;9504:9;:36::i;:::-;9551:220;9574:6;9595:12;:10;:12::i;:::-;9622:138;9678:6;9622:138;;;;;;;;;;;;;;;;;:11;:19;9634:6;9622:19;;;;;;;;;;;;;;;:33;9642:12;:10;:12::i;:::-;9622:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;9551:8;:220::i;:::-;9789:4;9782:11;;9355:446;;;;;:::o;7383:58::-;;;;:::o;8415:83::-;8456:5;6041:1;8474:16;;8415:83;:::o;7113:28::-;;;;;;;;;;;;;:::o;14059:184::-;14162:11;;;;;;;;;;;14146:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;14193:11;;;;;;;;;;;14177:27;;:12;:10;:12::i;:::-;:27;;;14146:58;14138:67;;;;;;14230:5;14216:11;;:19;;;;;;;;;;;;;;;;;;14059:184;:::o;18811:101::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18892:12:::1;18878:11;;:26;;;;;;;;;;;;;;;;;;18811:101:::0;:::o;14251:221::-;14317:11;;;;;;;;;;;14301:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;14348:11;;;;;;;;;;;14332:27;;:12;:10;:12::i;:::-;:27;;;14301:58;14293:67;;;;;;14371:26;14400:21;14371:50;;14432:32;14445:18;14432:12;:32::i;:::-;14282:190;14251:221::o;8609:138::-;8675:7;8702:37;8722:7;:16;8730:7;8722:16;;;;;;;;;;;;;;;;8702:19;:37::i;:::-;8695:44;;8609:138;;;:::o;3292:148::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3399:1:::1;3362:40;;3383:6;::::0;::::1;;;;;;;;3362:40;;;;;;;;;;;;3430:1;3413:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3292:148::o:0;18951:108::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19040:11:::1;19025:12;:26;;;;18951:108:::0;:::o;18421:147::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18485:24:::1;18470:12;:39;;;;18534:24;18517:14;:41;;;;18421:147::o:0;7263:52::-;;;;:::o;3078:79::-;3116:7;3143:6;;;;;;;;;;;3136:13;;3078:79;:::o;13714:101::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13795:12:::1;13781:11;;:26;;;;;;;;;;;;;;;;;;13714:101:::0;:::o;7322:54::-;;;;:::o;8320:87::-;8359:13;8392:7;;;;;;;;;;;;;;;;;8385:14;;8320:87;:::o;18620:139::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18733:18:::1;18711:19;:40;;;;18620:139:::0;:::o;17922:491::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18056:20:::1;18093:11;18079:13;:25;;;;:::i;:::-;18056:48;;18115:21;18154:12;18139:14;:27;;;;:::i;:::-;18115:51;;18194:13;18177:14;:30;;;;18236:14;18218:15;:32;;;;18276:11;18261:12;:26;;;;18314:12;18298:13;:28;;;;18360:2;18345:12;:17;18337:26;;;::::0;::::1;;18398:2;18382:13;:18;18374:27;;;::::0;::::1;;18045:368;;17922:491:::0;;;;:::o;8755:199::-;8860:4;8882:42;8892:12;:10;:12::i;:::-;8906:9;8917:6;8882:9;:42::i;:::-;8942:4;8935:11;;8755:199;;;;:::o;13823:222::-;13889:11;;;;;;;;;;;13873:27;;:12;:10;:12::i;:::-;:27;;;:58;;;;13920:11;;;;;;;;;;;13904:27;;:12;:10;:12::i;:::-;:27;;;13873:58;13865:67;;;;;;13943:23;13969:24;13987:4;13969:9;:24::i;:::-;13943:50;;14004:33;14021:15;14004:16;:33::i;:::-;13854:191;13823:222::o;19190:234::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19307:9:::1;19303:114;19326:8;;:15;;19322:1;:19;19303:114;;;19397:8;19363:18;:31;19382:8;;19391:1;19382:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;19363:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;19343:3;;;;;:::i;:::-;;;;19303:114;;;;19190:234:::0;;;:::o;8962:184::-;9079:7;9111:11;:18;9123:5;9111:18;;;;;;;;;;;;;;;:27;9130:7;9111:27;;;;;;;;;;;;;;;;9104:34;;8962:184;;;;:::o;19067:115::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19161:13:::1;19144:14;:30;;;;19067:115:::0;:::o;3448:244::-;3215:12;:10;:12::i;:::-;3205:22;;:6;;;;;;;;;;:22;;;3197:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3557:1:::1;3537:22;;:8;:22;;;;3529:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3647:8;3618:38;;3639:6;::::0;::::1;;;;;;;;3618:38;;;;;;;;;;;;3676:8;3667:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3448:244:::0;:::o;1837:98::-;1890:7;1917:10;1910:17;;1837:98;:::o;10492:369::-;10636:1;10619:19;;:5;:19;;;;10611:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10717:1;10698:21;;:7;:21;;;;10690:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10799:6;10769:11;:18;10781:5;10769:18;;;;;;;;;;;;;;;:27;10788:7;10769:27;;;;;;;;;;;;;;;:36;;;;10837:7;10821:32;;10830:5;10821:32;;;10846:6;10821:32;;;;;;:::i;:::-;;;;;;;;10492:369;;;:::o;10869:2245::-;11007:1;10991:18;;:4;:18;;;;10983:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11084:1;11070:16;;:2;:16;;;;11062:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11154:1;11145:6;:10;11137:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11226:7;:5;:7::i;:::-;11218:15;;:4;:15;;;;:32;;;;;11243:7;:5;:7::i;:::-;11237:13;;:2;:13;;;;11218:32;11214:1174;;;11307:11;;;;;;;;;;;11302:144;;11355:7;:5;:7::i;:::-;11347:15;;:4;:15;;;11339:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;11302:144;11480:12;;11470:6;:22;;11462:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11553:13;;;;;;;;;;;11547:19;;:2;:19;;;11544:146;;11620:14;;11611:6;11595:13;11605:2;11595:9;:13::i;:::-;:22;;;;:::i;:::-;:39;11587:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;11544:146;11706:28;11737:24;11755:4;11737:9;:24::i;:::-;11706:55;;11776:12;11815:19;;11791:20;:43;;11776:58;;11878:12;;11854:20;:36;11851:124;;11947:12;;11924:35;;11851:124;11995:7;:18;;;;;12007:6;;;;;;;;;;;12006:7;11995:18;:43;;;;;12025:13;;;;;;;;;;;12017:21;;:4;:21;;;;11995:43;:58;;;;;12042:11;;;;;;;;;;;11995:58;:87;;;;;12058:18;:24;12077:4;12058:24;;;;;;;;;;;;;;;;;;;;;;;;;12057:25;11995:87;:114;;;;;12087:18;:22;12106:2;12087:22;;;;;;;;;;;;;;;;;;;;;;;;;12086:23;11995:114;11991:386;;;12130:38;12147:20;12130:16;:38::i;:::-;12187:26;12216:21;12187:50;;12281:1;12260:18;:22;12256:106;;;12307:35;12320:21;12307:12;:35::i;:::-;12256:106;12111:266;11991:386;11252:1136;;11214:1174;12400:12;12415:4;12400:19;;12464:18;:24;12483:4;12464:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;12492:18;:22;12511:2;12492:22;;;;;;;;;;;;;;;;;;;;;;;;;12464:50;12463:102;;;;12528:13;;;;;;;;;;;12520:21;;:4;:21;;;;:44;;;;;12551:13;;;;;;;;;;;12545:19;;:2;:19;;;;12520:44;12463:102;12459:594;;;12592:5;12582:15;;12459:594;;;12675:13;;;;;;;;;;;12667:21;;:4;:21;;;:55;;;;;12706:15;;;;;;;;;;;12692:30;;:2;:30;;;;12667:55;12664:162;;;12755:14;;12743:9;:26;;;;12798:12;;12788:7;:22;;;;12664:162;12885:13;;;;;;;;;;;12879:19;;:2;:19;;;:55;;;;;12918:15;;;;;;;;;;;12902:32;;:4;:32;;;;12879:55;12875:165;;;12967:15;;12955:9;:27;;;;13011:13;;13001:7;:23;;;;12875:165;12459:594;13065:41;13080:4;13086:2;13090:6;13098:7;13065:14;:41::i;:::-;10972:2142;10869:2245;;;:::o;4056:224::-;4176:7;4209:1;4204;:6;;4212:12;4196:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4236:9;4252:1;4248;:5;;;;:::i;:::-;4236:17;;4271:1;4264:8;;;4056:224;;;;;:::o;13613:93::-;13670:11;;;;;;;;;;;:20;;:28;13691:6;13670:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13613:93;:::o;9809:323::-;9904:7;9962;;9951;:18;;9929:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;10050:19;10072:10;:8;:10::i;:::-;10050:32;;10100:24;10112:11;10100:7;:11;;:24;;;;:::i;:::-;10093:31;;;9809:323;;;:::o;13122:483::-;7544:4;7535:6;;:13;;;;;;;;;;;;;;;;;;13200:21:::1;13238:1;13224:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13200:40;;13269:4;13251;13256:1;13251:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13295:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13285:4;13290:1;13285:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13328:62;13345:4;13360:15;;;;;;;;;;;13378:11;13328:8;:62::i;:::-;13401:15;;;;;;;;;;;:66;;;13482:11;13508:1;13524:4;13551;13571:15;13401:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13189:416;7580:5:::0;7571:6;;:14;;;;;;;;;;;;;;;;;;13122:483;:::o;14482:282::-;14638:7;14633:28;;14647:14;:12;:14::i;:::-;14633:28;14672:44;14690:6;14698:9;14709:6;14672:17;:44::i;:::-;14732:7;14727:29;;14741:15;:13;:15::i;:::-;14727:29;14482:282;;;;:::o;17485:164::-;17527:7;17548:15;17565;17584:19;:17;:19::i;:::-;17547:56;;;;17621:20;17633:7;17621;:11;;:20;;;;:::i;:::-;17614:27;;;;17485:164;:::o;4542:132::-;4600:7;4627:39;4631:1;4634;4627:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4620:46;;4542:132;;;;:::o;10140:219::-;10200:1;10187:9;;:14;:30;;;;;10216:1;10205:7;;:12;10187:30;10183:43;;;10219:7;;10183:43;10258:9;;10238:17;:29;;;;10296:7;;10278:15;:25;;;;10328:1;10316:9;:13;;;;10350:1;10340:7;:11;;;;10140:219;:::o;14772:652::-;14919:15;14949:23;14987:12;15014:23;15052:12;15079:13;15106:19;15117:7;15106:10;:19::i;:::-;14904:221;;;;;;;;;;;;15155:11;;;;;;;;;;;15144:22;;:9;:22;;;;15136:31;;;;;;15196:28;15216:7;15196;:15;15204:6;15196:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;15178:7;:15;15186:6;15178:15;;;;;;;;;;;;;;;:46;;;;15256:39;15279:15;15256:7;:18;15264:9;15256:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;15235:7;:18;15243:9;15235:18;;;;;;;;;;;;;;;:60;;;;15306:16;15316:5;15306:9;:16::i;:::-;15333:23;15345:4;15351;15333:11;:23::i;:::-;15389:9;15372:44;;15381:6;15372:44;;;15400:15;15372:44;;;;;;:::i;:::-;;;;;;;;14893:531;;;;;;14772:652;;;:::o;10367:117::-;10423:17;;10411:9;:29;;;;10461:15;;10451:7;:25;;;;10367:117::o;17657:257::-;17708:7;17717;17737:15;17755:7;;17737:25;;17773:15;6367:24;17773:25;;17823:20;6367:24;17823:7;;:11;;:20;;;;:::i;:::-;17813:7;:30;17809:61;;;17853:7;;6367:24;17845:25;;;;;;;;17809:61;17889:7;17898;17881:25;;;;;;17657:257;;;:::o;4682:223::-;4802:7;4834:1;4830;:5;4837:12;4822:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4861:9;4877:1;4873;:5;;;;:::i;:::-;4861:17;;4896:1;4889:8;;;4682:223;;;;;:::o;15843:615::-;15943:7;15965;15987;16009;16031;16053;16089:23;16114:12;16128:13;16158:40;16170:7;16179:9;;16190:7;;16158:11;:40::i;:::-;16088:110;;;;;;16209:19;16231:10;:8;:10::i;:::-;16209:32;;16253:15;16270:23;16295:12;16324:46;16336:7;16345:4;16351:5;16358:11;16324;:46::i;:::-;16252:118;;;;;;16389:7;16398:15;16415:4;16421:15;16438:4;16444:5;16381:69;;;;;;;;;;;;;;;;;;;15843:615;;;;;;;:::o;3912:136::-;3970:7;3997:43;4001:1;4004;3997:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3990:50;;3912:136;;;;:::o;3725:179::-;3783:7;3803:9;3819:1;3815;:5;;;;:::i;:::-;3803:17;;3844:1;3839;:6;;3831:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3895:1;3888:8;;;3725:179;;;;:::o;15432:211::-;15485:19;15507:10;:8;:10::i;:::-;15485:32;;15528:13;15544:22;15554:11;15544:5;:9;;:22;;;;:::i;:::-;15528:38;;15602:33;15629:5;15602:7;:22;15618:4;15602:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15577:7;:22;15593:4;15577:22;;;;;;;;;;;;;;;:58;;;;15474:169;;15432:211;:::o;15651:147::-;15729:17;15741:4;15729:7;;:11;;:17;;;;:::i;:::-;15719:7;:27;;;;15770:20;15785:4;15770:10;;:14;;:20;;;;:::i;:::-;15757:10;:33;;;;15651:147;;:::o;16466:469::-;16635:7;16657;16679;16714:12;16729:30;16755:3;16729:21;16741:8;16729:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16714:45;;16770:13;16786:28;16810:3;16786:19;16798:6;16786:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16770:44;;16825:23;16851:28;16873:5;16851:17;16863:4;16851:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16825:54;;16898:15;16915:4;16921:5;16890:37;;;;;;;;;16466:469;;;;;;;:::o;16943:534::-;17137:7;17159;17181;17216:15;17234:24;17246:11;17234:7;:11;;:24;;;;:::i;:::-;17216:42;;17269:12;17284:21;17293:11;17284:4;:8;;:21;;;;:::i;:::-;17269:36;;17316:13;17332:22;17342:11;17332:5;:9;;:22;;;;:::i;:::-;17316:38;;17365:23;17391:28;17413:5;17391:17;17403:4;17391:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;17365:54;;17438:7;17447:15;17464:4;17430:39;;;;;;;;;;16943:534;;;;;;;;:::o;4288:246::-;4346:7;4375:1;4370;:6;4366:47;;;4400:1;4393:8;;;;4366:47;4423:9;4439:1;4435;:5;;;;:::i;:::-;4423:17;;4468:1;4463;4459;:5;;;;:::i;:::-;:10;4451:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4525:1;4518:8;;;4288:246;;;;;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:118::-;5961:24;5979:5;5961:24;:::i;:::-;5956:3;5949:37;5874:118;;:::o;5998:222::-;6091:4;6129:2;6118:9;6114:18;6106:26;;6142:71;6210:1;6199:9;6195:17;6186:6;6142:71;:::i;:::-;5998:222;;;;:::o;6226:104::-;6271:7;6300:24;6318:5;6300:24;:::i;:::-;6289:35;;6226:104;;;:::o;6336:138::-;6417:32;6443:5;6417:32;:::i;:::-;6410:5;6407:43;6397:71;;6464:1;6461;6454:12;6397:71;6336:138;:::o;6480:155::-;6534:5;6572:6;6559:20;6550:29;;6588:41;6623:5;6588:41;:::i;:::-;6480:155;;;;:::o;6641:345::-;6708:6;6757:2;6745:9;6736:7;6732:23;6728:32;6725:119;;;6763:79;;:::i;:::-;6725:119;6883:1;6908:61;6961:7;6952:6;6941:9;6937:22;6908:61;:::i;:::-;6898:71;;6854:125;6641:345;;;;:::o;6992:116::-;7062:21;7077:5;7062:21;:::i;:::-;7055:5;7052:32;7042:60;;7098:1;7095;7088:12;7042:60;6992:116;:::o;7114:133::-;7157:5;7195:6;7182:20;7173:29;;7211:30;7235:5;7211:30;:::i;:::-;7114:133;;;;:::o;7253:323::-;7309:6;7358:2;7346:9;7337:7;7333:23;7329:32;7326:119;;;7364:79;;:::i;:::-;7326:119;7484:1;7509:50;7551:7;7542:6;7531:9;7527:22;7509:50;:::i;:::-;7499:60;;7455:114;7253:323;;;;:::o;7582:329::-;7641:6;7690:2;7678:9;7669:7;7665:23;7661:32;7658:119;;;7696:79;;:::i;:::-;7658:119;7816:1;7841:53;7886:7;7877:6;7866:9;7862:22;7841:53;:::i;:::-;7831:63;;7787:117;7582:329;;;;:::o;7917:::-;7976:6;8025:2;8013:9;8004:7;8000:23;7996:32;7993:119;;;8031:79;;:::i;:::-;7993:119;8151:1;8176:53;8221:7;8212:6;8201:9;8197:22;8176:53;:::i;:::-;8166:63;;8122:117;7917:329;;;;:::o;8252:765::-;8338:6;8346;8354;8362;8411:3;8399:9;8390:7;8386:23;8382:33;8379:120;;;8418:79;;:::i;:::-;8379:120;8538:1;8563:53;8608:7;8599:6;8588:9;8584:22;8563:53;:::i;:::-;8553:63;;8509:117;8665:2;8691:53;8736:7;8727:6;8716:9;8712:22;8691:53;:::i;:::-;8681:63;;8636:118;8793:2;8819:53;8864:7;8855:6;8844:9;8840:22;8819:53;:::i;:::-;8809:63;;8764:118;8921:2;8947:53;8992:7;8983:6;8972:9;8968:22;8947:53;:::i;:::-;8937:63;;8892:118;8252:765;;;;;;;:::o;9023:117::-;9132:1;9129;9122:12;9146:117;9255:1;9252;9245:12;9269:117;9378:1;9375;9368:12;9409:568;9482:8;9492:6;9542:3;9535:4;9527:6;9523:17;9519:27;9509:122;;9550:79;;:::i;:::-;9509:122;9663:6;9650:20;9640:30;;9693:18;9685:6;9682:30;9679:117;;;9715:79;;:::i;:::-;9679:117;9829:4;9821:6;9817:17;9805:29;;9883:3;9875:4;9867:6;9863:17;9853:8;9849:32;9846:41;9843:128;;;9890:79;;:::i;:::-;9843:128;9409:568;;;;;:::o;9983:698::-;10075:6;10083;10091;10140:2;10128:9;10119:7;10115:23;10111:32;10108:119;;;10146:79;;:::i;:::-;10108:119;10294:1;10283:9;10279:17;10266:31;10324:18;10316:6;10313:30;10310:117;;;10346:79;;:::i;:::-;10310:117;10459:80;10531:7;10522:6;10511:9;10507:22;10459:80;:::i;:::-;10441:98;;;;10237:312;10588:2;10614:50;10656:7;10647:6;10636:9;10632:22;10614:50;:::i;:::-;10604:60;;10559:115;9983:698;;;;;:::o;10687:474::-;10755:6;10763;10812:2;10800:9;10791:7;10787:23;10783:32;10780:119;;;10818:79;;:::i;:::-;10780:119;10938:1;10963:53;11008:7;10999:6;10988:9;10984:22;10963:53;:::i;:::-;10953:63;;10909:117;11065:2;11091:53;11136:7;11127:6;11116:9;11112:22;11091:53;:::i;:::-;11081:63;;11036:118;10687:474;;;;;:::o;11167:182::-;11307:34;11303:1;11295:6;11291:14;11284:58;11167:182;:::o;11355:366::-;11497:3;11518:67;11582:2;11577:3;11518:67;:::i;:::-;11511:74;;11594:93;11683:3;11594:93;:::i;:::-;11712:2;11707:3;11703:12;11696:19;;11355:366;;;:::o;11727:419::-;11893:4;11931:2;11920:9;11916:18;11908:26;;11980:9;11974:4;11970:20;11966:1;11955:9;11951:17;11944:47;12008:131;12134:4;12008:131;:::i;:::-;12000:139;;11727:419;;;:::o;12152:180::-;12200:77;12197:1;12190:88;12297:4;12294:1;12287:15;12321:4;12318:1;12311:15;12338:305;12378:3;12397:20;12415:1;12397:20;:::i;:::-;12392:25;;12431:20;12449:1;12431:20;:::i;:::-;12426:25;;12585:1;12517:66;12513:74;12510:1;12507:81;12504:107;;;12591:18;;:::i;:::-;12504:107;12635:1;12632;12628:9;12621:16;;12338:305;;;;:::o;12649:180::-;12697:77;12694:1;12687:88;12794:4;12791:1;12784:15;12818:4;12815:1;12808:15;12835:233;12874:3;12897:24;12915:5;12897:24;:::i;:::-;12888:33;;12943:66;12936:5;12933:77;12930:103;;;13013:18;;:::i;:::-;12930:103;13060:1;13053:5;13049:13;13042:20;;12835:233;;;:::o;13074:225::-;13214:34;13210:1;13202:6;13198:14;13191:58;13283:8;13278:2;13270:6;13266:15;13259:33;13074:225;:::o;13305:366::-;13447:3;13468:67;13532:2;13527:3;13468:67;:::i;:::-;13461:74;;13544:93;13633:3;13544:93;:::i;:::-;13662:2;13657:3;13653:12;13646:19;;13305:366;;;:::o;13677:419::-;13843:4;13881:2;13870:9;13866:18;13858:26;;13930:9;13924:4;13920:20;13916:1;13905:9;13901:17;13894:47;13958:131;14084:4;13958:131;:::i;:::-;13950:139;;13677:419;;;:::o;14102:223::-;14242:34;14238:1;14230:6;14226:14;14219:58;14311:6;14306:2;14298:6;14294:15;14287:31;14102:223;:::o;14331:366::-;14473:3;14494:67;14558:2;14553:3;14494:67;:::i;:::-;14487:74;;14570:93;14659:3;14570:93;:::i;:::-;14688:2;14683:3;14679:12;14672:19;;14331:366;;;:::o;14703:419::-;14869:4;14907:2;14896:9;14892:18;14884:26;;14956:9;14950:4;14946:20;14942:1;14931:9;14927:17;14920:47;14984:131;15110:4;14984:131;:::i;:::-;14976:139;;14703:419;;;:::o;15128:221::-;15268:34;15264:1;15256:6;15252:14;15245:58;15337:4;15332:2;15324:6;15320:15;15313:29;15128:221;:::o;15355:366::-;15497:3;15518:67;15582:2;15577:3;15518:67;:::i;:::-;15511:74;;15594:93;15683:3;15594:93;:::i;:::-;15712:2;15707:3;15703:12;15696:19;;15355:366;;;:::o;15727:419::-;15893:4;15931:2;15920:9;15916:18;15908:26;;15980:9;15974:4;15970:20;15966:1;15955:9;15951:17;15944:47;16008:131;16134:4;16008:131;:::i;:::-;16000:139;;15727:419;;;:::o;16152:224::-;16292:34;16288:1;16280:6;16276:14;16269:58;16361:7;16356:2;16348:6;16344:15;16337:32;16152:224;:::o;16382:366::-;16524:3;16545:67;16609:2;16604:3;16545:67;:::i;:::-;16538:74;;16621:93;16710:3;16621:93;:::i;:::-;16739:2;16734:3;16730:12;16723:19;;16382:366;;;:::o;16754:419::-;16920:4;16958:2;16947:9;16943:18;16935:26;;17007:9;17001:4;16997:20;16993:1;16982:9;16978:17;16971:47;17035:131;17161:4;17035:131;:::i;:::-;17027:139;;16754:419;;;:::o;17179:222::-;17319:34;17315:1;17307:6;17303:14;17296:58;17388:5;17383:2;17375:6;17371:15;17364:30;17179:222;:::o;17407:366::-;17549:3;17570:67;17634:2;17629:3;17570:67;:::i;:::-;17563:74;;17646:93;17735:3;17646:93;:::i;:::-;17764:2;17759:3;17755:12;17748:19;;17407:366;;;:::o;17779:419::-;17945:4;17983:2;17972:9;17968:18;17960:26;;18032:9;18026:4;18022:20;18018:1;18007:9;18003:17;17996:47;18060:131;18186:4;18060:131;:::i;:::-;18052:139;;17779:419;;;:::o;18204:228::-;18344:34;18340:1;18332:6;18328:14;18321:58;18413:11;18408:2;18400:6;18396:15;18389:36;18204:228;:::o;18438:366::-;18580:3;18601:67;18665:2;18660:3;18601:67;:::i;:::-;18594:74;;18677:93;18766:3;18677:93;:::i;:::-;18795:2;18790:3;18786:12;18779:19;;18438:366;;;:::o;18810:419::-;18976:4;19014:2;19003:9;18999:18;18991:26;;19063:9;19057:4;19053:20;19049:1;19038:9;19034:17;19027:47;19091:131;19217:4;19091:131;:::i;:::-;19083:139;;18810:419;;;:::o;19235:250::-;19375:34;19371:1;19363:6;19359:14;19352:58;19444:33;19439:2;19431:6;19427:15;19420:58;19235:250;:::o;19491:366::-;19633:3;19654:67;19718:2;19713:3;19654:67;:::i;:::-;19647:74;;19730:93;19819:3;19730:93;:::i;:::-;19848:2;19843:3;19839:12;19832:19;;19491:366;;;:::o;19863:419::-;20029:4;20067:2;20056:9;20052:18;20044:26;;20116:9;20110:4;20106:20;20102:1;20091:9;20087:17;20080:47;20144:131;20270:4;20144:131;:::i;:::-;20136:139;;19863:419;;;:::o;20288:178::-;20428:30;20424:1;20416:6;20412:14;20405:54;20288:178;:::o;20472:366::-;20614:3;20635:67;20699:2;20694:3;20635:67;:::i;:::-;20628:74;;20711:93;20800:3;20711:93;:::i;:::-;20829:2;20824:3;20820:12;20813:19;;20472:366;;;:::o;20844:419::-;21010:4;21048:2;21037:9;21033:18;21025:26;;21097:9;21091:4;21087:20;21083:1;21072:9;21068:17;21061:47;21125:131;21251:4;21125:131;:::i;:::-;21117:139;;20844:419;;;:::o;21269:222::-;21409:34;21405:1;21397:6;21393:14;21386:58;21478:5;21473:2;21465:6;21461:15;21454:30;21269:222;:::o;21497:366::-;21639:3;21660:67;21724:2;21719:3;21660:67;:::i;:::-;21653:74;;21736:93;21825:3;21736:93;:::i;:::-;21854:2;21849:3;21845:12;21838:19;;21497:366;;;:::o;21869:419::-;22035:4;22073:2;22062:9;22058:18;22050:26;;22122:9;22116:4;22112:20;22108:1;22097:9;22093:17;22086:47;22150:131;22276:4;22150:131;:::i;:::-;22142:139;;21869:419;;;:::o;22294:191::-;22334:4;22354:20;22372:1;22354:20;:::i;:::-;22349:25;;22388:20;22406:1;22388:20;:::i;:::-;22383:25;;22427:1;22424;22421:8;22418:34;;;22432:18;;:::i;:::-;22418:34;22477:1;22474;22470:9;22462:17;;22294:191;;;;:::o;22491:229::-;22631:34;22627:1;22619:6;22615:14;22608:58;22700:12;22695:2;22687:6;22683:15;22676:37;22491:229;:::o;22726:366::-;22868:3;22889:67;22953:2;22948:3;22889:67;:::i;:::-;22882:74;;22965:93;23054:3;22965:93;:::i;:::-;23083:2;23078:3;23074:12;23067:19;;22726:366;;;:::o;23098:419::-;23264:4;23302:2;23291:9;23287:18;23279:26;;23351:9;23345:4;23341:20;23337:1;23326:9;23322:17;23315:47;23379:131;23505:4;23379:131;:::i;:::-;23371:139;;23098:419;;;:::o;23523:180::-;23571:77;23568:1;23561:88;23668:4;23665:1;23658:15;23692:4;23689:1;23682:15;23709:143;23766:5;23797:6;23791:13;23782:22;;23813:33;23840:5;23813:33;:::i;:::-;23709:143;;;;:::o;23858:351::-;23928:6;23977:2;23965:9;23956:7;23952:23;23948:32;23945:119;;;23983:79;;:::i;:::-;23945:119;24103:1;24128:64;24184:7;24175:6;24164:9;24160:22;24128:64;:::i;:::-;24118:74;;24074:128;23858:351;;;;:::o;24215:85::-;24260:7;24289:5;24278:16;;24215:85;;;:::o;24306:158::-;24364:9;24397:61;24415:42;24424:32;24450:5;24424:32;:::i;:::-;24415:42;:::i;:::-;24397:61;:::i;:::-;24384:74;;24306:158;;;:::o;24470:147::-;24565:45;24604:5;24565:45;:::i;:::-;24560:3;24553:58;24470:147;;:::o;24623:114::-;24690:6;24724:5;24718:12;24708:22;;24623:114;;;:::o;24743:184::-;24842:11;24876:6;24871:3;24864:19;24916:4;24911:3;24907:14;24892:29;;24743:184;;;;:::o;24933:132::-;25000:4;25023:3;25015:11;;25053:4;25048:3;25044:14;25036:22;;24933:132;;;:::o;25071:108::-;25148:24;25166:5;25148:24;:::i;:::-;25143:3;25136:37;25071:108;;:::o;25185:179::-;25254:10;25275:46;25317:3;25309:6;25275:46;:::i;:::-;25353:4;25348:3;25344:14;25330:28;;25185:179;;;;:::o;25370:113::-;25440:4;25472;25467:3;25463:14;25455:22;;25370:113;;;:::o;25519:732::-;25638:3;25667:54;25715:5;25667:54;:::i;:::-;25737:86;25816:6;25811:3;25737:86;:::i;:::-;25730:93;;25847:56;25897:5;25847:56;:::i;:::-;25926:7;25957:1;25942:284;25967:6;25964:1;25961:13;25942:284;;;26043:6;26037:13;26070:63;26129:3;26114:13;26070:63;:::i;:::-;26063:70;;26156:60;26209:6;26156:60;:::i;:::-;26146:70;;26002:224;25989:1;25986;25982:9;25977:14;;25942:284;;;25946:14;26242:3;26235:10;;25643:608;;;25519:732;;;;:::o;26257:831::-;26520:4;26558:3;26547:9;26543:19;26535:27;;26572:71;26640:1;26629:9;26625:17;26616:6;26572:71;:::i;:::-;26653:80;26729:2;26718:9;26714:18;26705:6;26653:80;:::i;:::-;26780:9;26774:4;26770:20;26765:2;26754:9;26750:18;26743:48;26808:108;26911:4;26902:6;26808:108;:::i;:::-;26800:116;;26926:72;26994:2;26983:9;26979:18;26970:6;26926:72;:::i;:::-;27008:73;27076:3;27065:9;27061:19;27052:6;27008:73;:::i;:::-;26257:831;;;;;;;;:::o;27094:180::-;27142:77;27139:1;27132:88;27239:4;27236:1;27229:15;27263:4;27260:1;27253:15;27280:185;27320:1;27337:20;27355:1;27337:20;:::i;:::-;27332:25;;27371:20;27389:1;27371:20;:::i;:::-;27366:25;;27410:1;27400:35;;27415:18;;:::i;:::-;27400:35;27457:1;27454;27450:9;27445:14;;27280:185;;;;:::o;27471:177::-;27611:29;27607:1;27599:6;27595:14;27588:53;27471:177;:::o;27654:366::-;27796:3;27817:67;27881:2;27876:3;27817:67;:::i;:::-;27810:74;;27893:93;27982:3;27893:93;:::i;:::-;28011:2;28006:3;28002:12;27995:19;;27654:366;;;:::o;28026:419::-;28192:4;28230:2;28219:9;28215:18;28207:26;;28279:9;28273:4;28269:20;28265:1;28254:9;28250:17;28243:47;28307:131;28433:4;28307:131;:::i;:::-;28299:139;;28026:419;;;:::o;28451:348::-;28491:7;28514:20;28532:1;28514:20;:::i;:::-;28509:25;;28548:20;28566:1;28548:20;:::i;:::-;28543:25;;28736:1;28668:66;28664:74;28661:1;28658:81;28653:1;28646:9;28639:17;28635:105;28632:131;;;28743:18;;:::i;:::-;28632:131;28791:1;28788;28784:9;28773:20;;28451:348;;;;:::o;28805:220::-;28945:34;28941:1;28933:6;28929:14;28922:58;29014:3;29009:2;29001:6;28997:15;28990:28;28805:220;:::o;29031:366::-;29173:3;29194:67;29258:2;29253:3;29194:67;:::i;:::-;29187:74;;29270:93;29359:3;29270:93;:::i;:::-;29388:2;29383:3;29379:12;29372:19;;29031:366;;;:::o;29403:419::-;29569:4;29607:2;29596:9;29592:18;29584:26;;29656:9;29650:4;29646:20;29642:1;29631:9;29627:17;29620:47;29684:131;29810:4;29684:131;:::i;:::-;29676:139;;29403:419;;;:::o
Swarm Source
ipfs://8cc0ac3fbc90b1dab0f3d01c4d9964b595ea88b95f00b215602bacbc50b687d3
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.