ERC-20
Source Code
Overview
Max Total Supply
1,000,000,000,000,000 Capitalist
Holders
21
Market
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
182,990,441,178.40580199699888231 CapitalistValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
| # | Exchange | Pair | Price | 24H Volume | % Volume |
|---|
Contract Name:
Capitalistoken
Compiler Version
v0.8.26+commit.8a97fa7a
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-12-18
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;
interface IERC20 {
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address to, uint256 value) external returns (bool);
function allowance(
address owner,
address spender
) external view returns (uint256);
function approve(address spender, uint256 value) external returns (bool);
function transferFrom(
address from,
address to,
uint256 value
) external returns (bool);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
interface IERC20Errors {
error ERC20InsufficientBalance(
address sender,
uint256 balance,
uint256 needed
);
error ERC20InvalidSender(address sender);
error ERC20InvalidReceiver(address receiver);
error ERC20InsufficientAllowance(
address spender,
uint256 allowance,
uint256 needed
);
error ERC20InvalidApprover(address approver);
error ERC20InvalidSpender(address spender);
}
abstract contract Ownable is Context {
address private _owner;
error OwnableUnauthorizedAccount(address account);
error OwnableInvalidOwner(address owner);
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor(address initialOwner) {
if (initialOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(initialOwner);
}
modifier onlyOwner() {
_checkOwner();
_;
}
function owner() public view virtual returns (address) {
return _owner;
}
function _checkOwner() internal view virtual {
if (owner() != _msgSender()) {
revert OwnableUnauthorizedAccount(_msgSender());
}
}
function renounceOwnership() public virtual onlyOwner {
_transferOwnership(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
if (newOwner == address(0)) {
revert OwnableInvalidOwner(address(0));
}
_transferOwnership(newOwner);
}
function _transferOwnership(address newOwner) internal virtual {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
interface IUniswapV2Factory {
function createPair(
address tokenA,
address tokenB
) external returns (address pair);
}
interface IUniswapV2Router02 {
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint amountIn,
uint amountOutMin,
address[] calldata path,
address to,
uint deadline
) external;
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint amountTokenDesired,
uint amountTokenMin,
uint amountETHMin,
address to,
uint deadline
)
external
payable
returns (uint amountToken, uint amountETH, uint liquidity);
}
contract Capitalistoken is Ownable, IERC20, IERC20Metadata, IERC20Errors {
mapping(address => uint256) private _balances;
mapping(address => mapping(address => uint256)) private _allowances;
uint256 private _totalSupply;
uint256 public _maxTxAmount = 30000000000000 * 10 ** 18;
uint256 public _maxWalletSize = 30000000000000 * 10 ** 18;
uint256 private _initialBuyTax = 4;
uint256 private _initialSellTax = 5;
uint256 private _finalBuyTax = 1;
uint256 private _finalSellTax = 1;
uint256 private _reduceBuyTaxAt = 15;
uint256 private _reduceSellTaxAt = 33;
uint256 private _buyCount;
uint256 private _sellCount;
mapping(address => bool) private isRouterAddress;
mapping(address => bool) private isPairAddress;
mapping(address => bool) private _isExcludedFromFee;
address payable private _taxWallet =
payable(0x99f70E8D82B76c1be8060992F90f67F4427Ce200 );
IUniswapV2Router02 private uniswapV2Router =
IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
bool private tradingOpen;
bool private inSwap = false;
bool private swapEnabled = false;
string private _name;
string private _symbol;
error ERC20FailedDecreaseAllowance(
address spender,
uint256 currentAllowance,
uint256 requestedDecrease
);
error NotOwnerOrTWallet();
error WithdrawFailed();
error MaxTXAmount();
error MaxWalletSize();
error ItIs();
modifier lockTheSwap() {
inSwap = true;
_;
inSwap = false;
}
constructor(address _initialRecipient) Ownable(msg.sender) {
_name = "Capitalistoken";
_symbol = "Capitalist";
_mint(_initialRecipient, 1000000000000000 * 10 ** 18);
}
function name() public view virtual returns (string memory) {
return _name;
}
function symbol() public view virtual returns (string memory) {
return _symbol;
}
function decimals() public view virtual returns (uint8) {
return 18;
}
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
function transfer(address to, uint256 value) public virtual returns (bool) {
address owner = _msgSender();
_transfer(owner, to, value);
return true;
}
function allowance(
address owner,
address spender
) public view virtual returns (uint256) {
return _allowances[owner][spender];
}
receive() external payable {}
function removeAllFee() public onlyOwner {
_finalBuyTax = 0;
_finalSellTax = 0;
}
function withdrawStuckETH(address _token) public onlyOwner {
(bool success, ) = address(msg.sender).call{
value: address(this).balance
}("");
if (!success) revert WithdrawFailed();
_transfer(address(this), msg.sender, balanceOf(address(this)));
if (_token != address(0)) {
uint256 cBalance = IERC20(_token).balanceOf(address(this));
if (cBalance > 0) {
IERC20(_token).transfer(msg.sender, cBalance);
}
}
}
function sendETHToFee(uint256 amount) private {
_taxWallet.transfer(amount);
}
function removeLimits() public onlyOwner {
_maxTxAmount = _totalSupply;
_maxWalletSize = _totalSupply;
}
function excludeFromFee(address _wallet) public onlyOwner {
_isExcludedFromFee[_wallet] = true;
}
function includeInFee(address _wallet) public onlyOwner {
_isExcludedFromFee[_wallet] = false;
}
function setTaxWallet(address payable _tWallet) public {
{
if (_msgSender() != owner() && _msgSender() != _taxWallet) {
revert NotOwnerOrTWallet();
}
_isExcludedFromFee[_taxWallet] = false;
_taxWallet = _tWallet;
_isExcludedFromFee[_tWallet] = true;
}
}
function manualSwap() public {
if (_msgSender() != _taxWallet) {
revert();
}
uint256 tokenBalance = balanceOf(address(this));
if (tokenBalance > 0) {
swapTokensForEth(tokenBalance);
}
uint256 ethBalance = address(this).balance;
if (ethBalance > 0) {
sendETHToFee(ethBalance);
}
}
function setSwapEnabled() public onlyOwner {
swapEnabled = !swapEnabled;
}
function openTrading() public onlyOwner {
address uniswapV2Pair;
if (!tradingOpen) {
_approve(address(this), address(uniswapV2Router), totalSupply());
uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
.createPair(address(this), uniswapV2Router.WETH());
}
uniswapV2Router.addLiquidityETH{value: address(this).balance}(
address(this),
balanceOf(address(this)),
0,
0,
owner(),
block.timestamp + 5 minutes
);
IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
tradingOpen = true;
swapEnabled = true;
isRouterAddress[address(uniswapV2Router)] = true;
isPairAddress[uniswapV2Pair] = true;
}
function setRouterAddress(
address _router,
bool _isRouter
) public onlyOwner {
if (isRouterAddress[_router] == _isRouter) {
revert ItIs();
}
isRouterAddress[_router] = _isRouter;
}
function setPairAddress(address _pair, bool _isPair) public onlyOwner {
if (isPairAddress[_pair] == _isPair) {
revert ItIs();
}
isPairAddress[_pair] = _isPair;
}
function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
if (tokenAmount == 0) {
return;
}
if (!tradingOpen) {
return;
}
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = uniswapV2Router.WETH();
_approve(address(this), address(uniswapV2Router), tokenAmount);
uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp + 5 minutes
);
}
function approve(
address spender,
uint256 value
) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, value);
return true;
}
function transferFrom(
address from,
address to,
uint256 value
) public virtual returns (bool) {
address spender = _msgSender();
_spendAllowance(from, spender, value);
_transfer(from, to, value);
return true;
}
function increaseAllowance(
address spender,
uint256 addedValue
) public virtual returns (bool) {
address owner = _msgSender();
_approve(owner, spender, allowance(owner, spender) + addedValue);
return true;
}
function decreaseAllowance(
address spender,
uint256 requestedDecrease
) public virtual returns (bool) {
address owner = _msgSender();
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance < requestedDecrease) {
revert ERC20FailedDecreaseAllowance(
spender,
currentAllowance,
requestedDecrease
);
}
unchecked {
_approve(owner, spender, currentAllowance - requestedDecrease);
}
return true;
}
function _transfer(address from, address to, uint256 value) internal {
if (from == address(0)) {
revert ERC20InvalidSender(address(0));
}
if (to == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(from, to, value);
}
function _update(address from, address to, uint256 value) internal virtual {
uint256 taxAmount = 0;
if (from == address(0)) {
_totalSupply += value;
} else {
uint256 fromBalance = _balances[from];
if (fromBalance < value) {
revert ERC20InsufficientBalance(from, fromBalance, value);
}
if (from != owner() && to != owner() && from != address(this)) {
if (
isPairAddress[from] &&
!isRouterAddress[to] &&
!_isExcludedFromFee[to]
) {
if (value > _maxTxAmount) {
revert MaxTXAmount();
}
if (value > _maxWalletSize) {
revert MaxWalletSize();
}
}
taxAmount =
(value *
(
_buyCount > _reduceBuyTaxAt
? _finalBuyTax
: _initialBuyTax
)) /
(100);
_buyCount++;
if (isPairAddress[to] && from != address(this)) {
if (value > _maxTxAmount) {
revert MaxTXAmount();
}
taxAmount =
(value *
(
_sellCount > _reduceSellTaxAt
? _finalSellTax
: _initialSellTax
)) /
(100);
_sellCount++;
}
if (taxAmount > 0) {
value -= taxAmount;
_balances[address(this)] += taxAmount;
_balances[from] -= taxAmount;
emit Transfer(from, address(this), taxAmount);
}
uint256 contractTokenBalance = balanceOf(address(this));
if (
!inSwap &&
isPairAddress[to] &&
swapEnabled &&
contractTokenBalance > ((_totalSupply * 1) / 100)
) {
swapTokensForEth(contractTokenBalance);
uint256 contractETHBalance = address(this).balance;
if (contractETHBalance > 0) {
sendETHToFee(contractETHBalance);
}
}
}
unchecked {
_balances[from] = fromBalance - value;
}
}
if (to == address(0)) {
unchecked {
_totalSupply -= value;
}
} else {
unchecked {
_balances[to] += value;
}
}
emit Transfer(from, to, value);
}
function _mint(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidReceiver(address(0));
}
_update(address(0), account, value);
}
function _burn(address account, uint256 value) internal {
if (account == address(0)) {
revert ERC20InvalidSender(address(0));
}
_update(account, address(0), value);
}
function _approve(
address owner,
address spender,
uint256 value
) internal virtual {
_approve(owner, spender, value, true);
}
function _approve(
address owner,
address spender,
uint256 value,
bool emitEvent
) internal virtual {
if (owner == address(0)) {
revert ERC20InvalidApprover(address(0));
}
if (spender == address(0)) {
revert ERC20InvalidSpender(address(0));
}
_allowances[owner][spender] = value;
if (emitEvent) {
emit Approval(owner, spender, value);
}
}
function _spendAllowance(
address owner,
address spender,
uint256 value
) internal virtual {
uint256 currentAllowance = allowance(owner, spender);
if (currentAllowance != type(uint256).max) {
if (currentAllowance < value) {
revert ERC20InsufficientAllowance(
spender,
currentAllowance,
value
);
}
unchecked {
_approve(owner, spender, currentAllowance - value, false);
}
}
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_initialRecipient","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"currentAllowance","type":"uint256"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"ERC20FailedDecreaseAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[],"name":"ItIs","type":"error"},{"inputs":[],"name":"MaxTXAmount","type":"error"},{"inputs":[],"name":"MaxWalletSize","type":"error"},{"inputs":[],"name":"NotOwnerOrTWallet","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"WithdrawFailed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"requestedDecrease","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_wallet","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeAllFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_pair","type":"address"},{"internalType":"bool","name":"_isPair","type":"bool"}],"name":"setPairAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"},{"internalType":"bool","name":"_isRouter","type":"bool"}],"name":"setRouterAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_tWallet","type":"address"}],"name":"setTaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","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":"address","name":"_token","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040526d017aa73a606841b3e173800000006004556d017aa73a606841b3e173800000006005556004600655600560075560016008556001600955600f600a556021600b557399f70e8d82b76c1be8060992f90f67f4427ce20060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601260156101000a81548160ff0219169083151502179055505f601260166101000a81548160ff02191690831515021790555034801561012d575f80fd5b5060405161464f38038061464f833981810160405281019061014f919061111f565b335f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036101c0575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016101b79190611159565b60405180910390fd5b6101cf8161027e60201b60201c565b506040518060400160405280600e81526020017f4361706974616c6973746f6b656e0000000000000000000000000000000000008152506013908161021491906113ac565b506040518060400160405280600a81526020017f4361706974616c697374000000000000000000000000000000000000000000008152506014908161025991906113ac565b50610278816d314dc6448d9338c15b0a0000000061033f60201b60201c565b506117c5565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036103af575f6040517fec442f050000000000000000000000000000000000000000000000000000000081526004016103a69190611159565b60405180910390fd5b6103c05f83836103c460201b60201c565b5050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610415578160035f82825461040991906114a8565b92505081905550610a6c565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490508281101561049f578481846040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610496939291906114ea565b60405180910390fd5b6104ad610b6960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561052157506104f1610b6960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b801561055957503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15610a2657600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156105fb5750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b801561064e575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156106cc5760045483111561068f576040517f40276a8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005548311156106cb576040517f29b8cff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b6064600a54600c54116106e1576006546106e5565b6008545b846106f0919061151f565b6106fa919061158d565b9150600c5f81548092919061070e906115bd565b9190505550600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561079557503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561081e576004548311156107d6576040517f40276a8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6064600b54600d54116107eb576007546107ef565b6009545b846107fa919061151f565b610804919061158d565b9150600d5f815480929190610818906115bd565b91905055505b5f8211156109405781836108329190611604565b92508160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461088091906114a8565b925050819055508160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546108d39190611604565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516109379190611637565b60405180910390a35b5f61095030610b9060201b60201c565b9050601260159054906101000a900460ff161580156109b55750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80156109cd5750601260169054906101000a900460ff165b80156109f25750606460016003546109e5919061151f565b6109ef919061158d565b81115b15610a2457610a0681610bd660201b60201c565b5f4790505f811115610a2257610a2181610e7260201b60201c565b5b505b505b82810360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ab3578160035f8282540392505081905550610afe565b8160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610b5b9190611637565b60405180910390a350505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6001601260156101000a81548160ff0219169083151502179055505f810315610e5557601260149054906101000a900460ff1615610e55575f600267ffffffffffffffff811115610c2a57610c2961117c565b5b604051908082528060200260200182016040528015610c585781602001602082028036833780820191505090505b50905030815f81518110610c6f57610c6e611650565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d37919061111f565b81600181518110610d4b57610d4a611650565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050610db73060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610eda60201b60201c565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f843061012c42610e0691906114a8565b6040518663ffffffff1660e01b8152600401610e2695949392919061176d565b5f604051808303815f87803b158015610e3d575f80fd5b505af1158015610e4f573d5f803e3d5ffd5b50505050505b5f601260156101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610ed6573d5f803e3d5ffd5b5050565b610eed8383836001610ef260201b60201c565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f62575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610f599190611159565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd2575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610fc99190611159565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555080156110bb578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110b29190611637565b60405180910390a35b50505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6110ee826110c5565b9050919050565b6110fe816110e4565b8114611108575f80fd5b50565b5f81519050611119816110f5565b92915050565b5f60208284031215611134576111336110c1565b5b5f6111418482850161110b565b91505092915050565b611153816110e4565b82525050565b5f60208201905061116c5f83018461114a565b92915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806111ed57607f821691505b602082108103611200576111ff6111a9565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f600883026112627fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82611227565b61126c8683611227565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f6112b06112ab6112a684611284565b61128d565b611284565b9050919050565b5f819050919050565b6112c983611296565b6112dd6112d5826112b7565b848454611233565b825550505050565b5f90565b6112f16112e5565b6112fc8184846112c0565b505050565b5b8181101561131f576113145f826112e9565b600181019050611302565b5050565b601f8211156113645761133581611206565b61133e84611218565b8101602085101561134d578190505b61136161135985611218565b830182611301565b50505b505050565b5f82821c905092915050565b5f6113845f1984600802611369565b1980831691505092915050565b5f61139c8383611375565b9150826002028217905092915050565b6113b582611172565b67ffffffffffffffff8111156113ce576113cd61117c565b5b6113d882546111d6565b6113e3828285611323565b5f60209050601f831160018114611414575f8415611402578287015190505b61140c8582611391565b865550611473565b601f19841661142286611206565b5f5b8281101561144957848901518255600182019150602085019450602081019050611424565b868310156114665784890151611462601f891682611375565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6114b282611284565b91506114bd83611284565b92508282019050808211156114d5576114d461147b565b5b92915050565b6114e481611284565b82525050565b5f6060820190506114fd5f83018661114a565b61150a60208301856114db565b61151760408301846114db565b949350505050565b5f61152982611284565b915061153483611284565b925082820261154281611284565b915082820484148315176115595761155861147b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61159782611284565b91506115a283611284565b9250826115b2576115b1611560565b5b828204905092915050565b5f6115c782611284565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036115f9576115f861147b565b5b600182019050919050565b5f61160e82611284565b915061161983611284565b92508282039050818111156116315761163061147b565b5b92915050565b5f60208201905061164a5f8301846114db565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f819050919050565b5f6116a061169b6116968461167d565b61128d565b611284565b9050919050565b6116b081611686565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6116e8816110e4565b82525050565b5f6116f983836116df565b60208301905092915050565b5f602082019050919050565b5f61171b826116b6565b61172581856116c0565b9350611730836116d0565b805f5b8381101561176057815161174788826116ee565b975061175283611705565b925050600181019050611733565b5085935050505092915050565b5f60a0820190506117805f8301886114db565b61178d60208301876116a7565b818103604083015261179f8186611711565b90506117ae606083018561114a565b6117bb60808301846114db565b9695505050505050565b612e7d806117d25f395ff3fe60806040526004361061019f575f3560e01c80637d1db4a5116100eb578063c9567bf911610089578063dd62ed3e11610063578063dd62ed3e1461055c578063ea2f0b3714610598578063ea414b28146105c0578063f2fde38b146105e8576101a6565b8063c9567bf914610508578063cf1cca321461051e578063d201b01e14610534576101a6565b806395d89b41116100c557806395d89b411461043e578063a457c2d714610468578063a9059cbb146104a4578063c3803660146104e0576101a6565b80637d1db4a5146103c05780638da5cb5b146103ea5780638f9a55c014610414576101a6565b8063313ce5671161015857806351bc3c851161013257806351bc3c851461034257806370a0823114610358578063715018a614610394578063751039fc146103aa576101a6565b8063313ce567146102b457806339509351146102de578063437823ec1461031a576101a6565b806306fdde03146101aa578063095ea7b3146101d457806318160ddd1461021057806323b872dd1461023a57806328ffe65c14610276578063301370af1461029e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610610565b6040516101cb919061256a565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f5919061261b565b6106a0565b6040516102079190612673565b60405180910390f35b34801561021b575f80fd5b506102246106c2565b604051610231919061269b565b60405180910390f35b348015610245575f80fd5b50610260600480360381019061025b91906126b4565b6106cb565b60405161026d9190612673565b60405180910390f35b348015610281575f80fd5b5061029c6004803603810190610297919061272e565b6106f9565b005b3480156102a9575f80fd5b506102b26107df565b005b3480156102bf575f80fd5b506102c86107f7565b6040516102d59190612787565b60405180910390f35b3480156102e9575f80fd5b5061030460048036038101906102ff919061261b565b6107ff565b6040516103119190612673565b60405180910390f35b348015610325575f80fd5b50610340600480360381019061033b91906127a0565b610835565b005b34801561034d575f80fd5b50610356610895565b005b348015610363575f80fd5b5061037e600480360381019061037991906127a0565b61092c565b60405161038b919061269b565b60405180910390f35b34801561039f575f80fd5b506103a8610972565b005b3480156103b5575f80fd5b506103be610985565b005b3480156103cb575f80fd5b506103d46109a1565b6040516103e1919061269b565b60405180910390f35b3480156103f5575f80fd5b506103fe6109a7565b60405161040b91906127da565b60405180910390f35b34801561041f575f80fd5b506104286109ce565b604051610435919061269b565b60405180910390f35b348015610449575f80fd5b506104526109d4565b60405161045f919061256a565b60405180910390f35b348015610473575f80fd5b5061048e6004803603810190610489919061261b565b610a64565b60405161049b9190612673565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c5919061261b565b610adf565b6040516104d79190612673565b60405180910390f35b3480156104eb575f80fd5b506105066004803603810190610501919061272e565b610b01565b005b348015610513575f80fd5b5061051c610be7565b005b348015610529575f80fd5b50610532611055565b005b34801561053f575f80fd5b5061055a600480360381019061055591906127a0565b611089565b005b348015610567575f80fd5b50610582600480360381019061057d91906127f3565b61127c565b60405161058f919061269b565b60405180910390f35b3480156105a3575f80fd5b506105be60048036038101906105b991906127a0565b6112fe565b005b3480156105cb575f80fd5b506105e660048036038101906105e1919061286c565b61135d565b005b3480156105f3575f80fd5b5061060e600480360381019061060991906127a0565b61153f565b005b60606013805461061f906128c4565b80601f016020809104026020016040519081016040528092919081815260200182805461064b906128c4565b80156106965780601f1061066d57610100808354040283529160200191610696565b820191905f5260205f20905b81548152906001019060200180831161067957829003601f168201915b5050505050905090565b5f806106aa6115c3565b90506106b78185856115ca565b600191505092915050565b5f600354905090565b5f806106d56115c3565b90506106e28582856115dc565b6106ed85858561166e565b60019150509392505050565b61070161175e565b801515600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610787576040517f64d3671b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6107e761175e565b5f6008819055505f600981905550565b5f6012905090565b5f806108096115c3565b905061082a81858561081b858961127c565b6108259190612921565b6115ca565b600191505092915050565b61083d61175e565b600160105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108d56115c3565b73ffffffffffffffffffffffffffffffffffffffff16146108f4575f80fd5b5f6108fe3061092c565b90505f81111561091257610911816117e5565b5b5f4790505f8111156109285761092781611a7b565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61097a61175e565b6109835f611ae3565b565b61098d61175e565b600354600481905550600354600581905550565b60045481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b6060601480546109e3906128c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0f906128c4565b8015610a5a5780601f10610a3157610100808354040283529160200191610a5a565b820191905f5260205f20905b815481529060010190602001808311610a3d57829003601f168201915b5050505050905090565b5f80610a6e6115c3565b90505f610a7b828661127c565b905083811015610ac6578481856040517fa60f030c000000000000000000000000000000000000000000000000000000008152600401610abd93929190612954565b60405180910390fd5b610ad382868684036115ca565b60019250505092915050565b5f80610ae96115c3565b9050610af681858561166e565b600191505092915050565b610b0961175e565b801515600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610b8f576040517f64d3671b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610bef61175e565b5f601260149054906101000a900460ff16610dcf57610c373060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c326106c2565b6115ca565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc5919061299d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6f919061299d565b6040518363ffffffff1660e01b8152600401610d8c9291906129c8565b6020604051808303815f875af1158015610da8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dcc919061299d565b90505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e173061092c565b5f80610e216109a7565b61012c42610e2f9190612921565b6040518863ffffffff1660e01b8152600401610e5096959493929190612a31565b60606040518083038185885af1158015610e6c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e919190612aa4565b5050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f10929190612af4565b6020604051808303815f875af1158015610f2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f509190612b2f565b506001601260146101000a81548160ff0219169083151502179055506001601260166101000a81548160ff0219169083151502179055506001600e5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61105d61175e565b601260169054906101000a900460ff1615601260166101000a81548160ff021916908315150217905550565b61109161175e565b5f3373ffffffffffffffffffffffffffffffffffffffff16476040516110b690612b87565b5f6040518083038185875af1925050503d805f81146110f0576040519150601f19603f3d011682016040523d82523d5f602084013e6110f5565b606091505b5050905080611130576040517f750b219c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611143303361113e3061092c565b61166e565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611278575f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111b091906127da565b602060405180830381865afa1580156111cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ef9190612b9b565b90505f811115611276578273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611234929190612af4565b6020604051808303815f875af1158015611250573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112749190612b2f565b505b505b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61130661175e565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6113656109a7565b73ffffffffffffffffffffffffffffffffffffffff166113836115c3565b73ffffffffffffffffffffffffffffffffffffffff16141580156113fb575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e26115c3565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611432576040517fa179143b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60105f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61154761175e565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115b7575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016115ae91906127da565b60405180910390fd5b6115c081611ae3565b50565b5f33905090565b6115d78383836001611ba4565b505050565b5f6115e7848461127c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116685781811015611659578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161165093929190612954565b60405180910390fd5b61166784848484035f611ba4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116de575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016116d591906127da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174e575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161174591906127da565b60405180910390fd5b611759838383611d73565b505050565b6117666115c3565b73ffffffffffffffffffffffffffffffffffffffff166117846109a7565b73ffffffffffffffffffffffffffffffffffffffff16146117e3576117a76115c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117da91906127da565b60405180910390fd5b565b6001601260156101000a81548160ff0219169083151502179055505f810315611a5e57601260149054906101000a900460ff1615611a5e575f600267ffffffffffffffff81111561183957611838612bc6565b5b6040519080825280602002602001820160405280156118675781602001602082028036833780820191505090505b50905030815f8151811061187e5761187d612bf3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611922573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611946919061299d565b8160018151811061195a57611959612bf3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119c03060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115ca565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f843061012c42611a0f9190612921565b6040518663ffffffff1660e01b8152600401611a2f959493929190612cd7565b5f604051808303815f87803b158015611a46575f80fd5b505af1158015611a58573d5f803e3d5ffd5b50505050505b5f601260156101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611adf573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c14575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611c0b91906127da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c84575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611c7b91906127da565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611d6d578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611d64919061269b565b60405180910390a35b50505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dc4578160035f828254611db89190612921565b925050819055506123fd565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611e4e578481846040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611e4593929190612954565b60405180910390fd5b611e566109a7565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611ec45750611e946109a7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611efc57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156123b757600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f9e5750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ff1575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561206f57600454831115612032576040517f40276a8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055483111561206e576040517f29b8cff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b6064600a54600c541161208457600654612088565b6008545b846120939190612d2f565b61209d9190612d9d565b9150600c5f8154809291906120b190612dcd565b9190505550600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561213857503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156121c157600454831115612179576040517f40276a8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6064600b54600d541161218e57600754612192565b6009545b8461219d9190612d2f565b6121a79190612d9d565b9150600d5f8154809291906121bb90612dcd565b91905055505b5f8211156122e35781836121d59190612e14565b92508160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122239190612921565b925050819055508160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122769190612e14565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122da919061269b565b60405180910390a35b5f6122ed3061092c565b9050601260159054906101000a900460ff161580156123525750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561236a5750601260169054906101000a900460ff165b801561238f5750606460016003546123829190612d2f565b61238c9190612d9d565b81115b156123b55761239d816117e5565b5f4790505f8111156123b3576123b281611a7b565b5b505b505b82810360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612444578160035f828254039250508190555061248f565b8160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124ec919061269b565b60405180910390a350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61253c826124fa565b6125468185612504565b9350612556818560208601612514565b61255f81612522565b840191505092915050565b5f6020820190508181035f8301526125828184612532565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125b78261258e565b9050919050565b6125c7816125ad565b81146125d1575f80fd5b50565b5f813590506125e2816125be565b92915050565b5f819050919050565b6125fa816125e8565b8114612604575f80fd5b50565b5f81359050612615816125f1565b92915050565b5f80604083850312156126315761263061258a565b5b5f61263e858286016125d4565b925050602061264f85828601612607565b9150509250929050565b5f8115159050919050565b61266d81612659565b82525050565b5f6020820190506126865f830184612664565b92915050565b612695816125e8565b82525050565b5f6020820190506126ae5f83018461268c565b92915050565b5f805f606084860312156126cb576126ca61258a565b5b5f6126d8868287016125d4565b93505060206126e9868287016125d4565b92505060406126fa86828701612607565b9150509250925092565b61270d81612659565b8114612717575f80fd5b50565b5f8135905061272881612704565b92915050565b5f80604083850312156127445761274361258a565b5b5f612751858286016125d4565b92505060206127628582860161271a565b9150509250929050565b5f60ff82169050919050565b6127818161276c565b82525050565b5f60208201905061279a5f830184612778565b92915050565b5f602082840312156127b5576127b461258a565b5b5f6127c2848285016125d4565b91505092915050565b6127d4816125ad565b82525050565b5f6020820190506127ed5f8301846127cb565b92915050565b5f80604083850312156128095761280861258a565b5b5f612816858286016125d4565b9250506020612827858286016125d4565b9150509250929050565b5f61283b8261258e565b9050919050565b61284b81612831565b8114612855575f80fd5b50565b5f8135905061286681612842565b92915050565b5f602082840312156128815761288061258a565b5b5f61288e84828501612858565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806128db57607f821691505b6020821081036128ee576128ed612897565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61292b826125e8565b9150612936836125e8565b925082820190508082111561294e5761294d6128f4565b5b92915050565b5f6060820190506129675f8301866127cb565b612974602083018561268c565b612981604083018461268c565b949350505050565b5f81519050612997816125be565b92915050565b5f602082840312156129b2576129b161258a565b5b5f6129bf84828501612989565b91505092915050565b5f6040820190506129db5f8301856127cb565b6129e860208301846127cb565b9392505050565b5f819050919050565b5f819050919050565b5f612a1b612a16612a11846129ef565b6129f8565b6125e8565b9050919050565b612a2b81612a01565b82525050565b5f60c082019050612a445f8301896127cb565b612a51602083018861268c565b612a5e6040830187612a22565b612a6b6060830186612a22565b612a7860808301856127cb565b612a8560a083018461268c565b979650505050505050565b5f81519050612a9e816125f1565b92915050565b5f805f60608486031215612abb57612aba61258a565b5b5f612ac886828701612a90565b9350506020612ad986828701612a90565b9250506040612aea86828701612a90565b9150509250925092565b5f604082019050612b075f8301856127cb565b612b14602083018461268c565b9392505050565b5f81519050612b2981612704565b92915050565b5f60208284031215612b4457612b4361258a565b5b5f612b5184828501612b1b565b91505092915050565b5f81905092915050565b50565b5f612b725f83612b5a565b9150612b7d82612b64565b5f82019050919050565b5f612b9182612b67565b9150819050919050565b5f60208284031215612bb057612baf61258a565b5b5f612bbd84828501612a90565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c52816125ad565b82525050565b5f612c638383612c49565b60208301905092915050565b5f602082019050919050565b5f612c8582612c20565b612c8f8185612c2a565b9350612c9a83612c3a565b805f5b83811015612cca578151612cb18882612c58565b9750612cbc83612c6f565b925050600181019050612c9d565b5085935050505092915050565b5f60a082019050612cea5f83018861268c565b612cf76020830187612a22565b8181036040830152612d098186612c7b565b9050612d1860608301856127cb565b612d25608083018461268c565b9695505050505050565b5f612d39826125e8565b9150612d44836125e8565b9250828202612d52816125e8565b91508282048414831517612d6957612d686128f4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612da7826125e8565b9150612db2836125e8565b925082612dc257612dc1612d70565b5b828204905092915050565b5f612dd7826125e8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e0957612e086128f4565b5b600182019050919050565b5f612e1e826125e8565b9150612e29836125e8565b9250828203905081811115612e4157612e406128f4565b5b9291505056fea2646970667358221220aca2ca951a84e7f3cefcc3efc8cb04dcea5c6affed276f74eae125409514519164736f6c634300081a003300000000000000000000000064c094cfee02443a7fefde0f3fdea92261db9182
Deployed Bytecode
0x60806040526004361061019f575f3560e01c80637d1db4a5116100eb578063c9567bf911610089578063dd62ed3e11610063578063dd62ed3e1461055c578063ea2f0b3714610598578063ea414b28146105c0578063f2fde38b146105e8576101a6565b8063c9567bf914610508578063cf1cca321461051e578063d201b01e14610534576101a6565b806395d89b41116100c557806395d89b411461043e578063a457c2d714610468578063a9059cbb146104a4578063c3803660146104e0576101a6565b80637d1db4a5146103c05780638da5cb5b146103ea5780638f9a55c014610414576101a6565b8063313ce5671161015857806351bc3c851161013257806351bc3c851461034257806370a0823114610358578063715018a614610394578063751039fc146103aa576101a6565b8063313ce567146102b457806339509351146102de578063437823ec1461031a576101a6565b806306fdde03146101aa578063095ea7b3146101d457806318160ddd1461021057806323b872dd1461023a57806328ffe65c14610276578063301370af1461029e576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610610565b6040516101cb919061256a565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f5919061261b565b6106a0565b6040516102079190612673565b60405180910390f35b34801561021b575f80fd5b506102246106c2565b604051610231919061269b565b60405180910390f35b348015610245575f80fd5b50610260600480360381019061025b91906126b4565b6106cb565b60405161026d9190612673565b60405180910390f35b348015610281575f80fd5b5061029c6004803603810190610297919061272e565b6106f9565b005b3480156102a9575f80fd5b506102b26107df565b005b3480156102bf575f80fd5b506102c86107f7565b6040516102d59190612787565b60405180910390f35b3480156102e9575f80fd5b5061030460048036038101906102ff919061261b565b6107ff565b6040516103119190612673565b60405180910390f35b348015610325575f80fd5b50610340600480360381019061033b91906127a0565b610835565b005b34801561034d575f80fd5b50610356610895565b005b348015610363575f80fd5b5061037e600480360381019061037991906127a0565b61092c565b60405161038b919061269b565b60405180910390f35b34801561039f575f80fd5b506103a8610972565b005b3480156103b5575f80fd5b506103be610985565b005b3480156103cb575f80fd5b506103d46109a1565b6040516103e1919061269b565b60405180910390f35b3480156103f5575f80fd5b506103fe6109a7565b60405161040b91906127da565b60405180910390f35b34801561041f575f80fd5b506104286109ce565b604051610435919061269b565b60405180910390f35b348015610449575f80fd5b506104526109d4565b60405161045f919061256a565b60405180910390f35b348015610473575f80fd5b5061048e6004803603810190610489919061261b565b610a64565b60405161049b9190612673565b60405180910390f35b3480156104af575f80fd5b506104ca60048036038101906104c5919061261b565b610adf565b6040516104d79190612673565b60405180910390f35b3480156104eb575f80fd5b506105066004803603810190610501919061272e565b610b01565b005b348015610513575f80fd5b5061051c610be7565b005b348015610529575f80fd5b50610532611055565b005b34801561053f575f80fd5b5061055a600480360381019061055591906127a0565b611089565b005b348015610567575f80fd5b50610582600480360381019061057d91906127f3565b61127c565b60405161058f919061269b565b60405180910390f35b3480156105a3575f80fd5b506105be60048036038101906105b991906127a0565b6112fe565b005b3480156105cb575f80fd5b506105e660048036038101906105e1919061286c565b61135d565b005b3480156105f3575f80fd5b5061060e600480360381019061060991906127a0565b61153f565b005b60606013805461061f906128c4565b80601f016020809104026020016040519081016040528092919081815260200182805461064b906128c4565b80156106965780601f1061066d57610100808354040283529160200191610696565b820191905f5260205f20905b81548152906001019060200180831161067957829003601f168201915b5050505050905090565b5f806106aa6115c3565b90506106b78185856115ca565b600191505092915050565b5f600354905090565b5f806106d56115c3565b90506106e28582856115dc565b6106ed85858561166e565b60019150509392505050565b61070161175e565b801515600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610787576040517f64d3671b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b6107e761175e565b5f6008819055505f600981905550565b5f6012905090565b5f806108096115c3565b905061082a81858561081b858961127c565b6108259190612921565b6115ca565b600191505092915050565b61083d61175e565b600160105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108d56115c3565b73ffffffffffffffffffffffffffffffffffffffff16146108f4575f80fd5b5f6108fe3061092c565b90505f81111561091257610911816117e5565b5b5f4790505f8111156109285761092781611a7b565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61097a61175e565b6109835f611ae3565b565b61098d61175e565b600354600481905550600354600581905550565b60045481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60055481565b6060601480546109e3906128c4565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0f906128c4565b8015610a5a5780601f10610a3157610100808354040283529160200191610a5a565b820191905f5260205f20905b815481529060010190602001808311610a3d57829003601f168201915b5050505050905090565b5f80610a6e6115c3565b90505f610a7b828661127c565b905083811015610ac6578481856040517fa60f030c000000000000000000000000000000000000000000000000000000008152600401610abd93929190612954565b60405180910390fd5b610ad382868684036115ca565b60019250505092915050565b5f80610ae96115c3565b9050610af681858561166e565b600191505092915050565b610b0961175e565b801515600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503610b8f576040517f64d3671b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b610bef61175e565b5f601260149054906101000a900460ff16610dcf57610c373060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610c326106c2565b6115ca565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ca1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cc5919061299d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d6f919061299d565b6040518363ffffffff1660e01b8152600401610d8c9291906129c8565b6020604051808303815f875af1158015610da8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dcc919061299d565b90505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e173061092c565b5f80610e216109a7565b61012c42610e2f9190612921565b6040518863ffffffff1660e01b8152600401610e5096959493929190612a31565b60606040518083038185885af1158015610e6c573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610e919190612aa4565b5050508073ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f10929190612af4565b6020604051808303815f875af1158015610f2c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f509190612b2f565b506001601260146101000a81548160ff0219169083151502179055506001601260166101000a81548160ff0219169083151502179055506001600e5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61105d61175e565b601260169054906101000a900460ff1615601260166101000a81548160ff021916908315150217905550565b61109161175e565b5f3373ffffffffffffffffffffffffffffffffffffffff16476040516110b690612b87565b5f6040518083038185875af1925050503d805f81146110f0576040519150601f19603f3d011682016040523d82523d5f602084013e6110f5565b606091505b5050905080611130576040517f750b219c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611143303361113e3061092c565b61166e565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611278575f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016111b091906127da565b602060405180830381865afa1580156111cb573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111ef9190612b9b565b90505f811115611276578273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611234929190612af4565b6020604051808303815f875af1158015611250573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112749190612b2f565b505b505b5050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61130661175e565b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b6113656109a7565b73ffffffffffffffffffffffffffffffffffffffff166113836115c3565b73ffffffffffffffffffffffffffffffffffffffff16141580156113fb575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166113e26115c3565b73ffffffffffffffffffffffffffffffffffffffff1614155b15611432576040517fa179143b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f60105f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508060115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b61154761175e565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115b7575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016115ae91906127da565b60405180910390fd5b6115c081611ae3565b50565b5f33905090565b6115d78383836001611ba4565b505050565b5f6115e7848461127c565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116685781811015611659578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161165093929190612954565b60405180910390fd5b61166784848484035f611ba4565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116de575f6040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526004016116d591906127da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174e575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161174591906127da565b60405180910390fd5b611759838383611d73565b505050565b6117666115c3565b73ffffffffffffffffffffffffffffffffffffffff166117846109a7565b73ffffffffffffffffffffffffffffffffffffffff16146117e3576117a76115c3565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016117da91906127da565b60405180910390fd5b565b6001601260156101000a81548160ff0219169083151502179055505f810315611a5e57601260149054906101000a900460ff1615611a5e575f600267ffffffffffffffff81111561183957611838612bc6565b5b6040519080825280602002602001820160405280156118675781602001602082028036833780820191505090505b50905030815f8151811061187e5761187d612bf3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611922573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611946919061299d565b8160018151811061195a57611959612bf3565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119c03060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846115ca565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f843061012c42611a0f9190612921565b6040518663ffffffff1660e01b8152600401611a2f959493929190612cd7565b5f604051808303815f87803b158015611a46575f80fd5b505af1158015611a58573d5f803e3d5ffd5b50505050505b5f601260156101000a81548160ff02191690831515021790555050565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611adf573d5f803e3d5ffd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611c14575f6040517fe602df05000000000000000000000000000000000000000000000000000000008152600401611c0b91906127da565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c84575f6040517f94280d62000000000000000000000000000000000000000000000000000000008152600401611c7b91906127da565b60405180910390fd5b8160025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015611d6d578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051611d64919061269b565b60405180910390a35b50505050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611dc4578160035f828254611db89190612921565b925050819055506123fd565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611e4e578481846040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401611e4593929190612954565b60405180910390fd5b611e566109a7565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611ec45750611e946109a7565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611efc57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156123b757600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611f9e5750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ff1575060105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561206f57600454831115612032576040517f40276a8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60055483111561206e576040517f29b8cff300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b6064600a54600c541161208457600654612088565b6008545b846120939190612d2f565b61209d9190612d9d565b9150600c5f8154809291906120b190612dcd565b9190505550600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16801561213857503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156121c157600454831115612179576040517f40276a8800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6064600b54600d541161218e57600754612192565b6009545b8461219d9190612d2f565b6121a79190612d9d565b9150600d5f8154809291906121bb90612dcd565b91905055505b5f8211156122e35781836121d59190612e14565b92508160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122239190612921565b925050819055508160015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122769190612e14565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122da919061269b565b60405180910390a35b5f6122ed3061092c565b9050601260159054906101000a900460ff161580156123525750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b801561236a5750601260169054906101000a900460ff165b801561238f5750606460016003546123829190612d2f565b61238c9190612d9d565b81115b156123b55761239d816117e5565b5f4790505f8111156123b3576123b281611a7b565b5b505b505b82810360015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612444578160035f828254039250508190555061248f565b8160015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516124ec919061269b565b60405180910390a350505050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f61253c826124fa565b6125468185612504565b9350612556818560208601612514565b61255f81612522565b840191505092915050565b5f6020820190508181035f8301526125828184612532565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6125b78261258e565b9050919050565b6125c7816125ad565b81146125d1575f80fd5b50565b5f813590506125e2816125be565b92915050565b5f819050919050565b6125fa816125e8565b8114612604575f80fd5b50565b5f81359050612615816125f1565b92915050565b5f80604083850312156126315761263061258a565b5b5f61263e858286016125d4565b925050602061264f85828601612607565b9150509250929050565b5f8115159050919050565b61266d81612659565b82525050565b5f6020820190506126865f830184612664565b92915050565b612695816125e8565b82525050565b5f6020820190506126ae5f83018461268c565b92915050565b5f805f606084860312156126cb576126ca61258a565b5b5f6126d8868287016125d4565b93505060206126e9868287016125d4565b92505060406126fa86828701612607565b9150509250925092565b61270d81612659565b8114612717575f80fd5b50565b5f8135905061272881612704565b92915050565b5f80604083850312156127445761274361258a565b5b5f612751858286016125d4565b92505060206127628582860161271a565b9150509250929050565b5f60ff82169050919050565b6127818161276c565b82525050565b5f60208201905061279a5f830184612778565b92915050565b5f602082840312156127b5576127b461258a565b5b5f6127c2848285016125d4565b91505092915050565b6127d4816125ad565b82525050565b5f6020820190506127ed5f8301846127cb565b92915050565b5f80604083850312156128095761280861258a565b5b5f612816858286016125d4565b9250506020612827858286016125d4565b9150509250929050565b5f61283b8261258e565b9050919050565b61284b81612831565b8114612855575f80fd5b50565b5f8135905061286681612842565b92915050565b5f602082840312156128815761288061258a565b5b5f61288e84828501612858565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806128db57607f821691505b6020821081036128ee576128ed612897565b5b50919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61292b826125e8565b9150612936836125e8565b925082820190508082111561294e5761294d6128f4565b5b92915050565b5f6060820190506129675f8301866127cb565b612974602083018561268c565b612981604083018461268c565b949350505050565b5f81519050612997816125be565b92915050565b5f602082840312156129b2576129b161258a565b5b5f6129bf84828501612989565b91505092915050565b5f6040820190506129db5f8301856127cb565b6129e860208301846127cb565b9392505050565b5f819050919050565b5f819050919050565b5f612a1b612a16612a11846129ef565b6129f8565b6125e8565b9050919050565b612a2b81612a01565b82525050565b5f60c082019050612a445f8301896127cb565b612a51602083018861268c565b612a5e6040830187612a22565b612a6b6060830186612a22565b612a7860808301856127cb565b612a8560a083018461268c565b979650505050505050565b5f81519050612a9e816125f1565b92915050565b5f805f60608486031215612abb57612aba61258a565b5b5f612ac886828701612a90565b9350506020612ad986828701612a90565b9250506040612aea86828701612a90565b9150509250925092565b5f604082019050612b075f8301856127cb565b612b14602083018461268c565b9392505050565b5f81519050612b2981612704565b92915050565b5f60208284031215612b4457612b4361258a565b5b5f612b5184828501612b1b565b91505092915050565b5f81905092915050565b50565b5f612b725f83612b5a565b9150612b7d82612b64565b5f82019050919050565b5f612b9182612b67565b9150819050919050565b5f60208284031215612bb057612baf61258a565b5b5f612bbd84828501612a90565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c52816125ad565b82525050565b5f612c638383612c49565b60208301905092915050565b5f602082019050919050565b5f612c8582612c20565b612c8f8185612c2a565b9350612c9a83612c3a565b805f5b83811015612cca578151612cb18882612c58565b9750612cbc83612c6f565b925050600181019050612c9d565b5085935050505092915050565b5f60a082019050612cea5f83018861268c565b612cf76020830187612a22565b8181036040830152612d098186612c7b565b9050612d1860608301856127cb565b612d25608083018461268c565b9695505050505050565b5f612d39826125e8565b9150612d44836125e8565b9250828202612d52816125e8565b91508282048414831517612d6957612d686128f4565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612da7826125e8565b9150612db2836125e8565b925082612dc257612dc1612d70565b5b828204905092915050565b5f612dd7826125e8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e0957612e086128f4565b5b600182019050919050565b5f612e1e826125e8565b9150612e29836125e8565b9250828203905081811115612e4157612e406128f4565b5b9291505056fea2646970667358221220aca2ca951a84e7f3cefcc3efc8cb04dcea5c6affed276f74eae125409514519164736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000064c094cfee02443a7fefde0f3fdea92261db9182
-----Decoded View---------------
Arg [0] : _initialRecipient (address): 0x64C094cFee02443a7FeFDE0f3fDEA92261db9182
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 00000000000000000000000064c094cfee02443a7fefde0f3fdea92261db9182
Deployed Bytecode Sourcemap
3970:13197:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5811:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10671:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6105:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10894:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9571:249;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6740:104;;;;;;;;;;;;;:::i;:::-;;6013:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11185:263;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7628:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8231:395;;;;;;;;;;;;;:::i;:::-;;6212:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2613:103;;;;;;;;;;;;;:::i;:::-;;7493:127;;;;;;;;;;;;;:::i;:::-;;4217:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2344:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4279:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5910:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11456:595;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6338:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9828:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8730:833;;;;;;;;;;;;;:::i;:::-;;8634:88;;;;;;;;;;;;;:::i;:::-;;6852:533;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6528:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7747:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7865:358;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2724:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5811:91;5856:13;5889:5;5882:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5811:91;:::o;10671:215::-;10769:4;10786:13;10802:12;:10;:12::i;:::-;10786:28;;10825:31;10834:5;10841:7;10850:5;10825:8;:31::i;:::-;10874:4;10867:11;;;10671:215;;;;:::o;6105:99::-;6157:7;6184:12;;6177:19;;6105:99;:::o;10894:283::-;11015:4;11032:15;11050:12;:10;:12::i;:::-;11032:30;;11073:37;11089:4;11095:7;11104:5;11073:15;:37::i;:::-;11121:26;11131:4;11137:2;11141:5;11121:9;:26::i;:::-;11165:4;11158:11;;;10894:283;;;;;:::o;9571:249::-;2303:13;:11;:13::i;:::-;9715:9:::1;9687:37;;:15;:24;9703:7;9687:24;;;;;;;;;;;;;;;;;;;;;;;;;:37;;::::0;9683:83:::1;;9748:6;;;;;;;;;;;;;;9683:83;9803:9;9776:15;:24;9792:7;9776:24;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;9571:249:::0;;:::o;6740:104::-;2303:13;:11;:13::i;:::-;6807:1:::1;6792:12;:16;;;;6835:1;6819:13;:17;;;;6740:104::o:0;6013:84::-;6062:5;6087:2;6080:9;;6013:84;:::o;11185:263::-;11298:4;11315:13;11331:12;:10;:12::i;:::-;11315:28;;11354:64;11363:5;11370:7;11407:10;11379:25;11389:5;11396:7;11379:9;:25::i;:::-;:38;;;;:::i;:::-;11354:8;:64::i;:::-;11436:4;11429:11;;;11185:263;;;;:::o;7628:111::-;2303:13;:11;:13::i;:::-;7727:4:::1;7697:18;:27;7716:7;7697:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;7628:111:::0;:::o;8231:395::-;8291:10;;;;;;;;;;;8275:26;;:12;:10;:12::i;:::-;:26;;;8271:67;;8318:8;;;8271:67;8348:20;8371:24;8389:4;8371:9;:24::i;:::-;8348:47;;8425:1;8410:12;:16;8406:79;;;8443:30;8460:12;8443:16;:30::i;:::-;8406:79;8495:18;8516:21;8495:42;;8565:1;8552:10;:14;8548:71;;;8583:24;8596:10;8583:12;:24::i;:::-;8548:71;8260:366;;8231:395::o;6212:118::-;6277:7;6304:9;:18;6314:7;6304:18;;;;;;;;;;;;;;;;6297:25;;6212:118;;;:::o;2613:103::-;2303:13;:11;:13::i;:::-;2678:30:::1;2705:1;2678:18;:30::i;:::-;2613:103::o:0;7493:127::-;2303:13;:11;:13::i;:::-;7560:12:::1;;7545;:27;;;;7600:12;;7583:14;:29;;;;7493:127::o:0;4217:55::-;;;;:::o;2344:87::-;2390:7;2417:6;;;;;;;;;;;2410:13;;2344:87;:::o;4279:57::-;;;;:::o;5910:95::-;5957:13;5990:7;5983:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5910:95;:::o;11456:595::-;11576:4;11593:13;11609:12;:10;:12::i;:::-;11593:28;;11632:24;11659:25;11669:5;11676:7;11659:9;:25::i;:::-;11632:52;;11718:17;11699:16;:36;11695:216;;;11806:7;11832:16;11867:17;11759:140;;;;;;;;;;;;;:::i;:::-;;;;;;;;11695:216;11946:62;11955:5;11962:7;11990:17;11971:16;:36;11946:8;:62::i;:::-;12039:4;12032:11;;;;11456:595;;;;:::o;6338:182::-;6407:4;6424:13;6440:12;:10;:12::i;:::-;6424:28;;6463:27;6473:5;6480:2;6484:5;6463:9;:27::i;:::-;6508:4;6501:11;;;6338:182;;;;:::o;9828:206::-;2303:13;:11;:13::i;:::-;9937:7:::1;9913:31;;:13;:20;9927:5;9913:20;;;;;;;;;;;;;;;;;;;;;;;;;:31;;::::0;9909:77:::1;;9968:6;;;;;;;;;;;;;;9909:77;10019:7;9996:13;:20;10010:5;9996:20;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;9828:206:::0;;:::o;8730:833::-;2303:13;:11;:13::i;:::-;8781:21:::1;8818:11;;;;;;;;;;;8813:252;;8846:64;8863:4;8878:15;;;;;;;;;;;8896:13;:11;:13::i;:::-;8846:8;:64::i;:::-;8959:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8941:73;;;9023:4;9030:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8941:112;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8925:128;;8813:252;9075:15;;;;;;;;;;;:31;;;9114:21;9159:4;9179:24;9197:4;9179:9;:24::i;:::-;9218:1;9234::::0;9250:7:::1;:5;:7::i;:::-;9290:9;9272:15;:27;;;;:::i;:::-;9075:235;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;9328:13;9321:29;;;9359:15;;;;;;;;;;;9377:14;9321:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9417:4;9403:11;;:18;;;;;;;;;;;;;;;;;;9446:4;9432:11;;:18;;;;;;;;;;;;;;;;;;9505:4;9461:15;:41;9485:15;;;;;;;;;;;9461:41;;;;;;;;;;;;;;;;:48;;;;;;;;;;;;;;;;;;9551:4;9520:13;:28;9534:13;9520:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;8770:793;8730:833::o:0;8634:88::-;2303:13;:11;:13::i;:::-;8703:11:::1;;;;;;;;;;;8702:12;8688:11;;:26;;;;;;;;;;;;;;;;;;8634:88::o:0;6852:533::-;2303:13;:11;:13::i;:::-;6923:12:::1;6949:10;6941:24;;6987:21;6941:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6922:101;;;7039:7;7034:37;;7055:16;;;;;;;;;;;;;;7034:37;7082:62;7100:4;7107:10;7119:24;7137:4;7119:9;:24::i;:::-;7082:9;:62::i;:::-;7177:1;7159:20;;:6;:20;;;7155:223;;7196:16;7222:6;7215:24;;;7248:4;7215:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7196:58;;7284:1;7273:8;:12;7269:98;;;7313:6;7306:23;;;7330:10;7342:8;7306:45;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;7269:98;7181:197;7155:223;6911:474;6852:533:::0;:::o;6528:167::-;6633:7;6660:11;:18;6672:5;6660:18;;;;;;;;;;;;;;;:27;6679:7;6660:27;;;;;;;;;;;;;;;;6653:34;;6528:167;;;;:::o;7747:110::-;2303:13;:11;:13::i;:::-;7844:5:::1;7814:18;:27;7833:7;7814:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;7747:110:::0;:::o;7865:358::-;7966:7;:5;:7::i;:::-;7950:23;;:12;:10;:12::i;:::-;:23;;;;:53;;;;;7993:10;;;;;;;;;;;7977:26;;:12;:10;:12::i;:::-;:26;;;;7950:53;7946:120;;;8031:19;;;;;;;;;;;;;;7946:120;8113:5;8080:18;:30;8099:10;;;;;;;;;;;8080:30;;;;;;;;;;;;;;;;:38;;;;;;;;;;;;;;;;;;8146:8;8133:10;;:21;;;;;;;;;;;;;;;;;;8200:4;8169:18;:28;8188:8;8169:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;7865:358;:::o;2724:220::-;2303:13;:11;:13::i;:::-;2829:1:::1;2809:22;;:8;:22;;::::0;2805:93:::1;;2883:1;2855:31;;;;;;;;;;;:::i;:::-;;;;;;;;2805:93;2908:28;2927:8;2908:18;:28::i;:::-;2724:220:::0;:::o;1082:98::-;1135:7;1162:10;1155:17;;1082:98;:::o;15887:172::-;16014:37;16023:5;16030:7;16039:5;16046:4;16014:8;:37::i;:::-;15887:172;;;:::o;16561:603::-;16695:24;16722:25;16732:5;16739:7;16722:9;:25::i;:::-;16695:52;;16782:17;16762:16;:37;16758:399;;16839:5;16820:16;:24;16816:214;;;16921:7;16951:16;16990:5;16872:142;;;;;;;;;;;;;:::i;:::-;;;;;;;;16816:214;17073:57;17082:5;17089:7;17117:5;17098:16;:24;17124:5;17073:8;:57::i;:::-;16758:399;16684:480;16561:603;;;:::o;12059:308::-;12159:1;12143:18;;:4;:18;;;12139:88;;12212:1;12185:30;;;;;;;;;;;:::i;:::-;;;;;;;;12139:88;12255:1;12241:16;;:2;:16;;;12237:88;;12310:1;12281:32;;;;;;;;;;;:::i;:::-;;;;;;;;12237:88;12335:24;12343:4;12349:2;12353:5;12335:7;:24::i;:::-;12059:308;;;:::o;2439:166::-;2510:12;:10;:12::i;:::-;2499:23;;:7;:5;:7::i;:::-;:23;;;2495:103;;2573:12;:10;:12::i;:::-;2546:40;;;;;;;;;;;:::i;:::-;;;;;;;;2495:103;2439:166::o;10042:621::-;5547:4;5538:6;;:13;;;;;;;;;;;;;;;;;;10139:1:::1;10124:11;:16:::0;10120:55;10157:7:::1;10120:55;10190:11;;;;;;;;;;;10185:51:::0;10218:7:::1;10185:51;10246:21;10284:1;10270:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10246:40;;10315:4;10297;10302:1;10297:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10341:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10331:4;10336:1;10331:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10374:62;10391:4;10406:15;;;;;;;;;;;10424:11;10374:8;:62::i;:::-;10447:15;;;;;;;;;;;:66;;;10528:11;10554:1;10570:4;10597;10635:9;10617:15;:27;;;;:::i;:::-;10447:208;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10109:554;5562:1;5583:5:::0;5574:6;;:14;;;;;;;;;;;;;;;;;;10042:621;:::o;7393:92::-;7450:10;;;;;;;;;;;:19;;:27;7470:6;7450:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7393:92;:::o;2952:191::-;3026:16;3045:6;;;;;;;;;;;3026:25;;3071:8;3062:6;;:17;;;;;;;;;;;;;;;;;;3126:8;3095:40;;3116:8;3095:40;;;;;;;;;;;;3015:128;2952:191;:::o;16067:486::-;16240:1;16223:19;;:5;:19;;;16219:91;;16295:1;16266:32;;;;;;;;;;;:::i;:::-;;;;;;;;16219:91;16343:1;16324:21;;:7;:21;;;16320:92;;16397:1;16369:31;;;;;;;;;;;:::i;:::-;;;;;;;;16320:92;16452:5;16422:11;:18;16434:5;16422:18;;;;;;;;;;;;;;;:27;16441:7;16422:27;;;;;;;;;;;;;;;:35;;;;16472:9;16468:78;;;16519:7;16503:31;;16512:5;16503:31;;;16528:5;16503:31;;;;;;:::i;:::-;;;;;;;;16468:78;16067:486;;;;:::o;12375:3064::-;12461:17;12513:1;12497:18;;:4;:18;;;12493:2671;;12548:5;12532:12;;:21;;;;;;;:::i;:::-;;;;;;;;12493:2671;;;12586:19;12608:9;:15;12618:4;12608:15;;;;;;;;;;;;;;;;12586:37;;12658:5;12644:11;:19;12640:117;;;12716:4;12722:11;12735:5;12691:50;;;;;;;;;;;;;:::i;:::-;;;;;;;;12640:117;12783:7;:5;:7::i;:::-;12775:15;;:4;:15;;;;:32;;;;;12800:7;:5;:7::i;:::-;12794:13;;:2;:13;;;;12775:32;:57;;;;;12827:4;12811:21;;:4;:21;;;;12775:57;12771:2284;;;12879:13;:19;12893:4;12879:19;;;;;;;;;;;;;;;;;;;;;;;;;:64;;;;;12924:15;:19;12940:2;12924:19;;;;;;;;;;;;;;;;;;;;;;;;;12923:20;12879:64;:112;;;;;12969:18;:22;12988:2;12969:22;;;;;;;;;;;;;;;;;;;;;;;;;12968:23;12879:112;12853:420;;;13046:12;;13038:5;:20;13034:97;;;13094:13;;;;;;;;;;;;;;13034:97;13165:14;;13157:5;:22;13153:101;;;13215:15;;;;;;;;;;;;;;13153:101;12853:420;13567:3;13401:15;;13389:9;;:27;:125;;13500:14;;13389:125;;;13452:12;;13389:125;13325:5;:216;;;;:::i;:::-;13324:247;;;;:::i;:::-;13291:280;;13590:9;;:11;;;;;;;;;:::i;:::-;;;;;;13624:13;:17;13638:2;13624:17;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;13661:4;13645:21;;:4;:21;;;;13624:42;13620:557;;;13703:12;;13695:5;:20;13691:97;;;13751:13;;;;;;;;;;;;;;13691:97;14118:3;13933:16;;13920:10;;:29;:137;;14042:15;;13920:137;;;13989:13;;13920:137;13848:5;:240;;;;:::i;:::-;13847:275;;;;:::i;:::-;13810:312;;14145:10;;:12;;;;;;;;;:::i;:::-;;;;;;13620:557;14211:1;14199:9;:13;14195:259;;;14246:9;14237:18;;;;;:::i;:::-;;;14306:9;14278;:24;14296:4;14278:24;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;14357:9;14338;:15;14348:4;14338:15;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;14417:4;14394:40;;14403:4;14394:40;;;14424:9;14394:40;;;;;;:::i;:::-;;;;;;;;14195:259;14474:28;14505:24;14523:4;14505:9;:24::i;:::-;14474:55;;14575:6;;;;;;;;;;;14574:7;:49;;;;;14606:13;:17;14620:2;14606:17;;;;;;;;;;;;;;;;;;;;;;;;;14574:49;:85;;;;;14648:11;;;;;;;;;;;14574:85;:159;;;;;14729:3;14724:1;14709:12;;:16;;;;:::i;:::-;14708:24;;;;:::i;:::-;14684:20;:49;14574:159;14548:492;;;14776:38;14793:20;14776:16;:38::i;:::-;14837:26;14866:21;14837:50;;14935:1;14914:18;:22;14910:111;;;14965:32;14978:18;14965:12;:32::i;:::-;14910:111;14753:287;14548:492;12834:2221;12771:2284;15132:5;15118:11;:19;15100:9;:15;15110:4;15100:15;;;;;;;;;;;;;;;:37;;;;12571:2593;12493:2671;15194:1;15180:16;;:2;:16;;;15176:213;;15258:5;15242:12;;:21;;;;;;;;;;;15176:213;;;15357:5;15340:9;:13;15350:2;15340:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;15176:213;15421:2;15406:25;;15415:4;15406:25;;;15425:5;15406:25;;;;;;:::i;:::-;;;;;;;;12450:2989;12375:3064;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1323:117::-;1432:1;1429;1422:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:118::-;3426:24;3444:5;3426:24;:::i;:::-;3421:3;3414:37;3339:118;;:::o;3463:222::-;3556:4;3594:2;3583:9;3579:18;3571:26;;3607:71;3675:1;3664:9;3660:17;3651:6;3607:71;:::i;:::-;3463:222;;;;:::o;3691:619::-;3768:6;3776;3784;3833:2;3821:9;3812:7;3808:23;3804:32;3801:119;;;3839:79;;:::i;:::-;3801:119;3959:1;3984:53;4029:7;4020:6;4009:9;4005:22;3984:53;:::i;:::-;3974:63;;3930:117;4086:2;4112:53;4157:7;4148:6;4137:9;4133:22;4112:53;:::i;:::-;4102:63;;4057:118;4214:2;4240:53;4285:7;4276:6;4265:9;4261:22;4240:53;:::i;:::-;4230:63;;4185:118;3691:619;;;;;:::o;4316:116::-;4386:21;4401:5;4386:21;:::i;:::-;4379:5;4376:32;4366:60;;4422:1;4419;4412:12;4366:60;4316:116;:::o;4438:133::-;4481:5;4519:6;4506:20;4497:29;;4535:30;4559:5;4535:30;:::i;:::-;4438:133;;;;:::o;4577:468::-;4642:6;4650;4699:2;4687:9;4678:7;4674:23;4670:32;4667:119;;;4705:79;;:::i;:::-;4667:119;4825:1;4850:53;4895:7;4886:6;4875:9;4871:22;4850:53;:::i;:::-;4840:63;;4796:117;4952:2;4978:50;5020:7;5011:6;5000:9;4996:22;4978:50;:::i;:::-;4968:60;;4923:115;4577:468;;;;;:::o;5051:86::-;5086:7;5126:4;5119:5;5115:16;5104:27;;5051:86;;;:::o;5143:112::-;5226:22;5242:5;5226:22;:::i;:::-;5221:3;5214:35;5143:112;;:::o;5261:214::-;5350:4;5388:2;5377:9;5373:18;5365:26;;5401:67;5465:1;5454:9;5450:17;5441:6;5401:67;:::i;:::-;5261:214;;;;:::o;5481:329::-;5540:6;5589:2;5577:9;5568:7;5564:23;5560:32;5557:119;;;5595:79;;:::i;:::-;5557:119;5715:1;5740:53;5785:7;5776:6;5765:9;5761:22;5740:53;:::i;:::-;5730:63;;5686:117;5481:329;;;;:::o;5816:118::-;5903:24;5921:5;5903:24;:::i;:::-;5898:3;5891:37;5816:118;;:::o;5940:222::-;6033:4;6071:2;6060:9;6056:18;6048:26;;6084:71;6152:1;6141:9;6137:17;6128:6;6084:71;:::i;:::-;5940:222;;;;:::o;6168:474::-;6236:6;6244;6293:2;6281:9;6272:7;6268:23;6264:32;6261:119;;;6299:79;;:::i;:::-;6261:119;6419:1;6444:53;6489:7;6480:6;6469:9;6465:22;6444:53;:::i;:::-;6434:63;;6390:117;6546:2;6572:53;6617:7;6608:6;6597:9;6593:22;6572:53;:::i;:::-;6562:63;;6517:118;6168:474;;;;;:::o;6648:104::-;6693:7;6722:24;6740:5;6722:24;:::i;:::-;6711:35;;6648:104;;;:::o;6758:138::-;6839:32;6865:5;6839:32;:::i;:::-;6832:5;6829:43;6819:71;;6886:1;6883;6876:12;6819:71;6758:138;:::o;6902:155::-;6956:5;6994:6;6981:20;6972:29;;7010:41;7045:5;7010:41;:::i;:::-;6902:155;;;;:::o;7063:345::-;7130:6;7179:2;7167:9;7158:7;7154:23;7150:32;7147:119;;;7185:79;;:::i;:::-;7147:119;7305:1;7330:61;7383:7;7374:6;7363:9;7359:22;7330:61;:::i;:::-;7320:71;;7276:125;7063:345;;;;:::o;7414:180::-;7462:77;7459:1;7452:88;7559:4;7556:1;7549:15;7583:4;7580:1;7573:15;7600:320;7644:6;7681:1;7675:4;7671:12;7661:22;;7728:1;7722:4;7718:12;7749:18;7739:81;;7805:4;7797:6;7793:17;7783:27;;7739:81;7867:2;7859:6;7856:14;7836:18;7833:38;7830:84;;7886:18;;:::i;:::-;7830:84;7651:269;7600:320;;;:::o;7926:180::-;7974:77;7971:1;7964:88;8071:4;8068:1;8061:15;8095:4;8092:1;8085:15;8112:191;8152:3;8171:20;8189:1;8171:20;:::i;:::-;8166:25;;8205:20;8223:1;8205:20;:::i;:::-;8200:25;;8248:1;8245;8241:9;8234:16;;8269:3;8266:1;8263:10;8260:36;;;8276:18;;:::i;:::-;8260:36;8112:191;;;;:::o;8309:442::-;8458:4;8496:2;8485:9;8481:18;8473:26;;8509:71;8577:1;8566:9;8562:17;8553:6;8509:71;:::i;:::-;8590:72;8658:2;8647:9;8643:18;8634:6;8590:72;:::i;:::-;8672;8740:2;8729:9;8725:18;8716:6;8672:72;:::i;:::-;8309:442;;;;;;:::o;8757:143::-;8814:5;8845:6;8839:13;8830:22;;8861:33;8888:5;8861:33;:::i;:::-;8757:143;;;;:::o;8906:351::-;8976:6;9025:2;9013:9;9004:7;9000:23;8996:32;8993:119;;;9031:79;;:::i;:::-;8993:119;9151:1;9176:64;9232:7;9223:6;9212:9;9208:22;9176:64;:::i;:::-;9166:74;;9122:128;8906:351;;;;:::o;9263:332::-;9384:4;9422:2;9411:9;9407:18;9399:26;;9435:71;9503:1;9492:9;9488:17;9479:6;9435:71;:::i;:::-;9516:72;9584:2;9573:9;9569:18;9560:6;9516:72;:::i;:::-;9263:332;;;;;:::o;9601:85::-;9646:7;9675:5;9664:16;;9601:85;;;:::o;9692:60::-;9720:3;9741:5;9734:12;;9692:60;;;:::o;9758:158::-;9816:9;9849:61;9867:42;9876:32;9902:5;9876:32;:::i;:::-;9867:42;:::i;:::-;9849:61;:::i;:::-;9836:74;;9758:158;;;:::o;9922:147::-;10017:45;10056:5;10017:45;:::i;:::-;10012:3;10005:58;9922:147;;:::o;10075:807::-;10324:4;10362:3;10351:9;10347:19;10339:27;;10376:71;10444:1;10433:9;10429:17;10420:6;10376:71;:::i;:::-;10457:72;10525:2;10514:9;10510:18;10501:6;10457:72;:::i;:::-;10539:80;10615:2;10604:9;10600:18;10591:6;10539:80;:::i;:::-;10629;10705:2;10694:9;10690:18;10681:6;10629:80;:::i;:::-;10719:73;10787:3;10776:9;10772:19;10763:6;10719:73;:::i;:::-;10802;10870:3;10859:9;10855:19;10846:6;10802:73;:::i;:::-;10075:807;;;;;;;;;:::o;10888:143::-;10945:5;10976:6;10970:13;10961:22;;10992:33;11019:5;10992:33;:::i;:::-;10888:143;;;;:::o;11037:663::-;11125:6;11133;11141;11190:2;11178:9;11169:7;11165:23;11161:32;11158:119;;;11196:79;;:::i;:::-;11158:119;11316:1;11341:64;11397:7;11388:6;11377:9;11373:22;11341:64;:::i;:::-;11331:74;;11287:128;11454:2;11480:64;11536:7;11527:6;11516:9;11512:22;11480:64;:::i;:::-;11470:74;;11425:129;11593:2;11619:64;11675:7;11666:6;11655:9;11651:22;11619:64;:::i;:::-;11609:74;;11564:129;11037:663;;;;;:::o;11706:332::-;11827:4;11865:2;11854:9;11850:18;11842:26;;11878:71;11946:1;11935:9;11931:17;11922:6;11878:71;:::i;:::-;11959:72;12027:2;12016:9;12012:18;12003:6;11959:72;:::i;:::-;11706:332;;;;;:::o;12044:137::-;12098:5;12129:6;12123:13;12114:22;;12145:30;12169:5;12145:30;:::i;:::-;12044:137;;;;:::o;12187:345::-;12254:6;12303:2;12291:9;12282:7;12278:23;12274:32;12271:119;;;12309:79;;:::i;:::-;12271:119;12429:1;12454:61;12507:7;12498:6;12487:9;12483:22;12454:61;:::i;:::-;12444:71;;12400:125;12187:345;;;;:::o;12538:147::-;12639:11;12676:3;12661:18;;12538:147;;;;:::o;12691:114::-;;:::o;12811:398::-;12970:3;12991:83;13072:1;13067:3;12991:83;:::i;:::-;12984:90;;13083:93;13172:3;13083:93;:::i;:::-;13201:1;13196:3;13192:11;13185:18;;12811:398;;;:::o;13215:379::-;13399:3;13421:147;13564:3;13421:147;:::i;:::-;13414:154;;13585:3;13578:10;;13215:379;;;:::o;13600:351::-;13670:6;13719:2;13707:9;13698:7;13694:23;13690:32;13687:119;;;13725:79;;:::i;:::-;13687:119;13845:1;13870:64;13926:7;13917:6;13906:9;13902:22;13870:64;:::i;:::-;13860:74;;13816:128;13600:351;;;;:::o;13957:180::-;14005:77;14002:1;13995:88;14102:4;14099:1;14092:15;14126:4;14123:1;14116:15;14143:180;14191:77;14188:1;14181:88;14288:4;14285:1;14278:15;14312:4;14309:1;14302:15;14329:114;14396:6;14430:5;14424:12;14414:22;;14329:114;;;:::o;14449:184::-;14548:11;14582:6;14577:3;14570:19;14622:4;14617:3;14613:14;14598:29;;14449:184;;;;:::o;14639:132::-;14706:4;14729:3;14721:11;;14759:4;14754:3;14750:14;14742:22;;14639:132;;;:::o;14777:108::-;14854:24;14872:5;14854:24;:::i;:::-;14849:3;14842:37;14777:108;;:::o;14891:179::-;14960:10;14981:46;15023:3;15015:6;14981:46;:::i;:::-;15059:4;15054:3;15050:14;15036:28;;14891:179;;;;:::o;15076:113::-;15146:4;15178;15173:3;15169:14;15161:22;;15076:113;;;:::o;15225:732::-;15344:3;15373:54;15421:5;15373:54;:::i;:::-;15443:86;15522:6;15517:3;15443:86;:::i;:::-;15436:93;;15553:56;15603:5;15553:56;:::i;:::-;15632:7;15663:1;15648:284;15673:6;15670:1;15667:13;15648:284;;;15749:6;15743:13;15776:63;15835:3;15820:13;15776:63;:::i;:::-;15769:70;;15862:60;15915:6;15862:60;:::i;:::-;15852:70;;15708:224;15695:1;15692;15688:9;15683:14;;15648:284;;;15652:14;15948:3;15941:10;;15349:608;;;15225:732;;;;:::o;15963:831::-;16226:4;16264:3;16253:9;16249:19;16241:27;;16278:71;16346:1;16335:9;16331:17;16322:6;16278:71;:::i;:::-;16359:80;16435:2;16424:9;16420:18;16411:6;16359:80;:::i;:::-;16486:9;16480:4;16476:20;16471:2;16460:9;16456:18;16449:48;16514:108;16617:4;16608:6;16514:108;:::i;:::-;16506:116;;16632:72;16700:2;16689:9;16685:18;16676:6;16632:72;:::i;:::-;16714:73;16782:3;16771:9;16767:19;16758:6;16714:73;:::i;:::-;15963:831;;;;;;;;:::o;16800:410::-;16840:7;16863:20;16881:1;16863:20;:::i;:::-;16858:25;;16897:20;16915:1;16897:20;:::i;:::-;16892:25;;16952:1;16949;16945:9;16974:30;16992:11;16974:30;:::i;:::-;16963:41;;17153:1;17144:7;17140:15;17137:1;17134:22;17114:1;17107:9;17087:83;17064:139;;17183:18;;:::i;:::-;17064:139;16848:362;16800:410;;;;:::o;17216:180::-;17264:77;17261:1;17254:88;17361:4;17358:1;17351:15;17385:4;17382:1;17375:15;17402:185;17442:1;17459:20;17477:1;17459:20;:::i;:::-;17454:25;;17493:20;17511:1;17493:20;:::i;:::-;17488:25;;17532:1;17522:35;;17537:18;;:::i;:::-;17522:35;17579:1;17576;17572:9;17567:14;;17402:185;;;;:::o;17593:233::-;17632:3;17655:24;17673:5;17655:24;:::i;:::-;17646:33;;17701:66;17694:5;17691:77;17688:103;;17771:18;;:::i;:::-;17688:103;17818:1;17811:5;17807:13;17800:20;;17593:233;;;:::o;17832:194::-;17872:4;17892:20;17910:1;17892:20;:::i;:::-;17887:25;;17926:20;17944:1;17926:20;:::i;:::-;17921:25;;17970:1;17967;17963:9;17955:17;;17994:1;17988:4;17985:11;17982:37;;;17999:18;;:::i;:::-;17982:37;17832:194;;;;:::o
Swarm Source
ipfs://aca2ca951a84e7f3cefcc3efc8cb04dcea5c6affed276f74eae1254095145191
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.
Add Token to MetaMask (Web3)