Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000 FOMO
Holders
390
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 FOMOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Source Code Verified (Exact Match)
Contract Name:
FOMO
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-09-01 */ /** Website: https://home.fomo.bond TG: https://t.me/fomobonderc Twitter: https://x.com/fomobond */ // SPDX-License-Identifier: Unlicensed pragma solidity 0.8.26; interface ERC20 { function totalSupply() external view returns (uint256); function decimals() external view returns (uint8); function symbol() external view returns (string memory); function name() external view returns (string memory); function getOwner() external view returns (address); 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); } abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return payable(msg.sender); } } contract Ownable is Context { address public _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } function owner() public view returns (address) { return _owner; } modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() external virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } interface IDEXFactory { function createPair(address tokenA, address tokenB) external returns (address pair); } interface IDEXRouter { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } interface InterfaceLP { function sync() external; } contract FOMO is Ownable, ERC20 { address immutable WETH; address constant DEAD = 0x000000000000000000000000000000000000dEaD; string constant _name = "FOMO.bond"; string constant _symbol = "FOMO"; uint8 constant _decimals = 9; uint256 constant _totalSupply = 100000000 * 10**_decimals; uint256 public _maxTxAmount = _totalSupply / 100; uint256 public _maxWalletAmount = _totalSupply / 100; mapping (address => uint256) _balances; mapping (address => mapping (address => uint256)) _allowances; mapping (address => bool) isFeeExempt; mapping (address => bool) isTxLimitExempt; uint256 private buyMarketingFee = 15; uint256 private buyTeamFee = 10; uint256 public buyTotalFee = buyTeamFee + buyMarketingFee; uint256 private sellMarketingFee = 15; uint256 private sellTeamFee = 10; uint256 public sellTotalFee = sellTeamFee + sellMarketingFee; uint256 constant transferFee = 0; uint256 private lastSwap; address private marketingFeeReceiver; address private teamFeeReceiver; IDEXRouter public router; InterfaceLP private pairContract; address immutable public pair; bool public TradingOpen = false; bool public swapEnabled = true; uint256 public swapThreshold = _totalSupply / 100; bool inSwap; modifier swapping() { inSwap = true; _; inSwap = false; } event maxWalletUpdated(uint256 indexed maxWalletAmount); event maxTxUpdated(uint256 indexed maxTxAmount); event maxLimitsRemoved(uint256 indexed maxWalletToken, uint256 indexed maxTxAmount); event exemptFees(address indexed holder, bool indexed exempt); event exemptTxLimit(address indexed holder, bool indexed exempt); event buyFeesUpdated(uint256 indexed buyTeamFee, uint256 indexed buyMarketingFee); event sellFeesUpdated(uint256 indexed sellTeamFee, uint256 indexed sellMarketingFee); event feesWalletsUpdated(address indexed marketingFeeReceiver, address indexed teamFeeReceiver); event swapbackSettingsUpdated(bool indexed enabled, uint256 indexed amount); event tradingEnabled(bool indexed enabled, uint256 indexed startTime); constructor () { router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); WETH = router.WETH(); pair = IDEXFactory(router.factory()).createPair(WETH, address(this)); pairContract = InterfaceLP(pair); _allowances[address(this)][address(router)] = type(uint256).max; marketingFeeReceiver = 0xbcC8374a4B993Fee8D185D6036A290318FddE3B8; teamFeeReceiver = 0xA614adE553d182d4aDB0548ffD55DFbA3939052d; isFeeExempt[msg.sender] = true; isTxLimitExempt[msg.sender] = true; isTxLimitExempt[pair] = true; isTxLimitExempt[marketingFeeReceiver] = true; isTxLimitExempt[address(this)] = true; _balances[msg.sender] = _totalSupply; emit Transfer(address(0), msg.sender, _totalSupply); } receive() external payable { } function totalSupply() external pure override returns (uint256) { return _totalSupply; } function decimals() external pure override returns (uint8) { return _decimals; } function symbol() external pure override returns (string memory) { return _symbol; } function name() external pure override returns (string memory) { return _name; } function getOwner() external view override returns (address) {return owner();} function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { require(spender != address(0), "Spender is the zero address"); _allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } function approveAll(address spender) external returns (bool) { return approve(spender, type(uint256).max); } function transfer(address recipient, uint256 amount) external override returns (bool) { require(recipient != address(0), "Recipient is the zero address"); return _transferFrom(msg.sender, recipient, amount); } function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { require(sender != address(0), "Sender is the zero address"); require(recipient != address(0), "Recipient is the zero address"); uint256 currentAllowance = _allowances[sender][_msgSender()]; if(currentAllowance != type(uint256).max){ require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _allowances[sender][_msgSender()] = currentAllowance - amount; } } return _transferFrom(sender, recipient, amount); } function setMaxWallet(uint256 maxWalletPercent) external onlyOwner { require(maxWalletPercent >= 5); _maxWalletAmount = (_totalSupply * maxWalletPercent ) / 1000; emit maxWalletUpdated(_maxWalletAmount); } function setMaxTx(uint256 maxTxPercent) external onlyOwner { require(maxTxPercent >= 5); _maxTxAmount = (_totalSupply * maxTxPercent ) / 1000; emit maxTxUpdated(_maxTxAmount); } function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) { if(inSwap){ return _basicTransfer(sender, recipient, amount); } if(sender != owner()){ require(TradingOpen,"Trading not open yet"); } checkTxLimit(sender, amount); uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient); if (sender != owner() && (recipient != address(this) && recipient != address(DEAD) && recipient != pair && recipient != marketingFeeReceiver && !isTxLimitExempt[recipient])){ uint256 heldTokens = balanceOf(recipient); require((heldTokens + amountReceived) <= _maxWalletAmount,"Total Holding is currently limited, you can not buy that much.");} if( lastSwap != block.number && _balances[address(this)] >= swapThreshold && swapEnabled && !inSwap && recipient == pair ){ swapBack(); lastSwap = block.number; } unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amountReceived; emit Transfer(sender, recipient, amountReceived); return true; } function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) { uint256 senderBalance = _balances[sender]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); return true; } function checkTxLimit(address sender, uint256 amount) internal view { require(amount <= _maxTxAmount || isTxLimitExempt[sender], "Tx Limit Exceeded"); } function shouldTakeFee(address sender) internal view returns (bool) { return !isFeeExempt[sender]; } function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) { uint256 feeAmount = 0; if(recipient == pair) { feeAmount = (amount * sellTotalFee) / 100; } else if(sender == pair) { feeAmount = (amount * buyTotalFee) / 100; }else{ feeAmount = (amount * transferFee) / 100; } _balances[address(this)] += feeAmount; emit Transfer(sender, address(this), feeAmount); uint256 notFeeAmount = amount - feeAmount; return notFeeAmount; } function removeMaxLimits() external onlyOwner { _maxWalletAmount = _totalSupply; _maxTxAmount = _totalSupply; emit maxLimitsRemoved(_maxWalletAmount, _maxTxAmount); } function startFOMO() external onlyOwner { require(!TradingOpen,"Trading already Enabled."); TradingOpen = true; lastSwap = block.number; emit tradingEnabled(TradingOpen, lastSwap); } function swapBack() internal swapping { uint256 totalFee = buyTotalFee + sellTotalFee; uint256 teamFee = buyTeamFee + sellTeamFee; uint256 amountETHteam = 0; uint256 amountETHMarketing = 0; uint256 amountToSwap = swapThreshold; address[] memory path = new address[](2); path[0] = address(this); path[1] = WETH; router.swapExactTokensForETHSupportingFeeOnTransferTokens( amountToSwap, 0, path, address(this), block.timestamp ); uint256 totalETHFee = address(this).balance; if(totalFee == 0) { amountETHteam = 0; } else { amountETHteam = (totalETHFee * teamFee) / totalFee; } amountETHMarketing = totalETHFee - amountETHteam; (bool tmpSuccess,) = payable(teamFeeReceiver).call{value: amountETHteam}(""); require(tmpSuccess, "Failed to send ether to Team Fee Receiver."); (bool tmpSuccess1,) = payable(marketingFeeReceiver).call{value: amountETHMarketing}(""); require(tmpSuccess1, "Failed to send ether to Marketing Fee Receiver."); } function exemptAll(address holder, bool exempt) external onlyOwner { require(holder != address(0), "Holder is the zero address"); isFeeExempt[holder] = exempt; isTxLimitExempt[holder] = exempt; emit exemptFees(holder, exempt); } function setTxLimitExempt(address holder, bool exempt) external onlyOwner { require(holder != address(0), "Holder is the zero address"); isTxLimitExempt[holder] = exempt; emit exemptTxLimit(holder, exempt); } function updateBuyFees(uint256 _teamFee, uint256 _marketingFee) external onlyOwner { require( _teamFee + _marketingFee <= 5, "Fees can not be more than 5%"); buyTeamFee = _teamFee; buyMarketingFee = _marketingFee; buyTotalFee =_teamFee+ _marketingFee; emit buyFeesUpdated(buyTeamFee, buyMarketingFee); } function updateSellFees(uint256 _teamFee, uint256 _marketingFee) external onlyOwner { require(_teamFee + _marketingFee <= 5, "Fees can not be more than 5%"); sellTeamFee = _teamFee; sellMarketingFee = _marketingFee; sellTotalFee =_teamFee+ _marketingFee; emit sellFeesUpdated(sellTeamFee, sellMarketingFee); } function updateReceiverWallets( address _marketingFeeReceiver, address _teamFeeReceiver) external onlyOwner { require(_marketingFeeReceiver != address(0) && _teamFeeReceiver != address(0) , "Fee receiver cannot be zero address"); marketingFeeReceiver = _marketingFeeReceiver; teamFeeReceiver = _teamFeeReceiver; emit feesWalletsUpdated(marketingFeeReceiver, teamFeeReceiver); } function editSwapbackSettings(bool _enabled, uint256 _amount) external onlyOwner { swapEnabled = _enabled; swapThreshold = _amount * 10**_decimals; emit swapbackSettingsUpdated(_enabled, _amount); } }
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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"buyTeamFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"buyMarketingFee","type":"uint256"}],"name":"buyFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"holder","type":"address"},{"indexed":true,"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptTxLimit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"marketingFeeReceiver","type":"address"},{"indexed":true,"internalType":"address","name":"teamFeeReceiver","type":"address"}],"name":"feesWalletsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletToken","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxLimitsRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"maxTxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"maxWalletAmount","type":"uint256"}],"name":"maxWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"sellTeamFee","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"sellMarketingFee","type":"uint256"}],"name":"sellFeesUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"swapbackSettingsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bool","name":"enabled","type":"bool"},{"indexed":true,"internalType":"uint256","name":"startTime","type":"uint256"}],"name":"tradingEnabled","type":"event"},{"inputs":[],"name":"TradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveAll","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":"buyTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"editSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"exemptAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeMaxLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletPercent","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startFOMO","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"},{"internalType":"address","name":"_teamFeeReceiver","type":"address"}],"name":"updateReceiverWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_teamFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c060405260646009600a61001491906109d0565b6305f5e1006100239190610a1a565b61002d9190610a88565b60015560646009600a61004091906109d0565b6305f5e10061004f9190610a1a565b6100599190610a88565b600255600f600755600a6008556007546008546100769190610ab8565b600955600f600a55600a600b55600a54600b546100939190610ab8565b600c555f601160146101000a81548160ff0219169083151502179055506001601160156101000a81548160ff02191690831515021790555060646009600a6100db91906109d0565b6305f5e1006100ea9190610a1a565b6100f49190610a88565b601255348015610102575f80fd5b505f61011261085860201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561026c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102909190610b49565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561032d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103519190610b49565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396608051306040518363ffffffff1660e01b815260040161038d929190610b83565b6020604051808303815f875af11580156103a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103cd9190610b49565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060a05160115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555073bcc8374a4b993fee8d185d6036a290318fdde3b8600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073a614ade553d182d4adb0548ffd55dfba3939052d600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f60a05173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160065f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506009600a61078291906109d0565b6305f5e1006107919190610a1a565b60035f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a61082f91906109d0565b6305f5e10061083e9190610a1a565b60405161084b9190610bb9565b60405180910390a3610bd2565b5f33905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156108e1578086048111156108bd576108bc61085f565b5b60018516156108cc5780820291505b80810290506108da8561088c565b94506108a1565b94509492505050565b5f826108f957600190506109b4565b81610906575f90506109b4565b816001811461091c576002811461092657610955565b60019150506109b4565b60ff8411156109385761093761085f565b5b8360020a91508482111561094f5761094e61085f565b5b506109b4565b5060208310610133831016604e8410600b841016171561098a5782820a9050838111156109855761098461085f565b5b6109b4565b6109978484846001610898565b925090508184048111156109ae576109ad61085f565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6109da826109bb565b91506109e5836109c4565b9250610a127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846108ea565b905092915050565b5f610a24826109bb565b9150610a2f836109bb565b9250828202610a3d816109bb565b91508282048414831517610a5457610a5361085f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610a92826109bb565b9150610a9d836109bb565b925082610aad57610aac610a5b565b5b828204905092915050565b5f610ac2826109bb565b9150610acd836109bb565b9250828201905080821115610ae557610ae461085f565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b1882610aef565b9050919050565b610b2881610b0e565b8114610b32575f80fd5b50565b5f81519050610b4381610b1f565b92915050565b5f60208284031215610b5e57610b5d610aeb565b5b5f610b6b84828501610b35565b91505092915050565b610b7d81610b0e565b82525050565b5f604082019050610b965f830185610b74565b610ba36020830184610b74565b9392505050565b610bb3816109bb565b82525050565b5f602082019050610bcc5f830184610baa565b92915050565b60805160a051613dd4610c0f5f395f81816118240152818161220a015281816123f30152818161278e015261280201525f612a480152613dd45ff3fe6080604052600436106101fb575f3560e01c80636ddd17131161010c578063a8aa1b311161009f578063ccf8c0361161006e578063ccf8c036146106ec578063dd62ed3e14610714578063f2fde38b14610750578063f6a78e1714610778578063f887ea401461078e57610202565b8063a8aa1b3114610634578063a9059cbb1461065e578063b2bdfa7b1461069a578063bc337182146106c457610202565b8063893d20e8116100db578063893d20e81461058e5780638d7a8ba7146105b85780638da5cb5b146105e057806395d89b411461060a57610202565b80636ddd1713146104e857806370a0823114610512578063715018a61461054e5780637d1db4a51461056457610202565b8063121555a61161018f578063313ce5671161015e578063313ce5671461041a5780633705b392146104445780635d0044ca1461046e57806366ca9b83146104965780636c0a24eb146104be57610202565b8063121555a61461037657806318160ddd1461039e57806321268314146103c857806323b872dd146103de57610202565b80630621472c116101cb5780630621472c146102aa57806306fdde03146102e657806308fd3d0514610310578063095ea7b31461033a57610202565b8062afb3251461020657806302dbd8f81461023057806304368f65146102585780630445b6671461028057610202565b3661020257005b5f80fd5b348015610211575f80fd5b5061021a6107b8565b6040516102279190612d4d565b60405180910390f35b34801561023b575f80fd5b5061025660048036038101906102519190612d94565b6107be565b005b348015610263575f80fd5b5061027e60048036038101906102799190612e07565b6108f7565b005b34801561028b575f80fd5b506102946109f8565b6040516102a19190612d4d565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb9190612e9f565b6109fe565b6040516102dd9190612ed9565b60405180910390f35b3480156102f1575f80fd5b506102fa610a30565b6040516103079190612f62565b60405180910390f35b34801561031b575f80fd5b50610324610a6d565b6040516103319190612ed9565b60405180910390f35b348015610345575f80fd5b50610360600480360381019061035b9190612f82565b610a80565b60405161036d9190612ed9565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190612fc0565b610bdb565b005b3480156103a9575f80fd5b506103b2610e36565b6040516103bf9190612d4d565b60405180910390f35b3480156103d3575f80fd5b506103dc610e59565b005b3480156103e9575f80fd5b5061040460048036038101906103ff9190612ffe565b610fa2565b6040516104119190612ed9565b60405180910390f35b348015610425575f80fd5b5061042e611208565b60405161043b9190613069565b60405180910390f35b34801561044f575f80fd5b50610458611210565b6040516104659190612d4d565b60405180910390f35b348015610479575f80fd5b50610494600480360381019061048f9190613082565b611216565b005b3480156104a1575f80fd5b506104bc60048036038101906104b79190612d94565b611324565b005b3480156104c9575f80fd5b506104d261145d565b6040516104df9190612d4d565b60405180910390f35b3480156104f3575f80fd5b506104fc611463565b6040516105099190612ed9565b60405180910390f35b34801561051d575f80fd5b5061053860048036038101906105339190612e9f565b611476565b6040516105459190612d4d565b60405180910390f35b348015610559575f80fd5b506105626114bc565b005b34801561056f575f80fd5b5061057861160a565b6040516105859190612d4d565b60405180910390f35b348015610599575f80fd5b506105a2611610565b6040516105af91906130bc565b60405180910390f35b3480156105c3575f80fd5b506105de60048036038101906105d991906130d5565b61161e565b005b3480156105eb575f80fd5b506105f46117be565b60405161060191906130bc565b60405180910390f35b348015610615575f80fd5b5061061e6117e5565b60405161062b9190612f62565b60405180910390f35b34801561063f575f80fd5b50610648611822565b60405161065591906130bc565b60405180910390f35b348015610669575f80fd5b50610684600480360381019061067f9190612f82565b611846565b6040516106919190612ed9565b60405180910390f35b3480156106a5575f80fd5b506106ae6118c8565b6040516106bb91906130bc565b60405180910390f35b3480156106cf575f80fd5b506106ea60048036038101906106e59190613082565b6118eb565b005b3480156106f7575f80fd5b50610712600480360381019061070d91906130d5565b6119f9565b005b34801561071f575f80fd5b5061073a60048036038101906107359190612fc0565b611bed565b6040516107479190612d4d565b60405180910390f35b34801561075b575f80fd5b5061077660048036038101906107719190612e9f565b611c6f565b005b348015610783575f80fd5b5061078c611e2c565b005b348015610799575f80fd5b506107a2611f3a565b6040516107af919061316e565b60405180910390f35b600c5481565b6107c6611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906131d1565b60405180910390fd5b60058183610860919061321c565b11156108a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089890613299565b60405180910390fd5b81600b8190555080600a8190555080826108bb919061321c565b600c81905550600a54600b547f1568ae12a48f94971e72d93f8f5846cfda77ba2ba927d867f64e49883578813860405160405180910390a35050565b6108ff611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610982906131d1565b60405180910390fd5b81601160156101000a81548160ff0219169083151502179055506009600a6109b391906133e6565b816109be9190613430565b601281905550808215157fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd960405160405180910390a35050565b60125481565b5f610a29827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a80565b9050919050565b60606040518060400160405280600981526020017f464f4d4f2e626f6e640000000000000000000000000000000000000000000000815250905090565b601160149054906101000a900460ff1681565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae6906134bb565b60405180910390fd5b8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bc99190612d4d565b60405180910390a36001905092915050565b610be3611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c66906131d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610cd757505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0d90613549565b60405180910390fd5b81600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5b1b7727e42d2f1e9652d0af0d3b4f580a270e5d7ff9a47120c8602d4ec2def560405160405180910390a35050565b5f6009600a610e4591906133e6565b6305f5e100610e549190613430565b905090565b610e61611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee4906131d1565b60405180910390fd5b601160149054906101000a900460ff1615610f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f34906135b1565b60405180910390fd5b6001601160146101000a81548160ff02191690831515021790555043600d81905550600d54601160149054906101000a900460ff1615157f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d60405160405180910390a3565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100890613619565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107690613681565b60405180910390fd5b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6110c6611f5f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111f3578281101561116c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111639061370f565b60405180910390fd5b82810360045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6111b5611f5f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6111fe858585611f66565b9150509392505050565b5f6009905090565b60095481565b61121e611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a1906131d1565b60405180910390fd5b60058110156112b7575f80fd5b6103e8816009600a6112c991906133e6565b6305f5e1006112d89190613430565b6112e29190613430565b6112ec919061375a565b6002819055506002547ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c3560405160405180910390a250565b61132c611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af906131d1565b60405180910390fd5b600581836113c6919061321c565b1115611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90613299565b60405180910390fd5b81600881905550806007819055508082611421919061321c565b6009819055506007546008547f2816b76723f76e2768850694f4460c7c44a6592719ca811a201bd3087a87255760405160405180910390a35050565b60025481565b601160159054906101000a900460ff1681565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114c4611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611547906131d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60015481565b5f6116196117be565b905090565b611626611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a9906131d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611720576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611717906137d4565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377560405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f464f4d4f00000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac90613681565b60405180910390fd5b6118c0338484611f66565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118f3611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611976906131d1565b60405180910390fd5b600581101561198c575f80fd5b6103e8816009600a61199e91906133e6565b6305f5e1006119ad9190613430565b6119b79190613430565b6119c1919061375a565b6001819055506001547f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c504160405160405180910390a250565b611a01611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a84906131d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af2906137d4565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734660405160405180910390a35050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611c77611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfa906131d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6890613862565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e34611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb7906131d1565b60405180910390fd5b6009600a611ece91906133e6565b6305f5e100611edd9190613430565b6002819055506009600a611ef191906133e6565b6305f5e100611f009190613430565b6001819055506001546002547fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa960405160405180910390a3565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f60135f9054906101000a900460ff1615611f8d57611f86848484612560565b9050612559565b611f956117be565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461201757601160149054906101000a900460ff16612016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200d906138ca565b60405180910390fd5b5b61202184836126ed565b5f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c90613958565b60405180910390fd5b5f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612141575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61215557612150868587612787565b612157565b835b90506121616117be565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561230657503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612201575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561225957507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122b25750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612305575060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b15612369575f61231586611476565b90506002548282612326919061321c565b1115612367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235e906139e6565b60405180910390fd5b505b43600d54141580156123ba575060125460035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b80156123d25750601160159054906101000a900460ff165b80156123ea575060135f9054906101000a900460ff16155b801561244157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b156124565761244e612963565b43600d819055505b83820360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124e6919061321c565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161254a9190612d4d565b60405180910390a36001925050505b9392505050565b5f8060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156125e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125dc90613958565b60405180910390fd5b82810360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612675919061321c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126d99190612d4d565b60405180910390a360019150509392505050565b60015481111580612744575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277a90613a4e565b60405180910390fd5b5050565b5f805f90507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612800576064600c54856127ef9190613430565b6127f9919061375a565b9050612890565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612874576064600954856128639190613430565b61286d919061375a565b905061288f565b60645f856128829190613430565b61288c919061375a565b90505b5b8060035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546128dc919061321c565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129409190612d4d565b60405180910390a35f81856129559190613a6c565b905080925050509392505050565b600160135f6101000a81548160ff0219169083151502179055505f600c5460095461298e919061321c565b90505f600b546008546129a1919061321c565b90505f805f60125490505f600267ffffffffffffffff8111156129c7576129c6613a9f565b5b6040519080825280602002602001820160405280156129f55781602001602082028036833780820191505090505b50905030815f81518110612a0c57612a0b613acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110612a7b57612a7a613acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612b17959493929190613be9565b5f604051808303815f87803b158015612b2e575f80fd5b505af1158015612b40573d5f803e3d5ffd5b505050505f4790505f8703612b57575f9450612b71565b868682612b649190613430565b612b6e919061375a565b94505b8481612b7d9190613a6c565b93505f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1686604051612bc590613c6e565b5f6040518083038185875af1925050503d805f8114612bff576040519150601f19603f3d011682016040523d82523d5f602084013e612c04565b606091505b5050905080612c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3f90613cf2565b60405180910390fd5b5f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1686604051612c8e90613c6e565b5f6040518083038185875af1925050503d805f8114612cc8576040519150601f19603f3d011682016040523d82523d5f602084013e612ccd565b606091505b5050905080612d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0890613d80565b60405180910390fd5b5050505050505050505f60135f6101000a81548160ff021916908315150217905550565b5f819050919050565b612d4781612d35565b82525050565b5f602082019050612d605f830184612d3e565b92915050565b5f80fd5b612d7381612d35565b8114612d7d575f80fd5b50565b5f81359050612d8e81612d6a565b92915050565b5f8060408385031215612daa57612da9612d66565b5b5f612db785828601612d80565b9250506020612dc885828601612d80565b9150509250929050565b5f8115159050919050565b612de681612dd2565b8114612df0575f80fd5b50565b5f81359050612e0181612ddd565b92915050565b5f8060408385031215612e1d57612e1c612d66565b5b5f612e2a85828601612df3565b9250506020612e3b85828601612d80565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612e6e82612e45565b9050919050565b612e7e81612e64565b8114612e88575f80fd5b50565b5f81359050612e9981612e75565b92915050565b5f60208284031215612eb457612eb3612d66565b5b5f612ec184828501612e8b565b91505092915050565b612ed381612dd2565b82525050565b5f602082019050612eec5f830184612eca565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612f3482612ef2565b612f3e8185612efc565b9350612f4e818560208601612f0c565b612f5781612f1a565b840191505092915050565b5f6020820190508181035f830152612f7a8184612f2a565b905092915050565b5f8060408385031215612f9857612f97612d66565b5b5f612fa585828601612e8b565b9250506020612fb685828601612d80565b9150509250929050565b5f8060408385031215612fd657612fd5612d66565b5b5f612fe385828601612e8b565b9250506020612ff485828601612e8b565b9150509250929050565b5f805f6060848603121561301557613014612d66565b5b5f61302286828701612e8b565b935050602061303386828701612e8b565b925050604061304486828701612d80565b9150509250925092565b5f60ff82169050919050565b6130638161304e565b82525050565b5f60208201905061307c5f83018461305a565b92915050565b5f6020828403121561309757613096612d66565b5b5f6130a484828501612d80565b91505092915050565b6130b681612e64565b82525050565b5f6020820190506130cf5f8301846130ad565b92915050565b5f80604083850312156130eb576130ea612d66565b5b5f6130f885828601612e8b565b925050602061310985828601612df3565b9150509250929050565b5f819050919050565b5f61313661313161312c84612e45565b613113565b612e45565b9050919050565b5f6131478261311c565b9050919050565b5f6131588261313d565b9050919050565b6131688161314e565b82525050565b5f6020820190506131815f83018461315f565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131bb602083612efc565b91506131c682613187565b602082019050919050565b5f6020820190508181035f8301526131e8816131af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61322682612d35565b915061323183612d35565b9250828201905080821115613249576132486131ef565b5b92915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203525000000005f82015250565b5f613283601c83612efc565b915061328e8261324f565b602082019050919050565b5f6020820190508181035f8301526132b081613277565b9050919050565b5f8160011c9050919050565b5f808291508390505b600185111561330c578086048111156132e8576132e76131ef565b5b60018516156132f75780820291505b8081029050613305856132b7565b94506132cc565b94509492505050565b5f8261332457600190506133df565b81613331575f90506133df565b8160018114613347576002811461335157613380565b60019150506133df565b60ff841115613363576133626131ef565b5b8360020a91508482111561337a576133796131ef565b5b506133df565b5060208310610133831016604e8410600b84101617156133b55782820a9050838111156133b0576133af6131ef565b5b6133df565b6133c284848460016132c3565b925090508184048111156133d9576133d86131ef565b5b81810290505b9392505050565b5f6133f082612d35565b91506133fb8361304e565b92506134287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613315565b905092915050565b5f61343a82612d35565b915061344583612d35565b925082820261345381612d35565b9150828204841483151761346a576134696131ef565b5b5092915050565b7f5370656e64657220697320746865207a65726f206164647265737300000000005f82015250565b5f6134a5601b83612efc565b91506134b082613471565b602082019050919050565b5f6020820190508181035f8301526134d281613499565b9050919050565b7f4665652072656365697665722063616e6e6f74206265207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613533602383612efc565b915061353e826134d9565b604082019050919050565b5f6020820190508181035f83015261356081613527565b9050919050565b7f54726164696e6720616c726561647920456e61626c65642e00000000000000005f82015250565b5f61359b601883612efc565b91506135a682613567565b602082019050919050565b5f6020820190508181035f8301526135c88161358f565b9050919050565b7f53656e64657220697320746865207a65726f20616464726573730000000000005f82015250565b5f613603601a83612efc565b915061360e826135cf565b602082019050919050565b5f6020820190508181035f830152613630816135f7565b9050919050565b7f526563697069656e7420697320746865207a65726f20616464726573730000005f82015250565b5f61366b601d83612efc565b915061367682613637565b602082019050919050565b5f6020820190508181035f8301526136988161365f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6136f9602883612efc565b91506137048261369f565b604082019050919050565b5f6020820190508181035f830152613726816136ed565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61376482612d35565b915061376f83612d35565b92508261377f5761377e61372d565b5b828204905092915050565b7f486f6c64657220697320746865207a65726f20616464726573730000000000005f82015250565b5f6137be601a83612efc565b91506137c98261378a565b602082019050919050565b5f6020820190508181035f8301526137eb816137b2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61384c602683612efc565b9150613857826137f2565b604082019050919050565b5f6020820190508181035f83015261387981613840565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6138b4601483612efc565b91506138bf82613880565b602082019050919050565b5f6020820190508181035f8301526138e1816138a8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613942602683612efc565b915061394d826138e8565b604082019050919050565b5f6020820190508181035f83015261396f81613936565b9050919050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6139d0603e83612efc565b91506139db82613976565b604082019050919050565b5f6020820190508181035f8301526139fd816139c4565b9050919050565b7f5478204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613a38601183612efc565b9150613a4382613a04565b602082019050919050565b5f6020820190508181035f830152613a6581613a2c565b9050919050565b5f613a7682612d35565b9150613a8183612d35565b9250828203905081811115613a9957613a986131ef565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613b1c613b17613b1284613af9565b613113565b612d35565b9050919050565b613b2c81613b02565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613b6481612e64565b82525050565b5f613b758383613b5b565b60208301905092915050565b5f602082019050919050565b5f613b9782613b32565b613ba18185613b3c565b9350613bac83613b4c565b805f5b83811015613bdc578151613bc38882613b6a565b9750613bce83613b81565b925050600181019050613baf565b5085935050505092915050565b5f60a082019050613bfc5f830188612d3e565b613c096020830187613b23565b8181036040830152613c1b8186613b8d565b9050613c2a60608301856130ad565b613c376080830184612d3e565b9695505050505050565b5f81905092915050565b50565b5f613c595f83613c41565b9150613c6482613c4b565b5f82019050919050565b5f613c7882613c4e565b9150819050919050565b7f4661696c656420746f2073656e6420657468657220746f205465616d204665655f8201527f2052656365697665722e00000000000000000000000000000000000000000000602082015250565b5f613cdc602a83612efc565b9150613ce782613c82565b604082019050919050565b5f6020820190508181035f830152613d0981613cd0565b9050919050565b7f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e5f8201527f67204665652052656365697665722e0000000000000000000000000000000000602082015250565b5f613d6a602f83612efc565b9150613d7582613d10565b604082019050919050565b5f6020820190508181035f830152613d9781613d5e565b905091905056fea2646970667358221220ae54b621d6d4113f7fb92660fcf6c361555a50b42b6b64aec64464abed9a38c764736f6c634300081a0033
Deployed Bytecode
0x6080604052600436106101fb575f3560e01c80636ddd17131161010c578063a8aa1b311161009f578063ccf8c0361161006e578063ccf8c036146106ec578063dd62ed3e14610714578063f2fde38b14610750578063f6a78e1714610778578063f887ea401461078e57610202565b8063a8aa1b3114610634578063a9059cbb1461065e578063b2bdfa7b1461069a578063bc337182146106c457610202565b8063893d20e8116100db578063893d20e81461058e5780638d7a8ba7146105b85780638da5cb5b146105e057806395d89b411461060a57610202565b80636ddd1713146104e857806370a0823114610512578063715018a61461054e5780637d1db4a51461056457610202565b8063121555a61161018f578063313ce5671161015e578063313ce5671461041a5780633705b392146104445780635d0044ca1461046e57806366ca9b83146104965780636c0a24eb146104be57610202565b8063121555a61461037657806318160ddd1461039e57806321268314146103c857806323b872dd146103de57610202565b80630621472c116101cb5780630621472c146102aa57806306fdde03146102e657806308fd3d0514610310578063095ea7b31461033a57610202565b8062afb3251461020657806302dbd8f81461023057806304368f65146102585780630445b6671461028057610202565b3661020257005b5f80fd5b348015610211575f80fd5b5061021a6107b8565b6040516102279190612d4d565b60405180910390f35b34801561023b575f80fd5b5061025660048036038101906102519190612d94565b6107be565b005b348015610263575f80fd5b5061027e60048036038101906102799190612e07565b6108f7565b005b34801561028b575f80fd5b506102946109f8565b6040516102a19190612d4d565b60405180910390f35b3480156102b5575f80fd5b506102d060048036038101906102cb9190612e9f565b6109fe565b6040516102dd9190612ed9565b60405180910390f35b3480156102f1575f80fd5b506102fa610a30565b6040516103079190612f62565b60405180910390f35b34801561031b575f80fd5b50610324610a6d565b6040516103319190612ed9565b60405180910390f35b348015610345575f80fd5b50610360600480360381019061035b9190612f82565b610a80565b60405161036d9190612ed9565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190612fc0565b610bdb565b005b3480156103a9575f80fd5b506103b2610e36565b6040516103bf9190612d4d565b60405180910390f35b3480156103d3575f80fd5b506103dc610e59565b005b3480156103e9575f80fd5b5061040460048036038101906103ff9190612ffe565b610fa2565b6040516104119190612ed9565b60405180910390f35b348015610425575f80fd5b5061042e611208565b60405161043b9190613069565b60405180910390f35b34801561044f575f80fd5b50610458611210565b6040516104659190612d4d565b60405180910390f35b348015610479575f80fd5b50610494600480360381019061048f9190613082565b611216565b005b3480156104a1575f80fd5b506104bc60048036038101906104b79190612d94565b611324565b005b3480156104c9575f80fd5b506104d261145d565b6040516104df9190612d4d565b60405180910390f35b3480156104f3575f80fd5b506104fc611463565b6040516105099190612ed9565b60405180910390f35b34801561051d575f80fd5b5061053860048036038101906105339190612e9f565b611476565b6040516105459190612d4d565b60405180910390f35b348015610559575f80fd5b506105626114bc565b005b34801561056f575f80fd5b5061057861160a565b6040516105859190612d4d565b60405180910390f35b348015610599575f80fd5b506105a2611610565b6040516105af91906130bc565b60405180910390f35b3480156105c3575f80fd5b506105de60048036038101906105d991906130d5565b61161e565b005b3480156105eb575f80fd5b506105f46117be565b60405161060191906130bc565b60405180910390f35b348015610615575f80fd5b5061061e6117e5565b60405161062b9190612f62565b60405180910390f35b34801561063f575f80fd5b50610648611822565b60405161065591906130bc565b60405180910390f35b348015610669575f80fd5b50610684600480360381019061067f9190612f82565b611846565b6040516106919190612ed9565b60405180910390f35b3480156106a5575f80fd5b506106ae6118c8565b6040516106bb91906130bc565b60405180910390f35b3480156106cf575f80fd5b506106ea60048036038101906106e59190613082565b6118eb565b005b3480156106f7575f80fd5b50610712600480360381019061070d91906130d5565b6119f9565b005b34801561071f575f80fd5b5061073a60048036038101906107359190612fc0565b611bed565b6040516107479190612d4d565b60405180910390f35b34801561075b575f80fd5b5061077660048036038101906107719190612e9f565b611c6f565b005b348015610783575f80fd5b5061078c611e2c565b005b348015610799575f80fd5b506107a2611f3a565b6040516107af919061316e565b60405180910390f35b600c5481565b6107c6611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610849906131d1565b60405180910390fd5b60058183610860919061321c565b11156108a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161089890613299565b60405180910390fd5b81600b8190555080600a8190555080826108bb919061321c565b600c81905550600a54600b547f1568ae12a48f94971e72d93f8f5846cfda77ba2ba927d867f64e49883578813860405160405180910390a35050565b6108ff611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461098b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610982906131d1565b60405180910390fd5b81601160156101000a81548160ff0219169083151502179055506009600a6109b391906133e6565b816109be9190613430565b601281905550808215157fd896c9007bf8dc883f6b125322395dddc87bf825aed2e302315071c66e0d5dd960405160405180910390a35050565b60125481565b5f610a29827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610a80565b9050919050565b60606040518060400160405280600981526020017f464f4d4f2e626f6e640000000000000000000000000000000000000000000000815250905090565b601160149054906101000a900460ff1681565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae6906134bb565b60405180910390fd5b8160045f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610bc99190612d4d565b60405180910390a36001905092915050565b610be3611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c66906131d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610cd757505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b610d16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0d90613549565b60405180910390fd5b81600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f5b1b7727e42d2f1e9652d0af0d3b4f580a270e5d7ff9a47120c8602d4ec2def560405160405180910390a35050565b5f6009600a610e4591906133e6565b6305f5e100610e549190613430565b905090565b610e61611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee4906131d1565b60405180910390fd5b601160149054906101000a900460ff1615610f3d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f34906135b1565b60405180910390fd5b6001601160146101000a81548160ff02191690831515021790555043600d81905550600d54601160149054906101000a900460ff1615157f07c24843b569ea20bd3c266fb17047bdd751e44ea3afa2150f231b90bc669f4d60405160405180910390a3565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611011576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100890613619565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361107f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107690613681565b60405180910390fd5b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6110c6611f5f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111f3578281101561116c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111639061370f565b60405180910390fd5b82810360045f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6111b5611f5f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b6111fe858585611f66565b9150509392505050565b5f6009905090565b60095481565b61121e611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a1906131d1565b60405180910390fd5b60058110156112b7575f80fd5b6103e8816009600a6112c991906133e6565b6305f5e1006112d89190613430565b6112e29190613430565b6112ec919061375a565b6002819055506002547ff8c5ab682312267665fe2e7afb06ce5e015dae6e8e8b89ebf47de5312c153c3560405160405180910390a250565b61132c611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113af906131d1565b60405180910390fd5b600581836113c6919061321c565b1115611407576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113fe90613299565b60405180910390fd5b81600881905550806007819055508082611421919061321c565b6009819055506007546008547f2816b76723f76e2768850694f4460c7c44a6592719ca811a201bd3087a87255760405160405180910390a35050565b60025481565b601160159054906101000a900460ff1681565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6114c4611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611547906131d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60015481565b5f6116196117be565b905090565b611626611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a9906131d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611720576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611717906137d4565b60405180910390fd5b8060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f5422e85d9bcca047954218b93afb25e9bc2afe9bdc19e7297968b2c919c8377560405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600481526020017f464f4d4f00000000000000000000000000000000000000000000000000000000815250905090565b7f000000000000000000000000f6c4d325fa1e1649c5b9950edd028668714adbe781565b5f8073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ac90613681565b60405180910390fd5b6118c0338484611f66565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6118f3611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461197f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611976906131d1565b60405180910390fd5b600581101561198c575f80fd5b6103e8816009600a61199e91906133e6565b6305f5e1006119ad9190613430565b6119b79190613430565b6119c1919061375a565b6001819055506001547f3e20d7489efd636786bf4e1e0eb2addeb10f5435dc95fff56528021af35c504160405160405180910390a250565b611a01611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a84906131d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611afb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af2906137d4565b60405180910390fd5b8060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167f4aaa6e45cd52263caf7af003089cdf83d1751392e7edf53c1b5542d94f39734660405160405180910390a35050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611c77611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfa906131d1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d71576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6890613862565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e34611f5f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ec0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb7906131d1565b60405180910390fd5b6009600a611ece91906133e6565b6305f5e100611edd9190613430565b6002819055506009600a611ef191906133e6565b6305f5e100611f009190613430565b6001819055506001546002547fe5ca8724fdb01105b3129a1959a63ecdb2638b93266579bbcca33b66c737faa960405160405180910390a3565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f60135f9054906101000a900460ff1615611f8d57611f86848484612560565b9050612559565b611f956117be565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161461201757601160149054906101000a900460ff16612016576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200d906138ca565b60405180910390fd5b5b61202184836126ed565b5f60035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156120a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209c90613958565b60405180910390fd5b5f60055f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612141575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b61215557612150868587612787565b612157565b835b90506121616117be565b73ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff161415801561230657503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015612201575061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561225957507f000000000000000000000000f6c4d325fa1e1649c5b9950edd028668714adbe773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156122b25750600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612305575060065f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b5b15612369575f61231586611476565b90506002548282612326919061321c565b1115612367576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235e906139e6565b60405180910390fd5b505b43600d54141580156123ba575060125460035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410155b80156123d25750601160159054906101000a900460ff165b80156123ea575060135f9054906101000a900460ff16155b801561244157507f000000000000000000000000f6c4d325fa1e1649c5b9950edd028668714adbe773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b156124565761244e612963565b43600d819055505b83820360035f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508060035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124e6919061321c565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161254a9190612d4d565b60405180910390a36001925050505b9392505050565b5f8060035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156125e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125dc90613958565b60405180910390fd5b82810360035f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508260035f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612675919061321c565b925050819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126d99190612d4d565b60405180910390a360019150509392505050565b60015481111580612744575060065f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b612783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277a90613a4e565b60405180910390fd5b5050565b5f805f90507f000000000000000000000000f6c4d325fa1e1649c5b9950edd028668714adbe773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612800576064600c54856127ef9190613430565b6127f9919061375a565b9050612890565b7f000000000000000000000000f6c4d325fa1e1649c5b9950edd028668714adbe773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603612874576064600954856128639190613430565b61286d919061375a565b905061288f565b60645f856128829190613430565b61288c919061375a565b90505b5b8060035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546128dc919061321c565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516129409190612d4d565b60405180910390a35f81856129559190613a6c565b905080925050509392505050565b600160135f6101000a81548160ff0219169083151502179055505f600c5460095461298e919061321c565b90505f600b546008546129a1919061321c565b90505f805f60125490505f600267ffffffffffffffff8111156129c7576129c6613a9f565b5b6040519080825280602002602001820160405280156129f55781602001602082028036833780820191505090505b50905030815f81518110612a0c57612a0b613acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110612a7b57612a7a613acc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612b17959493929190613be9565b5f604051808303815f87803b158015612b2e575f80fd5b505af1158015612b40573d5f803e3d5ffd5b505050505f4790505f8703612b57575f9450612b71565b868682612b649190613430565b612b6e919061375a565b94505b8481612b7d9190613a6c565b93505f600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1686604051612bc590613c6e565b5f6040518083038185875af1925050503d805f8114612bff576040519150601f19603f3d011682016040523d82523d5f602084013e612c04565b606091505b5050905080612c48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c3f90613cf2565b60405180910390fd5b5f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1686604051612c8e90613c6e565b5f6040518083038185875af1925050503d805f8114612cc8576040519150601f19603f3d011682016040523d82523d5f602084013e612ccd565b606091505b5050905080612d11576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d0890613d80565b60405180910390fd5b5050505050505050505f60135f6101000a81548160ff021916908315150217905550565b5f819050919050565b612d4781612d35565b82525050565b5f602082019050612d605f830184612d3e565b92915050565b5f80fd5b612d7381612d35565b8114612d7d575f80fd5b50565b5f81359050612d8e81612d6a565b92915050565b5f8060408385031215612daa57612da9612d66565b5b5f612db785828601612d80565b9250506020612dc885828601612d80565b9150509250929050565b5f8115159050919050565b612de681612dd2565b8114612df0575f80fd5b50565b5f81359050612e0181612ddd565b92915050565b5f8060408385031215612e1d57612e1c612d66565b5b5f612e2a85828601612df3565b9250506020612e3b85828601612d80565b9150509250929050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612e6e82612e45565b9050919050565b612e7e81612e64565b8114612e88575f80fd5b50565b5f81359050612e9981612e75565b92915050565b5f60208284031215612eb457612eb3612d66565b5b5f612ec184828501612e8b565b91505092915050565b612ed381612dd2565b82525050565b5f602082019050612eec5f830184612eca565b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f612f3482612ef2565b612f3e8185612efc565b9350612f4e818560208601612f0c565b612f5781612f1a565b840191505092915050565b5f6020820190508181035f830152612f7a8184612f2a565b905092915050565b5f8060408385031215612f9857612f97612d66565b5b5f612fa585828601612e8b565b9250506020612fb685828601612d80565b9150509250929050565b5f8060408385031215612fd657612fd5612d66565b5b5f612fe385828601612e8b565b9250506020612ff485828601612e8b565b9150509250929050565b5f805f6060848603121561301557613014612d66565b5b5f61302286828701612e8b565b935050602061303386828701612e8b565b925050604061304486828701612d80565b9150509250925092565b5f60ff82169050919050565b6130638161304e565b82525050565b5f60208201905061307c5f83018461305a565b92915050565b5f6020828403121561309757613096612d66565b5b5f6130a484828501612d80565b91505092915050565b6130b681612e64565b82525050565b5f6020820190506130cf5f8301846130ad565b92915050565b5f80604083850312156130eb576130ea612d66565b5b5f6130f885828601612e8b565b925050602061310985828601612df3565b9150509250929050565b5f819050919050565b5f61313661313161312c84612e45565b613113565b612e45565b9050919050565b5f6131478261311c565b9050919050565b5f6131588261313d565b9050919050565b6131688161314e565b82525050565b5f6020820190506131815f83018461315f565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131bb602083612efc565b91506131c682613187565b602082019050919050565b5f6020820190508181035f8301526131e8816131af565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61322682612d35565b915061323183612d35565b9250828201905080821115613249576132486131ef565b5b92915050565b7f466565732063616e206e6f74206265206d6f7265207468616e203525000000005f82015250565b5f613283601c83612efc565b915061328e8261324f565b602082019050919050565b5f6020820190508181035f8301526132b081613277565b9050919050565b5f8160011c9050919050565b5f808291508390505b600185111561330c578086048111156132e8576132e76131ef565b5b60018516156132f75780820291505b8081029050613305856132b7565b94506132cc565b94509492505050565b5f8261332457600190506133df565b81613331575f90506133df565b8160018114613347576002811461335157613380565b60019150506133df565b60ff841115613363576133626131ef565b5b8360020a91508482111561337a576133796131ef565b5b506133df565b5060208310610133831016604e8410600b84101617156133b55782820a9050838111156133b0576133af6131ef565b5b6133df565b6133c284848460016132c3565b925090508184048111156133d9576133d86131ef565b5b81810290505b9392505050565b5f6133f082612d35565b91506133fb8361304e565b92506134287fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613315565b905092915050565b5f61343a82612d35565b915061344583612d35565b925082820261345381612d35565b9150828204841483151761346a576134696131ef565b5b5092915050565b7f5370656e64657220697320746865207a65726f206164647265737300000000005f82015250565b5f6134a5601b83612efc565b91506134b082613471565b602082019050919050565b5f6020820190508181035f8301526134d281613499565b9050919050565b7f4665652072656365697665722063616e6e6f74206265207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613533602383612efc565b915061353e826134d9565b604082019050919050565b5f6020820190508181035f83015261356081613527565b9050919050565b7f54726164696e6720616c726561647920456e61626c65642e00000000000000005f82015250565b5f61359b601883612efc565b91506135a682613567565b602082019050919050565b5f6020820190508181035f8301526135c88161358f565b9050919050565b7f53656e64657220697320746865207a65726f20616464726573730000000000005f82015250565b5f613603601a83612efc565b915061360e826135cf565b602082019050919050565b5f6020820190508181035f830152613630816135f7565b9050919050565b7f526563697069656e7420697320746865207a65726f20616464726573730000005f82015250565b5f61366b601d83612efc565b915061367682613637565b602082019050919050565b5f6020820190508181035f8301526136988161365f565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6136f9602883612efc565b91506137048261369f565b604082019050919050565b5f6020820190508181035f830152613726816136ed565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61376482612d35565b915061376f83612d35565b92508261377f5761377e61372d565b5b828204905092915050565b7f486f6c64657220697320746865207a65726f20616464726573730000000000005f82015250565b5f6137be601a83612efc565b91506137c98261378a565b602082019050919050565b5f6020820190508181035f8301526137eb816137b2565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61384c602683612efc565b9150613857826137f2565b604082019050919050565b5f6020820190508181035f83015261387981613840565b9050919050565b7f54726164696e67206e6f74206f70656e207965740000000000000000000000005f82015250565b5f6138b4601483612efc565b91506138bf82613880565b602082019050919050565b5f6020820190508181035f8301526138e1816138a8565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613942602683612efc565b915061394d826138e8565b604082019050919050565b5f6020820190508181035f83015261396f81613936565b9050919050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d69745f8201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b5f6139d0603e83612efc565b91506139db82613976565b604082019050919050565b5f6020820190508181035f8301526139fd816139c4565b9050919050565b7f5478204c696d69742045786365656465640000000000000000000000000000005f82015250565b5f613a38601183612efc565b9150613a4382613a04565b602082019050919050565b5f6020820190508181035f830152613a6581613a2c565b9050919050565b5f613a7682612d35565b9150613a8183612d35565b9250828203905081811115613a9957613a986131ef565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f613b1c613b17613b1284613af9565b613113565b612d35565b9050919050565b613b2c81613b02565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613b6481612e64565b82525050565b5f613b758383613b5b565b60208301905092915050565b5f602082019050919050565b5f613b9782613b32565b613ba18185613b3c565b9350613bac83613b4c565b805f5b83811015613bdc578151613bc38882613b6a565b9750613bce83613b81565b925050600181019050613baf565b5085935050505092915050565b5f60a082019050613bfc5f830188612d3e565b613c096020830187613b23565b8181036040830152613c1b8186613b8d565b9050613c2a60608301856130ad565b613c376080830184612d3e565b9695505050505050565b5f81905092915050565b50565b5f613c595f83613c41565b9150613c6482613c4b565b5f82019050919050565b5f613c7882613c4e565b9150819050919050565b7f4661696c656420746f2073656e6420657468657220746f205465616d204665655f8201527f2052656365697665722e00000000000000000000000000000000000000000000602082015250565b5f613cdc602a83612efc565b9150613ce782613c82565b604082019050919050565b5f6020820190508181035f830152613d0981613cd0565b9050919050565b7f4661696c656420746f2073656e6420657468657220746f204d61726b6574696e5f8201527f67204665652052656365697665722e0000000000000000000000000000000000602082015250565b5f613d6a602f83612efc565b9150613d7582613d10565b604082019050919050565b5f6020820190508181035f830152613d9781613d5e565b905091905056fea2646970667358221220ae54b621d6d4113f7fb92660fcf6c361555a50b42b6b64aec64464abed9a38c764736f6c634300081a0033
Deployed Bytecode Sourcemap
3730:12155:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4653:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14856:360;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15650:230;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5088:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7898:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7180:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5007:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7602:288;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15224:418;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6910:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12503:223;;;;;;;;;;;;;:::i;:::-;;8268:668;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7004:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4487:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8944:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14494:354;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4119:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5051:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7350:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1785:150;;;;;;;;;;;;;:::i;:::-;;4064:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7266:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14244:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1571:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7090:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4965:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8028:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1287:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9196:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13967:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7461:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1943:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12296:199;;;;;;;;;;;;;:::i;:::-;;4895:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4653:67;;;;:::o;14856:360::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14987:1:::1;14970:13;14959:8;:24;;;;:::i;:::-;:29;;14951:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15047:8;15033:11;:22;;;;15085:13;15066:16;:32;;;;15133:13;15123:8;:23;;;;:::i;:::-;15109:12;:37;;;;15191:16;;15178:11;;15162:46;;;;;;;;;;14856:360:::0;;:::o;15650:230::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15756:8:::1;15742:11;;:22;;;;;;;;;;;;;;;;;;3983:1;15801:2;:13;;;;:::i;:::-;15791:7;:23;;;;:::i;:::-;15775:13;:39;;;;15864:7;15854:8;15830:42;;;;;;;;;;;;15650:230:::0;;:::o;5088:49::-;;;;:::o;7898:122::-;7953:4;7977:35;7985:7;7994:17;7977:7;:35::i;:::-;7970:42;;7898:122;;;:::o;7180:80::-;7228:13;7252:5;;;;;;;;;;;;;;;;;7245:12;;7180:80;:::o;5007:31::-;;;;;;;;;;;;;:::o;7602:288::-;7677:4;7721:1;7702:21;;:7;:21;;;7694:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7801:6;7766:11;:23;7778:10;7766:23;;;;;;;;;;;;;;;:32;7790:7;7766:32;;;;;;;;;;;;;;;:41;;;;7844:7;7823:37;;7832:10;7823:37;;;7853:6;7823:37;;;;;;:::i;:::-;;;;;;;;7878:4;7871:11;;7602:288;;;;:::o;15224:418::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15384:1:::1;15351:35;;:21;:35;;;;:69;;;;;15418:1;15390:30;;:16;:30;;;;15351:69;15343:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;15495:21;15472:20;;:44;;;;;;;;;;;;;;;;;;15545:16;15527:15;;:34;;;;;;;;;;;;;;;;;;15618:15;;;;;;;;;;;15577:57;;15596:20;;;;;;;;;;;15577:57;;;;;;;;;;;;15224:418:::0;;:::o;6910:88::-;6965:7;3983:1;4042:2;:13;;;;:::i;:::-;4030:9;:25;;;;:::i;:::-;6976:19;;6910:88;:::o;12503:223::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12563:11:::1;;;;;;;;;;;12562:12;12554:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;12627:4;12613:11;;:18;;;;;;;;;;;;;;;;;;12653:12;12642:8;:23;;;;12709:8;;12696:11;;;;;;;;;;;12681:37;;;;;;;;;;;;12503:223::o:0;8268:668::-;8368:4;8411:1;8393:20;;:6;:20;;;8385:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8484:1;8463:23;;:9;:23;;;8455:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8531:24;8558:11;:19;8570:6;8558:19;;;;;;;;;;;;;;;:33;8578:12;:10;:12::i;:::-;8558:33;;;;;;;;;;;;;;;;8531:60;;8625:17;8605:16;:37;8602:267;;8686:6;8666:16;:26;;8658:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8836:6;8817:16;:25;8781:11;:19;8793:6;8781:19;;;;;;;;;;;;;;;:33;8801:12;:10;:12::i;:::-;8781:33;;;;;;;;;;;;;;;:61;;;;8602:267;8888:40;8902:6;8910:9;8921:6;8888:13;:40::i;:::-;8881:47;;;8268:668;;;;;:::o;7004:80::-;7056:5;3983:1;7065:16;;7004:80;:::o;4487:65::-;;;;:::o;8944:244::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9050:1:::1;9030:16;:21;;9022:30;;;::::0;::::1;;9119:4;9098:16;3983:1;4042:2;:13;;;;:::i;:::-;4030:9;:25;;;;:::i;:::-;9083:31;;;;:::i;:::-;9082:41;;;;:::i;:::-;9063:16;:60;;;;9156:16;;9139:34;;;;;;;;;;8944:244:::0;:::o;14494:354::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14625:1:::1;14608:13;14597:8;:24;;;;:::i;:::-;:29;;14588:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;14684:8;14671:10;:21;;;;14721:13;14703:15;:31;;;;14768:13;14758:8;:23;;;;:::i;:::-;14745:11;:36;;;;14824:15;;14812:10;;14797:43;;;;;;;;;;14494:354:::0;;:::o;4119:52::-;;;;:::o;5051:30::-;;;;;;;;;;;;;:::o;7350:105::-;7416:7;7434:9;:18;7444:7;7434:18;;;;;;;;;;;;;;;;7427:25;;7350:105;;;:::o;1785:150::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1894:1:::1;1857:40;;1878:6;::::0;::::1;;;;;;;;1857:40;;;;;;;;;;;;1925:1;1908:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1785:150::o:0;4064:48::-;;;;:::o;7266:78::-;7318:7;7335;:5;:7::i;:::-;7328:14;;7266:78;:::o;14244:240::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14355:1:::1;14337:20;;:6;:20;;::::0;14329:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14425:6;14399:15;:23;14415:6;14399:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;14469:6;14447:29;;14461:6;14447:29;;;;;;;;;;;;14244:240:::0;;:::o;1571:79::-;1609:7;1636:6;;;;;;;;;;;1629:13;;1571:79;:::o;7090:84::-;7140:13;7164:7;;;;;;;;;;;;;;;;;7157:14;;7090:84;:::o;4965:29::-;;;:::o;8028:232::-;8108:4;8154:1;8133:23;;:9;:23;;;8125:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8208:44;8222:10;8234:9;8245:6;8208:13;:44::i;:::-;8201:51;;8028:232;;;;:::o;1287:21::-;;;;;;;;;;;;:::o;9196:210::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9290:1:::1;9274:12;:17;;9266:26;;;::::0;::::1;;9352:4;9335:12;3983:1;4042:2;:13;;;;:::i;:::-;4030:9;:25;;;;:::i;:::-;9320:27;;;;:::i;:::-;9319:37;;;;:::i;:::-;9304:12;:52;;;;9385:12;;9372:26;;;;;;;;;;9196:210:::0;:::o;13967:269::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14071:1:::1;14053:20;;:6;:20;;::::0;14045:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14137:6;14115:11;:19;14127:6;14115:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;14180:6;14154:15;:23;14170:6;14154:23;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;14221:6;14202:26;;14213:6;14202:26;;;;;;;;;;;;13967:269:::0;;:::o;7461:133::-;7545:7;7563:11;:19;7575:6;7563:19;;;;;;;;;;;;;;;:28;7583:7;7563:28;;;;;;;;;;;;;;;;7556:35;;7461:133;;;;:::o;1943:244::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2052:1:::1;2032:22;;:8;:22;;::::0;2024:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2142:8;2113:38;;2134:6;::::0;::::1;;;;;;;;2113:38;;;;;;;;;;;;2171:8;2162:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1943:244:::0;:::o;12296:199::-;1708:12;:10;:12::i;:::-;1698:22;;:6;;;;;;;;;;:22;;;1690:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3983:1:::1;4042:2;:13;;;;:::i;:::-;4030:9;:25;;;;:::i;:::-;12354:16;:31;;;;3983:1;4042:2;:13;;;;:::i;:::-;4030:9;:25;;;;:::i;:::-;12396:12;:27;;;;12474:12;;12456:16;;12439:48;;;;;;;;;;12296:199::o:0;4895:24::-;;;;;;;;;;;;;:::o;1130:115::-;1183:15;1226:10;1211:26;;1130:115;:::o;9423:1510::-;9515:4;9537:6;;;;;;;;;;;9534:63;;;9553:41;9568:6;9576:9;9587:6;9553:14;:41::i;:::-;9546:48;;;;9534:63;9622:7;:5;:7::i;:::-;9612:17;;:6;:17;;;9609:101;;9653:11;;;;;;;;;;;9645:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;9609:101;9730:28;9743:6;9751;9730:12;:28::i;:::-;9779:21;9803:9;:17;9813:6;9803:17;;;;;;;;;;;;;;;;9779:41;;9856:6;9839:13;:23;;9831:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;9918:22;9944:11;:19;9956:6;9944:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;9967:11;:22;9979:9;9967:22;;;;;;;;;;;;;;;;;;;;;;;;;9944:45;9943:93;;10002:34;10010:6;10018;10026:9;10002:7;:34::i;:::-;9943:93;;;9993:6;9943:93;9918:118;;10063:7;:5;:7::i;:::-;10053:17;;:6;:17;;;;:169;;;;;10096:4;10075:26;;:9;:26;;;;:57;;;;;3824:42;10106:26;;:9;:26;;;;10075:57;:78;;;;;10149:4;10136:17;;:9;:17;;;;10075:78;:115;;;;;10170:20;;;;;;;;;;;10157:33;;:9;:33;;;;10075:115;:146;;;;;10195:15;:26;10211:9;10195:26;;;;;;;;;;;;;;;;;;;;;;;;;10194:27;10075:146;10053:169;10049:370;;;10238:18;10259:20;10269:9;10259;:20::i;:::-;10238:41;;10335:16;;10316:14;10303:10;:27;;;;:::i;:::-;10302:49;;10294:123;;;;;;;;;;;;:::i;:::-;;;;;;;;;10223:196;10049:370;10460:12;10448:8;;:24;;:82;;;;;10517:13;;10489:9;:24;10507:4;10489:24;;;;;;;;;;;;;;;;:41;;10448:82;:110;;;;;10547:11;;;;;;;;;;;10448:110;:134;;;;;10576:6;;;;;;;;;;;10575:7;10448:134;:168;;;;;10612:4;10599:17;;:9;:17;;;10448:168;10431:272;;;10643:10;:8;:10::i;:::-;10679:12;10668:8;:23;;;;10431:272;10776:6;10760:13;:22;10740:9;:17;10750:6;10740:17;;;;;;;;;;;;;;;:42;;;;10828:14;10804:9;:20;10814:9;10804:20;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;10877:9;10860:43;;10869:6;10860:43;;;10888:14;10860:43;;;;;;:::i;:::-;;;;;;;;10921:4;10914:11;;;;9423:1510;;;;;;:::o;10945:447::-;11038:4;11055:21;11079:9;:17;11089:6;11079:17;;;;;;;;;;;;;;;;11055:41;;11132:6;11115:13;:23;;11107:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11253:6;11237:13;:22;11217:9;:17;11227:6;11217:17;;;;;;;;;;;;;;;:42;;;;11305:6;11281:9;:20;11291:9;11281:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;11344:9;11327:35;;11336:6;11327:35;;;11355:6;11327:35;;;;;;:::i;:::-;;;;;;;;11380:4;11373:11;;;10945:447;;;;;:::o;11400:166::-;11497:12;;11487:6;:22;;:49;;;;11513:15;:23;11529:6;11513:23;;;;;;;;;;;;;;;;;;;;;;;;;11487:49;11479:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11400:166;;:::o;11696:592::-;11782:7;11802:17;11822:1;11802:21;;11852:4;11839:17;;:9;:17;;;11836:253;;11911:3;11895:12;;11886:6;:21;;;;:::i;:::-;11885:29;;;;:::i;:::-;11873:41;;11836:253;;;11945:4;11935:14;;:6;:14;;;11932:157;;12003:3;11988:11;;11979:6;:20;;;;:::i;:::-;11978:28;;;;:::i;:::-;11966:40;;11932:157;;;12074:3;4767:1;12050:6;:20;;;;:::i;:::-;12049:28;;;;:::i;:::-;12037:40;;11932:157;11836:253;12129:9;12101;:24;12119:4;12101:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;12179:4;12154:42;;12163:6;12154:42;;;12186:9;12154:42;;;;;;:::i;:::-;;;;;;;;12207:20;12239:9;12230:6;:18;;;;:::i;:::-;12207:41;;12268:12;12261:19;;;;11696:592;;;;;:::o;12734:1225::-;5194:4;5185:6;;:13;;;;;;;;;;;;;;;;;;12783:16:::1;12816:12;;12802:11;;:26;;;;:::i;:::-;12783:45;;12839:15;12870:11;;12857:10;;:24;;;;:::i;:::-;12839:42;;12892:21;12928:26:::0;12971:20:::1;12994:13;;12971:36;;13020:21;13058:1;13044:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13020:40;;13089:4;13071;13076:1;13071:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13115:4;13105;13110:1;13105:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;13132:6;;;;;;;;;;;:57;;;13204:12;13231:1;13247:4;13274;13294:15;13132:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13333:19;13355:21;13333:43;;13404:1;13392:8;:13:::0;13389:145:::1;;13438:1;13422:17;;13389:145;;;13514:8;13503:7;13489:11;:21;;;;:::i;:::-;13488:34;;;;:::i;:::-;13472:50;;13389:145;13581:13;13567:11;:27;;;;:::i;:::-;13546:48;;13608:15;13636;;;;;;;;;;;13628:29;;13665:13;13628:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13607:76;;;13702:10;13694:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;13781:16;13810:20;;;;;;;;;;;13802:34;;13844:18;13802:65;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13780:87;;;13886:11;13878:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;12772:1187;;;;;;;;;5212:5:::0;5203:6;;:14;;;;;;;;;;;;;;;;;;12734:1225::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:122;842:24;860:5;842:24;:::i;:::-;835:5;832:35;822:63;;881:1;878;871:12;822:63;769:122;:::o;897:139::-;943:5;981:6;968:20;959:29;;997:33;1024:5;997:33;:::i;:::-;897:139;;;;:::o;1042:474::-;1110:6;1118;1167:2;1155:9;1146:7;1142:23;1138:32;1135:119;;;1173:79;;:::i;:::-;1135:119;1293:1;1318:53;1363:7;1354:6;1343:9;1339:22;1318:53;:::i;:::-;1308:63;;1264:117;1420:2;1446:53;1491:7;1482:6;1471:9;1467:22;1446:53;:::i;:::-;1436:63;;1391:118;1042:474;;;;;:::o;1522:90::-;1556:7;1599:5;1592:13;1585:21;1574:32;;1522:90;;;:::o;1618:116::-;1688:21;1703:5;1688:21;:::i;:::-;1681:5;1678:32;1668:60;;1724:1;1721;1714:12;1668:60;1618:116;:::o;1740:133::-;1783:5;1821:6;1808:20;1799:29;;1837:30;1861:5;1837:30;:::i;:::-;1740:133;;;;:::o;1879:468::-;1944:6;1952;2001:2;1989:9;1980:7;1976:23;1972:32;1969:119;;;2007:79;;:::i;:::-;1969:119;2127:1;2152:50;2194:7;2185:6;2174:9;2170:22;2152:50;:::i;:::-;2142:60;;2098:114;2251:2;2277:53;2322:7;2313:6;2302:9;2298:22;2277:53;:::i;:::-;2267:63;;2222:118;1879:468;;;;;:::o;2353:126::-;2390:7;2430:42;2423:5;2419:54;2408:65;;2353:126;;;:::o;2485:96::-;2522:7;2551:24;2569:5;2551:24;:::i;:::-;2540:35;;2485:96;;;:::o;2587:122::-;2660:24;2678:5;2660:24;:::i;:::-;2653:5;2650:35;2640:63;;2699:1;2696;2689:12;2640:63;2587:122;:::o;2715:139::-;2761:5;2799:6;2786:20;2777:29;;2815:33;2842:5;2815:33;:::i;:::-;2715:139;;;;:::o;2860:329::-;2919:6;2968:2;2956:9;2947:7;2943:23;2939:32;2936:119;;;2974:79;;:::i;:::-;2936:119;3094:1;3119:53;3164:7;3155:6;3144:9;3140:22;3119:53;:::i;:::-;3109:63;;3065:117;2860:329;;;;:::o;3195:109::-;3276:21;3291:5;3276:21;:::i;:::-;3271:3;3264:34;3195:109;;:::o;3310:210::-;3397:4;3435:2;3424:9;3420:18;3412:26;;3448:65;3510:1;3499:9;3495:17;3486:6;3448:65;:::i;:::-;3310:210;;;;:::o;3526:99::-;3578:6;3612:5;3606:12;3596:22;;3526:99;;;:::o;3631:169::-;3715:11;3749:6;3744:3;3737:19;3789:4;3784:3;3780:14;3765:29;;3631:169;;;;:::o;3806:139::-;3895:6;3890:3;3885;3879:23;3936:1;3927:6;3922:3;3918:16;3911:27;3806:139;;;:::o;3951:102::-;3992:6;4043:2;4039:7;4034:2;4027:5;4023:14;4019:28;4009:38;;3951:102;;;:::o;4059:377::-;4147:3;4175:39;4208:5;4175:39;:::i;:::-;4230:71;4294:6;4289:3;4230:71;:::i;:::-;4223:78;;4310:65;4368:6;4363:3;4356:4;4349:5;4345:16;4310:65;:::i;:::-;4400:29;4422:6;4400:29;:::i;:::-;4395:3;4391:39;4384:46;;4151:285;4059:377;;;;:::o;4442:313::-;4555:4;4593:2;4582:9;4578:18;4570:26;;4642:9;4636:4;4632:20;4628:1;4617:9;4613:17;4606:47;4670:78;4743:4;4734:6;4670:78;:::i;:::-;4662:86;;4442:313;;;;:::o;4761:474::-;4829:6;4837;4886:2;4874:9;4865:7;4861:23;4857:32;4854:119;;;4892:79;;:::i;:::-;4854:119;5012:1;5037:53;5082:7;5073:6;5062:9;5058:22;5037:53;:::i;:::-;5027:63;;4983:117;5139:2;5165:53;5210:7;5201:6;5190:9;5186:22;5165:53;:::i;:::-;5155:63;;5110:118;4761:474;;;;;:::o;5241:::-;5309:6;5317;5366:2;5354:9;5345:7;5341:23;5337:32;5334:119;;;5372:79;;:::i;:::-;5334:119;5492:1;5517:53;5562:7;5553:6;5542:9;5538:22;5517:53;:::i;:::-;5507:63;;5463:117;5619:2;5645:53;5690:7;5681:6;5670:9;5666:22;5645:53;:::i;:::-;5635:63;;5590:118;5241:474;;;;;:::o;5721:619::-;5798:6;5806;5814;5863:2;5851:9;5842:7;5838:23;5834:32;5831:119;;;5869:79;;:::i;:::-;5831:119;5989:1;6014:53;6059:7;6050:6;6039:9;6035:22;6014:53;:::i;:::-;6004:63;;5960:117;6116:2;6142:53;6187:7;6178:6;6167:9;6163:22;6142:53;:::i;:::-;6132:63;;6087:118;6244:2;6270:53;6315:7;6306:6;6295:9;6291:22;6270:53;:::i;:::-;6260:63;;6215:118;5721:619;;;;;:::o;6346:86::-;6381:7;6421:4;6414:5;6410:16;6399:27;;6346:86;;;:::o;6438:112::-;6521:22;6537:5;6521:22;:::i;:::-;6516:3;6509:35;6438:112;;:::o;6556:214::-;6645:4;6683:2;6672:9;6668:18;6660:26;;6696:67;6760:1;6749:9;6745:17;6736:6;6696:67;:::i;:::-;6556:214;;;;:::o;6776:329::-;6835:6;6884:2;6872:9;6863:7;6859:23;6855:32;6852:119;;;6890:79;;:::i;:::-;6852:119;7010:1;7035:53;7080:7;7071:6;7060:9;7056:22;7035:53;:::i;:::-;7025:63;;6981:117;6776:329;;;;:::o;7111:118::-;7198:24;7216:5;7198:24;:::i;:::-;7193:3;7186:37;7111:118;;:::o;7235:222::-;7328:4;7366:2;7355:9;7351:18;7343:26;;7379:71;7447:1;7436:9;7432:17;7423:6;7379:71;:::i;:::-;7235:222;;;;:::o;7463:468::-;7528:6;7536;7585:2;7573:9;7564:7;7560:23;7556:32;7553:119;;;7591:79;;:::i;:::-;7553:119;7711:1;7736:53;7781:7;7772:6;7761:9;7757:22;7736:53;:::i;:::-;7726:63;;7682:117;7838:2;7864:50;7906:7;7897:6;7886:9;7882:22;7864:50;:::i;:::-;7854:60;;7809:115;7463:468;;;;;:::o;7937:60::-;7965:3;7986:5;7979:12;;7937:60;;;:::o;8003:142::-;8053:9;8086:53;8104:34;8113:24;8131:5;8113:24;:::i;:::-;8104:34;:::i;:::-;8086:53;:::i;:::-;8073:66;;8003:142;;;:::o;8151:126::-;8201:9;8234:37;8265:5;8234:37;:::i;:::-;8221:50;;8151:126;;;:::o;8283:144::-;8351:9;8384:37;8415:5;8384:37;:::i;:::-;8371:50;;8283:144;;;:::o;8433:167::-;8538:55;8587:5;8538:55;:::i;:::-;8533:3;8526:68;8433:167;;:::o;8606:258::-;8717:4;8755:2;8744:9;8740:18;8732:26;;8768:89;8854:1;8843:9;8839:17;8830:6;8768:89;:::i;:::-;8606:258;;;;:::o;8870:182::-;9010:34;9006:1;8998:6;8994:14;8987:58;8870:182;:::o;9058:366::-;9200:3;9221:67;9285:2;9280:3;9221:67;:::i;:::-;9214:74;;9297:93;9386:3;9297:93;:::i;:::-;9415:2;9410:3;9406:12;9399:19;;9058:366;;;:::o;9430:419::-;9596:4;9634:2;9623:9;9619:18;9611:26;;9683:9;9677:4;9673:20;9669:1;9658:9;9654:17;9647:47;9711:131;9837:4;9711:131;:::i;:::-;9703:139;;9430:419;;;:::o;9855:180::-;9903:77;9900:1;9893:88;10000:4;9997:1;9990:15;10024:4;10021:1;10014:15;10041:191;10081:3;10100:20;10118:1;10100:20;:::i;:::-;10095:25;;10134:20;10152:1;10134:20;:::i;:::-;10129:25;;10177:1;10174;10170:9;10163:16;;10198:3;10195:1;10192:10;10189:36;;;10205:18;;:::i;:::-;10189:36;10041:191;;;;:::o;10238:178::-;10378:30;10374:1;10366:6;10362:14;10355:54;10238:178;:::o;10422:366::-;10564:3;10585:67;10649:2;10644:3;10585:67;:::i;:::-;10578:74;;10661:93;10750:3;10661:93;:::i;:::-;10779:2;10774:3;10770:12;10763:19;;10422:366;;;:::o;10794:419::-;10960:4;10998:2;10987:9;10983:18;10975:26;;11047:9;11041:4;11037:20;11033:1;11022:9;11018:17;11011:47;11075:131;11201:4;11075:131;:::i;:::-;11067:139;;10794:419;;;:::o;11219:102::-;11261:8;11308:5;11305:1;11301:13;11280:34;;11219:102;;;:::o;11327:848::-;11388:5;11395:4;11419:6;11410:15;;11443:5;11434:14;;11457:712;11478:1;11468:8;11465:15;11457:712;;;11573:4;11568:3;11564:14;11558:4;11555:24;11552:50;;;11582:18;;:::i;:::-;11552:50;11632:1;11622:8;11618:16;11615:451;;;12047:4;12040:5;12036:16;12027:25;;11615:451;12097:4;12091;12087:15;12079:23;;12127:32;12150:8;12127:32;:::i;:::-;12115:44;;11457:712;;;11327:848;;;;;;;:::o;12181:1073::-;12235:5;12426:8;12416:40;;12447:1;12438:10;;12449:5;;12416:40;12475:4;12465:36;;12492:1;12483:10;;12494:5;;12465:36;12561:4;12609:1;12604:27;;;;12645:1;12640:191;;;;12554:277;;12604:27;12622:1;12613:10;;12624:5;;;12640:191;12685:3;12675:8;12672:17;12669:43;;;12692:18;;:::i;:::-;12669:43;12741:8;12738:1;12734:16;12725:25;;12776:3;12769:5;12766:14;12763:40;;;12783:18;;:::i;:::-;12763:40;12816:5;;;12554:277;;12940:2;12930:8;12927:16;12921:3;12915:4;12912:13;12908:36;12890:2;12880:8;12877:16;12872:2;12866:4;12863:12;12859:35;12843:111;12840:246;;;12996:8;12990:4;12986:19;12977:28;;13031:3;13024:5;13021:14;13018:40;;;13038:18;;:::i;:::-;13018:40;13071:5;;12840:246;13111:42;13149:3;13139:8;13133:4;13130:1;13111:42;:::i;:::-;13096:57;;;;13185:4;13180:3;13176:14;13169:5;13166:25;13163:51;;;13194:18;;:::i;:::-;13163:51;13243:4;13236:5;13232:16;13223:25;;12181:1073;;;;;;:::o;13260:281::-;13318:5;13342:23;13360:4;13342:23;:::i;:::-;13334:31;;13386:25;13402:8;13386:25;:::i;:::-;13374:37;;13430:104;13467:66;13457:8;13451:4;13430:104;:::i;:::-;13421:113;;13260:281;;;;:::o;13547:410::-;13587:7;13610:20;13628:1;13610:20;:::i;:::-;13605:25;;13644:20;13662:1;13644:20;:::i;:::-;13639:25;;13699:1;13696;13692:9;13721:30;13739:11;13721:30;:::i;:::-;13710:41;;13900:1;13891:7;13887:15;13884:1;13881:22;13861:1;13854:9;13834:83;13811:139;;13930:18;;:::i;:::-;13811:139;13595:362;13547:410;;;;:::o;13963:177::-;14103:29;14099:1;14091:6;14087:14;14080:53;13963:177;:::o;14146:366::-;14288:3;14309:67;14373:2;14368:3;14309:67;:::i;:::-;14302:74;;14385:93;14474:3;14385:93;:::i;:::-;14503:2;14498:3;14494:12;14487:19;;14146:366;;;:::o;14518:419::-;14684:4;14722:2;14711:9;14707:18;14699:26;;14771:9;14765:4;14761:20;14757:1;14746:9;14742:17;14735:47;14799:131;14925:4;14799:131;:::i;:::-;14791:139;;14518:419;;;:::o;14943:222::-;15083:34;15079:1;15071:6;15067:14;15060:58;15152:5;15147:2;15139:6;15135:15;15128:30;14943:222;:::o;15171:366::-;15313:3;15334:67;15398:2;15393:3;15334:67;:::i;:::-;15327:74;;15410:93;15499:3;15410:93;:::i;:::-;15528:2;15523:3;15519:12;15512:19;;15171:366;;;:::o;15543:419::-;15709:4;15747:2;15736:9;15732:18;15724:26;;15796:9;15790:4;15786:20;15782:1;15771:9;15767:17;15760:47;15824:131;15950:4;15824:131;:::i;:::-;15816:139;;15543:419;;;:::o;15968:174::-;16108:26;16104:1;16096:6;16092:14;16085:50;15968:174;:::o;16148:366::-;16290:3;16311:67;16375:2;16370:3;16311:67;:::i;:::-;16304:74;;16387:93;16476:3;16387:93;:::i;:::-;16505:2;16500:3;16496:12;16489:19;;16148:366;;;:::o;16520:419::-;16686:4;16724:2;16713:9;16709:18;16701:26;;16773:9;16767:4;16763:20;16759:1;16748:9;16744:17;16737:47;16801:131;16927:4;16801:131;:::i;:::-;16793:139;;16520:419;;;:::o;16945:176::-;17085:28;17081:1;17073:6;17069:14;17062:52;16945:176;:::o;17127:366::-;17269:3;17290:67;17354:2;17349:3;17290:67;:::i;:::-;17283:74;;17366:93;17455:3;17366:93;:::i;:::-;17484:2;17479:3;17475:12;17468:19;;17127:366;;;:::o;17499:419::-;17665:4;17703:2;17692:9;17688:18;17680:26;;17752:9;17746:4;17742:20;17738:1;17727:9;17723:17;17716:47;17780:131;17906:4;17780:131;:::i;:::-;17772:139;;17499:419;;;:::o;17924:179::-;18064:31;18060:1;18052:6;18048:14;18041:55;17924:179;:::o;18109:366::-;18251:3;18272:67;18336:2;18331:3;18272:67;:::i;:::-;18265:74;;18348:93;18437:3;18348:93;:::i;:::-;18466:2;18461:3;18457:12;18450:19;;18109:366;;;:::o;18481:419::-;18647:4;18685:2;18674:9;18670:18;18662:26;;18734:9;18728:4;18724:20;18720:1;18709:9;18705:17;18698:47;18762:131;18888:4;18762:131;:::i;:::-;18754:139;;18481:419;;;:::o;18906:227::-;19046:34;19042:1;19034:6;19030:14;19023:58;19115:10;19110:2;19102:6;19098:15;19091:35;18906:227;:::o;19139:366::-;19281:3;19302:67;19366:2;19361:3;19302:67;:::i;:::-;19295:74;;19378:93;19467:3;19378:93;:::i;:::-;19496:2;19491:3;19487:12;19480:19;;19139:366;;;:::o;19511:419::-;19677:4;19715:2;19704:9;19700:18;19692:26;;19764:9;19758:4;19754:20;19750:1;19739:9;19735:17;19728:47;19792:131;19918:4;19792:131;:::i;:::-;19784:139;;19511:419;;;:::o;19936:180::-;19984:77;19981:1;19974:88;20081:4;20078:1;20071:15;20105:4;20102:1;20095:15;20122:185;20162:1;20179:20;20197:1;20179:20;:::i;:::-;20174:25;;20213:20;20231:1;20213:20;:::i;:::-;20208:25;;20252:1;20242:35;;20257:18;;:::i;:::-;20242:35;20299:1;20296;20292:9;20287:14;;20122:185;;;;:::o;20313:176::-;20453:28;20449:1;20441:6;20437:14;20430:52;20313:176;:::o;20495:366::-;20637:3;20658:67;20722:2;20717:3;20658:67;:::i;:::-;20651:74;;20734:93;20823:3;20734:93;:::i;:::-;20852:2;20847:3;20843:12;20836:19;;20495:366;;;:::o;20867:419::-;21033:4;21071:2;21060:9;21056:18;21048:26;;21120:9;21114:4;21110:20;21106:1;21095:9;21091:17;21084:47;21148:131;21274:4;21148:131;:::i;:::-;21140:139;;20867:419;;;:::o;21292:225::-;21432:34;21428:1;21420:6;21416:14;21409:58;21501:8;21496:2;21488:6;21484:15;21477:33;21292:225;:::o;21523:366::-;21665:3;21686:67;21750:2;21745:3;21686:67;:::i;:::-;21679:74;;21762:93;21851:3;21762:93;:::i;:::-;21880:2;21875:3;21871:12;21864:19;;21523:366;;;:::o;21895:419::-;22061:4;22099:2;22088:9;22084:18;22076:26;;22148:9;22142:4;22138:20;22134:1;22123:9;22119:17;22112:47;22176:131;22302:4;22176:131;:::i;:::-;22168:139;;21895:419;;;:::o;22320:170::-;22460:22;22456:1;22448:6;22444:14;22437:46;22320:170;:::o;22496:366::-;22638:3;22659:67;22723:2;22718:3;22659:67;:::i;:::-;22652:74;;22735:93;22824:3;22735:93;:::i;:::-;22853:2;22848:3;22844:12;22837:19;;22496:366;;;:::o;22868:419::-;23034:4;23072:2;23061:9;23057:18;23049:26;;23121:9;23115:4;23111:20;23107:1;23096:9;23092:17;23085:47;23149:131;23275:4;23149:131;:::i;:::-;23141:139;;22868:419;;;:::o;23293:225::-;23433:34;23429:1;23421:6;23417:14;23410:58;23502:8;23497:2;23489:6;23485:15;23478:33;23293:225;:::o;23524:366::-;23666:3;23687:67;23751:2;23746:3;23687:67;:::i;:::-;23680:74;;23763:93;23852:3;23763:93;:::i;:::-;23881:2;23876:3;23872:12;23865:19;;23524:366;;;:::o;23896:419::-;24062:4;24100:2;24089:9;24085:18;24077:26;;24149:9;24143:4;24139:20;24135:1;24124:9;24120:17;24113:47;24177:131;24303:4;24177:131;:::i;:::-;24169:139;;23896:419;;;:::o;24321:249::-;24461:34;24457:1;24449:6;24445:14;24438:58;24530:32;24525:2;24517:6;24513:15;24506:57;24321:249;:::o;24576:366::-;24718:3;24739:67;24803:2;24798:3;24739:67;:::i;:::-;24732:74;;24815:93;24904:3;24815:93;:::i;:::-;24933:2;24928:3;24924:12;24917:19;;24576:366;;;:::o;24948:419::-;25114:4;25152:2;25141:9;25137:18;25129:26;;25201:9;25195:4;25191:20;25187:1;25176:9;25172:17;25165:47;25229:131;25355:4;25229:131;:::i;:::-;25221:139;;24948:419;;;:::o;25373:167::-;25513:19;25509:1;25501:6;25497:14;25490:43;25373:167;:::o;25546:366::-;25688:3;25709:67;25773:2;25768:3;25709:67;:::i;:::-;25702:74;;25785:93;25874:3;25785:93;:::i;:::-;25903:2;25898:3;25894:12;25887:19;;25546:366;;;:::o;25918:419::-;26084:4;26122:2;26111:9;26107:18;26099:26;;26171:9;26165:4;26161:20;26157:1;26146:9;26142:17;26135:47;26199:131;26325:4;26199:131;:::i;:::-;26191:139;;25918:419;;;:::o;26343:194::-;26383:4;26403:20;26421:1;26403:20;:::i;:::-;26398:25;;26437:20;26455:1;26437:20;:::i;:::-;26432:25;;26481:1;26478;26474:9;26466:17;;26505:1;26499:4;26496:11;26493:37;;;26510:18;;:::i;:::-;26493:37;26343:194;;;;:::o;26543:180::-;26591:77;26588:1;26581:88;26688:4;26685:1;26678:15;26712:4;26709:1;26702:15;26729:180;26777:77;26774:1;26767:88;26874:4;26871:1;26864:15;26898:4;26895:1;26888:15;26915:85;26960:7;26989:5;26978:16;;26915:85;;;:::o;27006:158::-;27064:9;27097:61;27115:42;27124:32;27150:5;27124:32;:::i;:::-;27115:42;:::i;:::-;27097:61;:::i;:::-;27084:74;;27006:158;;;:::o;27170:147::-;27265:45;27304:5;27265:45;:::i;:::-;27260:3;27253:58;27170:147;;:::o;27323:114::-;27390:6;27424:5;27418:12;27408:22;;27323:114;;;:::o;27443:184::-;27542:11;27576:6;27571:3;27564:19;27616:4;27611:3;27607:14;27592:29;;27443:184;;;;:::o;27633:132::-;27700:4;27723:3;27715:11;;27753:4;27748:3;27744:14;27736:22;;27633:132;;;:::o;27771:108::-;27848:24;27866:5;27848:24;:::i;:::-;27843:3;27836:37;27771:108;;:::o;27885:179::-;27954:10;27975:46;28017:3;28009:6;27975:46;:::i;:::-;28053:4;28048:3;28044:14;28030:28;;27885:179;;;;:::o;28070:113::-;28140:4;28172;28167:3;28163:14;28155:22;;28070:113;;;:::o;28219:732::-;28338:3;28367:54;28415:5;28367:54;:::i;:::-;28437:86;28516:6;28511:3;28437:86;:::i;:::-;28430:93;;28547:56;28597:5;28547:56;:::i;:::-;28626:7;28657:1;28642:284;28667:6;28664:1;28661:13;28642:284;;;28743:6;28737:13;28770:63;28829:3;28814:13;28770:63;:::i;:::-;28763:70;;28856:60;28909:6;28856:60;:::i;:::-;28846:70;;28702:224;28689:1;28686;28682:9;28677:14;;28642:284;;;28646:14;28942:3;28935:10;;28343:608;;;28219:732;;;;:::o;28957:831::-;29220:4;29258:3;29247:9;29243:19;29235:27;;29272:71;29340:1;29329:9;29325:17;29316:6;29272:71;:::i;:::-;29353:80;29429:2;29418:9;29414:18;29405:6;29353:80;:::i;:::-;29480:9;29474:4;29470:20;29465:2;29454:9;29450:18;29443:48;29508:108;29611:4;29602:6;29508:108;:::i;:::-;29500:116;;29626:72;29694:2;29683:9;29679:18;29670:6;29626:72;:::i;:::-;29708:73;29776:3;29765:9;29761:19;29752:6;29708:73;:::i;:::-;28957:831;;;;;;;;:::o;29794:147::-;29895:11;29932:3;29917:18;;29794:147;;;;:::o;29947:114::-;;:::o;30067:398::-;30226:3;30247:83;30328:1;30323:3;30247:83;:::i;:::-;30240:90;;30339:93;30428:3;30339:93;:::i;:::-;30457:1;30452:3;30448:11;30441:18;;30067:398;;;:::o;30471:379::-;30655:3;30677:147;30820:3;30677:147;:::i;:::-;30670:154;;30841:3;30834:10;;30471:379;;;:::o;30856:229::-;30996:34;30992:1;30984:6;30980:14;30973:58;31065:12;31060:2;31052:6;31048:15;31041:37;30856:229;:::o;31091:366::-;31233:3;31254:67;31318:2;31313:3;31254:67;:::i;:::-;31247:74;;31330:93;31419:3;31330:93;:::i;:::-;31448:2;31443:3;31439:12;31432:19;;31091:366;;;:::o;31463:419::-;31629:4;31667:2;31656:9;31652:18;31644:26;;31716:9;31710:4;31706:20;31702:1;31691:9;31687:17;31680:47;31744:131;31870:4;31744:131;:::i;:::-;31736:139;;31463:419;;;:::o;31888:234::-;32028:34;32024:1;32016:6;32012:14;32005:58;32097:17;32092:2;32084:6;32080:15;32073:42;31888:234;:::o;32128:366::-;32270:3;32291:67;32355:2;32350:3;32291:67;:::i;:::-;32284:74;;32367:93;32456:3;32367:93;:::i;:::-;32485:2;32480:3;32476:12;32469:19;;32128:366;;;:::o;32500:419::-;32666:4;32704:2;32693:9;32689:18;32681:26;;32753:9;32747:4;32743:20;32739:1;32728:9;32724:17;32717:47;32781:131;32907:4;32781:131;:::i;:::-;32773:139;;32500:419;;;:::o
Swarm Source
ipfs://ae54b621d6d4113f7fb92660fcf6c361555a50b42b6b64aec64464abed9a38c7
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.