Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Hospitality
Overview
Max Total Supply
1,000,000,000 DBNB
Holders
1,379 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$33,240.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 9 Decimals)
Balance
369,490 DBNBValue
$12.28 ( ~0.00356095983353457 Eth) [0.0369%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume | |
---|---|---|---|---|---|---|
There are no matching entriesPlease try again later |
Contract Name:
DecentraBNB
Compiler Version
v0.8.21+commit.d9974bed
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-07-25 */ // SPDX-License-Identifier: Unlicensed /** * * DecentraBNB | A Global Rental Revolution. * * Modernizing holiday rental through the power of Blockchain technology. * * Website - https://decentrabnb.com/ * Telegram - https://t.me/decentraBNB * Twitter - https://twitter.com/DecentraBnB * Email - [email protected] */ pragma solidity ^0.8.21; 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 DecentraBNB is Context, IERC20, Ownable { using SafeMath for uint256; string private constant _name = "DecentraBNB"; string private constant _symbol = "DBNB"; 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; mapping(address => bool) private _isExcludedFromMax; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 1000 * 10**6 * 10**9; // 1B tokens uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; uint256 private _redisFeeOnBuy = 0; uint256 private _taxFeeOnBuy = 5; uint256 private _redisFeeOnSell = 0; uint256 private _taxFeeOnSell = 5; uint256 private _redisFee = _redisFeeOnSell; uint256 private _taxFee = _taxFeeOnSell; uint256 private _previousredisFee = _redisFee; uint256 private _previoustaxFee = _taxFee; address constant _dead = 0x000000000000000000000000000000000000dEaD; address payable private _adminAddress = payable(0x81A1afa428460354dbbFB53E7Ec68800de965eE3); address payable private _marketingAddress = payable(0x442fd94c9587C5223dDe0A48047091b1B22B8e60); IUniswapV2Router02 public uniswapV2Router; address public uniswapV2Pair; bool private tradingOpen = false; bool private inSwap = false; bool private swapEnabled = true; uint256 public _maxTxAmount = 20 * 10**6 * 10**9; // 2% max transaction uint256 public _maxWalletSize = 20 * 10**6 * 10**9; // 2% max wallet size uint256 public _swapTokensAtAmount = 100000 * 10**9; // 0.01% token swap limit 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[_adminAddress] = true; _isExcludedFromFee[_marketingAddress] = true; _isExcludedFromMax[owner()] = true; _isExcludedFromMax[address(this)] = true; _isExcludedFromMax[_adminAddress] = true; _isExcludedFromMax[_marketingAddress] = 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, "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), "approve from the zero address"); require(spender != address(0), "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), "transfer from the zero address"); require(to != address(0), "transfer to the zero address"); require(amount > 0, "Transfer amount must be greater than zero"); if (from != owner() && to != owner()) { require(tradingOpen, "Trading is not enabled"); if(to != uniswapV2Pair && !_isExcludedFromMax[to]) { require(amount <= _maxTxAmount, "Max Transaction Limit"); require(balanceOf(to) + amount < _maxWalletSize, "Balance exceeds wallet size!"); } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= _swapTokensAtAmount; if(contractTokenBalance >= _swapTokensAtAmount) { contractTokenBalance = _swapTokensAtAmount; } 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; if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) { takeFee = false; } else { if(from == uniswapV2Pair && to != address(uniswapV2Router)) { _redisFee = _redisFeeOnBuy; _taxFee = _taxFeeOnBuy; } 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 { _marketingAddress.transfer(amount); } function _tokenTransfer(address sender, address recipient, uint256 amount, bool takeFee) private { if (!takeFee) removeAllFee(); _transferStandard(sender, recipient, amount); if (!takeFee) restoreAllFee(); } function _transferStandard(address sender, address recipient, uint256 tAmount) private { ( uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam ) = _getValues(tAmount); _rOwned[sender] = _rOwned[sender].sub(rAmount); _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); _takeTeam(tTeam); _reflectFee(rFee, tFee); emit Transfer(sender, recipient, tTransferAmount); } function _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 manualswap() external { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); require(redisFeeOnSell.add(taxFeeOnSell) <= 10, "Cant set sell fees above 10 percent"); require(redisFeeOnBuy.add(taxFeeOnBuy) <= 10, "Cant set buy fees above 10 percent"); _redisFeeOnBuy = redisFeeOnBuy; _redisFeeOnSell = redisFeeOnSell; _taxFeeOnBuy = taxFeeOnBuy; _taxFeeOnSell = taxFeeOnSell; } function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); require(swapTokensAtAmount >= 1000 * 10**9, "Swap tokens below minimal limit."); _swapTokensAtAmount = swapTokensAtAmount; } function toggleSwap(bool _swapEnabled) public { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); swapEnabled = _swapEnabled; } function updateMarketing(address payable marketing) public { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); _marketingAddress = marketing; } function updateAdmin(address payable admin) public { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); _adminAddress = admin; } function setMaxTxAmount(uint256 maxTxAmount) public { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); require(maxTxAmount >= 1 * 10**6 * 10**9, "Max Transaction cant be less than 0.1%"); _maxTxAmount = maxTxAmount; } function setMaxWalletSize(uint256 maxWalletSize) public { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); require(maxWalletSize >= 1 * 10**6 * 10**9, "Max wallet cant be less than 0.1%"); _maxWalletSize = maxWalletSize; } function excludeFromFee(address payable account, bool value) public { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); _isExcludedFromFee[account] = value; } function excludeFromMax(address payable account, bool value) public { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); _isExcludedFromMax[account] = value; } function burnTokens(address _token) external { require(_msgSender() == _adminAddress, "Only contract admin can call this function."); uint256 _amount = IERC20(_token).balanceOf(address(this)); IERC20(_token).transfer(_dead, _amount); } function openTrading() public onlyOwner { tradingOpen = true; } }
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":[{"internalType":"address","name":"_token","type":"address"}],"name":"burnTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"account","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"excludeFromMax","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"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":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","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":[],"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"},{"inputs":[{"internalType":"address payable","name":"admin","type":"address"}],"name":"updateAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"marketing","type":"address"}],"name":"updateMarketing","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052670de0b6b3a76400005f196200001b9190620008a1565b5f1962000029919062000905565b6007555f6009556005600a555f600b556005600c55600b54600d55600c54600e55600d54600f55600e546010557381a1afa428460354dbbfb53e7ec68800de965ee360115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073442fd94c9587c5223dde0a48047091b1b22b8e6060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f6014806101000a81548160ff0219169083151502179055505f601460156101000a81548160ff0219169083151502179055506001601460166101000a81548160ff02191690831515021790555066470de4df82000060155566470de4df820000601655655af3107a400060175534801562000178575f80fd5b505f6200018a6200083d60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460025f6200023c6200083d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200031b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003419190620009a4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003cd9190620009a4565b6040518363ffffffff1660e01b8152600401620003ec929190620009e5565b6020604051808303815f875af115801562000409573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200042f9190620009a4565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f620004836200084460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f620006286200084460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620007c86200083d60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516200082e919062000a21565b60405180910390a35062000a3c565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008ad826200086b565b9150620008ba836200086b565b925082620008cd57620008cc62000874565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000911826200086b565b91506200091e836200086b565b9250828203905081811115620009395762000938620008d8565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200096e8262000943565b9050919050565b620009808162000962565b81146200098b575f80fd5b50565b5f815190506200099e8162000975565b92915050565b5f60208284031215620009bc57620009bb6200093f565b5b5f620009cb848285016200098e565b91505092915050565b620009df8162000962565b82525050565b5f604082019050620009fa5f830185620009d4565b62000a096020830184620009d4565b9392505050565b62000a1b816200086b565b82525050565b5f60208201905062000a365f83018462000a10565b92915050565b613ea68062000a4a5f395ff3fe6080604052600436106101d0575f3560e01c80638f9a55c0116100f6578063c3c8cd8011610094578063e2f273bd11610063578063e2f273bd1461061b578063ea1644d514610643578063ec28438a1461066b578063f2fde38b14610693576101d7565b8063c3c8cd801461058b578063c9567bf9146105a1578063dd62ed3e146105b7578063df8408fe146105f3576101d7565b8063a2a957bb116100d0578063a2a957bb146104d7578063a9059cbb146104ff578063b237f7d41461053b578063b91ebc8814610563576101d7565b80638f9a55c01461045b57806395d89b411461048557806398a5c315146104af576101d7565b8063313ce5671161016e57806370a082311161013d57806370a08231146103b5578063715018a6146103f15780637d1db4a5146104075780638da5cb5b14610431576101d7565b8063313ce5671461032357806349bd5a5e1461034d5780636d8aa8f8146103775780636fc3eaec1461039f576101d7565b806318160ddd116101aa57806318160ddd1461026b57806323b872dd14610295578063249ec2bb146102d15780632fd689e3146102f9576101d7565b806306fdde03146101db578063095ea7b3146102055780631694505e14610241576101d7565b366101d757005b5f80fd5b3480156101e6575f80fd5b506101ef6106bb565b6040516101fc9190612d2f565b60405180910390f35b348015610210575f80fd5b5061022b60048036038101906102269190612de0565b6106f8565b6040516102389190612e38565b60405180910390f35b34801561024c575f80fd5b50610255610715565b6040516102629190612eac565b60405180910390f35b348015610276575f80fd5b5061027f61073a565b60405161028c9190612ed4565b60405180910390f35b3480156102a0575f80fd5b506102bb60048036038101906102b69190612eed565b610749565b6040516102c89190612e38565b60405180910390f35b3480156102dc575f80fd5b506102f760048036038101906102f29190612fa2565b61081d565b005b348015610304575f80fd5b5061030d61090b565b60405161031a9190612ed4565b60405180910390f35b34801561032e575f80fd5b50610337610911565b6040516103449190612ffb565b60405180910390f35b348015610358575f80fd5b50610361610919565b60405161036e9190613023565b60405180910390f35b348015610382575f80fd5b5061039d6004803603810190610398919061303c565b61093e565b005b3480156103aa575f80fd5b506103b36109f1565b005b3480156103c0575f80fd5b506103db60048036038101906103d69190613067565b610a97565b6040516103e89190612ed4565b60405180910390f35b3480156103fc575f80fd5b50610405610ae5565b005b348015610412575f80fd5b5061041b610c33565b6040516104289190612ed4565b60405180910390f35b34801561043c575f80fd5b50610445610c39565b6040516104529190613023565b60405180910390f35b348015610466575f80fd5b5061046f610c60565b60405161047c9190612ed4565b60405180910390f35b348015610490575f80fd5b50610499610c66565b6040516104a69190612d2f565b60405180910390f35b3480156104ba575f80fd5b506104d560048036038101906104d09190613092565b610ca3565b005b3480156104e2575f80fd5b506104fd60048036038101906104f891906130bd565b610d8b565b005b34801561050a575f80fd5b5061052560048036038101906105209190612de0565b610eef565b6040516105329190612e38565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190613067565b610f0c565b005b34801561056e575f80fd5b5061058960048036038101906105849190613121565b61109f565b005b348015610596575f80fd5b5061059f611178565b005b3480156105ac575f80fd5b506105b5611226565b005b3480156105c2575f80fd5b506105dd60048036038101906105d8919061314c565b6112d6565b6040516105ea9190612ed4565b60405180910390f35b3480156105fe575f80fd5b5061061960048036038101906106149190612fa2565b611358565b005b348015610626575f80fd5b50610641600480360381019061063c9190613121565b611446565b005b34801561064e575f80fd5b5061066960048036038101906106649190613092565b61151f565b005b348015610676575f80fd5b50610691600480360381019061068c9190613092565b611609565b005b34801561069e575f80fd5b506106b960048036038101906106b49190613067565b6116f3565b005b60606040518060400160405280600b81526020017f446563656e747261424e42000000000000000000000000000000000000000000815250905090565b5f61070b6107046118b0565b84846118b7565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f610755848484611a7a565b610812846107616118b0565b61080d85604051806060016040528060218152602001613e506021913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107c46118b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122179092919063ffffffff16565b6118b7565b600190509392505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661085d6118b0565b73ffffffffffffffffffffffffffffffffffffffff16146108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa906131fa565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60175481565b5f6009905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661097e6118b0565b73ffffffffffffffffffffffffffffffffffffffff16146109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906131fa565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a316118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e906131fa565b60405180910390fd5b5f479050610a9481612279565b50565b5f610ade60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122e1565b9050919050565b610aed6118b0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090613262565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60155481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600481526020017f44424e4200000000000000000000000000000000000000000000000000000000815250905090565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce36118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d30906131fa565b60405180910390fd5b64e8d4a51000811015610d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d78906132ca565b60405180910390fd5b8060178190555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dcb6118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e18906131fa565b60405180910390fd5b600a610e36828561234d90919063ffffffff16565b1115610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90613358565b60405180910390fd5b600a610e8c838661234d90919063ffffffff16565b1115610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec4906133e6565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b5f610f02610efb6118b0565b8484611a7a565b6001905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4c6118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906131fa565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fdc9190613023565b602060405180830381865afa158015610ff7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101b9190613418565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b815260040161105a929190613443565b6020604051808303815f875af1158015611076573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109a919061347e565b505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110df6118b0565b73ffffffffffffffffffffffffffffffffffffffff1614611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c906131fa565b60405180910390fd5b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111b86118b0565b73ffffffffffffffffffffffffffffffffffffffff161461120e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611205906131fa565b60405180910390fd5b5f61121830610a97565b9050611223816123aa565b50565b61122e6118b0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b190613262565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113986118b0565b73ffffffffffffffffffffffffffffffffffffffff16146113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e5906131fa565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114866118b0565b73ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d3906131fa565b60405180910390fd5b8060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661155f6118b0565b73ffffffffffffffffffffffffffffffffffffffff16146115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac906131fa565b60405180910390fd5b66038d7ea4c680008110156115ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f690613519565b60405180910390fd5b8060168190555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116496118b0565b73ffffffffffffffffffffffffffffffffffffffff161461169f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611696906131fa565b60405180910390fd5b66038d7ea4c680008110156116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e0906135a7565b60405180910390fd5b8060158190555050565b6116fb6118b0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613262565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ec90613635565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c9061369d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90613705565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a6d9190612ed4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf9061376d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4d906137d5565b60405180910390fd5b5f8111611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f90613863565b60405180910390fd5b611ba0610c39565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c0e5750611bde610c39565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f245760148054906101000a900460ff16611c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c57906138cb565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611d04575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da657601554811115611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4590613933565b60405180910390fd5b60165481611d5b84610a97565b611d65919061397e565b10611da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9c906139fb565b60405180910390fd5b5b5f611db030610a97565b90505f60175482101590506017548210611dca5760175491505b808015611de45750601460159054906101000a900460ff16155b8015611e3d575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e555750601460169054906101000a900460ff165b8015611ea8575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611efb575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f2157611f09826123aa565b5f4790505f811115611f1f57611f1e47612279565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611fc4575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612075575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612074575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612082575f9050612205565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561212b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561214357600954600d81905550600a54600e819055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121ec575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561220457600b54600d81905550600c54600e819055505b5b61221184848484612615565b50505050565b5f83831115829061225e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122559190612d2f565b60405180910390fd5b505f838561226c9190613a19565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122dd573d5f803e3d5ffd5b5050565b5f600754821115612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e90613abc565b60405180910390fd5b5f612330612642565b9050612345818461266b90919063ffffffff16565b915050919050565b5f80828461235b919061397e565b9050838110156123a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239790613b24565b60405180910390fd5b8091505092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123e1576123e0613b42565b5b60405190808252806020026020018201604052801561240f5781602001602082028036833780820191505090505b50905030815f8151811061242657612425613b6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124ee9190613bb0565b8160018151811061250257612501613b6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125683060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b7565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125ca959493929190613ccb565b5f604051808303815f87803b1580156125e1575f80fd5b505af11580156125f3573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b80612623576126226126b4565b5b61262e8484846126ed565b8061263c5761263b6128ad565b5b50505050565b5f805f61264d6128c1565b91509150612664818361266b90919063ffffffff16565b9250505090565b5f6126ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061291d565b905092915050565b5f600d541480156126c657505f600e54145b6126eb57600d54600f81905550600e546010819055505f600d819055505f600e819055505b565b5f805f805f806126fc8761297e565b9550955095509550955095506127588660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129de90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127e98560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461234d90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061283381612a27565b61283d8483612ade565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161289a9190612ed4565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b5f805f60075490505f670de0b6b3a764000090506128f2670de0b6b3a764000060075461266b90919063ffffffff16565b82101561291057600754670de0b6b3a7640000935093505050612919565b81819350935050505b9091565b5f8083118290612963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295a9190612d2f565b60405180910390fd5b505f83856129719190613d50565b9050809150509392505050565b5f805f805f805f805f6129968a600d54600e54612b18565b9250925092505f6129a5612642565b90505f805f6129b68e878787612baa565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f612a1f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612217565b905092915050565b5f612a30612642565b90505f612a468284612c2e90919063ffffffff16565b9050612a988160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461234d90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612af3826007546129de90919063ffffffff16565b600781905550612b0e8160085461234d90919063ffffffff16565b6008819055505050565b5f805f80612b426064612b34888a612c2e90919063ffffffff16565b61266b90919063ffffffff16565b90505f612b6b6064612b5d888b612c2e90919063ffffffff16565b61266b90919063ffffffff16565b90505f612b9382612b85858c6129de90919063ffffffff16565b6129de90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612bc18589612c2e90919063ffffffff16565b90505f612bd78689612c2e90919063ffffffff16565b90505f612bed8789612c2e90919063ffffffff16565b90505f612c1582612c0785876129de90919063ffffffff16565b6129de90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612c3e575f9050612c9f565b5f8284612c4b9190613d80565b9050828482612c5a9190613d50565b14612c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9190613e31565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612cdc578082015181840152602081019050612cc1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d0182612ca5565b612d0b8185612caf565b9350612d1b818560208601612cbf565b612d2481612ce7565b840191505092915050565b5f6020820190508181035f830152612d478184612cf7565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d7c82612d53565b9050919050565b612d8c81612d72565b8114612d96575f80fd5b50565b5f81359050612da781612d83565b92915050565b5f819050919050565b612dbf81612dad565b8114612dc9575f80fd5b50565b5f81359050612dda81612db6565b92915050565b5f8060408385031215612df657612df5612d4f565b5b5f612e0385828601612d99565b9250506020612e1485828601612dcc565b9150509250929050565b5f8115159050919050565b612e3281612e1e565b82525050565b5f602082019050612e4b5f830184612e29565b92915050565b5f819050919050565b5f612e74612e6f612e6a84612d53565b612e51565b612d53565b9050919050565b5f612e8582612e5a565b9050919050565b5f612e9682612e7b565b9050919050565b612ea681612e8c565b82525050565b5f602082019050612ebf5f830184612e9d565b92915050565b612ece81612dad565b82525050565b5f602082019050612ee75f830184612ec5565b92915050565b5f805f60608486031215612f0457612f03612d4f565b5b5f612f1186828701612d99565b9350506020612f2286828701612d99565b9250506040612f3386828701612dcc565b9150509250925092565b5f612f4782612d53565b9050919050565b612f5781612f3d565b8114612f61575f80fd5b50565b5f81359050612f7281612f4e565b92915050565b612f8181612e1e565b8114612f8b575f80fd5b50565b5f81359050612f9c81612f78565b92915050565b5f8060408385031215612fb857612fb7612d4f565b5b5f612fc585828601612f64565b9250506020612fd685828601612f8e565b9150509250929050565b5f60ff82169050919050565b612ff581612fe0565b82525050565b5f60208201905061300e5f830184612fec565b92915050565b61301d81612d72565b82525050565b5f6020820190506130365f830184613014565b92915050565b5f6020828403121561305157613050612d4f565b5b5f61305e84828501612f8e565b91505092915050565b5f6020828403121561307c5761307b612d4f565b5b5f61308984828501612d99565b91505092915050565b5f602082840312156130a7576130a6612d4f565b5b5f6130b484828501612dcc565b91505092915050565b5f805f80608085870312156130d5576130d4612d4f565b5b5f6130e287828801612dcc565b94505060206130f387828801612dcc565b935050604061310487828801612dcc565b925050606061311587828801612dcc565b91505092959194509250565b5f6020828403121561313657613135612d4f565b5b5f61314384828501612f64565b91505092915050565b5f806040838503121561316257613161612d4f565b5b5f61316f85828601612d99565b925050602061318085828601612d99565b9150509250929050565b7f4f6e6c7920636f6e74726163742061646d696e2063616e2063616c6c207468695f8201527f732066756e6374696f6e2e000000000000000000000000000000000000000000602082015250565b5f6131e4602b83612caf565b91506131ef8261318a565b604082019050919050565b5f6020820190508181035f830152613211816131d8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61324c602083612caf565b915061325782613218565b602082019050919050565b5f6020820190508181035f83015261327981613240565b9050919050565b7f5377617020746f6b656e732062656c6f77206d696e696d616c206c696d69742e5f82015250565b5f6132b4602083612caf565b91506132bf82613280565b602082019050919050565b5f6020820190508181035f8301526132e1816132a8565b9050919050565b7f43616e74207365742073656c6c20666565732061626f766520313020706572635f8201527f656e740000000000000000000000000000000000000000000000000000000000602082015250565b5f613342602383612caf565b915061334d826132e8565b604082019050919050565b5f6020820190508181035f83015261336f81613336565b9050919050565b7f43616e74207365742062757920666565732061626f76652031302070657263655f8201527f6e74000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133d0602283612caf565b91506133db82613376565b604082019050919050565b5f6020820190508181035f8301526133fd816133c4565b9050919050565b5f8151905061341281612db6565b92915050565b5f6020828403121561342d5761342c612d4f565b5b5f61343a84828501613404565b91505092915050565b5f6040820190506134565f830185613014565b6134636020830184612ec5565b9392505050565b5f8151905061347881612f78565b92915050565b5f6020828403121561349357613492612d4f565b5b5f6134a08482850161346a565b91505092915050565b7f4d61782077616c6c65742063616e74206265206c657373207468616e20302e315f8201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b5f613503602183612caf565b915061350e826134a9565b604082019050919050565b5f6020820190508181035f830152613530816134f7565b9050919050565b7f4d6178205472616e73616374696f6e2063616e74206265206c657373207468615f8201527f6e20302e31250000000000000000000000000000000000000000000000000000602082015250565b5f613591602683612caf565b915061359c82613537565b604082019050919050565b5f6020820190508181035f8301526135be81613585565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61361f602683612caf565b915061362a826135c5565b604082019050919050565b5f6020820190508181035f83015261364c81613613565b9050919050565b7f617070726f76652066726f6d20746865207a65726f20616464726573730000005f82015250565b5f613687601d83612caf565b915061369282613653565b602082019050919050565b5f6020820190508181035f8301526136b48161367b565b9050919050565b7f617070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f6136ef601b83612caf565b91506136fa826136bb565b602082019050919050565b5f6020820190508181035f83015261371c816136e3565b9050919050565b7f7472616e736665722066726f6d20746865207a65726f206164647265737300005f82015250565b5f613757601e83612caf565b915061376282613723565b602082019050919050565b5f6020820190508181035f8301526137848161374b565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f6137bf601c83612caf565b91506137ca8261378b565b602082019050919050565b5f6020820190508181035f8301526137ec816137b3565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61384d602983612caf565b9150613858826137f3565b604082019050919050565b5f6020820190508181035f83015261387a81613841565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564000000000000000000005f82015250565b5f6138b5601683612caf565b91506138c082613881565b602082019050919050565b5f6020820190508181035f8301526138e2816138a9565b9050919050565b7f4d6178205472616e73616374696f6e204c696d697400000000000000000000005f82015250565b5f61391d601583612caf565b9150613928826138e9565b602082019050919050565b5f6020820190508181035f83015261394a81613911565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61398882612dad565b915061399383612dad565b92508282019050808211156139ab576139aa613951565b5b92915050565b7f42616c616e636520657863656564732077616c6c65742073697a6521000000005f82015250565b5f6139e5601c83612caf565b91506139f0826139b1565b602082019050919050565b5f6020820190508181035f830152613a12816139d9565b9050919050565b5f613a2382612dad565b9150613a2e83612dad565b9250828203905081811115613a4657613a45613951565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613aa6602a83612caf565b9150613ab182613a4c565b604082019050919050565b5f6020820190508181035f830152613ad381613a9a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b0e601b83612caf565b9150613b1982613ada565b602082019050919050565b5f6020820190508181035f830152613b3b81613b02565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613baa81612d83565b92915050565b5f60208284031215613bc557613bc4612d4f565b5b5f613bd284828501613b9c565b91505092915050565b5f819050919050565b5f613bfe613bf9613bf484613bdb565b612e51565b612dad565b9050919050565b613c0e81613be4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c4681612d72565b82525050565b5f613c578383613c3d565b60208301905092915050565b5f602082019050919050565b5f613c7982613c14565b613c838185613c1e565b9350613c8e83613c2e565b805f5b83811015613cbe578151613ca58882613c4c565b9750613cb083613c63565b925050600181019050613c91565b5085935050505092915050565b5f60a082019050613cde5f830188612ec5565b613ceb6020830187613c05565b8181036040830152613cfd8186613c6f565b9050613d0c6060830185613014565b613d196080830184612ec5565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d5a82612dad565b9150613d6583612dad565b925082613d7557613d74613d23565b5b828204905092915050565b5f613d8a82612dad565b9150613d9583612dad565b9250828202613da381612dad565b91508282048414831517613dba57613db9613951565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e1b602183612caf565b9150613e2682613dc1565b604082019050919050565b5f6020820190508181035f830152613e4881613e0f565b905091905056fe7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206c86a1191fcc9f357eed607646d4c14cfa499899a738da647bf78d01265b684964736f6c63430008150033
Deployed Bytecode
0x6080604052600436106101d0575f3560e01c80638f9a55c0116100f6578063c3c8cd8011610094578063e2f273bd11610063578063e2f273bd1461061b578063ea1644d514610643578063ec28438a1461066b578063f2fde38b14610693576101d7565b8063c3c8cd801461058b578063c9567bf9146105a1578063dd62ed3e146105b7578063df8408fe146105f3576101d7565b8063a2a957bb116100d0578063a2a957bb146104d7578063a9059cbb146104ff578063b237f7d41461053b578063b91ebc8814610563576101d7565b80638f9a55c01461045b57806395d89b411461048557806398a5c315146104af576101d7565b8063313ce5671161016e57806370a082311161013d57806370a08231146103b5578063715018a6146103f15780637d1db4a5146104075780638da5cb5b14610431576101d7565b8063313ce5671461032357806349bd5a5e1461034d5780636d8aa8f8146103775780636fc3eaec1461039f576101d7565b806318160ddd116101aa57806318160ddd1461026b57806323b872dd14610295578063249ec2bb146102d15780632fd689e3146102f9576101d7565b806306fdde03146101db578063095ea7b3146102055780631694505e14610241576101d7565b366101d757005b5f80fd5b3480156101e6575f80fd5b506101ef6106bb565b6040516101fc9190612d2f565b60405180910390f35b348015610210575f80fd5b5061022b60048036038101906102269190612de0565b6106f8565b6040516102389190612e38565b60405180910390f35b34801561024c575f80fd5b50610255610715565b6040516102629190612eac565b60405180910390f35b348015610276575f80fd5b5061027f61073a565b60405161028c9190612ed4565b60405180910390f35b3480156102a0575f80fd5b506102bb60048036038101906102b69190612eed565b610749565b6040516102c89190612e38565b60405180910390f35b3480156102dc575f80fd5b506102f760048036038101906102f29190612fa2565b61081d565b005b348015610304575f80fd5b5061030d61090b565b60405161031a9190612ed4565b60405180910390f35b34801561032e575f80fd5b50610337610911565b6040516103449190612ffb565b60405180910390f35b348015610358575f80fd5b50610361610919565b60405161036e9190613023565b60405180910390f35b348015610382575f80fd5b5061039d6004803603810190610398919061303c565b61093e565b005b3480156103aa575f80fd5b506103b36109f1565b005b3480156103c0575f80fd5b506103db60048036038101906103d69190613067565b610a97565b6040516103e89190612ed4565b60405180910390f35b3480156103fc575f80fd5b50610405610ae5565b005b348015610412575f80fd5b5061041b610c33565b6040516104289190612ed4565b60405180910390f35b34801561043c575f80fd5b50610445610c39565b6040516104529190613023565b60405180910390f35b348015610466575f80fd5b5061046f610c60565b60405161047c9190612ed4565b60405180910390f35b348015610490575f80fd5b50610499610c66565b6040516104a69190612d2f565b60405180910390f35b3480156104ba575f80fd5b506104d560048036038101906104d09190613092565b610ca3565b005b3480156104e2575f80fd5b506104fd60048036038101906104f891906130bd565b610d8b565b005b34801561050a575f80fd5b5061052560048036038101906105209190612de0565b610eef565b6040516105329190612e38565b60405180910390f35b348015610546575f80fd5b50610561600480360381019061055c9190613067565b610f0c565b005b34801561056e575f80fd5b5061058960048036038101906105849190613121565b61109f565b005b348015610596575f80fd5b5061059f611178565b005b3480156105ac575f80fd5b506105b5611226565b005b3480156105c2575f80fd5b506105dd60048036038101906105d8919061314c565b6112d6565b6040516105ea9190612ed4565b60405180910390f35b3480156105fe575f80fd5b5061061960048036038101906106149190612fa2565b611358565b005b348015610626575f80fd5b50610641600480360381019061063c9190613121565b611446565b005b34801561064e575f80fd5b5061066960048036038101906106649190613092565b61151f565b005b348015610676575f80fd5b50610691600480360381019061068c9190613092565b611609565b005b34801561069e575f80fd5b506106b960048036038101906106b49190613067565b6116f3565b005b60606040518060400160405280600b81526020017f446563656e747261424e42000000000000000000000000000000000000000000815250905090565b5f61070b6107046118b0565b84846118b7565b6001905092915050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f670de0b6b3a7640000905090565b5f610755848484611a7a565b610812846107616118b0565b61080d85604051806060016040528060218152602001613e506021913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107c46118b0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122179092919063ffffffff16565b6118b7565b600190509392505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661085d6118b0565b73ffffffffffffffffffffffffffffffffffffffff16146108b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108aa906131fa565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60175481565b5f6009905090565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661097e6118b0565b73ffffffffffffffffffffffffffffffffffffffff16146109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109cb906131fa565b60405180910390fd5b80601460166101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a316118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7e906131fa565b60405180910390fd5b5f479050610a9481612279565b50565b5f610ade60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122e1565b9050919050565b610aed6118b0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090613262565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60155481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60165481565b60606040518060400160405280600481526020017f44424e4200000000000000000000000000000000000000000000000000000000815250905090565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ce36118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610d39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d30906131fa565b60405180910390fd5b64e8d4a51000811015610d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d78906132ca565b60405180910390fd5b8060178190555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610dcb6118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e18906131fa565b60405180910390fd5b600a610e36828561234d90919063ffffffff16565b1115610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90613358565b60405180910390fd5b600a610e8c838661234d90919063ffffffff16565b1115610ecd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec4906133e6565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b5f610f02610efb6118b0565b8484611a7a565b6001905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f4c6118b0565b73ffffffffffffffffffffffffffffffffffffffff1614610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f99906131fa565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610fdc9190613023565b602060405180830381865afa158015610ff7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061101b9190613418565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb61dead836040518363ffffffff1660e01b815260040161105a929190613443565b6020604051808303815f875af1158015611076573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061109a919061347e565b505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166110df6118b0565b73ffffffffffffffffffffffffffffffffffffffff1614611135576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112c906131fa565b60405180910390fd5b8060125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111b86118b0565b73ffffffffffffffffffffffffffffffffffffffff161461120e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611205906131fa565b60405180910390fd5b5f61121830610a97565b9050611223816123aa565b50565b61122e6118b0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b190613262565b60405180910390fd5b60016014806101000a81548160ff021916908315150217905550565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113986118b0565b73ffffffffffffffffffffffffffffffffffffffff16146113ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e5906131fa565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166114866118b0565b73ffffffffffffffffffffffffffffffffffffffff16146114dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d3906131fa565b60405180910390fd5b8060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661155f6118b0565b73ffffffffffffffffffffffffffffffffffffffff16146115b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ac906131fa565b60405180910390fd5b66038d7ea4c680008110156115ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f690613519565b60405180910390fd5b8060168190555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116496118b0565b73ffffffffffffffffffffffffffffffffffffffff161461169f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611696906131fa565b60405180910390fd5b66038d7ea4c680008110156116e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e0906135a7565b60405180910390fd5b8060158190555050565b6116fb6118b0565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611787576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177e90613262565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ec90613635565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191c9061369d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611993576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198a90613705565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a6d9190612ed4565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ae8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611adf9061376d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4d906137d5565b60405180910390fd5b5f8111611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f90613863565b60405180910390fd5b611ba0610c39565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c0e5750611bde610c39565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f245760148054906101000a900460ff16611c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c57906138cb565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015611d04575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da657601554811115611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4590613933565b60405180910390fd5b60165481611d5b84610a97565b611d65919061397e565b10611da5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9c906139fb565b60405180910390fd5b5b5f611db030610a97565b90505f60175482101590506017548210611dca5760175491505b808015611de45750601460159054906101000a900460ff16155b8015611e3d575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611e555750601460169054906101000a900460ff165b8015611ea8575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611efb575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f2157611f09826123aa565b5f4790505f811115611f1f57611f1e47612279565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611fc4575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612075575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015612074575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15612082575f9050612205565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561212b575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561214357600954600d81905550600a54600e819055505b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156121ec575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561220457600b54600d81905550600c54600e819055505b5b61221184848484612615565b50505050565b5f83831115829061225e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122559190612d2f565b60405180910390fd5b505f838561226c9190613a19565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156122dd573d5f803e3d5ffd5b5050565b5f600754821115612327576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231e90613abc565b60405180910390fd5b5f612330612642565b9050612345818461266b90919063ffffffff16565b915050919050565b5f80828461235b919061397e565b9050838110156123a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239790613b24565b60405180910390fd5b8091505092915050565b6001601460156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156123e1576123e0613b42565b5b60405190808252806020026020018201604052801561240f5781602001602082028036833780820191505090505b50905030815f8151811061242657612425613b6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124ca573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124ee9190613bb0565b8160018151811061250257612501613b6f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125683060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b7565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016125ca959493929190613ccb565b5f604051808303815f87803b1580156125e1575f80fd5b505af11580156125f3573d5f803e3d5ffd5b50505050505f601460156101000a81548160ff02191690831515021790555050565b80612623576126226126b4565b5b61262e8484846126ed565b8061263c5761263b6128ad565b5b50505050565b5f805f61264d6128c1565b91509150612664818361266b90919063ffffffff16565b9250505090565b5f6126ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061291d565b905092915050565b5f600d541480156126c657505f600e54145b6126eb57600d54600f81905550600e546010819055505f600d819055505f600e819055505b565b5f805f805f806126fc8761297e565b9550955095509550955095506127588660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129de90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506127e98560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461234d90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061283381612a27565b61283d8483612ade565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161289a9190612ed4565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b5f805f60075490505f670de0b6b3a764000090506128f2670de0b6b3a764000060075461266b90919063ffffffff16565b82101561291057600754670de0b6b3a7640000935093505050612919565b81819350935050505b9091565b5f8083118290612963576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161295a9190612d2f565b60405180910390fd5b505f83856129719190613d50565b9050809150509392505050565b5f805f805f805f805f6129968a600d54600e54612b18565b9250925092505f6129a5612642565b90505f805f6129b68e878787612baa565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f612a1f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612217565b905092915050565b5f612a30612642565b90505f612a468284612c2e90919063ffffffff16565b9050612a988160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461234d90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612af3826007546129de90919063ffffffff16565b600781905550612b0e8160085461234d90919063ffffffff16565b6008819055505050565b5f805f80612b426064612b34888a612c2e90919063ffffffff16565b61266b90919063ffffffff16565b90505f612b6b6064612b5d888b612c2e90919063ffffffff16565b61266b90919063ffffffff16565b90505f612b9382612b85858c6129de90919063ffffffff16565b6129de90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612bc18589612c2e90919063ffffffff16565b90505f612bd78689612c2e90919063ffffffff16565b90505f612bed8789612c2e90919063ffffffff16565b90505f612c1582612c0785876129de90919063ffffffff16565b6129de90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612c3e575f9050612c9f565b5f8284612c4b9190613d80565b9050828482612c5a9190613d50565b14612c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c9190613e31565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612cdc578082015181840152602081019050612cc1565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612d0182612ca5565b612d0b8185612caf565b9350612d1b818560208601612cbf565b612d2481612ce7565b840191505092915050565b5f6020820190508181035f830152612d478184612cf7565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d7c82612d53565b9050919050565b612d8c81612d72565b8114612d96575f80fd5b50565b5f81359050612da781612d83565b92915050565b5f819050919050565b612dbf81612dad565b8114612dc9575f80fd5b50565b5f81359050612dda81612db6565b92915050565b5f8060408385031215612df657612df5612d4f565b5b5f612e0385828601612d99565b9250506020612e1485828601612dcc565b9150509250929050565b5f8115159050919050565b612e3281612e1e565b82525050565b5f602082019050612e4b5f830184612e29565b92915050565b5f819050919050565b5f612e74612e6f612e6a84612d53565b612e51565b612d53565b9050919050565b5f612e8582612e5a565b9050919050565b5f612e9682612e7b565b9050919050565b612ea681612e8c565b82525050565b5f602082019050612ebf5f830184612e9d565b92915050565b612ece81612dad565b82525050565b5f602082019050612ee75f830184612ec5565b92915050565b5f805f60608486031215612f0457612f03612d4f565b5b5f612f1186828701612d99565b9350506020612f2286828701612d99565b9250506040612f3386828701612dcc565b9150509250925092565b5f612f4782612d53565b9050919050565b612f5781612f3d565b8114612f61575f80fd5b50565b5f81359050612f7281612f4e565b92915050565b612f8181612e1e565b8114612f8b575f80fd5b50565b5f81359050612f9c81612f78565b92915050565b5f8060408385031215612fb857612fb7612d4f565b5b5f612fc585828601612f64565b9250506020612fd685828601612f8e565b9150509250929050565b5f60ff82169050919050565b612ff581612fe0565b82525050565b5f60208201905061300e5f830184612fec565b92915050565b61301d81612d72565b82525050565b5f6020820190506130365f830184613014565b92915050565b5f6020828403121561305157613050612d4f565b5b5f61305e84828501612f8e565b91505092915050565b5f6020828403121561307c5761307b612d4f565b5b5f61308984828501612d99565b91505092915050565b5f602082840312156130a7576130a6612d4f565b5b5f6130b484828501612dcc565b91505092915050565b5f805f80608085870312156130d5576130d4612d4f565b5b5f6130e287828801612dcc565b94505060206130f387828801612dcc565b935050604061310487828801612dcc565b925050606061311587828801612dcc565b91505092959194509250565b5f6020828403121561313657613135612d4f565b5b5f61314384828501612f64565b91505092915050565b5f806040838503121561316257613161612d4f565b5b5f61316f85828601612d99565b925050602061318085828601612d99565b9150509250929050565b7f4f6e6c7920636f6e74726163742061646d696e2063616e2063616c6c207468695f8201527f732066756e6374696f6e2e000000000000000000000000000000000000000000602082015250565b5f6131e4602b83612caf565b91506131ef8261318a565b604082019050919050565b5f6020820190508181035f830152613211816131d8565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61324c602083612caf565b915061325782613218565b602082019050919050565b5f6020820190508181035f83015261327981613240565b9050919050565b7f5377617020746f6b656e732062656c6f77206d696e696d616c206c696d69742e5f82015250565b5f6132b4602083612caf565b91506132bf82613280565b602082019050919050565b5f6020820190508181035f8301526132e1816132a8565b9050919050565b7f43616e74207365742073656c6c20666565732061626f766520313020706572635f8201527f656e740000000000000000000000000000000000000000000000000000000000602082015250565b5f613342602383612caf565b915061334d826132e8565b604082019050919050565b5f6020820190508181035f83015261336f81613336565b9050919050565b7f43616e74207365742062757920666565732061626f76652031302070657263655f8201527f6e74000000000000000000000000000000000000000000000000000000000000602082015250565b5f6133d0602283612caf565b91506133db82613376565b604082019050919050565b5f6020820190508181035f8301526133fd816133c4565b9050919050565b5f8151905061341281612db6565b92915050565b5f6020828403121561342d5761342c612d4f565b5b5f61343a84828501613404565b91505092915050565b5f6040820190506134565f830185613014565b6134636020830184612ec5565b9392505050565b5f8151905061347881612f78565b92915050565b5f6020828403121561349357613492612d4f565b5b5f6134a08482850161346a565b91505092915050565b7f4d61782077616c6c65742063616e74206265206c657373207468616e20302e315f8201527f2500000000000000000000000000000000000000000000000000000000000000602082015250565b5f613503602183612caf565b915061350e826134a9565b604082019050919050565b5f6020820190508181035f830152613530816134f7565b9050919050565b7f4d6178205472616e73616374696f6e2063616e74206265206c657373207468615f8201527f6e20302e31250000000000000000000000000000000000000000000000000000602082015250565b5f613591602683612caf565b915061359c82613537565b604082019050919050565b5f6020820190508181035f8301526135be81613585565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61361f602683612caf565b915061362a826135c5565b604082019050919050565b5f6020820190508181035f83015261364c81613613565b9050919050565b7f617070726f76652066726f6d20746865207a65726f20616464726573730000005f82015250565b5f613687601d83612caf565b915061369282613653565b602082019050919050565b5f6020820190508181035f8301526136b48161367b565b9050919050565b7f617070726f766520746f20746865207a65726f206164647265737300000000005f82015250565b5f6136ef601b83612caf565b91506136fa826136bb565b602082019050919050565b5f6020820190508181035f83015261371c816136e3565b9050919050565b7f7472616e736665722066726f6d20746865207a65726f206164647265737300005f82015250565b5f613757601e83612caf565b915061376282613723565b602082019050919050565b5f6020820190508181035f8301526137848161374b565b9050919050565b7f7472616e7366657220746f20746865207a65726f2061646472657373000000005f82015250565b5f6137bf601c83612caf565b91506137ca8261378b565b602082019050919050565b5f6020820190508181035f8301526137ec816137b3565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61384d602983612caf565b9150613858826137f3565b604082019050919050565b5f6020820190508181035f83015261387a81613841565b9050919050565b7f54726164696e67206973206e6f7420656e61626c6564000000000000000000005f82015250565b5f6138b5601683612caf565b91506138c082613881565b602082019050919050565b5f6020820190508181035f8301526138e2816138a9565b9050919050565b7f4d6178205472616e73616374696f6e204c696d697400000000000000000000005f82015250565b5f61391d601583612caf565b9150613928826138e9565b602082019050919050565b5f6020820190508181035f83015261394a81613911565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61398882612dad565b915061399383612dad565b92508282019050808211156139ab576139aa613951565b5b92915050565b7f42616c616e636520657863656564732077616c6c65742073697a6521000000005f82015250565b5f6139e5601c83612caf565b91506139f0826139b1565b602082019050919050565b5f6020820190508181035f830152613a12816139d9565b9050919050565b5f613a2382612dad565b9150613a2e83612dad565b9250828203905081811115613a4657613a45613951565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613aa6602a83612caf565b9150613ab182613a4c565b604082019050919050565b5f6020820190508181035f830152613ad381613a9a565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b0e601b83612caf565b9150613b1982613ada565b602082019050919050565b5f6020820190508181035f830152613b3b81613b02565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050613baa81612d83565b92915050565b5f60208284031215613bc557613bc4612d4f565b5b5f613bd284828501613b9c565b91505092915050565b5f819050919050565b5f613bfe613bf9613bf484613bdb565b612e51565b612dad565b9050919050565b613c0e81613be4565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613c4681612d72565b82525050565b5f613c578383613c3d565b60208301905092915050565b5f602082019050919050565b5f613c7982613c14565b613c838185613c1e565b9350613c8e83613c2e565b805f5b83811015613cbe578151613ca58882613c4c565b9750613cb083613c63565b925050600181019050613c91565b5085935050505092915050565b5f60a082019050613cde5f830188612ec5565b613ceb6020830187613c05565b8181036040830152613cfd8186613c6f565b9050613d0c6060830185613014565b613d196080830184612ec5565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d5a82612dad565b9150613d6583612dad565b925082613d7557613d74613d23565b5b828204905092915050565b5f613d8a82612dad565b9150613d9583612dad565b9250828202613da381612dad565b91508282048414831517613dba57613db9613951565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e1b602183612caf565b9150613e2682613dc1565b604082019050919050565b5f6020820190508181035f830152613e4881613e0f565b905091905056fe7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212206c86a1191fcc9f357eed607646d4c14cfa499899a738da647bf78d01265b684964736f6c63430008150033
Deployed Bytecode Sourcemap
4238:14459:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7059:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7984:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5626:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7336:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8185:439;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18116:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5982:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7245:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5674:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16694:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15546:239;;;;;;;;;;;;;:::i;:::-;;7439:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1793:148;;;;;;;;;;;;;:::i;:::-;;5824:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1579:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5902:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7150:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16371:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15793:570;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7585:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18342:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16889:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15298:240;;;;;;;;;;;;;:::i;:::-;;18617:77;;;;;;;;;;;;;:::i;:::-;;7792:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17890:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17100:187;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17590:292;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17295:287;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1949:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7059:83;7096:13;7129:5;;;;;;;;;;;;;;;;;7122:12;;7059:83;:::o;7984:193::-;8086:4;8108:39;8117:12;:10;:12::i;:::-;8131:7;8140:6;8108:8;:39::i;:::-;8165:4;8158:11;;7984:193;;;;:::o;5626:41::-;;;;;;;;;;;;;:::o;7336:95::-;7389:7;4851:20;7409:14;;7336:95;:::o;8185:439::-;8317:4;8334:36;8344:6;8352:9;8363:6;8334:9;:36::i;:::-;8381:213;8404:6;8425:12;:10;:12::i;:::-;8452:131;8508:6;8452:131;;;;;;;;;;;;;;;;;:11;:19;8464:6;8452:19;;;;;;;;;;;;;;;:33;8472:12;:10;:12::i;:::-;8452:33;;;;;;;;;;;;;;;;:37;;:131;;;;;:::i;:::-;8381:8;:213::i;:::-;8612:4;8605:11;;8185:439;;;;;:::o;18116:218::-;18219:13;;;;;;;;;;;18203:29;;:12;:10;:12::i;:::-;:29;;;18195:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;18321:5;18291:18;:27;18310:7;18291:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18116:218;;:::o;5982:51::-;;;;:::o;7245:83::-;7286:5;4465:1;7304:16;;7245:83;:::o;5674:28::-;;;;;;;;;;;;;:::o;16694:187::-;16775:13;;;;;;;;;;;16759:29;;:12;:10;:12::i;:::-;:29;;;16751:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16861:12;16847:11;;:26;;;;;;;;;;;;;;;;;;16694:187;:::o;15546:239::-;15612:13;;;;;;;;;;;15596:29;;:12;:10;:12::i;:::-;:29;;;15588:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15684:26;15713:21;15684:50;;15745:32;15758:18;15745:12;:32::i;:::-;15577:208;15546:239::o;7439:138::-;7505:7;7532:37;7552:7;:16;7560:7;7552:16;;;;;;;;;;;;;;;;7532:19;:37::i;:::-;7525:44;;7439:138;;;:::o;1793:148::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1900:1:::1;1863:40;;1884:6;::::0;::::1;;;;;;;;1863:40;;;;;;;;;;;;1931:1;1914:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1793:148::o:0;5824:48::-;;;;:::o;1579:79::-;1617:7;1644:6;;;;;;;;;;;1637:13;;1579:79;:::o;5902:50::-;;;;:::o;7150:87::-;7189:13;7222:7;;;;;;;;;;;;;;;;;7215:14;;7150:87;:::o;16371:315::-;16476:13;;;;;;;;;;;16460:29;;:12;:10;:12::i;:::-;:29;;;16452:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16578:12;16556:18;:34;;16548:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;16660:18;16638:19;:40;;;;16371:315;:::o;15793:570::-;15941:13;;;;;;;;;;;15925:29;;:12;:10;:12::i;:::-;:29;;;15917:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;16057:2;16021:32;16040:12;16021:14;:18;;:32;;;;:::i;:::-;:38;;16013:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;16152:2;16118:30;16136:11;16118:13;:17;;:30;;;;:::i;:::-;:36;;16110:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;16223:13;16206:14;:30;;;;16265:14;16247:15;:32;;;;16305:11;16290:12;:26;;;;16343:12;16327:13;:28;;;;15793:570;;;;:::o;7585:199::-;7690:4;7712:42;7722:12;:10;:12::i;:::-;7736:9;7747:6;7712:9;:42::i;:::-;7772:4;7765:11;;7585:199;;;;:::o;18342:267::-;18422:13;;;;;;;;;;;18406:29;;:12;:10;:12::i;:::-;:29;;;18398:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;18494:15;18519:6;18512:24;;;18545:4;18512:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18494:57;;18569:6;18562:23;;;5369:42;18593:7;18562:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;18387:222;18342:267;:::o;16889:203::-;16983:13;;;;;;;;;;;16967:29;;:12;:10;:12::i;:::-;:29;;;16959:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17075:9;17055:17;;:29;;;;;;;;;;;;;;;;;;16889:203;:::o;15298:240::-;15364:13;;;;;;;;;;;15348:29;;:12;:10;:12::i;:::-;:29;;;15340:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;15436:23;15462:24;15480:4;15462:9;:24::i;:::-;15436:50;;15497:33;15514:15;15497:16;:33::i;:::-;15329:209;15298:240::o;18617:77::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18682:4:::1;18668:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;18617:77::o:0;7792:184::-;7909:7;7941:11;:18;7953:5;7941:18;;;;;;;;;;;;;;;:27;7960:7;7941:27;;;;;;;;;;;;;;;;7934:34;;7792:184;;;;:::o;17890:218::-;17993:13;;;;;;;;;;;17977:29;;:12;:10;:12::i;:::-;:29;;;17969:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;18095:5;18065:18;:27;18084:7;18065:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;17890:218;;:::o;17100:187::-;17186:13;;;;;;;;;;;17170:29;;:12;:10;:12::i;:::-;:29;;;17162:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17274:5;17258:13;;:21;;;;;;;;;;;;;;;;;;17100:187;:::o;17590:292::-;17681:13;;;;;;;;;;;17665:29;;:12;:10;:12::i;:::-;:29;;;17657:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17778:17;17761:13;:34;;17753:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;17861:13;17844:14;:30;;;;17590:292;:::o;17295:287::-;17382:13;;;;;;;;;;;17366:29;;:12;:10;:12::i;:::-;:29;;;17358:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;17477:17;17462:11;:32;;17454:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;17563:11;17548:12;:26;;;;17295:287;:::o;1949:244::-;1716:12;:10;:12::i;:::-;1706:22;;:6;;;;;;;;;;:22;;;1698:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2058:1:::1;2038:22;;:8;:22;;::::0;2030:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2148:8;2119:38;;2140:6;::::0;::::1;;;;;;;;2119:38;;;;;;;;;;;;2177:8;2168:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1949:244:::0;:::o;431:98::-;484:7;511:10;504:17;;431:98;:::o;9315:355::-;9459:1;9442:19;;:5;:19;;;9434:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9533:1;9514:21;;:7;:21;;;9506:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9608:6;9578:11;:18;9590:5;9578:18;;;;;;;;;;;;;;;:27;9597:7;9578:27;;;;;;;;;;;;;;;:36;;;;9646:7;9630:32;;9639:5;9630:32;;;9655:6;9630:32;;;;;;:::i;:::-;;;;;;;;9315:355;;;:::o;9678:2036::-;9816:1;9800:18;;:4;:18;;;9792:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;9886:1;9872:16;;:2;:16;;;9864:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;9949:1;9940:6;:10;9932:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10021:7;:5;:7::i;:::-;10013:15;;:4;:15;;;;:32;;;;;10038:7;:5;:7::i;:::-;10032:13;;:2;:13;;;;10013:32;10009:1071;;;10072:11;;;;;;;;;;10064:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;10136:13;;;;;;;;;;;10130:19;;:2;:19;;;;:46;;;;;10154:18;:22;10173:2;10154:22;;;;;;;;;;;;;;;;;;;;;;;;;10153:23;10130:46;10127:241;;;10215:12;;10205:6;:22;;10197:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10305:14;;10296:6;10280:13;10290:2;10280:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10272:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;10127:241;10384:28;10415:24;10433:4;10415:9;:24::i;:::-;10384:55;;10454:12;10493:19;;10469:20;:43;;10454:58;;10556:19;;10532:20;:43;10529:138;;10632:19;;10609:42;;10529:138;10687:7;:18;;;;;10699:6;;;;;;;;;;;10698:7;10687:18;:43;;;;;10717:13;;;;;;;;;;;10709:21;;:4;:21;;;;10687:43;:58;;;;;10734:11;;;;;;;;;;;10687:58;:87;;;;;10750:18;:24;10769:4;10750:24;;;;;;;;;;;;;;;;;;;;;;;;;10749:25;10687:87;:114;;;;;10779:18;:22;10798:2;10779:22;;;;;;;;;;;;;;;;;;;;;;;;;10778:23;10687:114;10683:386;;;10822:38;10839:20;10822:16;:38::i;:::-;10879:26;10908:21;10879:50;;10973:1;10952:18;:22;10948:106;;;10999:35;11012:21;10999:12;:35::i;:::-;10948:106;10803:266;10683:386;10047:1033;;10009:1071;11092:12;11107:4;11092:19;;11129:18;:24;11148:4;11129:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11157:18;:22;11176:2;11157:22;;;;;;;;;;;;;;;;;;;;;;;;;11129:50;11128:102;;;;11193:13;;;;;;;;;;;11185:21;;:4;:21;;;;:44;;;;;11216:13;;;;;;;;;;;11210:19;;:2;:19;;;;11185:44;11128:102;11124:529;;;11257:5;11247:15;;11124:529;;;11308:13;;;;;;;;;;;11300:21;;:4;:21;;;:55;;;;;11339:15;;;;;;;;;;;11325:30;;:2;:30;;;;11300:55;11297:162;;;11388:14;;11376:9;:26;;;;11431:12;;11421:7;:22;;;;11297:162;11485:13;;;;;;;;;;;11479:19;;:2;:19;;;:55;;;;;11518:15;;;;;;;;;;;11502:32;;:4;:32;;;;11479:55;11475:165;;;11567:15;;11555:9;:27;;;;11611:13;;11601:7;:23;;;;11475:165;11124:529;11665:41;11680:4;11686:2;11690:6;11698:7;11665:14;:41::i;:::-;9781:1933;9678:2036;;;:::o;2557:190::-;2643:7;2676:1;2671;:6;;2679:12;2663:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2703:9;2719:1;2715;:5;;;;:::i;:::-;2703:17;;2738:1;2731:8;;;2557:190;;;;;:::o;12213:99::-;12270:17;;;;;;;;;;;:26;;:34;12297:6;12270:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12213:99;:::o;8632:323::-;8727:7;8785;;8774;:18;;8752:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8873:19;8895:10;:8;:10::i;:::-;8873:32;;8923:24;8935:11;8923:7;:11;;:24;;;;:::i;:::-;8916:31;;;8632:323;;;:::o;2226:179::-;2284:7;2304:9;2320:1;2316;:5;;;;:::i;:::-;2304:17;;2345:1;2340;:6;;2332:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2396:1;2389:8;;;2226:179;;;;:::o;11722:483::-;6164:4;6155:6;;:13;;;;;;;;;;;;;;;;;;11800:21:::1;11838:1;11824:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11800:40;;11869:4;11851;11856:1;11851:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11895:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11885:4;11890:1;11885:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11928:62;11945:4;11960:15;;;;;;;;;;;11978:11;11928:8;:62::i;:::-;12001:15;;;;;;;;;;;:66;;;12082:11;12108:1;12124:4;12151;12171:15;12001:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11789:416;6200:5:::0;6191:6;;:14;;;;;;;;;;;;;;;;;;11722:483;:::o;12320:239::-;12433:7;12428:28;;12442:14;:12;:14::i;:::-;12428:28;12467:44;12485:6;12493:9;12504:6;12467:17;:44::i;:::-;12527:7;12522:29;;12536:15;:13;:15::i;:::-;12522:29;12320:239;;;;:::o;14861:164::-;14903:7;14924:15;14941;14960:19;:17;:19::i;:::-;14923:56;;;;14997:20;15009:7;14997;:11;;:20;;;;:::i;:::-;14990:27;;;;14861:164;:::o;3009:132::-;3067:7;3094:39;3098:1;3101;3094:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3087:46;;3009:132;;;;:::o;8963:219::-;9023:1;9010:9;;:14;:30;;;;;9039:1;9028:7;;:12;9010:30;9042:7;9006:43;9081:9;;9061:17;:29;;;;9119:7;;9101:15;:25;;;;9151:1;9139:9;:13;;;;9173:1;9163:7;:11;;;;8963:219;:::o;12567:578::-;12680:15;12710:23;12748:12;12775:23;12813:12;12840:13;12867:19;12878:7;12867:10;:19::i;:::-;12665:221;;;;;;;;;;;;12917:28;12937:7;12917;:15;12925:6;12917:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12899:7;:15;12907:6;12899:15;;;;;;;;;;;;;;;:46;;;;12977:39;13000:15;12977:7;:18;12985:9;12977:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12956:7;:18;12964:9;12956:18;;;;;;;;;;;;;;;:60;;;;13027:16;13037:5;13027:9;:16::i;:::-;13054:23;13066:4;13072;13054:11;:23::i;:::-;13110:9;13093:44;;13102:6;13093:44;;;13121:15;13093:44;;;;;;:::i;:::-;;;;;;;;12654:491;;;;;;12567:578;;;:::o;9190:117::-;9246:17;;9234:9;:29;;;;9284:15;;9274:7;:25;;;;9190:117::o;15033:257::-;15084:7;15093;15113:15;15131:7;;15113:25;;15149:15;4851:20;15149:25;;15199:20;4851;15199:7;;:11;;:20;;;;:::i;:::-;15189:7;:30;15185:61;;;15229:7;;4851:20;15221:25;;;;;;;;15185:61;15265:7;15274;15257:25;;;;;;15033:257;;;:::o;3149:189::-;3235:7;3267:1;3263;:5;3270:12;3255:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3294:9;3310:1;3306;:5;;;;:::i;:::-;3294:17;;3329:1;3322:8;;;3149:189;;;;;:::o;13564:499::-;13623:7;13632;13641;13650;13659;13668;13694:23;13719:12;13733:13;13763:40;13775:7;13784:9;;13795:7;;13763:11;:40::i;:::-;13693:110;;;;;;13814:19;13836:10;:8;:10::i;:::-;13814:32;;13858:15;13875:23;13900:12;13929:46;13941:7;13950:4;13956:5;13963:11;13929;:46::i;:::-;13857:118;;;;;;13994:7;14003:15;14020:4;14026:15;14043:4;14049:5;13986:69;;;;;;;;;;;;;;;;;;;13564:499;;;;;;;:::o;2413:136::-;2471:7;2498:43;2502:1;2505;2498:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2491:50;;2413:136;;;;:::o;13153:211::-;13206:19;13228:10;:8;:10::i;:::-;13206:32;;13249:13;13265:22;13275:11;13265:5;:9;;:22;;;;:::i;:::-;13249:38;;13323:33;13350:5;13323:7;:22;13339:4;13323:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13298:7;:22;13314:4;13298:22;;;;;;;;;;;;;;;:58;;;;13195:169;;13153:211;:::o;13372:147::-;13450:17;13462:4;13450:7;;:11;;:17;;;;:::i;:::-;13440:7;:27;;;;13491:20;13506:4;13491:10;;:14;;:20;;;;:::i;:::-;13478:10;:33;;;;13372:147;;:::o;14071:359::-;14166:7;14175;14184;14209:12;14224:30;14250:3;14224:21;14236:8;14224:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;14209:45;;14265:13;14281:28;14305:3;14281:19;14293:6;14281:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14265:44;;14320:23;14346:28;14368:5;14346:17;14358:4;14346:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14320:54;;14393:15;14410:4;14416:5;14385:37;;;;;;;;;14071:359;;;;;;;:::o;14438:415::-;14549:7;14558;14567;14592:15;14610:24;14622:11;14610:7;:11;;:24;;;;:::i;:::-;14592:42;;14645:12;14660:21;14669:11;14660:4;:8;;:21;;;;:::i;:::-;14645:36;;14692:13;14708:22;14718:11;14708:5;:9;;:22;;;;:::i;:::-;14692:38;;14741:23;14767:28;14789:5;14767:17;14779:4;14767:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14741:54;;14814:7;14823:15;14840:4;14806:39;;;;;;;;;;14438:415;;;;;;;;:::o;2755:246::-;2813:7;2842:1;2837;:6;2833:47;;2867:1;2860:8;;;;2833:47;2890:9;2906:1;2902;:5;;;;:::i;:::-;2890:17;;2935:1;2930;2926;:5;;;;:::i;:::-;:10;2918:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2992:1;2985:8;;;2755: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:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:104::-;5441:7;5470:24;5488:5;5470:24;:::i;:::-;5459:35;;5396:104;;;:::o;5506:138::-;5587:32;5613:5;5587:32;:::i;:::-;5580:5;5577:43;5567:71;;5634:1;5631;5624:12;5567:71;5506:138;:::o;5650:155::-;5704:5;5742:6;5729:20;5720:29;;5758:41;5793:5;5758:41;:::i;:::-;5650:155;;;;:::o;5811:116::-;5881:21;5896:5;5881:21;:::i;:::-;5874:5;5871:32;5861:60;;5917:1;5914;5907:12;5861:60;5811:116;:::o;5933:133::-;5976:5;6014:6;6001:20;5992:29;;6030:30;6054:5;6030:30;:::i;:::-;5933:133;;;;:::o;6072:484::-;6145:6;6153;6202:2;6190:9;6181:7;6177:23;6173:32;6170:119;;;6208:79;;:::i;:::-;6170:119;6328:1;6353:61;6406:7;6397:6;6386:9;6382:22;6353:61;:::i;:::-;6343:71;;6299:125;6463:2;6489:50;6531:7;6522:6;6511:9;6507:22;6489:50;:::i;:::-;6479:60;;6434:115;6072:484;;;;;:::o;6562:86::-;6597:7;6637:4;6630:5;6626:16;6615:27;;6562:86;;;:::o;6654:112::-;6737:22;6753:5;6737:22;:::i;:::-;6732:3;6725:35;6654:112;;:::o;6772:214::-;6861:4;6899:2;6888:9;6884:18;6876:26;;6912:67;6976:1;6965:9;6961:17;6952:6;6912:67;:::i;:::-;6772:214;;;;:::o;6992:118::-;7079:24;7097:5;7079:24;:::i;:::-;7074:3;7067:37;6992:118;;:::o;7116:222::-;7209:4;7247:2;7236:9;7232:18;7224:26;;7260:71;7328:1;7317:9;7313:17;7304:6;7260:71;:::i;:::-;7116:222;;;;:::o;7344:323::-;7400:6;7449:2;7437:9;7428:7;7424:23;7420:32;7417:119;;;7455:79;;:::i;:::-;7417:119;7575:1;7600:50;7642:7;7633:6;7622:9;7618:22;7600:50;:::i;:::-;7590:60;;7546:114;7344:323;;;;:::o;7673:329::-;7732:6;7781:2;7769:9;7760:7;7756:23;7752:32;7749:119;;;7787:79;;:::i;:::-;7749:119;7907:1;7932:53;7977:7;7968:6;7957:9;7953:22;7932:53;:::i;:::-;7922:63;;7878:117;7673:329;;;;:::o;8008:::-;8067:6;8116:2;8104:9;8095:7;8091:23;8087:32;8084:119;;;8122:79;;:::i;:::-;8084:119;8242:1;8267:53;8312:7;8303:6;8292:9;8288:22;8267:53;:::i;:::-;8257:63;;8213:117;8008:329;;;;:::o;8343:765::-;8429:6;8437;8445;8453;8502:3;8490:9;8481:7;8477:23;8473:33;8470:120;;;8509:79;;:::i;:::-;8470:120;8629:1;8654:53;8699:7;8690:6;8679:9;8675:22;8654:53;:::i;:::-;8644:63;;8600:117;8756:2;8782:53;8827:7;8818:6;8807:9;8803:22;8782:53;:::i;:::-;8772:63;;8727:118;8884:2;8910:53;8955:7;8946:6;8935:9;8931:22;8910:53;:::i;:::-;8900:63;;8855:118;9012:2;9038:53;9083:7;9074:6;9063:9;9059:22;9038:53;:::i;:::-;9028:63;;8983:118;8343:765;;;;;;;:::o;9114:345::-;9181:6;9230:2;9218:9;9209:7;9205:23;9201:32;9198:119;;;9236:79;;:::i;:::-;9198:119;9356:1;9381:61;9434:7;9425:6;9414:9;9410:22;9381:61;:::i;:::-;9371:71;;9327:125;9114:345;;;;:::o;9465:474::-;9533:6;9541;9590:2;9578:9;9569:7;9565:23;9561:32;9558:119;;;9596:79;;:::i;:::-;9558:119;9716:1;9741:53;9786:7;9777:6;9766:9;9762:22;9741:53;:::i;:::-;9731:63;;9687:117;9843:2;9869:53;9914:7;9905:6;9894:9;9890:22;9869:53;:::i;:::-;9859:63;;9814:118;9465:474;;;;;:::o;9945:230::-;10085:34;10081:1;10073:6;10069:14;10062:58;10154:13;10149:2;10141:6;10137:15;10130:38;9945:230;:::o;10181:366::-;10323:3;10344:67;10408:2;10403:3;10344:67;:::i;:::-;10337:74;;10420:93;10509:3;10420:93;:::i;:::-;10538:2;10533:3;10529:12;10522:19;;10181:366;;;:::o;10553:419::-;10719:4;10757:2;10746:9;10742:18;10734:26;;10806:9;10800:4;10796:20;10792:1;10781:9;10777:17;10770:47;10834:131;10960:4;10834:131;:::i;:::-;10826:139;;10553:419;;;:::o;10978:182::-;11118:34;11114:1;11106:6;11102:14;11095:58;10978:182;:::o;11166:366::-;11308:3;11329:67;11393:2;11388:3;11329:67;:::i;:::-;11322:74;;11405:93;11494:3;11405:93;:::i;:::-;11523:2;11518:3;11514:12;11507:19;;11166:366;;;:::o;11538:419::-;11704:4;11742:2;11731:9;11727:18;11719:26;;11791:9;11785:4;11781:20;11777:1;11766:9;11762:17;11755:47;11819:131;11945:4;11819:131;:::i;:::-;11811:139;;11538:419;;;:::o;11963:182::-;12103:34;12099:1;12091:6;12087:14;12080:58;11963:182;:::o;12151:366::-;12293:3;12314:67;12378:2;12373:3;12314:67;:::i;:::-;12307:74;;12390:93;12479:3;12390:93;:::i;:::-;12508:2;12503:3;12499:12;12492:19;;12151:366;;;:::o;12523:419::-;12689:4;12727:2;12716:9;12712:18;12704:26;;12776:9;12770:4;12766:20;12762:1;12751:9;12747:17;12740:47;12804:131;12930:4;12804:131;:::i;:::-;12796:139;;12523:419;;;:::o;12948:222::-;13088:34;13084:1;13076:6;13072:14;13065:58;13157:5;13152:2;13144:6;13140:15;13133:30;12948:222;:::o;13176:366::-;13318:3;13339:67;13403:2;13398:3;13339:67;:::i;:::-;13332:74;;13415:93;13504:3;13415:93;:::i;:::-;13533:2;13528:3;13524:12;13517:19;;13176:366;;;:::o;13548:419::-;13714:4;13752:2;13741:9;13737:18;13729:26;;13801:9;13795:4;13791:20;13787:1;13776:9;13772:17;13765:47;13829:131;13955:4;13829:131;:::i;:::-;13821:139;;13548:419;;;:::o;13973:221::-;14113:34;14109:1;14101:6;14097:14;14090:58;14182:4;14177:2;14169:6;14165:15;14158:29;13973:221;:::o;14200:366::-;14342:3;14363:67;14427:2;14422:3;14363:67;:::i;:::-;14356:74;;14439:93;14528:3;14439:93;:::i;:::-;14557:2;14552:3;14548:12;14541:19;;14200:366;;;:::o;14572:419::-;14738:4;14776:2;14765:9;14761:18;14753:26;;14825:9;14819:4;14815:20;14811:1;14800:9;14796:17;14789:47;14853:131;14979:4;14853:131;:::i;:::-;14845:139;;14572:419;;;:::o;14997:143::-;15054:5;15085:6;15079:13;15070:22;;15101:33;15128:5;15101:33;:::i;:::-;14997:143;;;;:::o;15146:351::-;15216:6;15265:2;15253:9;15244:7;15240:23;15236:32;15233:119;;;15271:79;;:::i;:::-;15233:119;15391:1;15416:64;15472:7;15463:6;15452:9;15448:22;15416:64;:::i;:::-;15406:74;;15362:128;15146:351;;;;:::o;15503:332::-;15624:4;15662:2;15651:9;15647:18;15639:26;;15675:71;15743:1;15732:9;15728:17;15719:6;15675:71;:::i;:::-;15756:72;15824:2;15813:9;15809:18;15800:6;15756:72;:::i;:::-;15503:332;;;;;:::o;15841:137::-;15895:5;15926:6;15920:13;15911:22;;15942:30;15966:5;15942:30;:::i;:::-;15841:137;;;;:::o;15984:345::-;16051:6;16100:2;16088:9;16079:7;16075:23;16071:32;16068:119;;;16106:79;;:::i;:::-;16068:119;16226:1;16251:61;16304:7;16295:6;16284:9;16280:22;16251:61;:::i;:::-;16241:71;;16197:125;15984:345;;;;:::o;16335:220::-;16475:34;16471:1;16463:6;16459:14;16452:58;16544:3;16539:2;16531:6;16527:15;16520:28;16335:220;:::o;16561:366::-;16703:3;16724:67;16788:2;16783:3;16724:67;:::i;:::-;16717:74;;16800:93;16889:3;16800:93;:::i;:::-;16918:2;16913:3;16909:12;16902:19;;16561:366;;;:::o;16933:419::-;17099:4;17137:2;17126:9;17122:18;17114:26;;17186:9;17180:4;17176:20;17172:1;17161:9;17157:17;17150:47;17214:131;17340:4;17214:131;:::i;:::-;17206:139;;16933:419;;;:::o;17358:225::-;17498:34;17494:1;17486:6;17482:14;17475:58;17567:8;17562:2;17554:6;17550:15;17543:33;17358:225;:::o;17589:366::-;17731:3;17752:67;17816:2;17811:3;17752:67;:::i;:::-;17745:74;;17828:93;17917:3;17828:93;:::i;:::-;17946:2;17941:3;17937:12;17930:19;;17589:366;;;:::o;17961:419::-;18127:4;18165:2;18154:9;18150:18;18142:26;;18214:9;18208:4;18204:20;18200:1;18189:9;18185:17;18178:47;18242:131;18368:4;18242:131;:::i;:::-;18234:139;;17961:419;;;:::o;18386:225::-;18526:34;18522:1;18514:6;18510:14;18503:58;18595:8;18590:2;18582:6;18578:15;18571:33;18386:225;:::o;18617:366::-;18759:3;18780:67;18844:2;18839:3;18780:67;:::i;:::-;18773:74;;18856:93;18945:3;18856:93;:::i;:::-;18974:2;18969:3;18965:12;18958:19;;18617:366;;;:::o;18989:419::-;19155:4;19193:2;19182:9;19178:18;19170:26;;19242:9;19236:4;19232:20;19228:1;19217:9;19213:17;19206:47;19270:131;19396:4;19270:131;:::i;:::-;19262:139;;18989:419;;;:::o;19414:179::-;19554:31;19550:1;19542:6;19538:14;19531:55;19414:179;:::o;19599:366::-;19741:3;19762:67;19826:2;19821:3;19762:67;:::i;:::-;19755:74;;19838:93;19927:3;19838:93;:::i;:::-;19956:2;19951:3;19947:12;19940:19;;19599:366;;;:::o;19971:419::-;20137:4;20175:2;20164:9;20160:18;20152:26;;20224:9;20218:4;20214:20;20210:1;20199:9;20195:17;20188:47;20252:131;20378:4;20252:131;:::i;:::-;20244:139;;19971:419;;;:::o;20396:177::-;20536:29;20532:1;20524:6;20520:14;20513:53;20396:177;:::o;20579:366::-;20721:3;20742:67;20806:2;20801:3;20742:67;:::i;:::-;20735:74;;20818:93;20907:3;20818:93;:::i;:::-;20936:2;20931:3;20927:12;20920:19;;20579:366;;;:::o;20951:419::-;21117:4;21155:2;21144:9;21140:18;21132:26;;21204:9;21198:4;21194:20;21190:1;21179:9;21175:17;21168:47;21232:131;21358:4;21232:131;:::i;:::-;21224:139;;20951:419;;;:::o;21376:180::-;21516:32;21512:1;21504:6;21500:14;21493:56;21376:180;:::o;21562:366::-;21704:3;21725:67;21789:2;21784:3;21725:67;:::i;:::-;21718:74;;21801:93;21890:3;21801:93;:::i;:::-;21919:2;21914:3;21910:12;21903:19;;21562:366;;;:::o;21934:419::-;22100:4;22138:2;22127:9;22123:18;22115:26;;22187:9;22181:4;22177:20;22173:1;22162:9;22158:17;22151:47;22215:131;22341:4;22215:131;:::i;:::-;22207:139;;21934:419;;;:::o;22359:178::-;22499:30;22495:1;22487:6;22483:14;22476:54;22359:178;:::o;22543:366::-;22685:3;22706:67;22770:2;22765:3;22706:67;:::i;:::-;22699:74;;22782:93;22871:3;22782:93;:::i;:::-;22900:2;22895:3;22891:12;22884:19;;22543:366;;;:::o;22915:419::-;23081:4;23119:2;23108:9;23104:18;23096:26;;23168:9;23162:4;23158:20;23154:1;23143:9;23139:17;23132:47;23196:131;23322:4;23196:131;:::i;:::-;23188:139;;22915:419;;;:::o;23340:228::-;23480:34;23476:1;23468:6;23464:14;23457:58;23549:11;23544:2;23536:6;23532:15;23525:36;23340:228;:::o;23574:366::-;23716:3;23737:67;23801:2;23796:3;23737:67;:::i;:::-;23730:74;;23813:93;23902:3;23813:93;:::i;:::-;23931:2;23926:3;23922:12;23915:19;;23574:366;;;:::o;23946:419::-;24112:4;24150:2;24139:9;24135:18;24127:26;;24199:9;24193:4;24189:20;24185:1;24174:9;24170:17;24163:47;24227:131;24353:4;24227:131;:::i;:::-;24219:139;;23946:419;;;:::o;24371:172::-;24511:24;24507:1;24499:6;24495:14;24488:48;24371:172;:::o;24549:366::-;24691:3;24712:67;24776:2;24771:3;24712:67;:::i;:::-;24705:74;;24788:93;24877:3;24788:93;:::i;:::-;24906:2;24901:3;24897:12;24890:19;;24549:366;;;:::o;24921:419::-;25087:4;25125:2;25114:9;25110:18;25102:26;;25174:9;25168:4;25164:20;25160:1;25149:9;25145:17;25138:47;25202:131;25328:4;25202:131;:::i;:::-;25194:139;;24921:419;;;:::o;25346:171::-;25486:23;25482:1;25474:6;25470:14;25463:47;25346:171;:::o;25523:366::-;25665:3;25686:67;25750:2;25745:3;25686:67;:::i;:::-;25679:74;;25762:93;25851:3;25762:93;:::i;:::-;25880:2;25875:3;25871:12;25864:19;;25523:366;;;:::o;25895:419::-;26061:4;26099:2;26088:9;26084:18;26076:26;;26148:9;26142:4;26138:20;26134:1;26123:9;26119:17;26112:47;26176:131;26302:4;26176:131;:::i;:::-;26168:139;;25895:419;;;:::o;26320:180::-;26368:77;26365:1;26358:88;26465:4;26462:1;26455:15;26489:4;26486:1;26479:15;26506:191;26546:3;26565:20;26583:1;26565:20;:::i;:::-;26560:25;;26599:20;26617:1;26599:20;:::i;:::-;26594:25;;26642:1;26639;26635:9;26628:16;;26663:3;26660:1;26657:10;26654:36;;;26670:18;;:::i;:::-;26654:36;26506:191;;;;:::o;26703:178::-;26843:30;26839:1;26831:6;26827:14;26820:54;26703:178;:::o;26887:366::-;27029:3;27050:67;27114:2;27109:3;27050:67;:::i;:::-;27043:74;;27126:93;27215:3;27126:93;:::i;:::-;27244:2;27239:3;27235:12;27228:19;;26887:366;;;:::o;27259:419::-;27425:4;27463:2;27452:9;27448:18;27440:26;;27512:9;27506:4;27502:20;27498:1;27487:9;27483:17;27476:47;27540:131;27666:4;27540:131;:::i;:::-;27532:139;;27259:419;;;:::o;27684:194::-;27724:4;27744:20;27762:1;27744:20;:::i;:::-;27739:25;;27778:20;27796:1;27778:20;:::i;:::-;27773:25;;27822:1;27819;27815:9;27807:17;;27846:1;27840:4;27837:11;27834:37;;;27851:18;;:::i;:::-;27834:37;27684:194;;;;:::o;27884:229::-;28024:34;28020:1;28012:6;28008:14;28001:58;28093:12;28088:2;28080:6;28076:15;28069:37;27884:229;:::o;28119:366::-;28261:3;28282:67;28346:2;28341:3;28282:67;:::i;:::-;28275:74;;28358:93;28447:3;28358:93;:::i;:::-;28476:2;28471:3;28467:12;28460:19;;28119:366;;;:::o;28491:419::-;28657:4;28695:2;28684:9;28680:18;28672:26;;28744:9;28738:4;28734:20;28730:1;28719:9;28715:17;28708:47;28772:131;28898:4;28772:131;:::i;:::-;28764:139;;28491:419;;;:::o;28916:177::-;29056:29;29052:1;29044:6;29040:14;29033:53;28916:177;:::o;29099:366::-;29241:3;29262:67;29326:2;29321:3;29262:67;:::i;:::-;29255:74;;29338:93;29427:3;29338:93;:::i;:::-;29456:2;29451:3;29447:12;29440:19;;29099:366;;;:::o;29471:419::-;29637:4;29675:2;29664:9;29660:18;29652:26;;29724:9;29718:4;29714:20;29710:1;29699:9;29695:17;29688:47;29752:131;29878:4;29752:131;:::i;:::-;29744:139;;29471:419;;;:::o;29896:180::-;29944:77;29941:1;29934:88;30041:4;30038:1;30031:15;30065:4;30062:1;30055:15;30082:180;30130:77;30127:1;30120:88;30227:4;30224:1;30217:15;30251:4;30248:1;30241:15;30268:143;30325:5;30356:6;30350:13;30341:22;;30372:33;30399:5;30372:33;:::i;:::-;30268:143;;;;:::o;30417:351::-;30487:6;30536:2;30524:9;30515:7;30511:23;30507:32;30504:119;;;30542:79;;:::i;:::-;30504:119;30662:1;30687:64;30743:7;30734:6;30723:9;30719:22;30687:64;:::i;:::-;30677:74;;30633:128;30417:351;;;;:::o;30774:85::-;30819:7;30848:5;30837:16;;30774:85;;;:::o;30865:158::-;30923:9;30956:61;30974:42;30983:32;31009:5;30983:32;:::i;:::-;30974:42;:::i;:::-;30956:61;:::i;:::-;30943:74;;30865:158;;;:::o;31029:147::-;31124:45;31163:5;31124:45;:::i;:::-;31119:3;31112:58;31029:147;;:::o;31182:114::-;31249:6;31283:5;31277:12;31267:22;;31182:114;;;:::o;31302:184::-;31401:11;31435:6;31430:3;31423:19;31475:4;31470:3;31466:14;31451:29;;31302:184;;;;:::o;31492:132::-;31559:4;31582:3;31574:11;;31612:4;31607:3;31603:14;31595:22;;31492:132;;;:::o;31630:108::-;31707:24;31725:5;31707:24;:::i;:::-;31702:3;31695:37;31630:108;;:::o;31744:179::-;31813:10;31834:46;31876:3;31868:6;31834:46;:::i;:::-;31912:4;31907:3;31903:14;31889:28;;31744:179;;;;:::o;31929:113::-;31999:4;32031;32026:3;32022:14;32014:22;;31929:113;;;:::o;32078:732::-;32197:3;32226:54;32274:5;32226:54;:::i;:::-;32296:86;32375:6;32370:3;32296:86;:::i;:::-;32289:93;;32406:56;32456:5;32406:56;:::i;:::-;32485:7;32516:1;32501:284;32526:6;32523:1;32520:13;32501:284;;;32602:6;32596:13;32629:63;32688:3;32673:13;32629:63;:::i;:::-;32622:70;;32715:60;32768:6;32715:60;:::i;:::-;32705:70;;32561:224;32548:1;32545;32541:9;32536:14;;32501:284;;;32505:14;32801:3;32794:10;;32202:608;;;32078:732;;;;:::o;32816:831::-;33079:4;33117:3;33106:9;33102:19;33094:27;;33131:71;33199:1;33188:9;33184:17;33175:6;33131:71;:::i;:::-;33212:80;33288:2;33277:9;33273:18;33264:6;33212:80;:::i;:::-;33339:9;33333:4;33329:20;33324:2;33313:9;33309:18;33302:48;33367:108;33470:4;33461:6;33367:108;:::i;:::-;33359:116;;33485:72;33553:2;33542:9;33538:18;33529:6;33485:72;:::i;:::-;33567:73;33635:3;33624:9;33620:19;33611:6;33567:73;:::i;:::-;32816:831;;;;;;;;:::o;33653:180::-;33701:77;33698:1;33691:88;33798:4;33795:1;33788:15;33822:4;33819:1;33812:15;33839:185;33879:1;33896:20;33914:1;33896:20;:::i;:::-;33891:25;;33930:20;33948:1;33930:20;:::i;:::-;33925:25;;33969:1;33959:35;;33974:18;;:::i;:::-;33959:35;34016:1;34013;34009:9;34004:14;;33839:185;;;;:::o;34030:410::-;34070:7;34093:20;34111:1;34093:20;:::i;:::-;34088:25;;34127:20;34145:1;34127:20;:::i;:::-;34122:25;;34182:1;34179;34175:9;34204:30;34222:11;34204:30;:::i;:::-;34193:41;;34383:1;34374:7;34370:15;34367:1;34364:22;34344:1;34337:9;34317:83;34294:139;;34413:18;;:::i;:::-;34294:139;34078:362;34030:410;;;;:::o;34446:220::-;34586:34;34582:1;34574:6;34570:14;34563:58;34655:3;34650:2;34642:6;34638:15;34631:28;34446:220;:::o;34672:366::-;34814:3;34835:67;34899:2;34894:3;34835:67;:::i;:::-;34828:74;;34911:93;35000:3;34911:93;:::i;:::-;35029:2;35024:3;35020:12;35013:19;;34672:366;;;:::o;35044:419::-;35210:4;35248:2;35237:9;35233:18;35225:26;;35297:9;35291:4;35287:20;35283:1;35272:9;35268:17;35261:47;35325:131;35451:4;35325:131;:::i;:::-;35317:139;;35044:419;;;:::o
Swarm Source
ipfs://6c86a1191fcc9f357eed607646d4c14cfa499899a738da647bf78d01265b6849
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.