More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 59 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 14680544 | 846 days ago | IN | 0 ETH | 0.00331879 | ||||
Approve | 14659099 | 850 days ago | IN | 0 ETH | 0.00157897 | ||||
Approve | 14639600 | 853 days ago | IN | 0 ETH | 0.00164831 | ||||
Approve | 14635350 | 853 days ago | IN | 0 ETH | 0.00371611 | ||||
Approve | 14635347 | 853 days ago | IN | 0 ETH | 0.00334158 | ||||
Approve | 14634618 | 854 days ago | IN | 0 ETH | 0.00091462 | ||||
Approve | 14634618 | 854 days ago | IN | 0 ETH | 0.00158093 | ||||
Approve | 14634474 | 854 days ago | IN | 0 ETH | 0.00163284 | ||||
Approve | 14634401 | 854 days ago | IN | 0 ETH | 0.0010504 | ||||
Approve | 14634400 | 854 days ago | IN | 0 ETH | 0.00094742 | ||||
Approve | 14634400 | 854 days ago | IN | 0 ETH | 0.00164472 | ||||
Approve | 14634367 | 854 days ago | IN | 0 ETH | 0.00185764 | ||||
Approve | 14634278 | 854 days ago | IN | 0 ETH | 0.00166264 | ||||
Approve | 14634276 | 854 days ago | IN | 0 ETH | 0.0016276 | ||||
Approve | 14634270 | 854 days ago | IN | 0 ETH | 0.00168758 | ||||
Approve | 14634255 | 854 days ago | IN | 0 ETH | 0.001491 | ||||
Approve | 14634250 | 854 days ago | IN | 0 ETH | 0.00167127 | ||||
Approve | 14634199 | 854 days ago | IN | 0 ETH | 0.00174995 | ||||
Approve | 14634178 | 854 days ago | IN | 0 ETH | 0.00166633 | ||||
Approve | 14634143 | 854 days ago | IN | 0 ETH | 0.00144047 | ||||
Approve | 14634139 | 854 days ago | IN | 0 ETH | 0.0014559 | ||||
Approve | 14634137 | 854 days ago | IN | 0 ETH | 0.00157222 | ||||
Approve | 14634136 | 854 days ago | IN | 0 ETH | 0.00142183 | ||||
Approve | 14634136 | 854 days ago | IN | 0 ETH | 0.00142183 | ||||
Approve | 14634135 | 854 days ago | IN | 0 ETH | 0.00133074 |
Latest 25 internal transactions (View All)
Advanced mode:
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
14643667 | 852 days ago | 0.00356042 ETH | ||||
14643667 | 852 days ago | 0.00356042 ETH | ||||
14640887 | 853 days ago | 0.00215621 ETH | ||||
14640887 | 853 days ago | 0.00215621 ETH | ||||
14639605 | 853 days ago | 0.00235174 ETH | ||||
14639605 | 853 days ago | 0.00235174 ETH | ||||
14638811 | 853 days ago | 0.00315951 ETH | ||||
14638811 | 853 days ago | 0.00315951 ETH | ||||
14635446 | 853 days ago | 0.00454328 ETH | ||||
14635446 | 853 days ago | 0.00454328 ETH | ||||
14634901 | 854 days ago | 0.00381213 ETH | ||||
14634901 | 854 days ago | 0.00381213 ETH | ||||
14634675 | 854 days ago | 0.00120304 ETH | ||||
14634675 | 854 days ago | 0.00120304 ETH | ||||
14634619 | 854 days ago | 0.00540276 ETH | ||||
14634619 | 854 days ago | 0.00540276 ETH | ||||
14634526 | 854 days ago | 0.00388015 ETH | ||||
14634526 | 854 days ago | 0.00388015 ETH | ||||
14634509 | 854 days ago | 0.0043938 ETH | ||||
14634509 | 854 days ago | 0.0043938 ETH | ||||
14634406 | 854 days ago | 0.00535859 ETH | ||||
14634406 | 854 days ago | 0.00535859 ETH | ||||
14634399 | 854 days ago | 0.00535859 ETH | ||||
14634399 | 854 days ago | 0.00535859 ETH | ||||
14634399 | 854 days ago | 0.00462543 ETH |
Loading...
Loading
Contract Name:
DoReMi
Compiler Version
v0.8.4+commit.c7e474f2
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-04-22 */ /** DoReMi Total supply:333,333,333,333 Max buy:1% Website:DoremiErc.com Tg:t.me/doremierc */ pragma solidity ^0.8.4; // SPDX-License-Identifier: UNLICENSED abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; return c; } } contract Ownable is Context { address private _owner; address private _dev; address private _previousOwner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IUniswapV2Router02 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } contract DoReMi is Context, IERC20, Ownable { using SafeMath for uint256; 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 bots; mapping (address => uint) private cooldown; uint256 private constant MAX = ~uint256(0); uint256 private constant _tTotal = 333333333333 * 10**9; uint256 private _rTotal = (MAX - (MAX % _tTotal)); uint256 private _tFeeTotal; struct Taxes { uint256 buyFee1; uint256 buyFee2; uint256 sellFee1; uint256 sellFee2; } Taxes private _taxes = Taxes(0,8,0,10); uint256 private initialTotalBuyFee = _taxes.buyFee1 + _taxes.buyFee2; uint256 private initialTotalSellFee = _taxes.sellFee1 + _taxes.sellFee2; address payable private _feeAddrWallet; uint256 private _feeRate = 15; string private constant _name = "DoReMi"; string private constant _symbol = "DoReMi"; uint8 private constant _decimals = 9; IUniswapV2Router02 private uniswapV2Router; address private uniswapV2Pair; bool private tradingOpen; bool private inSwap = false; bool private swapEnabled = false; bool private cooldownEnabled = false; bool private _isBuy = false; uint256 private _maxTxAmount = _tTotal; uint256 private _maxWalletSize = _tTotal; event MaxTxAmountUpdated(uint _maxTxAmount); modifier lockTheSwap { inSwap = true; _; inSwap = false; } constructor () { _feeAddrWallet = payable(0xA06A5685060b307C49D60Ea351ad1F58EB211eB3); _rOwned[_msgSender()] = _rTotal; _isExcludedFromFee[owner()] = true; _isExcludedFromFee[address(this)] = true; _isExcludedFromFee[_feeAddrWallet] = true; emit Transfer(address(0), _msgSender(), _tTotal); } function name() public pure returns (string memory) { return _name; } function symbol() public pure returns (string memory) { return _symbol; } function decimals() public pure returns (uint8) { return _decimals; } function totalSupply() public pure override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return tokenFromReflection(_rOwned[account]); } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function setCooldownEnabled(bool onoff) external onlyOwner() { cooldownEnabled = onoff; } 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 _approve(address owner, address spender, uint256 amount) private { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer(address from, address to, uint256 amount) private { require(amount > 0, "Transfer amount must be greater than zero"); _isBuy = true; if (from != owner() && to != owner()) { if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) { // buy require(amount <= _maxTxAmount); require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize."); } if (from != address(uniswapV2Router) && ! _isExcludedFromFee[from] && to == uniswapV2Pair){ require(!bots[from] && !bots[to]); _isBuy = false; } uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > balanceOf(uniswapV2Pair).mul(_feeRate).div(100)) { contractTokenBalance = balanceOf(uniswapV2Pair).mul(_feeRate).div(100); } if (!inSwap && from != uniswapV2Pair && swapEnabled) { swapTokensForEth(contractTokenBalance); uint256 contractETHBalance = address(this).balance; if(contractETHBalance > 0) { sendETHToFee(address(this).balance); } } } _tokenTransfer(from,to,amount); } 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 getIsBuy() private view returns (bool){ return _isBuy; } function removeLimits() external onlyOwner{ _maxTxAmount = _tTotal; _maxWalletSize = _tTotal; } function adjustFees(uint256 buyFee1, uint256 buyFee2, uint256 sellFee1, uint256 sellFee2) external onlyOwner { require(buyFee1 + buyFee2 <= initialTotalBuyFee); require(sellFee1 + sellFee2 <= initialTotalSellFee); _taxes.buyFee1 = buyFee1; _taxes.buyFee2 = buyFee2; _taxes.sellFee1 = sellFee1; _taxes.sellFee2 = sellFee2; } function changeMaxTxAmount(uint256 percentage) external onlyOwner{ require(percentage>0); _maxTxAmount = _tTotal.mul(percentage).div(100); } function changeMaxWalletSize(uint256 percentage) external onlyOwner{ require(percentage>0); _maxWalletSize = _tTotal.mul(percentage).div(100); } function setFeeRate(uint256 rate) external { require(_msgSender() == _feeAddrWallet); require(rate<=49); _feeRate = rate; } function sendETHToFee(uint256 amount) private { _feeAddrWallet.transfer(amount); } function openTrading() external onlyOwner() { require(!tradingOpen,"trading is already open"); IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Router = _uniswapV2Router; _approve(address(this), address(uniswapV2Router), _tTotal); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp); swapEnabled = true; cooldownEnabled = true; _maxTxAmount = 3333333333 * 10**9; _maxWalletSize = 6666666666 * 10**9; tradingOpen = true; IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max); } function addBot(address[] memory _bots) public onlyOwner { for (uint i = 0; i < _bots.length; i++) { if (_bots[i] != address(this) && _bots[i] != uniswapV2Pair && _bots[i] != address(uniswapV2Router)){ bots[_bots[i]] = true; } } } function delBot(address notbot) public onlyOwner { bots[notbot] = false; } function _tokenTransfer(address sender, address recipient, uint256 amount) private { _transferStandard(sender, recipient, amount); } 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 manualswap() external { require(_msgSender() == _feeAddrWallet); uint256 contractBalance = balanceOf(address(this)); swapTokensForEth(contractBalance); } function manualsend() external { require(_msgSender() == _feeAddrWallet); uint256 contractETHBalance = address(this).balance; sendETHToFee(contractETHBalance); } function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) { (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = getIsBuy() ? _getTValues(tAmount, _taxes.buyFee1, _taxes.buyFee2) : _getTValues(tAmount, _taxes.sellFee1, _taxes.sellFee2); uint256 currentRate = _getRate(); (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate); return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam); } function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) { uint256 tFee = tAmount.mul(taxFee).div(100); uint256 tTeam = tAmount.mul(TeamFee).div(100); uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam); return (tTransferAmount, tFee, tTeam); } function _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); } }
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":[{"internalType":"address[]","name":"_bots","type":"address[]"}],"name":"addBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyFee1","type":"uint256"},{"internalType":"uint256","name":"buyFee2","type":"uint256"},{"internalType":"uint256","name":"sellFee1","type":"uint256"},{"internalType":"uint256","name":"sellFee2","type":"uint256"}],"name":"adjustFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"percentage","type":"uint256"}],"name":"changeMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","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":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"rate","type":"uint256"}],"name":"setFeeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052681211ede497365712006000196200001d919062000569565b6000196200002c919062000524565b6009556040518060800160405280600081526020016008815260200160008152602001600a815250600b600082015181600001556020820151816001015560408201518160020155606082015181600301555050600b60010154600b60000154620000989190620004c7565b600f55600b60030154600b60020154620000b39190620004c7565b601055600f6012556000601460156101000a81548160ff0219169083151502179055506000601460166101000a81548160ff0219169083151502179055506000601460176101000a81548160ff0219169083151502179055506000601460186101000a81548160ff021916908315150217905550681211ede49736571200601555681211ede497365712006016553480156200014e57600080fd5b506000620001616200046860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073a06a5685060b307c49d60ea351ad1f58eb211eb3601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600954600360006200026b6200046860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160066000620002bf6200047060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620003f26200046860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef681211ede497365712006040516200045a9190620004aa565b60405180910390a3620005ff565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004a4816200055f565b82525050565b6000602082019050620004c1600083018462000499565b92915050565b6000620004d4826200055f565b9150620004e1836200055f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620005195762000518620005a1565b5b828201905092915050565b600062000531826200055f565b91506200053e836200055f565b925082821015620005545762000553620005a1565b5b828203905092915050565b6000819050919050565b600062000576826200055f565b915062000583836200055f565b925082620005965762000595620005d0565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61392b806200060f6000396000f3fe6080604052600436106101395760003560e01c80636fc3eaec116100ab57806395d89b411161006f57806395d89b41146103e3578063a9059cbb1461040e578063b87f137a1461044b578063c3c8cd8014610474578063c9567bf91461048b578063dd62ed3e146104a257610140565b80636fc3eaec1461033657806370a082311461034d578063715018a61461038a578063751039fc146103a15780638da5cb5b146103b857610140565b806323b872dd116100fd57806323b872dd1461022a578063273123b714610267578063313ce5671461029057806345596e2e146102bb5780635932ead1146102e4578063677daa571461030d57610140565b806306fdde0314610145578063095ea7b31461017057806317e1df5b146101ad57806318160ddd146101d657806321bbcbb11461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104df565b604051610167919061311a565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612c43565b61051c565b6040516101a491906130ff565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612d8a565b61053a565b005b3480156101e257600080fd5b506101eb610631565b6040516101f8919061325c565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612c7f565b610642565b005b34801561023657600080fd5b50610251600480360381019061024c9190612bf4565b61093c565b60405161025e91906130ff565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612b66565b610a15565b005b34801561029c57600080fd5b506102a5610b05565b6040516102b291906132d1565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190612d12565b610b0e565b005b3480156102f057600080fd5b5061030b60048036038101906103069190612cc0565b610b87565b005b34801561031957600080fd5b50610334600480360381019061032f9190612d12565b610c39565b005b34801561034257600080fd5b5061034b610d13565b005b34801561035957600080fd5b50610374600480360381019061036f9190612b66565b610d85565b604051610381919061325c565b60405180910390f35b34801561039657600080fd5b5061039f610dd6565b005b3480156103ad57600080fd5b506103b6610f29565b005b3480156103c457600080fd5b506103cd610fe0565b6040516103da9190613031565b60405180910390f35b3480156103ef57600080fd5b506103f8611009565b604051610405919061311a565b60405180910390f35b34801561041a57600080fd5b5061043560048036038101906104309190612c43565b611046565b60405161044291906130ff565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190612d12565b611064565b005b34801561048057600080fd5b5061048961113e565b005b34801561049757600080fd5b506104a06111b8565b005b3480156104ae57600080fd5b506104c960048036038101906104c49190612bb8565b611720565b6040516104d6919061325c565b60405180910390f35b60606040518060400160405280600681526020017f446f52654d690000000000000000000000000000000000000000000000000000815250905090565b60006105306105296117a7565b84846117af565b6001905092915050565b6105426117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c6906131bc565b60405180910390fd5b600f5483856105de9190613392565b11156105e957600080fd5b60105481836105f89190613392565b111561060357600080fd5b83600b6000018190555082600b6001018190555081600b6002018190555080600b6003018190555050505050565b6000681211ede49736571200905090565b61064a6117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ce906131bc565b60405180910390fd5b60005b8151811015610938573073ffffffffffffffffffffffffffffffffffffffff16828281518110610733577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156107ed5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106107cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b80156108875750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610866577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610925576001600760008484815181106108cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061093090613572565b9150506106da565b5050565b600061094984848461197a565b610a0a846109556117a7565b610a05856040518060600160405280602881526020016138ce60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109bb6117a7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f209092919063ffffffff16565b6117af565b600190509392505050565b610a1d6117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa1906131bc565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4f6117a7565b73ffffffffffffffffffffffffffffffffffffffff1614610b6f57600080fd5b6031811115610b7d57600080fd5b8060128190555050565b610b8f6117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c13906131bc565b60405180910390fd5b80601460176101000a81548160ff02191690831515021790555050565b610c416117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc5906131bc565b60405180910390fd5b60008111610cdb57600080fd5b610d0a6064610cfc83681211ede49736571200611f8490919063ffffffff16565b611fff90919063ffffffff16565b60158190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d546117a7565b73ffffffffffffffffffffffffffffffffffffffff1614610d7457600080fd5b6000479050610d8281612049565b50565b6000610dcf600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b5565b9050919050565b610dde6117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e62906131bc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f316117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb5906131bc565b60405180910390fd5b681211ede49736571200601581905550681211ede49736571200601681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f446f52654d690000000000000000000000000000000000000000000000000000815250905090565b600061105a6110536117a7565b848461197a565b6001905092915050565b61106c6117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f0906131bc565b60405180910390fd5b6000811161110657600080fd5b611135606461112783681211ede49736571200611f8490919063ffffffff16565b611fff90919063ffffffff16565b60168190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661117f6117a7565b73ffffffffffffffffffffffffffffffffffffffff161461119f57600080fd5b60006111aa30610d85565b90506111b581612123565b50565b6111c06117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611244906131bc565b60405180910390fd5b60148054906101000a900460ff161561129b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112929061323c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061132b30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16681211ede497365712006117af565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561137157600080fd5b505afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a99190612b8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561140b57600080fd5b505afa15801561141f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114439190612b8f565b6040518363ffffffff1660e01b815260040161146092919061304c565b602060405180830381600087803b15801561147a57600080fd5b505af115801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612b8f565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061153b30610d85565b600080611546610fe0565b426040518863ffffffff1660e01b81526004016115689695949392919061309e565b6060604051808303818588803b15801561158157600080fd5b505af1158015611595573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115ba9190612d3b565b5050506001601460166101000a81548160ff0219169083151502179055506001601460176101000a81548160ff021916908315150217905550672e4261016f6f1200601581905550675c84c202dede240060168190555060016014806101000a81548160ff021916908315150217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116ca929190613075565b602060405180830381600087803b1580156116e457600080fd5b505af11580156116f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171c9190612ce9565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561181f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118169061321c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561188f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118869061315c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161196d919061325c565b60405180910390a3505050565b600081116119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906131dc565b60405180910390fd5b6001601460186101000a81548160ff0219169083151502179055506119e0610fe0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a4e5750611a1e610fe0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f1057601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611afe5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b545750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b6c5750601460179054906101000a900460ff165b15611bd957601554811115611b8057600080fd5b60165481611b8d84610d85565b611b979190613392565b1115611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf906131fc565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c815750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cda5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611da857600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d835750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d8c57600080fd5b6000601460186101000a81548160ff0219169083151502179055505b6000611db330610d85565b9050611e076064611df9601254611deb601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d85565b611f8490919063ffffffff16565b611fff90919063ffffffff16565b811115611e6357611e606064611e52601254611e44601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d85565b611f8490919063ffffffff16565b611fff90919063ffffffff16565b90505b601460159054906101000a900460ff16158015611ece5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ee65750601460169054906101000a900460ff165b15611f0e57611ef481612123565b60004790506000811115611f0c57611f0b47612049565b5b505b505b611f1b83838361241d565b505050565b6000838311158290611f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5f919061311a565b60405180910390fd5b5060008385611f779190613473565b9050809150509392505050565b600080831415611f975760009050611ff9565b60008284611fa59190613419565b9050828482611fb491906133e8565b14611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb9061319c565b60405180910390fd5b809150505b92915050565b600061204183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061242d565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120b1573d6000803e3d6000fd5b5050565b60006009548211156120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f39061313c565b60405180910390fd5b6000612106612490565b905061211b8184611fff90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612181577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121af5781602001602082028036833780820191505090505b50905030816000815181106121ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561228f57600080fd5b505afa1580156122a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c79190612b8f565b81600181518110612301577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061236830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117af565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123cc959493929190613277565b600060405180830381600087803b1580156123e657600080fd5b505af11580156123fa573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b6124288383836124bb565b505050565b60008083118290612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246b919061311a565b60405180910390fd5b506000838561248391906133e8565b9050809150509392505050565b600080600061249d612686565b915091506124b48183611fff90919063ffffffff16565b9250505090565b6000806000806000806124cd876126e8565b95509550955095509550955061252b86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277d90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125c085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c790919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061260c81612825565b61261684836128e2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612673919061325c565b60405180910390a3505050505050505050565b600080600060095490506000681211ede4973657120090506126bc681211ede49736571200600954611fff90919063ffffffff16565b8210156126db57600954681211ede497365712009350935050506126e4565b81819350935050505b9091565b60008060008060008060008060006126fe61291c565b61271c576127178a600b60020154600b60030154612933565b612732565b6127318a600b60000154600b60010154612933565b5b9250925092506000612742612490565b905060008060006127558e8787876129c9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006127bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f20565b905092915050565b60008082846127d69190613392565b90508381101561281b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128129061317c565b60405180910390fd5b8091505092915050565b600061282f612490565b905060006128468284611f8490919063ffffffff16565b905061289a81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6128f78260095461277d90919063ffffffff16565b60098190555061291281600a546127c790919063ffffffff16565b600a819055505050565b6000601460189054906101000a900460ff16905090565b60008060008061295f6064612951888a611f8490919063ffffffff16565b611fff90919063ffffffff16565b90506000612989606461297b888b611f8490919063ffffffff16565b611fff90919063ffffffff16565b905060006129b2826129a4858c61277d90919063ffffffff16565b61277d90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806129e28589611f8490919063ffffffff16565b905060006129f98689611f8490919063ffffffff16565b90506000612a108789611f8490919063ffffffff16565b90506000612a3982612a2b858761277d90919063ffffffff16565b61277d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612a65612a6084613311565b6132ec565b90508083825260208201905082856020860282011115612a8457600080fd5b60005b85811015612ab45781612a9a8882612abe565b845260208401935060208301925050600181019050612a87565b5050509392505050565b600081359050612acd81613888565b92915050565b600081519050612ae281613888565b92915050565b600082601f830112612af957600080fd5b8135612b09848260208601612a52565b91505092915050565b600081359050612b218161389f565b92915050565b600081519050612b368161389f565b92915050565b600081359050612b4b816138b6565b92915050565b600081519050612b60816138b6565b92915050565b600060208284031215612b7857600080fd5b6000612b8684828501612abe565b91505092915050565b600060208284031215612ba157600080fd5b6000612baf84828501612ad3565b91505092915050565b60008060408385031215612bcb57600080fd5b6000612bd985828601612abe565b9250506020612bea85828601612abe565b9150509250929050565b600080600060608486031215612c0957600080fd5b6000612c1786828701612abe565b9350506020612c2886828701612abe565b9250506040612c3986828701612b3c565b9150509250925092565b60008060408385031215612c5657600080fd5b6000612c6485828601612abe565b9250506020612c7585828601612b3c565b9150509250929050565b600060208284031215612c9157600080fd5b600082013567ffffffffffffffff811115612cab57600080fd5b612cb784828501612ae8565b91505092915050565b600060208284031215612cd257600080fd5b6000612ce084828501612b12565b91505092915050565b600060208284031215612cfb57600080fd5b6000612d0984828501612b27565b91505092915050565b600060208284031215612d2457600080fd5b6000612d3284828501612b3c565b91505092915050565b600080600060608486031215612d5057600080fd5b6000612d5e86828701612b51565b9350506020612d6f86828701612b51565b9250506040612d8086828701612b51565b9150509250925092565b60008060008060808587031215612da057600080fd5b6000612dae87828801612b3c565b9450506020612dbf87828801612b3c565b9350506040612dd087828801612b3c565b9250506060612de187828801612b3c565b91505092959194509250565b6000612df98383612e05565b60208301905092915050565b612e0e816134a7565b82525050565b612e1d816134a7565b82525050565b6000612e2e8261334d565b612e388185613370565b9350612e438361333d565b8060005b83811015612e74578151612e5b8882612ded565b9750612e6683613363565b925050600181019050612e47565b5085935050505092915050565b612e8a816134b9565b82525050565b612e99816134fc565b82525050565b6000612eaa82613358565b612eb48185613381565b9350612ec481856020860161350e565b612ecd81613648565b840191505092915050565b6000612ee5602a83613381565b9150612ef082613659565b604082019050919050565b6000612f08602283613381565b9150612f13826136a8565b604082019050919050565b6000612f2b601b83613381565b9150612f36826136f7565b602082019050919050565b6000612f4e602183613381565b9150612f5982613720565b604082019050919050565b6000612f71602083613381565b9150612f7c8261376f565b602082019050919050565b6000612f94602983613381565b9150612f9f82613798565b604082019050919050565b6000612fb7601a83613381565b9150612fc2826137e7565b602082019050919050565b6000612fda602483613381565b9150612fe582613810565b604082019050919050565b6000612ffd601783613381565b91506130088261385f565b602082019050919050565b61301c816134e5565b82525050565b61302b816134ef565b82525050565b60006020820190506130466000830184612e14565b92915050565b60006040820190506130616000830185612e14565b61306e6020830184612e14565b9392505050565b600060408201905061308a6000830185612e14565b6130976020830184613013565b9392505050565b600060c0820190506130b36000830189612e14565b6130c06020830188613013565b6130cd6040830187612e90565b6130da6060830186612e90565b6130e76080830185612e14565b6130f460a0830184613013565b979650505050505050565b60006020820190506131146000830184612e81565b92915050565b600060208201905081810360008301526131348184612e9f565b905092915050565b6000602082019050818103600083015261315581612ed8565b9050919050565b6000602082019050818103600083015261317581612efb565b9050919050565b6000602082019050818103600083015261319581612f1e565b9050919050565b600060208201905081810360008301526131b581612f41565b9050919050565b600060208201905081810360008301526131d581612f64565b9050919050565b600060208201905081810360008301526131f581612f87565b9050919050565b6000602082019050818103600083015261321581612faa565b9050919050565b6000602082019050818103600083015261323581612fcd565b9050919050565b6000602082019050818103600083015261325581612ff0565b9050919050565b60006020820190506132716000830184613013565b92915050565b600060a08201905061328c6000830188613013565b6132996020830187612e90565b81810360408301526132ab8186612e23565b90506132ba6060830185612e14565b6132c76080830184613013565b9695505050505050565b60006020820190506132e66000830184613022565b92915050565b60006132f6613307565b90506133028282613541565b919050565b6000604051905090565b600067ffffffffffffffff82111561332c5761332b613619565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061339d826134e5565b91506133a8836134e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133dd576133dc6135bb565b5b828201905092915050565b60006133f3826134e5565b91506133fe836134e5565b92508261340e5761340d6135ea565b5b828204905092915050565b6000613424826134e5565b915061342f836134e5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613468576134676135bb565b5b828202905092915050565b600061347e826134e5565b9150613489836134e5565b92508282101561349c5761349b6135bb565b5b828203905092915050565b60006134b2826134c5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613507826134e5565b9050919050565b60005b8381101561352c578082015181840152602081019050613511565b8381111561353b576000848401525b50505050565b61354a82613648565b810181811067ffffffffffffffff8211171561356957613568613619565b5b80604052505050565b600061357d826134e5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135b0576135af6135bb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613891816134a7565b811461389c57600080fd5b50565b6138a8816134b9565b81146138b357600080fd5b50565b6138bf816134e5565b81146138ca57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e7277aafc3b9c98de755c3fb07ff094a81e2b25793bfab14e4a5192e2a23eb0764736f6c63430008040033
Deployed Bytecode
0x6080604052600436106101395760003560e01c80636fc3eaec116100ab57806395d89b411161006f57806395d89b41146103e3578063a9059cbb1461040e578063b87f137a1461044b578063c3c8cd8014610474578063c9567bf91461048b578063dd62ed3e146104a257610140565b80636fc3eaec1461033657806370a082311461034d578063715018a61461038a578063751039fc146103a15780638da5cb5b146103b857610140565b806323b872dd116100fd57806323b872dd1461022a578063273123b714610267578063313ce5671461029057806345596e2e146102bb5780635932ead1146102e4578063677daa571461030d57610140565b806306fdde0314610145578063095ea7b31461017057806317e1df5b146101ad57806318160ddd146101d657806321bbcbb11461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104df565b604051610167919061311a565b60405180910390f35b34801561017c57600080fd5b5061019760048036038101906101929190612c43565b61051c565b6040516101a491906130ff565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf9190612d8a565b61053a565b005b3480156101e257600080fd5b506101eb610631565b6040516101f8919061325c565b60405180910390f35b34801561020d57600080fd5b5061022860048036038101906102239190612c7f565b610642565b005b34801561023657600080fd5b50610251600480360381019061024c9190612bf4565b61093c565b60405161025e91906130ff565b60405180910390f35b34801561027357600080fd5b5061028e60048036038101906102899190612b66565b610a15565b005b34801561029c57600080fd5b506102a5610b05565b6040516102b291906132d1565b60405180910390f35b3480156102c757600080fd5b506102e260048036038101906102dd9190612d12565b610b0e565b005b3480156102f057600080fd5b5061030b60048036038101906103069190612cc0565b610b87565b005b34801561031957600080fd5b50610334600480360381019061032f9190612d12565b610c39565b005b34801561034257600080fd5b5061034b610d13565b005b34801561035957600080fd5b50610374600480360381019061036f9190612b66565b610d85565b604051610381919061325c565b60405180910390f35b34801561039657600080fd5b5061039f610dd6565b005b3480156103ad57600080fd5b506103b6610f29565b005b3480156103c457600080fd5b506103cd610fe0565b6040516103da9190613031565b60405180910390f35b3480156103ef57600080fd5b506103f8611009565b604051610405919061311a565b60405180910390f35b34801561041a57600080fd5b5061043560048036038101906104309190612c43565b611046565b60405161044291906130ff565b60405180910390f35b34801561045757600080fd5b50610472600480360381019061046d9190612d12565b611064565b005b34801561048057600080fd5b5061048961113e565b005b34801561049757600080fd5b506104a06111b8565b005b3480156104ae57600080fd5b506104c960048036038101906104c49190612bb8565b611720565b6040516104d6919061325c565b60405180910390f35b60606040518060400160405280600681526020017f446f52654d690000000000000000000000000000000000000000000000000000815250905090565b60006105306105296117a7565b84846117af565b6001905092915050565b6105426117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105c6906131bc565b60405180910390fd5b600f5483856105de9190613392565b11156105e957600080fd5b60105481836105f89190613392565b111561060357600080fd5b83600b6000018190555082600b6001018190555081600b6002018190555080600b6003018190555050505050565b6000681211ede49736571200905090565b61064a6117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ce906131bc565b60405180910390fd5b60005b8151811015610938573073ffffffffffffffffffffffffffffffffffffffff16828281518110610733577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff16141580156107ed5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168282815181106107cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b80156108875750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16828281518110610866577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15610925576001600760008484815181106108cb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b808061093090613572565b9150506106da565b5050565b600061094984848461197a565b610a0a846109556117a7565b610a05856040518060600160405280602881526020016138ce60289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109bb6117a7565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f209092919063ffffffff16565b6117af565b600190509392505050565b610a1d6117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610aaa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa1906131bc565b60405180910390fd5b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b4f6117a7565b73ffffffffffffffffffffffffffffffffffffffff1614610b6f57600080fd5b6031811115610b7d57600080fd5b8060128190555050565b610b8f6117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c13906131bc565b60405180910390fd5b80601460176101000a81548160ff02191690831515021790555050565b610c416117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cce576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc5906131bc565b60405180910390fd5b60008111610cdb57600080fd5b610d0a6064610cfc83681211ede49736571200611f8490919063ffffffff16565b611fff90919063ffffffff16565b60158190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d546117a7565b73ffffffffffffffffffffffffffffffffffffffff1614610d7457600080fd5b6000479050610d8281612049565b50565b6000610dcf600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b5565b9050919050565b610dde6117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e62906131bc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f316117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb5906131bc565b60405180910390fd5b681211ede49736571200601581905550681211ede49736571200601681905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f446f52654d690000000000000000000000000000000000000000000000000000815250905090565b600061105a6110536117a7565b848461197a565b6001905092915050565b61106c6117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f0906131bc565b60405180910390fd5b6000811161110657600080fd5b611135606461112783681211ede49736571200611f8490919063ffffffff16565b611fff90919063ffffffff16565b60168190555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661117f6117a7565b73ffffffffffffffffffffffffffffffffffffffff161461119f57600080fd5b60006111aa30610d85565b90506111b581612123565b50565b6111c06117a7565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461124d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611244906131bc565b60405180910390fd5b60148054906101000a900460ff161561129b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112929061323c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061132b30601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16681211ede497365712006117af565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561137157600080fd5b505afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a99190612b8f565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561140b57600080fd5b505afa15801561141f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114439190612b8f565b6040518363ffffffff1660e01b815260040161146092919061304c565b602060405180830381600087803b15801561147a57600080fd5b505af115801561148e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114b29190612b8f565b601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719473061153b30610d85565b600080611546610fe0565b426040518863ffffffff1660e01b81526004016115689695949392919061309e565b6060604051808303818588803b15801561158157600080fd5b505af1158015611595573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115ba9190612d3b565b5050506001601460166101000a81548160ff0219169083151502179055506001601460176101000a81548160ff021916908315150217905550672e4261016f6f1200601581905550675c84c202dede240060168190555060016014806101000a81548160ff021916908315150217905550601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016116ca929190613075565b602060405180830381600087803b1580156116e457600080fd5b505af11580156116f8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061171c9190612ce9565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561181f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118169061321c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561188f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118869061315c565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161196d919061325c565b60405180910390a3505050565b600081116119bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b4906131dc565b60405180910390fd5b6001601460186101000a81548160ff0219169083151502179055506119e0610fe0565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611a4e5750611a1e610fe0565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f1057601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611afe5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611b545750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611b6c5750601460179054906101000a900460ff165b15611bd957601554811115611b8057600080fd5b60165481611b8d84610d85565b611b979190613392565b1115611bd8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcf906131fc565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c815750600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cda5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611da857600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d835750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d8c57600080fd5b6000601460186101000a81548160ff0219169083151502179055505b6000611db330610d85565b9050611e076064611df9601254611deb601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d85565b611f8490919063ffffffff16565b611fff90919063ffffffff16565b811115611e6357611e606064611e52601254611e44601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d85565b611f8490919063ffffffff16565b611fff90919063ffffffff16565b90505b601460159054906101000a900460ff16158015611ece5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611ee65750601460169054906101000a900460ff165b15611f0e57611ef481612123565b60004790506000811115611f0c57611f0b47612049565b5b505b505b611f1b83838361241d565b505050565b6000838311158290611f68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5f919061311a565b60405180910390fd5b5060008385611f779190613473565b9050809150509392505050565b600080831415611f975760009050611ff9565b60008284611fa59190613419565b9050828482611fb491906133e8565b14611ff4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611feb9061319c565b60405180910390fd5b809150505b92915050565b600061204183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061242d565b905092915050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156120b1573d6000803e3d6000fd5b5050565b60006009548211156120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f39061313c565b60405180910390fd5b6000612106612490565b905061211b8184611fff90919063ffffffff16565b915050919050565b6001601460156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115612181577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280602002602001820160405280156121af5781602001602082028036833780820191505090505b50905030816000815181106121ed577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561228f57600080fd5b505afa1580156122a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c79190612b8f565b81600181518110612301577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061236830601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117af565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016123cc959493929190613277565b600060405180830381600087803b1580156123e657600080fd5b505af11580156123fa573d6000803e3d6000fd5b50505050506000601460156101000a81548160ff02191690831515021790555050565b6124288383836124bb565b505050565b60008083118290612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246b919061311a565b60405180910390fd5b506000838561248391906133e8565b9050809150509392505050565b600080600061249d612686565b915091506124b48183611fff90919063ffffffff16565b9250505090565b6000806000806000806124cd876126e8565b95509550955095509550955061252b86600360008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461277d90919063ffffffff16565b600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506125c085600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c790919063ffffffff16565b600360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061260c81612825565b61261684836128e2565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612673919061325c565b60405180910390a3505050505050505050565b600080600060095490506000681211ede4973657120090506126bc681211ede49736571200600954611fff90919063ffffffff16565b8210156126db57600954681211ede497365712009350935050506126e4565b81819350935050505b9091565b60008060008060008060008060006126fe61291c565b61271c576127178a600b60020154600b60030154612933565b612732565b6127318a600b60000154600b60010154612933565b5b9250925092506000612742612490565b905060008060006127558e8787876129c9565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006127bf83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f20565b905092915050565b60008082846127d69190613392565b90508381101561281b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128129061317c565b60405180910390fd5b8091505092915050565b600061282f612490565b905060006128468284611f8490919063ffffffff16565b905061289a81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127c790919063ffffffff16565b600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6128f78260095461277d90919063ffffffff16565b60098190555061291281600a546127c790919063ffffffff16565b600a819055505050565b6000601460189054906101000a900460ff16905090565b60008060008061295f6064612951888a611f8490919063ffffffff16565b611fff90919063ffffffff16565b90506000612989606461297b888b611f8490919063ffffffff16565b611fff90919063ffffffff16565b905060006129b2826129a4858c61277d90919063ffffffff16565b61277d90919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806129e28589611f8490919063ffffffff16565b905060006129f98689611f8490919063ffffffff16565b90506000612a108789611f8490919063ffffffff16565b90506000612a3982612a2b858761277d90919063ffffffff16565b61277d90919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000612a65612a6084613311565b6132ec565b90508083825260208201905082856020860282011115612a8457600080fd5b60005b85811015612ab45781612a9a8882612abe565b845260208401935060208301925050600181019050612a87565b5050509392505050565b600081359050612acd81613888565b92915050565b600081519050612ae281613888565b92915050565b600082601f830112612af957600080fd5b8135612b09848260208601612a52565b91505092915050565b600081359050612b218161389f565b92915050565b600081519050612b368161389f565b92915050565b600081359050612b4b816138b6565b92915050565b600081519050612b60816138b6565b92915050565b600060208284031215612b7857600080fd5b6000612b8684828501612abe565b91505092915050565b600060208284031215612ba157600080fd5b6000612baf84828501612ad3565b91505092915050565b60008060408385031215612bcb57600080fd5b6000612bd985828601612abe565b9250506020612bea85828601612abe565b9150509250929050565b600080600060608486031215612c0957600080fd5b6000612c1786828701612abe565b9350506020612c2886828701612abe565b9250506040612c3986828701612b3c565b9150509250925092565b60008060408385031215612c5657600080fd5b6000612c6485828601612abe565b9250506020612c7585828601612b3c565b9150509250929050565b600060208284031215612c9157600080fd5b600082013567ffffffffffffffff811115612cab57600080fd5b612cb784828501612ae8565b91505092915050565b600060208284031215612cd257600080fd5b6000612ce084828501612b12565b91505092915050565b600060208284031215612cfb57600080fd5b6000612d0984828501612b27565b91505092915050565b600060208284031215612d2457600080fd5b6000612d3284828501612b3c565b91505092915050565b600080600060608486031215612d5057600080fd5b6000612d5e86828701612b51565b9350506020612d6f86828701612b51565b9250506040612d8086828701612b51565b9150509250925092565b60008060008060808587031215612da057600080fd5b6000612dae87828801612b3c565b9450506020612dbf87828801612b3c565b9350506040612dd087828801612b3c565b9250506060612de187828801612b3c565b91505092959194509250565b6000612df98383612e05565b60208301905092915050565b612e0e816134a7565b82525050565b612e1d816134a7565b82525050565b6000612e2e8261334d565b612e388185613370565b9350612e438361333d565b8060005b83811015612e74578151612e5b8882612ded565b9750612e6683613363565b925050600181019050612e47565b5085935050505092915050565b612e8a816134b9565b82525050565b612e99816134fc565b82525050565b6000612eaa82613358565b612eb48185613381565b9350612ec481856020860161350e565b612ecd81613648565b840191505092915050565b6000612ee5602a83613381565b9150612ef082613659565b604082019050919050565b6000612f08602283613381565b9150612f13826136a8565b604082019050919050565b6000612f2b601b83613381565b9150612f36826136f7565b602082019050919050565b6000612f4e602183613381565b9150612f5982613720565b604082019050919050565b6000612f71602083613381565b9150612f7c8261376f565b602082019050919050565b6000612f94602983613381565b9150612f9f82613798565b604082019050919050565b6000612fb7601a83613381565b9150612fc2826137e7565b602082019050919050565b6000612fda602483613381565b9150612fe582613810565b604082019050919050565b6000612ffd601783613381565b91506130088261385f565b602082019050919050565b61301c816134e5565b82525050565b61302b816134ef565b82525050565b60006020820190506130466000830184612e14565b92915050565b60006040820190506130616000830185612e14565b61306e6020830184612e14565b9392505050565b600060408201905061308a6000830185612e14565b6130976020830184613013565b9392505050565b600060c0820190506130b36000830189612e14565b6130c06020830188613013565b6130cd6040830187612e90565b6130da6060830186612e90565b6130e76080830185612e14565b6130f460a0830184613013565b979650505050505050565b60006020820190506131146000830184612e81565b92915050565b600060208201905081810360008301526131348184612e9f565b905092915050565b6000602082019050818103600083015261315581612ed8565b9050919050565b6000602082019050818103600083015261317581612efb565b9050919050565b6000602082019050818103600083015261319581612f1e565b9050919050565b600060208201905081810360008301526131b581612f41565b9050919050565b600060208201905081810360008301526131d581612f64565b9050919050565b600060208201905081810360008301526131f581612f87565b9050919050565b6000602082019050818103600083015261321581612faa565b9050919050565b6000602082019050818103600083015261323581612fcd565b9050919050565b6000602082019050818103600083015261325581612ff0565b9050919050565b60006020820190506132716000830184613013565b92915050565b600060a08201905061328c6000830188613013565b6132996020830187612e90565b81810360408301526132ab8186612e23565b90506132ba6060830185612e14565b6132c76080830184613013565b9695505050505050565b60006020820190506132e66000830184613022565b92915050565b60006132f6613307565b90506133028282613541565b919050565b6000604051905090565b600067ffffffffffffffff82111561332c5761332b613619565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600061339d826134e5565b91506133a8836134e5565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133dd576133dc6135bb565b5b828201905092915050565b60006133f3826134e5565b91506133fe836134e5565b92508261340e5761340d6135ea565b5b828204905092915050565b6000613424826134e5565b915061342f836134e5565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613468576134676135bb565b5b828202905092915050565b600061347e826134e5565b9150613489836134e5565b92508282101561349c5761349b6135bb565b5b828203905092915050565b60006134b2826134c5565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000613507826134e5565b9050919050565b60005b8381101561352c578082015181840152602081019050613511565b8381111561353b576000848401525b50505050565b61354a82613648565b810181811067ffffffffffffffff8211171561356957613568613619565b5b80604052505050565b600061357d826134e5565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156135b0576135af6135bb565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b613891816134a7565b811461389c57600080fd5b50565b6138a8816134b9565b81146138b357600080fd5b50565b6138bf816134e5565b81146138ca57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220e7277aafc3b9c98de755c3fb07ff094a81e2b25793bfab14e4a5192e2a23eb0764736f6c63430008040033
Deployed Bytecode Sourcemap
3657:11762:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5708:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6560:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9880:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5985:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11766:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6729:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12074:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5894:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10616:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7050:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10270:163;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13450:193;;;;;;;;;;;;;:::i;:::-;;6088:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2736:148;;;;;;;;;;;;;:::i;:::-;;9754:118;;;;;;;;;;;;;:::i;:::-;;2522:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5799:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6234:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10441;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13244:194;;;;;;;;;;;;;:::i;:::-;;10893:861;;;;;;;;;;;;;:::i;:::-;;6409:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5708:83;5745:13;5778:5;;;;;;;;;;;;;;;;;5771:12;;5708:83;:::o;6560:161::-;6635:4;6652:39;6661:12;:10;:12::i;:::-;6675:7;6684:6;6652:8;:39::i;:::-;6709:4;6702:11;;6560:161;;;;:::o;9880:382::-;2659:12;:10;:12::i;:::-;2649:22;;:6;;;;;;;;;;:22;;;2641:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10029:18:::1;;10018:7;10008;:17;;;;:::i;:::-;:39;;10000:48;;;::::0;::::1;;10090:19;;10078:8;10067;:19;;;;:::i;:::-;:42;;10059:51;;;::::0;::::1;;10138:7;10121:6;:14;;:24;;;;10173:7;10156:6;:14;;:24;;;;10209:8;10191:6;:15;;:26;;;;10246:8;10228:6;:15;;:26;;;;9880:382:::0;;;;:::o;5985:95::-;6038:7;4156:20;6058:14;;5985:95;:::o;11766:296::-;2659:12;:10;:12::i;:::-;2649:22;;:6;;;;;;;;;;:22;;;2641:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11839:6:::1;11834:221;11855:5;:12;11851:1;:16;11834:221;;;11913:4;11893:25;;:5;11899:1;11893:8;;;;;;;;;;;;;;;;;;;;;;:25;;;;:54;;;;;11934:13;;;;;;;;;;;11922:25;;:5;11928:1;11922:8;;;;;;;;;;;;;;;;;;;;;;:25;;;;11893:54;:94;;;;;11971:15;;;;;;;;;;;11951:36;;:5;11957:1;11951:8;;;;;;;;;;;;;;;;;;;;;;:36;;;;11893:94;11889:155;;;12024:4;12007;:14;12012:5;12018:1;12012:8;;;;;;;;;;;;;;;;;;;;;;12007:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11889:155;11869:3;;;;;:::i;:::-;;;;11834:221;;;;11766:296:::0;:::o;6729:313::-;6827:4;6844:36;6854:6;6862:9;6873:6;6844:9;:36::i;:::-;6891:121;6900:6;6908:12;:10;:12::i;:::-;6922:89;6960:6;6922:89;;;;;;;;;;;;;;;;;:11;:19;6934:6;6922:19;;;;;;;;;;;;;;;:33;6942:12;:10;:12::i;:::-;6922:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6891:8;:121::i;:::-;7030:4;7023:11;;6729:313;;;;;:::o;12074:88::-;2659:12;:10;:12::i;:::-;2649:22;;:6;;;;;;;;;;:22;;;2641:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12149:5:::1;12134:4;:12;12139:6;12134:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;12074:88:::0;:::o;5894:83::-;5935:5;4829:1;5953:16;;5894:83;:::o;10616:155::-;10694:14;;;;;;;;;;;10678:30;;:12;:10;:12::i;:::-;:30;;;10670:39;;;;;;10734:2;10728:4;:8;;10720:17;;;;;;10759:4;10748:8;:15;;;;10616:155;:::o;7050:103::-;2659:12;:10;:12::i;:::-;2649:22;;:6;;;;;;;;;;:22;;;2641:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7140:5:::1;7122:15;;:23;;;;;;;;;;;;;;;;;;7050:103:::0;:::o;10270:163::-;2659:12;:10;:12::i;:::-;2649:22;;:6;;;;;;;;;;:22;;;2641:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10365:1:::1;10354:10;:12;10346:21;;;::::0;::::1;;10393:32;10421:3;10393:23;10405:10;4156:20;10393:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10378:12;:47;;;;10270:163:::0;:::o;13450:193::-;13516:14;;;;;;;;;;;13500:30;;:12;:10;:12::i;:::-;:30;;;13492:39;;;;;;13542:26;13571:21;13542:50;;13603:32;13616:18;13603:12;:32::i;:::-;13450:193;:::o;6088:138::-;6154:7;6181:37;6201:7;:16;6209:7;6201:16;;;;;;;;;;;;;;;;6181:19;:37::i;:::-;6174:44;;6088:138;;;:::o;2736:148::-;2659:12;:10;:12::i;:::-;2649:22;;:6;;;;;;;;;;:22;;;2641:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2843:1:::1;2806:40;;2827:6;::::0;::::1;;;;;;;;2806:40;;;;;;;;;;;;2874:1;2857:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2736:148::o:0;9754:118::-;2659:12;:10;:12::i;:::-;2649:22;;:6;;;;;;;;;;:22;;;2641:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4156:20:::1;9807:12;:22;;;;4156:20;9840:14;:24;;;;9754:118::o:0;2522:79::-;2560:7;2587:6;;;;;;;;;;;2580:13;;2522:79;:::o;5799:87::-;5838:13;5871:7;;;;;;;;;;;;;;;;;5864:14;;5799:87;:::o;6234:167::-;6312:4;6329:42;6339:12;:10;:12::i;:::-;6353:9;6364:6;6329:9;:42::i;:::-;6389:4;6382:11;;6234:167;;;;:::o;10441:::-;2659:12;:10;:12::i;:::-;2649:22;;:6;;;;;;;;;;:22;;;2641:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10538:1:::1;10527:10;:12;10519:21;;;::::0;::::1;;10568:32;10596:3;10568:23;10580:10;4156:20;10568:11;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;10551:14;:49;;;;10441:167:::0;:::o;13244:194::-;13310:14;;;;;;;;;;;13294:30;;:12;:10;:12::i;:::-;:30;;;13286:39;;;;;;13336:23;13362:24;13380:4;13362:9;:24::i;:::-;13336:50;;13397:33;13414:15;13397:16;:33::i;:::-;13244:194;:::o;10893:861::-;2659:12;:10;:12::i;:::-;2649:22;;:6;;;;;;;;;;:22;;;2641:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10957:11:::1;::::0;::::1;;;;;;;;10956:12;10948:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11006:35;11063:42;11006:100;;11135:16;11117:15;;:34;;;;;;;;;;;;;;;;;;11162:58;11179:4;11194:15;;;;;;;;;;;4156:20;11162:8;:58::i;:::-;11265:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11247:56;;;11312:4;11319:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11247:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11231:13;;:112;;;;;;;;;;;;;;;;;;11354:15;;;;;;;;;;;:31;;;11393:21;11424:4;11430:24;11448:4;11430:9;:24::i;:::-;11455:1;11457::::0;11459:7:::1;:5;:7::i;:::-;11467:15;11354:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11508:4;11494:11;;:18;;;;;;;;;;;;;;;;;;11541:4;11523:15;;:22;;;;;;;;;;;;;;;;;;11571:18;11556:12;:33;;;;11617:18;11600:14;:35;;;;11660:4;11646:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11682:13;;;;;;;;;;;11675:29;;;11713:15;;;;;;;;;;;11731:14;11675:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2719:1;10893:861::o:0;6409:143::-;6490:7;6517:11;:18;6529:5;6517:18;;;;;;;;;;;;;;;:27;6536:7;6517:27;;;;;;;;;;;;;;;;6510:34;;6409:143;;;;:::o;213:98::-;266:7;293:10;286:17;;213:98;:::o;7423:335::-;7533:1;7516:19;;:5;:19;;;;7508:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7614:1;7595:21;;:7;:21;;;;7587:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7696:6;7666:11;:18;7678:5;7666:18;;;;;;;;;;;;;;;:27;7685:7;7666:27;;;;;;;;;;;;;;;:36;;;;7734:7;7718:32;;7727:5;7718:32;;;7743:6;7718:32;;;;;;:::i;:::-;;;;;;;;7423:335;;;:::o;7766:1400::-;7863:1;7854:6;:10;7846:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7930:4;7921:6;;:13;;;;;;;;;;;;;;;;;;7959:7;:5;:7::i;:::-;7951:15;;:4;:15;;;;:32;;;;;7976:7;:5;:7::i;:::-;7970:13;;:2;:13;;;;7951:32;7947:1169;;;8014:13;;;;;;;;;;;8006:21;;:4;:21;;;:55;;;;;8045:15;;;;;;;;;;;8031:30;;:2;:30;;;;8006:55;:83;;;;;8067:18;:22;8086:2;8067:22;;;;;;;;;;;;;;;;;;;;;;;;;8065:24;8006:83;:102;;;;;8093:15;;;;;;;;;;;8006:102;8002:296;;;8171:12;;8161:6;:22;;8153:31;;;;;;8237:14;;8227:6;8211:13;8221:2;8211:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8203:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8002:296;8334:15;;;;;;;;;;;8318:32;;:4;:32;;;;:62;;;;;8356:18;:24;8375:4;8356:24;;;;;;;;;;;;;;;;;;;;;;;;;8354:26;8318:62;:85;;;;;8390:13;;;;;;;;;;;8384:19;;:2;:19;;;8318:85;8314:191;;;8432:4;:10;8437:4;8432:10;;;;;;;;;;;;;;;;;;;;;;;;;8431:11;:24;;;;;8447:4;:8;8452:2;8447:8;;;;;;;;;;;;;;;;;;;;;;;;;8446:9;8431:24;8423:33;;;;;;8484:5;8475:6;;:14;;;;;;;;;;;;;;;;;;8314:191;8521:28;8552:24;8570:4;8552:9;:24::i;:::-;8521:55;;8617:47;8660:3;8617:38;8646:8;;8617:24;8627:13;;;;;;;;;;;8617:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;8594:20;:70;8591:180;;;8708:47;8751:3;8708:38;8737:8;;8708:24;8718:13;;;;;;;;;;;8708:9;:24::i;:::-;:28;;:38;;;;:::i;:::-;:42;;:47;;;;:::i;:::-;8685:70;;8591:180;8792:6;;;;;;;;;;;8791:7;:32;;;;;8810:13;;;;;;;;;;;8802:21;;:4;:21;;;;8791:32;:47;;;;;8827:11;;;;;;;;;;;8791:47;8787:318;;;8859:38;8876:20;8859:16;:38::i;:::-;8916:26;8945:21;8916:50;;9009:1;8988:18;:22;8985:105;;;9035:35;9048:21;9035:12;:35::i;:::-;8985:105;8787:318;;7947:1169;;9128:30;9143:4;9148:2;9151:6;9128:14;:30::i;:::-;7766:1400;;;:::o;1350:190::-;1436:7;1469:1;1464;:6;;1472:12;1456:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1496:9;1512:1;1508;:5;;;;:::i;:::-;1496:17;;1531:1;1524:8;;;1350:190;;;;;:::o;1548:246::-;1606:7;1635:1;1630;:6;1626:47;;;1660:1;1653:8;;;;1626:47;1683:9;1699:1;1695;:5;;;;:::i;:::-;1683:17;;1728:1;1723;1719;:5;;;;:::i;:::-;:10;1711:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1785:1;1778:8;;;1548:246;;;;;:::o;1802:132::-;1860:7;1887:39;1891:1;1894;1887:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1880:46;;1802:132;;;;:::o;10787:96::-;10844:14;;;;;;;;;;;:23;;:31;10868:6;10844:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10787:96;:::o;7161:254::-;7228:7;7267;;7256;:18;;7248:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7332:19;7355:10;:8;:10::i;:::-;7332:33;;7383:24;7395:11;7383:7;:11;;:24;;;;:::i;:::-;7376:31;;;7161:254;;;:::o;9176:483::-;5292:4;5283:6;;:13;;;;;;;;;;;;;;;;;;9254:21:::1;9292:1;9278:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9254:40;;9323:4;9305;9310:1;9305:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9349:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9339:4;9344:1;9339:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9382:62;9399:4;9414:15;;;;;;;;;;;9432:11;9382:8;:62::i;:::-;9455:15;;;;;;;;;;;:66;;;9536:11;9562:1;9578:4;9605;9625:15;9455:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5307:1;5328:5:::0;5319:6;;:14;;;;;;;;;;;;;;;;;;9176:483;:::o;12178:146::-;12272:44;12290:6;12298:9;12309:6;12272:17;:44::i;:::-;12178:146;;;:::o;1942:189::-;2028:7;2060:1;2056;:5;2063:12;2048:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2087:9;2103:1;2099;:5;;;;:::i;:::-;2087:17;;2122:1;2115:8;;;1942:189;;;;;:::o;14983:163::-;15024:7;15045:15;15062;15081:19;:17;:19::i;:::-;15044:56;;;;15118:20;15130:7;15118;:11;;:20;;;;:::i;:::-;15111:27;;;;14983:163;:::o;12332:488::-;12431:15;12448:23;12473:12;12487:23;12512:12;12526:13;12543:19;12554:7;12543:10;:19::i;:::-;12430:132;;;;;;;;;;;;12591:28;12611:7;12591;:15;12599:6;12591:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;12573:7;:15;12581:6;12573:15;;;;;;;;;;;;;;;:46;;;;12651:39;12674:15;12651:7;:18;12659:9;12651:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;12630:7;:18;12638:9;12630:18;;;;;;;;;;;;;;;:60;;;;12702:16;12712:5;12702:9;:16::i;:::-;12729:23;12741:4;12747;12729:11;:23::i;:::-;12785:9;12768:44;;12777:6;12768:44;;;12796:15;12768:44;;;;;;:::i;:::-;;;;;;;;12332:488;;;;;;;;;:::o;15154:262::-;15204:7;15213;15233:15;15251:7;;15233:25;;15269:15;4156:20;15269:25;;15325:20;4156;15325:7;;:11;;:20;;;;:::i;:::-;15315:7;:30;15311:61;;;15355:7;;4156:20;15347:25;;;;;;;;15311:61;15391:7;15400;15383:25;;;;;;15154:262;;;:::o;13651:551::-;13710:7;13719;13728;13737;13746;13755;13776:23;13801:12;13815:13;13832:10;:8;:10::i;:::-;:122;;13900:54;13912:7;13921:6;:15;;;13938:6;:15;;;13900:11;:54::i;:::-;13832:122;;;13845:52;13857:7;13866:6;:14;;;13882:6;:14;;;13845:11;:52::i;:::-;13832:122;13775:179;;;;;;13965:19;13988:10;:8;:10::i;:::-;13965:33;;14010:15;14027:23;14052:12;14068:46;14080:7;14089:4;14095:5;14102:11;14068;:46::i;:::-;14009:105;;;;;;14133:7;14142:15;14159:4;14165:15;14182:4;14188:5;14125:69;;;;;;;;;;;;;;;;;;;13651:551;;;;;;;:::o;1206:136::-;1264:7;1291:43;1295:1;1298;1291:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1284:50;;1206:136;;;;:::o;1019:179::-;1077:7;1097:9;1113:1;1109;:5;;;;:::i;:::-;1097:17;;1138:1;1133;:6;;1125:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1189:1;1182:8;;;1019:179;;;;:::o;12828:212::-;12881:19;12904:10;:8;:10::i;:::-;12881:33;;12925:13;12941:22;12951:11;12941:5;:9;;:22;;;;:::i;:::-;12925:38;;12999:33;13026:5;12999:7;:22;13015:4;12999:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12974:7;:22;12990:4;12974:22;;;;;;;;;;;;;;;:58;;;;12828:212;;;:::o;13048:147::-;13126:17;13138:4;13126:7;;:11;;:17;;;;:::i;:::-;13116:7;:27;;;;13167:20;13182:4;13167:10;;:14;;:20;;;;:::i;:::-;13154:10;:33;;;;13048:147;;:::o;9667:79::-;9709:4;9732:6;;;;;;;;;;;9725:13;;9667:79;:::o;14210:351::-;14303:7;14312;14321;14341:12;14356:28;14380:3;14356:19;14368:6;14356:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;14341:43;;14395:13;14411:29;14436:3;14411:20;14423:7;14411;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;14395:45;;14451:23;14477:28;14499:5;14477:17;14489:4;14477:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14451:54;;14524:15;14541:4;14547:5;14516:37;;;;;;;;;14210:351;;;;;;;:::o;14569:409::-;14679:7;14688;14697;14717:15;14735:24;14747:11;14735:7;:11;;:24;;;;:::i;:::-;14717:42;;14770:12;14785:21;14794:11;14785:4;:8;;:21;;;;:::i;:::-;14770:36;;14817:13;14833:22;14843:11;14833:5;:9;;:22;;;;:::i;:::-;14817:38;;14866:23;14892:28;14914:5;14892:17;14904:4;14892:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;14866:54;;14939:7;14948:15;14965:4;14931:39;;;;;;;;;;14569:409;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:407::-;3478:6;3486;3535:2;3523:9;3514:7;3510:23;3506:32;3503:2;;;3551:1;3548;3541:12;3503:2;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3493:324;;;;;:::o;3823:405::-;3907:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:2;;;3972:1;3969;3962:12;3924:2;4043:1;4032:9;4028:17;4015:31;4073:18;4065:6;4062:30;4059:2;;;4105:1;4102;4095:12;4059:2;4133:78;4203:7;4194:6;4183:9;4179:22;4133:78;:::i;:::-;4123:88;;3986:235;3914:314;;;;:::o;4234:256::-;4290:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:2;;;4355:1;4352;4345:12;4307:2;4398:1;4423:50;4465:7;4456:6;4445:9;4441:22;4423:50;:::i;:::-;4413:60;;4369:114;4297:193;;;;:::o;4496:278::-;4563:6;4612:2;4600:9;4591:7;4587:23;4583:32;4580:2;;;4628:1;4625;4618:12;4580:2;4671:1;4696:61;4749:7;4740:6;4729:9;4725:22;4696:61;:::i;:::-;4686:71;;4642:125;4570:204;;;;:::o;4780:262::-;4839:6;4888:2;4876:9;4867:7;4863:23;4859:32;4856:2;;;4904:1;4901;4894:12;4856:2;4947:1;4972:53;5017:7;5008:6;4997:9;4993:22;4972:53;:::i;:::-;4962:63;;4918:117;4846:196;;;;:::o;5048:596::-;5136:6;5144;5152;5201:2;5189:9;5180:7;5176:23;5172:32;5169:2;;;5217:1;5214;5207:12;5169:2;5260:1;5285:64;5341:7;5332:6;5321:9;5317:22;5285:64;:::i;:::-;5275:74;;5231:128;5398:2;5424:64;5480:7;5471:6;5460:9;5456:22;5424:64;:::i;:::-;5414:74;;5369:129;5537:2;5563:64;5619:7;5610:6;5599:9;5595:22;5563:64;:::i;:::-;5553:74;;5508:129;5159:485;;;;;:::o;5650:698::-;5736:6;5744;5752;5760;5809:3;5797:9;5788:7;5784:23;5780:33;5777:2;;;5826:1;5823;5816:12;5777:2;5869:1;5894:53;5939:7;5930:6;5919:9;5915:22;5894:53;:::i;:::-;5884:63;;5840:117;5996:2;6022:53;6067:7;6058:6;6047:9;6043:22;6022:53;:::i;:::-;6012:63;;5967:118;6124:2;6150:53;6195:7;6186:6;6175:9;6171:22;6150:53;:::i;:::-;6140:63;;6095:118;6252:2;6278:53;6323:7;6314:6;6303:9;6299:22;6278:53;:::i;:::-;6268:63;;6223:118;5767:581;;;;;;;:::o;6354:179::-;6423:10;6444:46;6486:3;6478:6;6444:46;:::i;:::-;6522:4;6517:3;6513:14;6499:28;;6434:99;;;;:::o;6539:108::-;6616:24;6634:5;6616:24;:::i;:::-;6611:3;6604:37;6594:53;;:::o;6653:118::-;6740:24;6758:5;6740:24;:::i;:::-;6735:3;6728:37;6718:53;;:::o;6807:732::-;6926:3;6955:54;7003:5;6955:54;:::i;:::-;7025:86;7104:6;7099:3;7025:86;:::i;:::-;7018:93;;7135:56;7185:5;7135:56;:::i;:::-;7214:7;7245:1;7230:284;7255:6;7252:1;7249:13;7230:284;;;7331:6;7325:13;7358:63;7417:3;7402:13;7358:63;:::i;:::-;7351:70;;7444:60;7497:6;7444:60;:::i;:::-;7434:70;;7290:224;7277:1;7274;7270:9;7265:14;;7230:284;;;7234:14;7530:3;7523:10;;6931:608;;;;;;;:::o;7545:109::-;7626:21;7641:5;7626:21;:::i;:::-;7621:3;7614:34;7604:50;;:::o;7660:147::-;7755:45;7794:5;7755:45;:::i;:::-;7750:3;7743:58;7733:74;;:::o;7813:364::-;7901:3;7929:39;7962:5;7929:39;:::i;:::-;7984:71;8048:6;8043:3;7984:71;:::i;:::-;7977:78;;8064:52;8109:6;8104:3;8097:4;8090:5;8086:16;8064:52;:::i;:::-;8141:29;8163:6;8141:29;:::i;:::-;8136:3;8132:39;8125:46;;7905:272;;;;;:::o;8183:366::-;8325:3;8346:67;8410:2;8405:3;8346:67;:::i;:::-;8339:74;;8422:93;8511:3;8422:93;:::i;:::-;8540:2;8535:3;8531:12;8524:19;;8329:220;;;:::o;8555:366::-;8697:3;8718:67;8782:2;8777:3;8718:67;:::i;:::-;8711:74;;8794:93;8883:3;8794:93;:::i;:::-;8912:2;8907:3;8903:12;8896:19;;8701:220;;;:::o;8927:366::-;9069:3;9090:67;9154:2;9149:3;9090:67;:::i;:::-;9083:74;;9166:93;9255:3;9166:93;:::i;:::-;9284:2;9279:3;9275:12;9268:19;;9073:220;;;:::o;9299:366::-;9441:3;9462:67;9526:2;9521:3;9462:67;:::i;:::-;9455:74;;9538:93;9627:3;9538:93;:::i;:::-;9656:2;9651:3;9647:12;9640:19;;9445:220;;;:::o;9671:366::-;9813:3;9834:67;9898:2;9893:3;9834:67;:::i;:::-;9827:74;;9910:93;9999:3;9910:93;:::i;:::-;10028:2;10023:3;10019:12;10012:19;;9817:220;;;:::o;10043:366::-;10185:3;10206:67;10270:2;10265:3;10206:67;:::i;:::-;10199:74;;10282:93;10371:3;10282:93;:::i;:::-;10400:2;10395:3;10391:12;10384:19;;10189:220;;;:::o;10415:366::-;10557:3;10578:67;10642:2;10637:3;10578:67;:::i;:::-;10571:74;;10654:93;10743:3;10654:93;:::i;:::-;10772:2;10767:3;10763:12;10756:19;;10561:220;;;:::o;10787:366::-;10929:3;10950:67;11014:2;11009:3;10950:67;:::i;:::-;10943:74;;11026:93;11115:3;11026:93;:::i;:::-;11144:2;11139:3;11135:12;11128:19;;10933:220;;;:::o;11159:366::-;11301:3;11322:67;11386:2;11381:3;11322:67;:::i;:::-;11315:74;;11398:93;11487:3;11398:93;:::i;:::-;11516:2;11511:3;11507:12;11500:19;;11305:220;;;:::o;11531:118::-;11618:24;11636:5;11618:24;:::i;:::-;11613:3;11606:37;11596:53;;:::o;11655:112::-;11738:22;11754:5;11738:22;:::i;:::-;11733:3;11726:35;11716:51;;:::o;11773:222::-;11866:4;11904:2;11893:9;11889:18;11881:26;;11917:71;11985:1;11974:9;11970:17;11961:6;11917:71;:::i;:::-;11871:124;;;;:::o;12001:332::-;12122:4;12160:2;12149:9;12145:18;12137:26;;12173:71;12241:1;12230:9;12226:17;12217:6;12173:71;:::i;:::-;12254:72;12322:2;12311:9;12307:18;12298:6;12254:72;:::i;:::-;12127:206;;;;;:::o;12339:332::-;12460:4;12498:2;12487:9;12483:18;12475:26;;12511:71;12579:1;12568:9;12564:17;12555:6;12511:71;:::i;:::-;12592:72;12660:2;12649:9;12645:18;12636:6;12592:72;:::i;:::-;12465:206;;;;;:::o;12677:807::-;12926:4;12964:3;12953:9;12949:19;12941:27;;12978:71;13046:1;13035:9;13031:17;13022:6;12978:71;:::i;:::-;13059:72;13127:2;13116:9;13112:18;13103:6;13059:72;:::i;:::-;13141:80;13217:2;13206:9;13202:18;13193:6;13141:80;:::i;:::-;13231;13307:2;13296:9;13292:18;13283:6;13231:80;:::i;:::-;13321:73;13389:3;13378:9;13374:19;13365:6;13321:73;:::i;:::-;13404;13472:3;13461:9;13457:19;13448:6;13404:73;:::i;:::-;12931:553;;;;;;;;;:::o;13490:210::-;13577:4;13615:2;13604:9;13600:18;13592:26;;13628:65;13690:1;13679:9;13675:17;13666:6;13628:65;:::i;:::-;13582:118;;;;:::o;13706:313::-;13819:4;13857:2;13846:9;13842:18;13834:26;;13906:9;13900:4;13896:20;13892:1;13881:9;13877:17;13870:47;13934:78;14007:4;13998:6;13934:78;:::i;:::-;13926:86;;13824:195;;;;:::o;14025:419::-;14191:4;14229:2;14218:9;14214:18;14206:26;;14278:9;14272:4;14268:20;14264:1;14253:9;14249:17;14242:47;14306:131;14432:4;14306:131;:::i;:::-;14298:139;;14196:248;;;:::o;14450:419::-;14616:4;14654:2;14643:9;14639:18;14631:26;;14703:9;14697:4;14693:20;14689:1;14678:9;14674:17;14667:47;14731:131;14857:4;14731:131;:::i;:::-;14723:139;;14621:248;;;:::o;14875:419::-;15041:4;15079:2;15068:9;15064:18;15056:26;;15128:9;15122:4;15118:20;15114:1;15103:9;15099:17;15092:47;15156:131;15282:4;15156:131;:::i;:::-;15148:139;;15046:248;;;:::o;15300:419::-;15466:4;15504:2;15493:9;15489:18;15481:26;;15553:9;15547:4;15543:20;15539:1;15528:9;15524:17;15517:47;15581:131;15707:4;15581:131;:::i;:::-;15573:139;;15471:248;;;:::o;15725:419::-;15891:4;15929:2;15918:9;15914:18;15906:26;;15978:9;15972:4;15968:20;15964:1;15953:9;15949:17;15942:47;16006:131;16132:4;16006:131;:::i;:::-;15998:139;;15896:248;;;:::o;16150:419::-;16316:4;16354:2;16343:9;16339:18;16331:26;;16403:9;16397:4;16393:20;16389:1;16378:9;16374:17;16367:47;16431:131;16557:4;16431:131;:::i;:::-;16423:139;;16321:248;;;:::o;16575:419::-;16741:4;16779:2;16768:9;16764:18;16756:26;;16828:9;16822:4;16818:20;16814:1;16803:9;16799:17;16792:47;16856:131;16982:4;16856:131;:::i;:::-;16848:139;;16746:248;;;:::o;17000:419::-;17166:4;17204:2;17193:9;17189:18;17181:26;;17253:9;17247:4;17243:20;17239:1;17228:9;17224:17;17217:47;17281:131;17407:4;17281:131;:::i;:::-;17273:139;;17171:248;;;:::o;17425:419::-;17591:4;17629:2;17618:9;17614:18;17606:26;;17678:9;17672:4;17668:20;17664:1;17653:9;17649:17;17642:47;17706:131;17832:4;17706:131;:::i;:::-;17698:139;;17596:248;;;:::o;17850:222::-;17943:4;17981:2;17970:9;17966:18;17958:26;;17994:71;18062:1;18051:9;18047:17;18038:6;17994:71;:::i;:::-;17948:124;;;;:::o;18078:831::-;18341:4;18379:3;18368:9;18364:19;18356:27;;18393:71;18461:1;18450:9;18446:17;18437:6;18393:71;:::i;:::-;18474:80;18550:2;18539:9;18535:18;18526:6;18474:80;:::i;:::-;18601:9;18595:4;18591:20;18586:2;18575:9;18571:18;18564:48;18629:108;18732:4;18723:6;18629:108;:::i;:::-;18621:116;;18747:72;18815:2;18804:9;18800:18;18791:6;18747:72;:::i;:::-;18829:73;18897:3;18886:9;18882:19;18873:6;18829:73;:::i;:::-;18346:563;;;;;;;;:::o;18915:214::-;19004:4;19042:2;19031:9;19027:18;19019:26;;19055:67;19119:1;19108:9;19104:17;19095:6;19055:67;:::i;:::-;19009:120;;;;:::o;19135:129::-;19169:6;19196:20;;:::i;:::-;19186:30;;19225:33;19253:4;19245:6;19225:33;:::i;:::-;19176:88;;;:::o;19270:75::-;19303:6;19336:2;19330:9;19320:19;;19310:35;:::o;19351:311::-;19428:4;19518:18;19510:6;19507:30;19504:2;;;19540:18;;:::i;:::-;19504:2;19590:4;19582:6;19578:17;19570:25;;19650:4;19644;19640:15;19632:23;;19433:229;;;:::o;19668:132::-;19735:4;19758:3;19750:11;;19788:4;19783:3;19779:14;19771:22;;19740:60;;;:::o;19806:114::-;19873:6;19907:5;19901:12;19891:22;;19880:40;;;:::o;19926:99::-;19978:6;20012:5;20006:12;19996:22;;19985:40;;;:::o;20031:113::-;20101:4;20133;20128:3;20124:14;20116:22;;20106:38;;;:::o;20150:184::-;20249:11;20283:6;20278:3;20271:19;20323:4;20318:3;20314:14;20299:29;;20261:73;;;;:::o;20340:169::-;20424:11;20458:6;20453:3;20446:19;20498:4;20493:3;20489:14;20474:29;;20436:73;;;;:::o;20515:305::-;20555:3;20574:20;20592:1;20574:20;:::i;:::-;20569:25;;20608:20;20626:1;20608:20;:::i;:::-;20603:25;;20762:1;20694:66;20690:74;20687:1;20684:81;20681:2;;;20768:18;;:::i;:::-;20681:2;20812:1;20809;20805:9;20798:16;;20559:261;;;;:::o;20826:185::-;20866:1;20883:20;20901:1;20883:20;:::i;:::-;20878:25;;20917:20;20935:1;20917:20;:::i;:::-;20912:25;;20956:1;20946:2;;20961:18;;:::i;:::-;20946:2;21003:1;21000;20996:9;20991:14;;20868:143;;;;:::o;21017:348::-;21057:7;21080:20;21098:1;21080:20;:::i;:::-;21075:25;;21114:20;21132:1;21114:20;:::i;:::-;21109:25;;21302:1;21234:66;21230:74;21227:1;21224:81;21219:1;21212:9;21205:17;21201:105;21198:2;;;21309:18;;:::i;:::-;21198:2;21357:1;21354;21350:9;21339:20;;21065:300;;;;:::o;21371:191::-;21411:4;21431:20;21449:1;21431:20;:::i;:::-;21426:25;;21465:20;21483:1;21465:20;:::i;:::-;21460:25;;21504:1;21501;21498:8;21495:2;;;21509:18;;:::i;:::-;21495:2;21554:1;21551;21547:9;21539:17;;21416:146;;;;:::o;21568:96::-;21605:7;21634:24;21652:5;21634:24;:::i;:::-;21623:35;;21613:51;;;:::o;21670:90::-;21704:7;21747:5;21740:13;21733:21;21722:32;;21712:48;;;:::o;21766:126::-;21803:7;21843:42;21836:5;21832:54;21821:65;;21811:81;;;:::o;21898:77::-;21935:7;21964:5;21953:16;;21943:32;;;:::o;21981:86::-;22016:7;22056:4;22049:5;22045:16;22034:27;;22024:43;;;:::o;22073:121::-;22131:9;22164:24;22182:5;22164:24;:::i;:::-;22151:37;;22141:53;;;:::o;22200:307::-;22268:1;22278:113;22292:6;22289:1;22286:13;22278:113;;;22377:1;22372:3;22368:11;22362:18;22358:1;22353:3;22349:11;22342:39;22314:2;22311:1;22307:10;22302:15;;22278:113;;;22409:6;22406:1;22403:13;22400:2;;;22489:1;22480:6;22475:3;22471:16;22464:27;22400:2;22249:258;;;;:::o;22513:281::-;22596:27;22618:4;22596:27;:::i;:::-;22588:6;22584:40;22726:6;22714:10;22711:22;22690:18;22678:10;22675:34;22672:62;22669:2;;;22737:18;;:::i;:::-;22669:2;22777:10;22773:2;22766:22;22556:238;;;:::o;22800:233::-;22839:3;22862:24;22880:5;22862:24;:::i;:::-;22853:33;;22908:66;22901:5;22898:77;22895:2;;;22978:18;;:::i;:::-;22895:2;23025:1;23018:5;23014:13;23007:20;;22843:190;;;:::o;23039:180::-;23087:77;23084:1;23077:88;23184:4;23181:1;23174:15;23208:4;23205:1;23198:15;23225:180;23273:77;23270:1;23263:88;23370:4;23367:1;23360:15;23394:4;23391:1;23384:15;23411:180;23459:77;23456:1;23449:88;23556:4;23553:1;23546:15;23580:4;23577:1;23570:15;23597:102;23638:6;23689:2;23685:7;23680:2;23673:5;23669:14;23665:28;23655:38;;23645:54;;;:::o;23705:229::-;23845:34;23841:1;23833:6;23829:14;23822:58;23914:12;23909:2;23901:6;23897:15;23890:37;23811:123;:::o;23940:221::-;24080:34;24076:1;24068:6;24064:14;24057:58;24149:4;24144:2;24136:6;24132:15;24125:29;24046:115;:::o;24167:177::-;24307:29;24303:1;24295:6;24291:14;24284:53;24273:71;:::o;24350:220::-;24490:34;24486:1;24478:6;24474:14;24467:58;24559:3;24554:2;24546:6;24542:15;24535:28;24456:114;:::o;24576:182::-;24716:34;24712:1;24704:6;24700:14;24693:58;24682:76;:::o;24764:228::-;24904:34;24900:1;24892:6;24888:14;24881:58;24973:11;24968:2;24960:6;24956:15;24949:36;24870:122;:::o;24998:176::-;25138:28;25134:1;25126:6;25122:14;25115:52;25104:70;:::o;25180:223::-;25320:34;25316:1;25308:6;25304:14;25297:58;25389:6;25384:2;25376:6;25372:15;25365:31;25286:117;:::o;25409:173::-;25549:25;25545:1;25537:6;25533:14;25526:49;25515:67;:::o;25588:122::-;25661:24;25679:5;25661:24;:::i;:::-;25654:5;25651:35;25641:2;;25700:1;25697;25690:12;25641:2;25631:79;:::o;25716:116::-;25786:21;25801:5;25786:21;:::i;:::-;25779:5;25776:32;25766:2;;25822:1;25819;25812:12;25766:2;25756:76;:::o;25838:122::-;25911:24;25929:5;25911:24;:::i;:::-;25904:5;25901:35;25891:2;;25950:1;25947;25940:12;25891:2;25881:79;:::o
Swarm Source
ipfs://e7277aafc3b9c98de755c3fb07ff094a81e2b25793bfab14e4a5192e2a23eb07
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 26 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.