Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 30 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 21647624 | 406 days ago | IN | 0 ETH | 0.00023926 | ||||
| Approve | 20046744 | 630 days ago | IN | 0 ETH | 0.00037388 | ||||
| Approve | 19973724 | 640 days ago | IN | 0 ETH | 0.00035101 | ||||
| Approve | 19970824 | 640 days ago | IN | 0 ETH | 0.00055075 | ||||
| Approve | 19970781 | 640 days ago | IN | 0 ETH | 0.00066013 | ||||
| Approve | 19948425 | 643 days ago | IN | 0 ETH | 0.00022863 | ||||
| Approve | 19941119 | 644 days ago | IN | 0 ETH | 0.00057291 | ||||
| Transfer | 19941104 | 644 days ago | IN | 0 ETH | 0.00049797 | ||||
| Transfer | 19941099 | 644 days ago | IN | 0 ETH | 0.00050774 | ||||
| Transfer | 19941094 | 644 days ago | IN | 0 ETH | 0.00045253 | ||||
| Transfer | 19941084 | 644 days ago | IN | 0 ETH | 0.00038031 | ||||
| Approve | 19938372 | 645 days ago | IN | 0 ETH | 0.00028135 | ||||
| Approve | 19938369 | 645 days ago | IN | 0 ETH | 0.00027466 | ||||
| Approve | 19938332 | 645 days ago | IN | 0 ETH | 0.00055576 | ||||
| Approve | 19934480 | 645 days ago | IN | 0 ETH | 0.00058705 | ||||
| Approve | 19934447 | 645 days ago | IN | 0 ETH | 0.00064682 | ||||
| Approve | 19934407 | 645 days ago | IN | 0 ETH | 0.00063765 | ||||
| Approve | 19932900 | 645 days ago | IN | 0 ETH | 0.00097858 | ||||
| Approve | 19932839 | 646 days ago | IN | 0 ETH | 0.00092872 | ||||
| Approve | 19929413 | 646 days ago | IN | 0 ETH | 0.00031074 | ||||
| Approve | 19927999 | 646 days ago | IN | 0 ETH | 0.00074724 | ||||
| Approve | 19927404 | 646 days ago | IN | 0 ETH | 0.00066855 | ||||
| Renounce Ownersh... | 19927200 | 646 days ago | IN | 0 ETH | 0.0004966 | ||||
| Approve | 19927189 | 646 days ago | IN | 0 ETH | 0.00114487 | ||||
| Launch | 19927182 | 646 days ago | IN | 0 ETH | 0.00068429 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
NVIDIA
Compiler Version
v0.8.20+commit.a1b79de6
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2024-05-22
*/
/**
TG: t.me/nvidiacloudai
X/Twitter: x.com/nvidiacloudai
Web: nvidiacloud.ai
Docs: docs.nvidiacloud.ai
*/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
this;
return msg.data;
}
}
interface IERC20 {
function totalSupply() external view returns (uint256);
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient, uint256 amount)
external
returns (bool);
function allowance(address owner, address spender)
external
view
returns (uint256);
function approve(address spender, uint256 amount) external returns (bool);
function transferFrom(
address sender,
address recipient,
uint256 amount
) external returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
interface IERC20Metadata is IERC20 {
function name() external view returns (string memory);
function symbol() external view returns (string memory);
function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
mapping(address => uint256) internal _balances;
mapping(address => mapping(address => uint256)) internal _allowances;
uint256 private _totalSupply;
string private _name;
string private _symbol;
constructor(string memory name_, string memory symbol_) {
_name = name_;
_symbol = symbol_;
}
function name() public view virtual override returns (string memory) {
return _name;
}
function symbol() public view virtual override returns (string memory) {
return _symbol;
}
function decimals() public view virtual override returns (uint8) {
return 18;
}
function totalSupply() public view virtual override returns (uint256) {
return _totalSupply;
}
function balanceOf(address account)
public
view
virtual
override
returns (uint256)
{
return _balances[account];
}
function transfer(address recipient, uint256 amount)
public
virtual
override
returns (bool)
{
_transfer(_msgSender(), recipient, amount);
return true;
}
function allowance(address owner, address spender)
public
view
virtual
override
returns (uint256)
{
return _allowances[owner][spender];
}
function approve(address spender, uint256 amount)
public
virtual
override
returns (bool)
{
_approve(_msgSender(), spender, amount);
return true;
}
function transferFrom(
address sender,
address recipient,
uint256 amount
) public virtual override returns (bool) {
_transfer(sender, recipient, amount);
uint256 currentAllowance = _allowances[sender][_msgSender()];
require(
currentAllowance >= amount,
"ERC20: transfer amount exceeds allowance"
);
_approve(sender, _msgSender(), currentAllowance - amount);
return true;
}
function increaseAllowance(address spender, uint256 addedValue)
public
virtual
returns (bool)
{
_approve(
_msgSender(),
spender,
_allowances[_msgSender()][spender] + addedValue
);
return true;
}
function decreaseAllowance(address spender, uint256 subtractedValue)
public
virtual
returns (bool)
{
uint256 currentAllowance = _allowances[_msgSender()][spender];
require(
currentAllowance >= subtractedValue,
"ERC20: decreased allowance below zero"
);
_approve(_msgSender(), spender, currentAllowance - subtractedValue);
return true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), "ERC20: transfer from the zero address");
require(recipient != address(0), "ERC20: transfer to the zero address");
_beforeTokenTransfer(sender, recipient, amount);
uint256 senderBalance = _balances[sender];
require(
senderBalance >= amount,
"ERC20: transfer amount exceeds balance"
);
_balances[sender] = senderBalance - amount;
_balances[recipient] += amount;
emit Transfer(sender, recipient, amount);
}
function _mint(address account, uint256 amount) internal virtual {
require(account != address(0), "ERC20: mint to the zero address");
_beforeTokenTransfer(address(0), account, amount);
_totalSupply += amount;
_balances[account] += amount;
emit Transfer(address(0), account, amount);
}
function _approve(
address owner,
address spender,
uint256 amount
) internal virtual {
require(owner != address(0), "ERC20: approve from the zero address");
require(spender != address(0), "ERC20: approve to the zero address");
_allowances[owner][spender] = amount;
emit Approval(owner, spender, amount);
}
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual {}
}
library Address {
function sendValue(address payable recipient, uint256 amount) internal {
require(
address(this).balance >= amount,
"Address: insufficient balance"
);
(bool success, ) = recipient.call{value: amount}("");
require(
success,
"Address: unable to send value, recipient may have reverted"
);
}
}
abstract contract Ownable is Context {
address private _owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
constructor() {
_setOwner(_msgSender());
}
function owner() public view virtual returns (address) {
return _owner;
}
modifier onlyOwner() {
require(owner() == _msgSender(), "Ownable: caller is not the owner");
_;
}
function renounceOwnership() public virtual onlyOwner {
_setOwner(address(0));
}
function transferOwnership(address newOwner) public virtual onlyOwner {
require(
newOwner != address(0),
"Ownable: new owner is the zero address"
);
_setOwner(newOwner);
}
function _setOwner(address newOwner) private {
address oldOwner = _owner;
_owner = newOwner;
emit OwnershipTransferred(oldOwner, newOwner);
}
}
interface IFactory {
function createPair(address tokenA, address tokenB)
external
returns (address pair);
}
interface IRouter {
function factory() external pure returns (address);
function WETH() external pure returns (address);
function addLiquidityETH(
address token,
uint256 amountTokenDesired,
uint256 amountTokenMin,
uint256 amountETHMin,
address to,
uint256 deadline
)
external
payable
returns (
uint256 amountToken,
uint256 amountETH,
uint256 liquidity
);
function swapExactTokensForETHSupportingFeeOnTransferTokens(
uint256 amountIn,
uint256 amountOutMin,
address[] calldata path,
address to,
uint256 deadline
) external;
}
contract NVIDIA is ERC20, Ownable {
using Address for address payable;
IRouter public router;
address public pair;
bool private swapping;
bool public swapEnabled;
bool public launched;
modifier lockSwapping() {
swapping = true;
_;
swapping = false;
}
event TransferForeignToken(address token, uint256 amount);
event Launched();
event SwapEnabled();
event SwapThresholdUpdated();
event BuyTaxesUpdated();
event SellTaxesUpdated();
event MarketingWalletUpdated();
event DevelopmentWalletUpdated();
event StoicDaoWalletUpdated();
event ExcludedFromFeesUpdated();
event MaxTxAmountUpdated();
event MaxWalletAmountUpdated();
event StuckEthersCleared();
uint256 public transactionCount = 0; // Počet transakcií, ktoré prebehli
uint256 public constant transactionThreshold = 25; // Prahová hodnota pre zmenu dane
uint256 public constant TOTAL_SUPPLY = 1000000 * 10**18; // 1 milión tokenov
uint256 public swapThreshold = (TOTAL_SUPPLY * 1) / 100; // 1% z celkovej ponuky tokenov
uint256 public maxTxAmount = (TOTAL_SUPPLY * 2) / 100; // 2% z celkovej ponuky tokenov
uint256 public maxWalletAmount = (TOTAL_SUPPLY * 8) / 100; // 8% z celkovej ponuky tokenov
address public marketingWallet = 0xf67514DC19b0f6eBb2EE6bf93efCfEd69A4CD3e2;
uint256 private initialBuyTax = 10; //10%
uint256 private initialSellTax = 20; //20%
uint256 private finalBuyTax = 5; //5%
uint256 private finalSellTax = 5; //5%
mapping(address => bool) public excludedFromFees;
modifier inSwap() {
if (!swapping) {
swapping = true;
_;
swapping = false;
}
}
constructor() ERC20("Nvidia Cloud AI", "NVIDIA") {
_mint(msg.sender, TOTAL_SUPPLY);
excludedFromFees[msg.sender] = true;
IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
address _pair = IFactory(_router.factory()).createPair(
address(this),
_router.WETH()
);
router = _router;
pair = _pair;
excludedFromFees[address(this)] = true;
excludedFromFees[marketingWallet] = true;
}
function _transfer(
address sender,
address recipient,
uint256 amount
) internal override {
require(amount > 0, "Transfer amount must be greater than zero");
if (
!excludedFromFees[sender] &&
!excludedFromFees[recipient] &&
!swapping
) {
if (sender != owner() && recipient != owner()) {
require(amount <= maxTxAmount, "You are exceeding maxTxAmount");
if (recipient != pair) {
require(
balanceOf(recipient) + amount <= maxWalletAmount,
"You are exceeding maxWalletAmount"
);
}
}
}
uint256 fee;
if (swapping || excludedFromFees[sender] || excludedFromFees[recipient])
fee = 0;
else {
if (recipient == pair) {
fee =
(amount *
(
transactionCount < transactionThreshold
? initialSellTax
: finalSellTax
)) /
100;
transactionCount++;
} else if (sender == pair) {
fee =
(amount *
(
transactionCount < transactionThreshold
? initialBuyTax
: finalBuyTax
)) /
100;
transactionCount++;
} else {
fee = 0;
}
}
if (swapEnabled && !swapping && sender != pair && fee > 0)
swapForFees();
super._transfer(sender, recipient, amount - fee);
if (fee > 0) super._transfer(sender, address(this), fee);
}
function swapForFees() private inSwap {
uint256 contractBalance = balanceOf(address(this));
if (contractBalance >= swapThreshold) {
swapTokensForETH(contractBalance);
uint256 deltaBalance = address(this).balance;
if (deltaBalance > 0) {
payable(marketingWallet).transfer(deltaBalance);
}
}
}
function swapTokensForETH(uint256 tokenAmount) private {
address[] memory path = new address[](2);
path[0] = address(this);
path[1] = router.WETH();
_approve(address(this), address(router), tokenAmount);
// make the swap
router.swapExactTokensForETHSupportingFeeOnTransferTokens(
tokenAmount,
0,
path,
address(this),
block.timestamp
);
}
function addLiquidity(uint256 tokenAmount, uint256 bnbAmount) private {
// approve token transfer to cover all possible scenarios
_approve(address(this), address(router), tokenAmount);
// add the liquidity
router.addLiquidityETH{value: bnbAmount}(
address(this),
tokenAmount,
0, // slippage is unavoidable
0, // slippage is unavoidable
address(0xdead),
block.timestamp
);
}
function setSwapEnabled(bool state) external onlyOwner {
// to be used only in case of dire emergency
swapEnabled = state;
emit SwapEnabled();
}
function setSwapThreshold(uint256 new_amount) external onlyOwner {
swapThreshold = new_amount * (10**18);
emit SwapThresholdUpdated();
}
function launch() external onlyOwner {
require(!launched, "Trading already active");
launched = true;
swapEnabled = true;
emit Launched();
}
function setMarketingWallet(address newWallet) external onlyOwner {
excludedFromFees[marketingWallet] = false;
require(
newWallet != address(0),
"Marketing Wallet cannot be zero address"
);
marketingWallet = newWallet;
emit MarketingWalletUpdated();
}
function setExcludedFromFees(address _address, bool state)
external
onlyOwner
{
excludedFromFees[_address] = state;
emit ExcludedFromFeesUpdated();
}
function withdrawStuckTokens(address _token, address _to)
external
onlyOwner
returns (bool _sent)
{
uint256 _contractBalance = IERC20(_token).balanceOf(address(this));
_sent = IERC20(_token).transfer(_to, _contractBalance);
emit TransferForeignToken(_token, _contractBalance);
}
function clearStuckEthers(uint256 amountPercentage) external onlyOwner {
uint256 amountETH = address(this).balance;
payable(msg.sender).transfer((amountETH * amountPercentage) / 100);
emit StuckEthersCleared();
}
function unclog() public onlyOwner lockSwapping {
swapTokensForETH(balanceOf(address(this)));
uint256 ethBalance = address(this).balance;
uint256 ethMarketing = ethBalance;
bool success;
(success, ) = address(marketingWallet).call{value: ethMarketing}("");
}
// fallbacks
receive() external payable {}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[],"name":"BuyTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"DevelopmentWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"ExcludedFromFeesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Launched","type":"event"},{"anonymous":false,"inputs":[],"name":"MarketingWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"MaxWalletAmountUpdated","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":[],"name":"SellTaxesUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StoicDaoWalletUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"StuckEthersCleared","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapEnabled","type":"event"},{"anonymous":false,"inputs":[],"name":"SwapThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferForeignToken","type":"event"},{"inputs":[],"name":"TOTAL_SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckEthers","outputs":[],"stateMutability":"nonpayable","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":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"excludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"launch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launched","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"setMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"setSwapEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"setSwapThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transactionCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transactionThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclog","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"withdrawStuckTokens","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040525f6008556064600169d3c21bcecceda10000006200002391906200074c565b6200002f9190620007c3565b6009556064600269d3c21bcecceda10000006200004d91906200074c565b620000599190620007c3565b600a556064600869d3c21bcecceda10000006200007791906200074c565b620000839190620007c3565b600b5573f67514dc19b0f6ebb2ee6bf93efcfed69a4cd3e2600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a600d556014600e556005600f556005601055348015620000fa575f80fd5b506040518060400160405280600f81526020017f4e766964696120436c6f756420414900000000000000000000000000000000008152506040518060400160405280600681526020017f4e56494449410000000000000000000000000000000000000000000000000000815250816003908162000178919062000a55565b5080600490816200018a919062000a55565b505050620001ad620001a1620004ea60201b60201c565b620004f160201b60201c565b620001c93369d3c21bcecceda1000000620005b460201b60201c565b600160115f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90505f8173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000281573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002a7919062000b9e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200030d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000333919062000b9e565b6040518363ffffffff1660e01b81526004016200035292919062000bdf565b6020604051808303815f875af11580156200036f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000395919062000b9e565b90508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505062000cee565b5f33905090565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000625576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200061c9062000c68565b60405180910390fd5b620006385f83836200071160201b60201c565b8060025f8282546200064b919062000c88565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200069f919062000c88565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000705919062000cd3565b60405180910390a35050565b505050565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f620007588262000716565b9150620007658362000716565b9250828202620007758162000716565b915082820484148315176200078f576200078e6200071f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620007cf8262000716565b9150620007dc8362000716565b925082620007ef57620007ee62000796565b5b828204905092915050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200087657607f821691505b6020821081036200088c576200088b62000831565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620008f07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620008b3565b620008fc8683620008b3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f6200093d62000937620009318462000716565b62000914565b62000716565b9050919050565b5f819050919050565b62000958836200091d565b62000970620009678262000944565b848454620008bf565b825550505050565b5f90565b6200098662000978565b620009938184846200094d565b505050565b5b81811015620009ba57620009ae5f826200097c565b60018101905062000999565b5050565b601f82111562000a0957620009d38162000892565b620009de84620008a4565b81016020851015620009ee578190505b62000a06620009fd85620008a4565b83018262000998565b50505b505050565b5f82821c905092915050565b5f62000a2b5f198460080262000a0e565b1980831691505092915050565b5f62000a45838362000a1a565b9150826002028217905092915050565b62000a6082620007fa565b67ffffffffffffffff81111562000a7c5762000a7b62000804565b5b62000a8882546200085e565b62000a95828285620009be565b5f60209050601f83116001811462000acb575f841562000ab6578287015190505b62000ac2858262000a38565b86555062000b31565b601f19841662000adb8662000892565b5f5b8281101562000b045784890151825560018201915060208501945060208101905062000add565b8683101562000b24578489015162000b20601f89168262000a1a565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000b688262000b3d565b9050919050565b62000b7a8162000b5c565b811462000b85575f80fd5b50565b5f8151905062000b988162000b6f565b92915050565b5f6020828403121562000bb65762000bb562000b39565b5b5f62000bc58482850162000b88565b91505092915050565b62000bd98162000b5c565b82525050565b5f60408201905062000bf45f83018562000bce565b62000c03602083018462000bce565b9392505050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000c50601f8362000c0a565b915062000c5d8262000c1a565b602082019050919050565b5f6020820190508181035f83015262000c818162000c42565b9050919050565b5f62000c948262000716565b915062000ca18362000716565b925082820190508082111562000cbc5762000cbb6200071f565b5b92915050565b62000ccd8162000716565b82525050565b5f60208201905062000ce85f83018462000cc2565b92915050565b6136708062000cfc5f395ff3fe6080604052600436106101fc575f3560e01c80638312cd971161010c578063a8aa1b311161009f578063dbe66ca01161006e578063dbe66ca014610703578063dd62ed3e1461073f578063e01af92c1461077b578063f2fde38b146107a3578063f887ea40146107cb57610203565b8063a8aa1b3114610649578063a9059cbb14610673578063aa4bde28146106af578063b77bf600146106d957610203565b806395d89b41116100db57806395d89b41146105935780639aed7370146105bd5780639d0014b1146105e5578063a457c2d71461060d57610203565b80638312cd97146104eb5780638c0b5e22146105155780638da5cb5b1461053f578063902d55a51461056957610203565b8063395093511161018f5780636ddd17131161015e5780636ddd17131461041b57806370a0823114610445578063715018a61461048157806375f0a874146104975780638091f3bf146104c157610203565b80633950935114610379578063590ffdce146103b55780635d098b38146103dd57806367c453491461040557610203565b806318160ddd116101cb57806318160ddd146102ad57806323b872dd146102d757806325b86edf14610313578063313ce5671461034f57610203565b806301339c21146102075780630445b6671461021d57806306fdde0314610247578063095ea7b31461027157610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061021b6107f5565b005b348015610228575f80fd5b50610231610925565b60405161023e9190612649565b60405180910390f35b348015610252575f80fd5b5061025b61092b565b60405161026891906126ec565b60405180910390f35b34801561027c575f80fd5b5061029760048036038101906102929190612794565b6109bb565b6040516102a491906127ec565b60405180910390f35b3480156102b8575f80fd5b506102c16109d8565b6040516102ce9190612649565b60405180910390f35b3480156102e2575f80fd5b506102fd60048036038101906102f89190612805565b6109e1565b60405161030a91906127ec565b60405180910390f35b34801561031e575f80fd5b5061033960048036038101906103349190612855565b610adc565b60405161034691906127ec565b60405180910390f35b34801561035a575f80fd5b50610363610c91565b60405161037091906128ae565b60405180910390f35b348015610384575f80fd5b5061039f600480360381019061039a9190612794565b610c99565b6040516103ac91906127ec565b60405180910390f35b3480156103c0575f80fd5b506103db60048036038101906103d691906128f1565b610d40565b005b3480156103e8575f80fd5b5061040360048036038101906103fe919061292f565b610e40565b005b348015610410575f80fd5b5061041961100e565b005b348015610426575f80fd5b5061042f611168565b60405161043c91906127ec565b60405180910390f35b348015610450575f80fd5b5061046b6004803603810190610466919061292f565b61117b565b6040516104789190612649565b60405180910390f35b34801561048c575f80fd5b506104956111c0565b005b3480156104a2575f80fd5b506104ab611247565b6040516104b89190612969565b60405180910390f35b3480156104cc575f80fd5b506104d561126c565b6040516104e291906127ec565b60405180910390f35b3480156104f6575f80fd5b506104ff61127f565b60405161050c9190612649565b60405180910390f35b348015610520575f80fd5b50610529611284565b6040516105369190612649565b60405180910390f35b34801561054a575f80fd5b5061055361128a565b6040516105609190612969565b60405180910390f35b348015610574575f80fd5b5061057d6112b2565b60405161058a9190612649565b60405180910390f35b34801561059e575f80fd5b506105a76112c0565b6040516105b491906126ec565b60405180910390f35b3480156105c8575f80fd5b506105e360048036038101906105de9190612982565b611350565b005b3480156105f0575f80fd5b5061060b60048036038101906106069190612982565b61145b565b005b348015610618575f80fd5b50610633600480360381019061062e9190612794565b61151f565b60405161064091906127ec565b60405180910390f35b348015610654575f80fd5b5061065d61160e565b60405161066a9190612969565b60405180910390f35b34801561067e575f80fd5b5061069960048036038101906106949190612794565b611633565b6040516106a691906127ec565b60405180910390f35b3480156106ba575f80fd5b506106c3611650565b6040516106d09190612649565b60405180910390f35b3480156106e4575f80fd5b506106ed611656565b6040516106fa9190612649565b60405180910390f35b34801561070e575f80fd5b506107296004803603810190610724919061292f565b61165c565b60405161073691906127ec565b60405180910390f35b34801561074a575f80fd5b5061076560048036038101906107609190612855565b611679565b6040516107729190612649565b60405180910390f35b348015610786575f80fd5b506107a1600480360381019061079c91906129ad565b6116fb565b005b3480156107ae575f80fd5b506107c960048036038101906107c4919061292f565b6117c0565b005b3480156107d6575f80fd5b506107df6118b6565b6040516107ec9190612a33565b60405180910390f35b6107fd6118db565b73ffffffffffffffffffffffffffffffffffffffff1661081b61128a565b73ffffffffffffffffffffffffffffffffffffffff1614610871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086890612a96565b60405180910390fd5b600760169054906101000a900460ff16156108c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b890612afe565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055507fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c860405160405180910390a1565b60095481565b60606003805461093a90612b49565b80601f016020809104026020016040519081016040528092919081815260200182805461096690612b49565b80156109b15780601f10610988576101008083540402835291602001916109b1565b820191905f5260205f20905b81548152906001019060200180831161099457829003601f168201915b5050505050905090565b5f6109ce6109c76118db565b84846118e2565b6001905092915050565b5f600254905090565b5f6109ed848484611aa5565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a346118db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa90612be9565b60405180910390fd5b610ad085610abf6118db565b8584610acb9190612c34565b6118e2565b60019150509392505050565b5f610ae56118db565b73ffffffffffffffffffffffffffffffffffffffff16610b0361128a565b73ffffffffffffffffffffffffffffffffffffffff1614610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090612a96565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b939190612969565b602060405180830381865afa158015610bae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd29190612c7b565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610c0f929190612ca6565b6020604051808303815f875af1158015610c2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4f9190612ce1565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051610c82929190612ca6565b60405180910390a15092915050565b5f6012905090565b5f610d36610ca56118db565b848460015f610cb26118db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d319190612d0c565b6118e2565b6001905092915050565b610d486118db565b73ffffffffffffffffffffffffffffffffffffffff16610d6661128a565b73ffffffffffffffffffffffffffffffffffffffff1614610dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db390612a96565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed60405160405180910390a15050565b610e486118db565b73ffffffffffffffffffffffffffffffffffffffff16610e6661128a565b73ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390612a96565b60405180910390fd5b5f60115f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690612daf565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e060405160405180910390a150565b6110166118db565b73ffffffffffffffffffffffffffffffffffffffff1661103461128a565b73ffffffffffffffffffffffffffffffffffffffff161461108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190612a96565b60405180910390fd5b6001600760146101000a81548160ff0219169083151502179055506110b66110b13061117b565b611fe1565b5f4790505f8190505f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161110490612dfa565b5f6040518083038185875af1925050503d805f811461113e576040519150601f19603f3d011682016040523d82523d5f602084013e611143565b606091505b5050809150505050505f600760146101000a81548160ff021916908315150217905550565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6111c86118db565b73ffffffffffffffffffffffffffffffffffffffff166111e661128a565b73ffffffffffffffffffffffffffffffffffffffff161461123c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123390612a96565b60405180910390fd5b6112455f612217565b565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760169054906101000a900460ff1681565b601981565b600a5481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b69d3c21bcecceda100000081565b6060600480546112cf90612b49565b80601f01602080910402602001604051908101604052809291908181526020018280546112fb90612b49565b80156113465780601f1061131d57610100808354040283529160200191611346565b820191905f5260205f20905b81548152906001019060200180831161132957829003601f168201915b5050505050905090565b6113586118db565b73ffffffffffffffffffffffffffffffffffffffff1661137661128a565b73ffffffffffffffffffffffffffffffffffffffff16146113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612a96565b60405180910390fd5b5f4790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846113f89190612e0e565b6114029190612e7c565b90811502906040515f60405180830381858888f1935050505015801561142a573d5f803e3d5ffd5b507ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf960405160405180910390a15050565b6114636118db565b73ffffffffffffffffffffffffffffffffffffffff1661148161128a565b73ffffffffffffffffffffffffffffffffffffffff16146114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce90612a96565b60405180910390fd5b670de0b6b3a7640000816114eb9190612e0e565b6009819055507ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d60405160405180910390a150565b5f8060015f61152c6118db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd90612f1c565b60405180910390fd5b6116036115f16118db565b8585846115fe9190612c34565b6118e2565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61164661163f6118db565b8484611aa5565b6001905092915050565b600b5481565b60085481565b6011602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6117036118db565b73ffffffffffffffffffffffffffffffffffffffff1661172161128a565b73ffffffffffffffffffffffffffffffffffffffff1614611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90612a96565b60405180910390fd5b80600760156101000a81548160ff0219169083151502179055507f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a60405160405180910390a150565b6117c86118db565b73ffffffffffffffffffffffffffffffffffffffff166117e661128a565b73ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183390612a96565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a190612faa565b60405180910390fd5b6118b381612217565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790613038565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b5906130c6565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a989190612649565b60405180910390a3505050565b5f8111611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613154565b60405180910390fd5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b85575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b9e5750600760149054906101000a900460ff16155b15611d1257611bab61128a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c195750611be961128a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d1157600a54811115611c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5a906131bc565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d1057600b5481611cc48461117b565b611cce9190612d0c565b1115611d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d069061324a565b60405180910390fd5b5b5b5b5f600760149054906101000a900460ff1680611d74575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611dc5575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611dd2575f9050611f16565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e71576064601960085410611e3a57601054611e3e565b600e545b83611e499190612e0e565b611e539190612e7c565b905060085f815480929190611e6790613268565b9190505550611f15565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611f10576064601960085410611ed957600f54611edd565b600d545b83611ee89190612e0e565b611ef29190612e7c565b905060085f815480929190611f0690613268565b9190505550611f14565b5f90505b5b5b600760159054906101000a900460ff168015611f3f5750600760149054906101000a900460ff16155b8015611f98575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa357505f81115b15611fb157611fb06122da565b5b611fc784848385611fc29190612c34565b6123b9565b5f811115611fdb57611fda8430836123b9565b5b50505050565b5f600267ffffffffffffffff811115611ffd57611ffc6132af565b5b60405190808252806020026020018201604052801561202b5781602001602082028036833780820191505090505b50905030815f81518110612042576120416132dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210a919061331d565b8160018151811061211e5761211d6132dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121843060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118e2565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121e6959493929190613438565b5f604051808303815f87803b1580156121fd575f80fd5b505af115801561220f573d5f803e3d5ffd5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff166123b7576001600760146101000a81548160ff0219169083151502179055505f6123133061117b565b9050600954811061239b5761232781611fe1565b5f4790505f81111561239957600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612397573d5f803e3d5ffd5b505b505b505f600760146101000a81548160ff0219169083151502179055505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241e90613500565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248c9061358e565b60405180910390fd5b6124a083838361262c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251a9061361c565b60405180910390fd5b818161252f9190612c34565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125ba9190612d0c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161261e9190612649565b60405180910390a350505050565b505050565b5f819050919050565b61264381612631565b82525050565b5f60208201905061265c5f83018461263a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561269957808201518184015260208101905061267e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126be82612662565b6126c8818561266c565b93506126d881856020860161267c565b6126e1816126a4565b840191505092915050565b5f6020820190508181035f83015261270481846126b4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61273982612710565b9050919050565b6127498161272f565b8114612753575f80fd5b50565b5f8135905061276481612740565b92915050565b61277381612631565b811461277d575f80fd5b50565b5f8135905061278e8161276a565b92915050565b5f80604083850312156127aa576127a961270c565b5b5f6127b785828601612756565b92505060206127c885828601612780565b9150509250929050565b5f8115159050919050565b6127e6816127d2565b82525050565b5f6020820190506127ff5f8301846127dd565b92915050565b5f805f6060848603121561281c5761281b61270c565b5b5f61282986828701612756565b935050602061283a86828701612756565b925050604061284b86828701612780565b9150509250925092565b5f806040838503121561286b5761286a61270c565b5b5f61287885828601612756565b925050602061288985828601612756565b9150509250929050565b5f60ff82169050919050565b6128a881612893565b82525050565b5f6020820190506128c15f83018461289f565b92915050565b6128d0816127d2565b81146128da575f80fd5b50565b5f813590506128eb816128c7565b92915050565b5f80604083850312156129075761290661270c565b5b5f61291485828601612756565b9250506020612925858286016128dd565b9150509250929050565b5f602082840312156129445761294361270c565b5b5f61295184828501612756565b91505092915050565b6129638161272f565b82525050565b5f60208201905061297c5f83018461295a565b92915050565b5f602082840312156129975761299661270c565b5b5f6129a484828501612780565b91505092915050565b5f602082840312156129c2576129c161270c565b5b5f6129cf848285016128dd565b91505092915050565b5f819050919050565b5f6129fb6129f66129f184612710565b6129d8565b612710565b9050919050565b5f612a0c826129e1565b9050919050565b5f612a1d82612a02565b9050919050565b612a2d81612a13565b82525050565b5f602082019050612a465f830184612a24565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a8060208361266c565b9150612a8b82612a4c565b602082019050919050565b5f6020820190508181035f830152612aad81612a74565b9050919050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f612ae860168361266c565b9150612af382612ab4565b602082019050919050565b5f6020820190508181035f830152612b1581612adc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b6057607f821691505b602082108103612b7357612b72612b1c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612bd360288361266c565b9150612bde82612b79565b604082019050919050565b5f6020820190508181035f830152612c0081612bc7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c3e82612631565b9150612c4983612631565b9250828203905081811115612c6157612c60612c07565b5b92915050565b5f81519050612c758161276a565b92915050565b5f60208284031215612c9057612c8f61270c565b5b5f612c9d84828501612c67565b91505092915050565b5f604082019050612cb95f83018561295a565b612cc6602083018461263a565b9392505050565b5f81519050612cdb816128c7565b92915050565b5f60208284031215612cf657612cf561270c565b5b5f612d0384828501612ccd565b91505092915050565b5f612d1682612631565b9150612d2183612631565b9250828201905080821115612d3957612d38612c07565b5b92915050565b7f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f205f8201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b5f612d9960278361266c565b9150612da482612d3f565b604082019050919050565b5f6020820190508181035f830152612dc681612d8d565b9050919050565b5f81905092915050565b50565b5f612de55f83612dcd565b9150612df082612dd7565b5f82019050919050565b5f612e0482612dda565b9150819050919050565b5f612e1882612631565b9150612e2383612631565b9250828202612e3181612631565b91508282048414831517612e4857612e47612c07565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e8682612631565b9150612e9183612631565b925082612ea157612ea0612e4f565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612f0660258361266c565b9150612f1182612eac565b604082019050919050565b5f6020820190508181035f830152612f3381612efa565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612f9460268361266c565b9150612f9f82612f3a565b604082019050919050565b5f6020820190508181035f830152612fc181612f88565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61302260248361266c565b915061302d82612fc8565b604082019050919050565b5f6020820190508181035f83015261304f81613016565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130b060228361266c565b91506130bb82613056565b604082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61313e60298361266c565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e740000005f82015250565b5f6131a6601d8361266c565b91506131b182613172565b602082019050919050565b5f6020820190508181035f8301526131d38161319a565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f61323460218361266c565b915061323f826131da565b604082019050919050565b5f6020820190508181035f83015261326181613228565b9050919050565b5f61327282612631565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132a4576132a3612c07565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061331781612740565b92915050565b5f602082840312156133325761333161270c565b5b5f61333f84828501613309565b91505092915050565b5f819050919050565b5f61336b61336661336184613348565b6129d8565b612631565b9050919050565b61337b81613351565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6133b38161272f565b82525050565b5f6133c483836133aa565b60208301905092915050565b5f602082019050919050565b5f6133e682613381565b6133f0818561338b565b93506133fb8361339b565b805f5b8381101561342b57815161341288826133b9565b975061341d836133d0565b9250506001810190506133fe565b5085935050505092915050565b5f60a08201905061344b5f83018861263a565b6134586020830187613372565b818103604083015261346a81866133dc565b9050613479606083018561295a565b613486608083018461263a565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134ea60258361266c565b91506134f582613490565b604082019050919050565b5f6020820190508181035f830152613517816134de565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61357860238361266c565b91506135838261351e565b604082019050919050565b5f6020820190508181035f8301526135a58161356c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61360660268361266c565b9150613611826135ac565b604082019050919050565b5f6020820190508181035f830152613633816135fa565b905091905056fea264697066735822122049e4f2c03d0ec3c0d31eb274d9a056d591ed6e9f6faa7a7d80fca905dc66e34064736f6c63430008140033
Deployed Bytecode
0x6080604052600436106101fc575f3560e01c80638312cd971161010c578063a8aa1b311161009f578063dbe66ca01161006e578063dbe66ca014610703578063dd62ed3e1461073f578063e01af92c1461077b578063f2fde38b146107a3578063f887ea40146107cb57610203565b8063a8aa1b3114610649578063a9059cbb14610673578063aa4bde28146106af578063b77bf600146106d957610203565b806395d89b41116100db57806395d89b41146105935780639aed7370146105bd5780639d0014b1146105e5578063a457c2d71461060d57610203565b80638312cd97146104eb5780638c0b5e22146105155780638da5cb5b1461053f578063902d55a51461056957610203565b8063395093511161018f5780636ddd17131161015e5780636ddd17131461041b57806370a0823114610445578063715018a61461048157806375f0a874146104975780638091f3bf146104c157610203565b80633950935114610379578063590ffdce146103b55780635d098b38146103dd57806367c453491461040557610203565b806318160ddd116101cb57806318160ddd146102ad57806323b872dd146102d757806325b86edf14610313578063313ce5671461034f57610203565b806301339c21146102075780630445b6671461021d57806306fdde0314610247578063095ea7b31461027157610203565b3661020357005b5f80fd5b348015610212575f80fd5b5061021b6107f5565b005b348015610228575f80fd5b50610231610925565b60405161023e9190612649565b60405180910390f35b348015610252575f80fd5b5061025b61092b565b60405161026891906126ec565b60405180910390f35b34801561027c575f80fd5b5061029760048036038101906102929190612794565b6109bb565b6040516102a491906127ec565b60405180910390f35b3480156102b8575f80fd5b506102c16109d8565b6040516102ce9190612649565b60405180910390f35b3480156102e2575f80fd5b506102fd60048036038101906102f89190612805565b6109e1565b60405161030a91906127ec565b60405180910390f35b34801561031e575f80fd5b5061033960048036038101906103349190612855565b610adc565b60405161034691906127ec565b60405180910390f35b34801561035a575f80fd5b50610363610c91565b60405161037091906128ae565b60405180910390f35b348015610384575f80fd5b5061039f600480360381019061039a9190612794565b610c99565b6040516103ac91906127ec565b60405180910390f35b3480156103c0575f80fd5b506103db60048036038101906103d691906128f1565b610d40565b005b3480156103e8575f80fd5b5061040360048036038101906103fe919061292f565b610e40565b005b348015610410575f80fd5b5061041961100e565b005b348015610426575f80fd5b5061042f611168565b60405161043c91906127ec565b60405180910390f35b348015610450575f80fd5b5061046b6004803603810190610466919061292f565b61117b565b6040516104789190612649565b60405180910390f35b34801561048c575f80fd5b506104956111c0565b005b3480156104a2575f80fd5b506104ab611247565b6040516104b89190612969565b60405180910390f35b3480156104cc575f80fd5b506104d561126c565b6040516104e291906127ec565b60405180910390f35b3480156104f6575f80fd5b506104ff61127f565b60405161050c9190612649565b60405180910390f35b348015610520575f80fd5b50610529611284565b6040516105369190612649565b60405180910390f35b34801561054a575f80fd5b5061055361128a565b6040516105609190612969565b60405180910390f35b348015610574575f80fd5b5061057d6112b2565b60405161058a9190612649565b60405180910390f35b34801561059e575f80fd5b506105a76112c0565b6040516105b491906126ec565b60405180910390f35b3480156105c8575f80fd5b506105e360048036038101906105de9190612982565b611350565b005b3480156105f0575f80fd5b5061060b60048036038101906106069190612982565b61145b565b005b348015610618575f80fd5b50610633600480360381019061062e9190612794565b61151f565b60405161064091906127ec565b60405180910390f35b348015610654575f80fd5b5061065d61160e565b60405161066a9190612969565b60405180910390f35b34801561067e575f80fd5b5061069960048036038101906106949190612794565b611633565b6040516106a691906127ec565b60405180910390f35b3480156106ba575f80fd5b506106c3611650565b6040516106d09190612649565b60405180910390f35b3480156106e4575f80fd5b506106ed611656565b6040516106fa9190612649565b60405180910390f35b34801561070e575f80fd5b506107296004803603810190610724919061292f565b61165c565b60405161073691906127ec565b60405180910390f35b34801561074a575f80fd5b5061076560048036038101906107609190612855565b611679565b6040516107729190612649565b60405180910390f35b348015610786575f80fd5b506107a1600480360381019061079c91906129ad565b6116fb565b005b3480156107ae575f80fd5b506107c960048036038101906107c4919061292f565b6117c0565b005b3480156107d6575f80fd5b506107df6118b6565b6040516107ec9190612a33565b60405180910390f35b6107fd6118db565b73ffffffffffffffffffffffffffffffffffffffff1661081b61128a565b73ffffffffffffffffffffffffffffffffffffffff1614610871576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086890612a96565b60405180910390fd5b600760169054906101000a900460ff16156108c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108b890612afe565b60405180910390fd5b6001600760166101000a81548160ff0219169083151502179055506001600760156101000a81548160ff0219169083151502179055507fba61a96074b3d636edeee92caddc86293c917d5b6818b7d3698bb52e02ec86c860405160405180910390a1565b60095481565b60606003805461093a90612b49565b80601f016020809104026020016040519081016040528092919081815260200182805461096690612b49565b80156109b15780601f10610988576101008083540402835291602001916109b1565b820191905f5260205f20905b81548152906001019060200180831161099457829003601f168201915b5050505050905090565b5f6109ce6109c76118db565b84846118e2565b6001905092915050565b5f600254905090565b5f6109ed848484611aa5565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610a346118db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa90612be9565b60405180910390fd5b610ad085610abf6118db565b8584610acb9190612c34565b6118e2565b60019150509392505050565b5f610ae56118db565b73ffffffffffffffffffffffffffffffffffffffff16610b0361128a565b73ffffffffffffffffffffffffffffffffffffffff1614610b59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5090612a96565b60405180910390fd5b5f8373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610b939190612969565b602060405180830381865afa158015610bae573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bd29190612c7b565b90508373ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401610c0f929190612ca6565b6020604051808303815f875af1158015610c2b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c4f9190612ce1565b91507fdeda980967fcead7b61e78ac46a4da14274af29e894d4d61e8b81ec38ab3e4388482604051610c82929190612ca6565b60405180910390a15092915050565b5f6012905090565b5f610d36610ca56118db565b848460015f610cb26118db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d319190612d0c565b6118e2565b6001905092915050565b610d486118db565b73ffffffffffffffffffffffffffffffffffffffff16610d6661128a565b73ffffffffffffffffffffffffffffffffffffffff1614610dbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db390612a96565b60405180910390fd5b8060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055507fd03e5aecc1463f851cb441202cc200cd8754891d6b125b332588db1948d4cbed60405160405180910390a15050565b610e486118db565b73ffffffffffffffffffffffffffffffffffffffff16610e6661128a565b73ffffffffffffffffffffffffffffffffffffffff1614610ebc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb390612a96565b60405180910390fd5b5f60115f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610f9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f9690612daf565b60405180910390fd5b80600c5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fecc84d499d57318161ab7effa4a1797c7500e9cce582fce989611566acadb0e060405160405180910390a150565b6110166118db565b73ffffffffffffffffffffffffffffffffffffffff1661103461128a565b73ffffffffffffffffffffffffffffffffffffffff161461108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190612a96565b60405180910390fd5b6001600760146101000a81548160ff0219169083151502179055506110b66110b13061117b565b611fe1565b5f4790505f8190505f600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168260405161110490612dfa565b5f6040518083038185875af1925050503d805f811461113e576040519150601f19603f3d011682016040523d82523d5f602084013e611143565b606091505b5050809150505050505f600760146101000a81548160ff021916908315150217905550565b600760159054906101000a900460ff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6111c86118db565b73ffffffffffffffffffffffffffffffffffffffff166111e661128a565b73ffffffffffffffffffffffffffffffffffffffff161461123c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123390612a96565b60405180910390fd5b6112455f612217565b565b600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600760169054906101000a900460ff1681565b601981565b600a5481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b69d3c21bcecceda100000081565b6060600480546112cf90612b49565b80601f01602080910402602001604051908101604052809291908181526020018280546112fb90612b49565b80156113465780601f1061131d57610100808354040283529160200191611346565b820191905f5260205f20905b81548152906001019060200180831161132957829003601f168201915b5050505050905090565b6113586118db565b73ffffffffffffffffffffffffffffffffffffffff1661137661128a565b73ffffffffffffffffffffffffffffffffffffffff16146113cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c390612a96565b60405180910390fd5b5f4790503373ffffffffffffffffffffffffffffffffffffffff166108fc606484846113f89190612e0e565b6114029190612e7c565b90811502906040515f60405180830381858888f1935050505015801561142a573d5f803e3d5ffd5b507ff20a449062e534a116785d71bddf65609cfc0bc86030f808c97d76660ddb4bf960405160405180910390a15050565b6114636118db565b73ffffffffffffffffffffffffffffffffffffffff1661148161128a565b73ffffffffffffffffffffffffffffffffffffffff16146114d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ce90612a96565b60405180910390fd5b670de0b6b3a7640000816114eb9190612e0e565b6009819055507ee5ce26a39fffb27e333aa941bc88d6cc7491c7ad00e1dc92cae29c83aec93d60405160405180910390a150565b5f8060015f61152c6118db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050828110156115e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115dd90612f1c565b60405180910390fd5b6116036115f16118db565b8585846115fe9190612c34565b6118e2565b600191505092915050565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f61164661163f6118db565b8484611aa5565b6001905092915050565b600b5481565b60085481565b6011602052805f5260405f205f915054906101000a900460ff1681565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6117036118db565b73ffffffffffffffffffffffffffffffffffffffff1661172161128a565b73ffffffffffffffffffffffffffffffffffffffff1614611777576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176e90612a96565b60405180910390fd5b80600760156101000a81548160ff0219169083151502179055507f41c787961cb389554b90a8dbfb700790a3f278f50ba1d330c0b555d884789b5a60405160405180910390a150565b6117c86118db565b73ffffffffffffffffffffffffffffffffffffffff166117e661128a565b73ffffffffffffffffffffffffffffffffffffffff161461183c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183390612a96565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036118aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a190612faa565b60405180910390fd5b6118b381612217565b50565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611950576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161194790613038565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b5906130c6565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a989190612649565b60405180910390a3505050565b5f8111611ae7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ade90613154565b60405180910390fd5b60115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b85575060115f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611b9e5750600760149054906101000a900460ff16155b15611d1257611bab61128a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c195750611be961128a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d1157600a54811115611c63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5a906131bc565b60405180910390fd5b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d1057600b5481611cc48461117b565b611cce9190612d0c565b1115611d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d069061324a565b60405180910390fd5b5b5b5b5f600760149054906101000a900460ff1680611d74575060115f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611dc5575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611dd2575f9050611f16565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e71576064601960085410611e3a57601054611e3e565b600e545b83611e499190612e0e565b611e539190612e7c565b905060085f815480929190611e6790613268565b9190505550611f15565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611f10576064601960085410611ed957600f54611edd565b600d545b83611ee89190612e0e565b611ef29190612e7c565b905060085f815480929190611f0690613268565b9190505550611f14565b5f90505b5b5b600760159054906101000a900460ff168015611f3f5750600760149054906101000a900460ff16155b8015611f98575060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611fa357505f81115b15611fb157611fb06122da565b5b611fc784848385611fc29190612c34565b6123b9565b5f811115611fdb57611fda8430836123b9565b5b50505050565b5f600267ffffffffffffffff811115611ffd57611ffc6132af565b5b60405190808252806020026020018201604052801561202b5781602001602082028036833780820191505090505b50905030815f81518110612042576120416132dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120e6573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061210a919061331d565b8160018151811061211e5761211d6132dc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506121843060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118e2565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016121e6959493929190613438565b5f604051808303815f87803b1580156121fd575f80fd5b505af115801561220f573d5f803e3d5ffd5b505050505050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760149054906101000a900460ff166123b7576001600760146101000a81548160ff0219169083151502179055505f6123133061117b565b9050600954811061239b5761232781611fe1565b5f4790505f81111561239957600c5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612397573d5f803e3d5ffd5b505b505b505f600760146101000a81548160ff0219169083151502179055505b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612427576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161241e90613500565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161248c9061358e565b60405180910390fd5b6124a083838361262c565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161251a9061361c565b60405180910390fd5b818161252f9190612c34565b5f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546125ba9190612d0c565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161261e9190612649565b60405180910390a350505050565b505050565b5f819050919050565b61264381612631565b82525050565b5f60208201905061265c5f83018461263a565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561269957808201518184015260208101905061267e565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6126be82612662565b6126c8818561266c565b93506126d881856020860161267c565b6126e1816126a4565b840191505092915050565b5f6020820190508181035f83015261270481846126b4565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61273982612710565b9050919050565b6127498161272f565b8114612753575f80fd5b50565b5f8135905061276481612740565b92915050565b61277381612631565b811461277d575f80fd5b50565b5f8135905061278e8161276a565b92915050565b5f80604083850312156127aa576127a961270c565b5b5f6127b785828601612756565b92505060206127c885828601612780565b9150509250929050565b5f8115159050919050565b6127e6816127d2565b82525050565b5f6020820190506127ff5f8301846127dd565b92915050565b5f805f6060848603121561281c5761281b61270c565b5b5f61282986828701612756565b935050602061283a86828701612756565b925050604061284b86828701612780565b9150509250925092565b5f806040838503121561286b5761286a61270c565b5b5f61287885828601612756565b925050602061288985828601612756565b9150509250929050565b5f60ff82169050919050565b6128a881612893565b82525050565b5f6020820190506128c15f83018461289f565b92915050565b6128d0816127d2565b81146128da575f80fd5b50565b5f813590506128eb816128c7565b92915050565b5f80604083850312156129075761290661270c565b5b5f61291485828601612756565b9250506020612925858286016128dd565b9150509250929050565b5f602082840312156129445761294361270c565b5b5f61295184828501612756565b91505092915050565b6129638161272f565b82525050565b5f60208201905061297c5f83018461295a565b92915050565b5f602082840312156129975761299661270c565b5b5f6129a484828501612780565b91505092915050565b5f602082840312156129c2576129c161270c565b5b5f6129cf848285016128dd565b91505092915050565b5f819050919050565b5f6129fb6129f66129f184612710565b6129d8565b612710565b9050919050565b5f612a0c826129e1565b9050919050565b5f612a1d82612a02565b9050919050565b612a2d81612a13565b82525050565b5f602082019050612a465f830184612a24565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612a8060208361266c565b9150612a8b82612a4c565b602082019050919050565b5f6020820190508181035f830152612aad81612a74565b9050919050565b7f54726164696e6720616c726561647920616374697665000000000000000000005f82015250565b5f612ae860168361266c565b9150612af382612ab4565b602082019050919050565b5f6020820190508181035f830152612b1581612adc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680612b6057607f821691505b602082108103612b7357612b72612b1c565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f612bd360288361266c565b9150612bde82612b79565b604082019050919050565b5f6020820190508181035f830152612c0081612bc7565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f612c3e82612631565b9150612c4983612631565b9250828203905081811115612c6157612c60612c07565b5b92915050565b5f81519050612c758161276a565b92915050565b5f60208284031215612c9057612c8f61270c565b5b5f612c9d84828501612c67565b91505092915050565b5f604082019050612cb95f83018561295a565b612cc6602083018461263a565b9392505050565b5f81519050612cdb816128c7565b92915050565b5f60208284031215612cf657612cf561270c565b5b5f612d0384828501612ccd565b91505092915050565b5f612d1682612631565b9150612d2183612631565b9250828201905080821115612d3957612d38612c07565b5b92915050565b7f4d61726b6574696e672057616c6c65742063616e6e6f74206265207a65726f205f8201527f6164647265737300000000000000000000000000000000000000000000000000602082015250565b5f612d9960278361266c565b9150612da482612d3f565b604082019050919050565b5f6020820190508181035f830152612dc681612d8d565b9050919050565b5f81905092915050565b50565b5f612de55f83612dcd565b9150612df082612dd7565b5f82019050919050565b5f612e0482612dda565b9150819050919050565b5f612e1882612631565b9150612e2383612631565b9250828202612e3181612631565b91508282048414831517612e4857612e47612c07565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e8682612631565b9150612e9183612631565b925082612ea157612ea0612e4f565b5b828204905092915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f612f0660258361266c565b9150612f1182612eac565b604082019050919050565b5f6020820190508181035f830152612f3381612efa565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612f9460268361266c565b9150612f9f82612f3a565b604082019050919050565b5f6020820190508181035f830152612fc181612f88565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61302260248361266c565b915061302d82612fc8565b604082019050919050565b5f6020820190508181035f83015261304f81613016565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130b060228361266c565b91506130bb82613056565b604082019050919050565b5f6020820190508181035f8301526130dd816130a4565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61313e60298361266c565b9150613149826130e4565b604082019050919050565b5f6020820190508181035f83015261316b81613132565b9050919050565b7f596f752061726520657863656564696e67206d61785478416d6f756e740000005f82015250565b5f6131a6601d8361266c565b91506131b182613172565b602082019050919050565b5f6020820190508181035f8301526131d38161319a565b9050919050565b7f596f752061726520657863656564696e67206d617857616c6c6574416d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f61323460218361266c565b915061323f826131da565b604082019050919050565b5f6020820190508181035f83015261326181613228565b9050919050565b5f61327282612631565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036132a4576132a3612c07565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8151905061331781612740565b92915050565b5f602082840312156133325761333161270c565b5b5f61333f84828501613309565b91505092915050565b5f819050919050565b5f61336b61336661336184613348565b6129d8565b612631565b9050919050565b61337b81613351565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6133b38161272f565b82525050565b5f6133c483836133aa565b60208301905092915050565b5f602082019050919050565b5f6133e682613381565b6133f0818561338b565b93506133fb8361339b565b805f5b8381101561342b57815161341288826133b9565b975061341d836133d0565b9250506001810190506133fe565b5085935050505092915050565b5f60a08201905061344b5f83018861263a565b6134586020830187613372565b818103604083015261346a81866133dc565b9050613479606083018561295a565b613486608083018461263a565b9695505050505050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6134ea60258361266c565b91506134f582613490565b604082019050919050565b5f6020820190508181035f830152613517816134de565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f61357860238361266c565b91506135838261351e565b604082019050919050565b5f6020820190508181035f8301526135a58161356c565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61360660268361266c565b9150613611826135ac565b604082019050919050565b5f6020820190508181035f830152613633816135fa565b905091905056fea264697066735822122049e4f2c03d0ec3c0d31eb274d9a056d591ed6e9f6faa7a7d80fca905dc66e34064736f6c63430008140033
Deployed Bytecode Sourcemap
8248:7759:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14308:181;;;;;;;;;;;;;:::i;:::-;;9300:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1874:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2929:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2195:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3147:493;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15035:342;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2094:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3648:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14832:195;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14497:327;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15637:312;;;;;;;;;;;;;:::i;:::-;;8415:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2311:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6856:94;;;;;;;;;;;;;:::i;:::-;;9586:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8445:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9124:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9394:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6633:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9217:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1982:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15385:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14141:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3953:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8359:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2496:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9486:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9043:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9856:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2720:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13957:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6958:229;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8331:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14308:181;6779:12;:10;:12::i;:::-;6768:23;;:7;:5;:7::i;:::-;:23;;;6760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14365:8:::1;;;;;;;;;;;14364:9;14356:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;14422:4;14411:8;;:15;;;;;;;;;;;;;;;;;;14451:4;14437:11;;:18;;;;;;;;;;;;;;;;;;14471:10;;;;;;;;;;14308:181::o:0;9300:55::-;;;;:::o;1874:100::-;1928:13;1961:5;1954:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1874:100;:::o;2929:210::-;3048:4;3070:39;3079:12;:10;:12::i;:::-;3093:7;3102:6;3070:8;:39::i;:::-;3127:4;3120:11;;2929:210;;;;:::o;2195:108::-;2256:7;2283:12;;2276:19;;2195:108;:::o;3147:493::-;3287:4;3304:36;3314:6;3322:9;3333:6;3304:9;:36::i;:::-;3353:24;3380:11;:19;3392:6;3380:19;;;;;;;;;;;;;;;:33;3400:12;:10;:12::i;:::-;3380:33;;;;;;;;;;;;;;;;3353:60;;3466:6;3446:16;:26;;3424:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;3551:57;3560:6;3568:12;:10;:12::i;:::-;3601:6;3582:16;:25;;;;:::i;:::-;3551:8;:57::i;:::-;3628:4;3621:11;;;3147:493;;;;;:::o;15035:342::-;15148:10;6779:12;:10;:12::i;:::-;6768:23;;:7;:5;:7::i;:::-;:23;;;6760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15176:24:::1;15210:6;15203:24;;;15236:4;15203:39;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15176:66;;15268:6;15261:23;;;15285:3;15290:16;15261:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15253:54;;15323:46;15344:6;15352:16;15323:46;;;;;;;:::i;:::-;;;;;;;;15165:212;15035:342:::0;;;;:::o;2094:93::-;2152:5;2177:2;2170:9;;2094:93;:::o;3648:297::-;3763:4;3785:130;3808:12;:10;:12::i;:::-;3835:7;3894:10;3857:11;:25;3869:12;:10;:12::i;:::-;3857:25;;;;;;;;;;;;;;;:34;3883:7;3857:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;3785:8;:130::i;:::-;3933:4;3926:11;;3648:297;;;;:::o;14832:195::-;6779:12;:10;:12::i;:::-;6768:23;;:7;:5;:7::i;:::-;:23;;;6760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14973:5:::1;14944:16;:26;14961:8;14944:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14994:25;;;;;;;;;;14832:195:::0;;:::o;14497:327::-;6779:12;:10;:12::i;:::-;6768:23;;:7;:5;:7::i;:::-;:23;;;6760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14610:5:::1;14574:16;:33;14591:15;;;;;;;;;;;14574:33;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;14669:1;14648:23;;:9;:23;;::::0;14626:112:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14767:9;14749:15;;:27;;;;;;;;;;;;;;;;;;14792:24;;;;;;;;;;14497:327:::0;:::o;15637:312::-;6779:12;:10;:12::i;:::-;6768:23;;:7;:5;:7::i;:::-;:23;;;6760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8520:4:::1;8509:8;;:15;;;;;;;;;;;;;;;;;;15696:42:::2;15713:24;15731:4;15713:9;:24::i;:::-;15696:16;:42::i;:::-;15751:18;15772:21;15751:42;;15804:20;15827:10;15804:33;;15850:12;15895:15;;;;;;;;;;;15887:29;;15924:12;15887:54;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15873:68;;;;;15685:264;;;8558:5:::1;8547:8;;:16;;;;;;;;;;;;;;;;;;15637:312::o:0;8415:23::-;;;;;;;;;;;;;:::o;2311:177::-;2430:7;2462:9;:18;2472:7;2462:18;;;;;;;;;;;;;;;;2455:25;;2311:177;;;:::o;6856:94::-;6779:12;:10;:12::i;:::-;6768:23;;:7;:5;:7::i;:::-;:23;;;6760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6921:21:::1;6939:1;6921:9;:21::i;:::-;6856:94::o:0;9586:75::-;;;;;;;;;;;;;:::o;8445:20::-;;;;;;;;;;;;;:::o;9124:49::-;9171:2;9124:49;:::o;9394:53::-;;;;:::o;6633:87::-;6679:7;6706:6;;;;;;;;;;;6699:13;;6633:87;:::o;9217:55::-;9256:16;9217:55;:::o;1982:104::-;2038:13;2071:7;2064:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1982:104;:::o;15385:244::-;6779:12;:10;:12::i;:::-;6768:23;;:7;:5;:7::i;:::-;:23;;;6760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15467:17:::1;15487:21;15467:41;;15527:10;15519:28;;:66;15581:3;15561:16;15549:9;:28;;;;:::i;:::-;15548:36;;;;:::i;:::-;15519:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;15601:20;;;;;;;;;;15456:173;15385:244:::0;:::o;14141:159::-;6779:12;:10;:12::i;:::-;6768:23;;:7;:5;:7::i;:::-;:23;;;6760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14247:6:::1;14233:10;:21;;;;:::i;:::-;14217:13;:37;;;;14270:22;;;;;;;;;;14141:159:::0;:::o;3953:446::-;4073:4;4095:24;4122:11;:25;4134:12;:10;:12::i;:::-;4122:25;;;;;;;;;;;;;;;:34;4148:7;4122:34;;;;;;;;;;;;;;;;4095:61;;4209:15;4189:16;:35;;4167:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;4300:67;4309:12;:10;:12::i;:::-;4323:7;4351:15;4332:16;:34;;;;:::i;:::-;4300:8;:67::i;:::-;4387:4;4380:11;;;3953:446;;;;:::o;8359:19::-;;;;;;;;;;;;;:::o;2496:216::-;2618:4;2640:42;2650:12;:10;:12::i;:::-;2664:9;2675:6;2640:9;:42::i;:::-;2700:4;2693:11;;2496:216;;;;:::o;9486:57::-;;;;:::o;9043:35::-;;;;:::o;9856:48::-;;;;;;;;;;;;;;;;;;;;;;:::o;2720:201::-;2854:7;2886:11;:18;2898:5;2886:18;;;;;;;;;;;;;;;:27;2905:7;2886:27;;;;;;;;;;;;;;;;2879:34;;2720:201;;;;:::o;13957:176::-;6779:12;:10;:12::i;:::-;6768:23;;:7;:5;:7::i;:::-;:23;;;6760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14091:5:::1;14077:11;;:19;;;;;;;;;;;;;;;;;;14112:13;;;;;;;;;;13957:176:::0;:::o;6958:229::-;6779:12;:10;:12::i;:::-;6768:23;;:7;:5;:7::i;:::-;:23;;;6760:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7081:1:::1;7061:22;;:8;:22;;::::0;7039:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;7160:19;7170:8;7160:9;:19::i;:::-;6958:229:::0;:::o;8331:21::-;;;;;;;;;;;;;:::o;208:98::-;261:7;288:10;281:17;;208:98;:::o;5436:380::-;5589:1;5572:19;;:5;:19;;;5564:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5670:1;5651:21;;:7;:21;;;5643:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5754:6;5724:11;:18;5736:5;5724:18;;;;;;;;;;;;;;;:27;5743:7;5724:27;;;;;;;;;;;;;;;:36;;;;5792:7;5776:32;;5785:5;5776:32;;;5801:6;5776:32;;;;;;:::i;:::-;;;;;;;;5436:380;;;:::o;10579:1971::-;10729:1;10720:6;:10;10712:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10808:16;:24;10825:6;10808:24;;;;;;;;;;;;;;;;;;;;;;;;;10807:25;:70;;;;;10850:16;:27;10867:9;10850:27;;;;;;;;;;;;;;;;;;;;;;;;;10849:28;10807:70;:96;;;;;10895:8;;;;;;;;;;;10894:9;10807:96;10789:548;;;10944:7;:5;:7::i;:::-;10934:17;;:6;:17;;;;:41;;;;;10968:7;:5;:7::i;:::-;10955:20;;:9;:20;;;;10934:41;10930:396;;;11014:11;;11004:6;:21;;10996:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;11095:4;;;;;;;;;;;11082:17;;:9;:17;;;11078:233;;11191:15;;11181:6;11158:20;11168:9;11158;:20::i;:::-;:29;;;;:::i;:::-;:48;;11124:167;;;;;;;;;;;;:::i;:::-;;;;;;;;;11078:233;10930:396;10789:548;11349:11;11377:8;;;;;;;;;;;:36;;;;11389:16;:24;11406:6;11389:24;;;;;;;;;;;;;;;;;;;;;;;;;11377:36;:67;;;;11417:16;:27;11434:9;11417:27;;;;;;;;;;;;;;;;;;;;;;;;;11377:67;11373:944;;;11465:1;11459:7;;11373:944;;;11514:4;;;;;;;;;;;11501:17;;:9;:17;;;11497:809;;11821:3;9171:2;11632:16;;:39;:137;;11757:12;;11632:137;;;11707:14;;11632:137;11567:6;:229;;;;:::i;:::-;11566:258;;;;:::i;:::-;11539:285;;11843:16;;:18;;;;;;;;;:::i;:::-;;;;;;11497:809;;;11897:4;;;;;;;;;;;11887:14;;:6;:14;;;11883:423;;12202:3;9171:2;12015:16;;:39;:135;;12139:11;;12015:135;;;12090:13;;12015:135;11950:6;:227;;;;:::i;:::-;11949:256;;;;:::i;:::-;11922:283;;12224:16;;:18;;;;;;;;;:::i;:::-;;;;;;11883:423;;;12289:1;12283:7;;11883:423;11497:809;11373:944;12333:11;;;;;;;;;;;:24;;;;;12349:8;;;;;;;;;;;12348:9;12333:24;:42;;;;;12371:4;;;;;;;;;;;12361:14;;:6;:14;;;;12333:42;:53;;;;;12385:1;12379:3;:7;12333:53;12329:85;;;12401:13;:11;:13::i;:::-;12329:85;12427:48;12443:6;12451:9;12471:3;12462:6;:12;;;;:::i;:::-;12427:15;:48::i;:::-;12496:1;12490:3;:7;12486:56;;;12499:43;12515:6;12531:4;12538:3;12499:15;:43::i;:::-;12486:56;10701:1849;10579:1971;;;:::o;12964:474::-;13030:21;13068:1;13054:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13030:40;;13099:4;13081;13086:1;13081:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13125:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13115:4;13120:1;13115:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13151:53;13168:4;13183:6;;;;;;;;;;;13192:11;13151:8;:53::i;:::-;13243:6;;;;;;;;;;;:57;;;13315:11;13341:1;13357:4;13384;13404:15;13243:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13019:419;12964:474;:::o;7195:173::-;7251:16;7270:6;;;;;;;;;;;7251:25;;7296:8;7287:6;;:17;;;;;;;;;;;;;;;;;;7351:8;7320:40;;7341:8;7320:40;;;;;;;;;;;;7240:128;7195:173;:::o;12558:398::-;9947:8;;;;;;;;;;;9942:104;;9983:4;9972:8;;:15;;;;;;;;;;;;;;;;;;12607:23:::1;12633:24;12651:4;12633:9;:24::i;:::-;12607:50;;12693:13;;12674:15;:32;12670:279;;12723:33;12740:15;12723:16;:33::i;:::-;12773:20;12796:21;12773:44;;12853:1;12838:12;:16;12834:104;;;12883:15;;;;;;;;;;;12875:33;;:47;12909:12;12875:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12834:104;12708:241;12670:279;12596:360;10029:5:::0;10018:8;;:16;;;;;;;;;;;;;;;;;;9942:104;12558:398::o;4407:675::-;4565:1;4547:20;;:6;:20;;;4539:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;4649:1;4628:23;;:9;:23;;;4620:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4704:47;4725:6;4733:9;4744:6;4704:20;:47::i;:::-;4764:21;4788:9;:17;4798:6;4788:17;;;;;;;;;;;;;;;;4764:41;;4855:6;4838:13;:23;;4816:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;4974:6;4958:13;:22;;;;:::i;:::-;4938:9;:17;4948:6;4938:17;;;;;;;;;;;;;;;:42;;;;5015:6;4991:9;:20;5001:9;4991:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;5056:9;5039:35;;5048:6;5039:35;;;5067:6;5039:35;;;;;;:::i;:::-;;;;;;;;4528:554;4407:675;;;:::o;5824:125::-;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:474::-;4491:6;4499;4548:2;4536:9;4527:7;4523:23;4519:32;4516:119;;;4554:79;;:::i;:::-;4516:119;4674:1;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4645:117;4801:2;4827:53;4872:7;4863:6;4852:9;4848:22;4827:53;:::i;:::-;4817:63;;4772:118;4423:474;;;;;:::o;4903:86::-;4938:7;4978:4;4971:5;4967:16;4956:27;;4903:86;;;:::o;4995:112::-;5078:22;5094:5;5078:22;:::i;:::-;5073:3;5066:35;4995:112;;:::o;5113:214::-;5202:4;5240:2;5229:9;5225:18;5217:26;;5253:67;5317:1;5306:9;5302:17;5293:6;5253:67;:::i;:::-;5113:214;;;;:::o;5333:116::-;5403:21;5418:5;5403:21;:::i;:::-;5396:5;5393:32;5383:60;;5439:1;5436;5429:12;5383:60;5333:116;:::o;5455:133::-;5498:5;5536:6;5523:20;5514:29;;5552:30;5576:5;5552:30;:::i;:::-;5455:133;;;;:::o;5594:468::-;5659:6;5667;5716:2;5704:9;5695:7;5691:23;5687:32;5684:119;;;5722:79;;:::i;:::-;5684:119;5842:1;5867:53;5912:7;5903:6;5892:9;5888:22;5867:53;:::i;:::-;5857:63;;5813:117;5969:2;5995:50;6037:7;6028:6;6017:9;6013:22;5995:50;:::i;:::-;5985:60;;5940:115;5594:468;;;;;:::o;6068:329::-;6127:6;6176:2;6164:9;6155:7;6151:23;6147:32;6144:119;;;6182:79;;:::i;:::-;6144:119;6302:1;6327:53;6372:7;6363:6;6352:9;6348:22;6327:53;:::i;:::-;6317:63;;6273:117;6068:329;;;;:::o;6403:118::-;6490:24;6508:5;6490:24;:::i;:::-;6485:3;6478:37;6403:118;;:::o;6527:222::-;6620:4;6658:2;6647:9;6643:18;6635:26;;6671:71;6739:1;6728:9;6724:17;6715:6;6671:71;:::i;:::-;6527:222;;;;:::o;6755:329::-;6814:6;6863:2;6851:9;6842:7;6838:23;6834:32;6831:119;;;6869:79;;:::i;:::-;6831:119;6989:1;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6960:117;6755:329;;;;:::o;7090:323::-;7146:6;7195:2;7183:9;7174:7;7170:23;7166:32;7163:119;;;7201:79;;:::i;:::-;7163:119;7321:1;7346:50;7388:7;7379:6;7368:9;7364:22;7346:50;:::i;:::-;7336:60;;7292:114;7090:323;;;;:::o;7419:60::-;7447:3;7468:5;7461:12;;7419:60;;;:::o;7485:142::-;7535:9;7568:53;7586:34;7595:24;7613:5;7595:24;:::i;:::-;7586:34;:::i;:::-;7568:53;:::i;:::-;7555:66;;7485:142;;;:::o;7633:126::-;7683:9;7716:37;7747:5;7716:37;:::i;:::-;7703:50;;7633:126;;;:::o;7765:141::-;7830:9;7863:37;7894:5;7863:37;:::i;:::-;7850:50;;7765:141;;;:::o;7912:161::-;8014:52;8060:5;8014:52;:::i;:::-;8009:3;8002:65;7912:161;;:::o;8079:252::-;8187:4;8225:2;8214:9;8210:18;8202:26;;8238:86;8321:1;8310:9;8306:17;8297:6;8238:86;:::i;:::-;8079:252;;;;:::o;8337:182::-;8477:34;8473:1;8465:6;8461:14;8454:58;8337:182;:::o;8525:366::-;8667:3;8688:67;8752:2;8747:3;8688:67;:::i;:::-;8681:74;;8764:93;8853:3;8764:93;:::i;:::-;8882:2;8877:3;8873:12;8866:19;;8525:366;;;:::o;8897:419::-;9063:4;9101:2;9090:9;9086:18;9078:26;;9150:9;9144:4;9140:20;9136:1;9125:9;9121:17;9114:47;9178:131;9304:4;9178:131;:::i;:::-;9170:139;;8897:419;;;:::o;9322:172::-;9462:24;9458:1;9450:6;9446:14;9439:48;9322:172;:::o;9500:366::-;9642:3;9663:67;9727:2;9722:3;9663:67;:::i;:::-;9656:74;;9739:93;9828:3;9739:93;:::i;:::-;9857:2;9852:3;9848:12;9841:19;;9500:366;;;:::o;9872:419::-;10038:4;10076:2;10065:9;10061:18;10053:26;;10125:9;10119:4;10115:20;10111:1;10100:9;10096:17;10089:47;10153:131;10279:4;10153:131;:::i;:::-;10145:139;;9872:419;;;:::o;10297:180::-;10345:77;10342:1;10335:88;10442:4;10439:1;10432:15;10466:4;10463:1;10456:15;10483:320;10527:6;10564:1;10558:4;10554:12;10544:22;;10611:1;10605:4;10601:12;10632:18;10622:81;;10688:4;10680:6;10676:17;10666:27;;10622:81;10750:2;10742:6;10739:14;10719:18;10716:38;10713:84;;10769:18;;:::i;:::-;10713:84;10534:269;10483:320;;;:::o;10809:227::-;10949:34;10945:1;10937:6;10933:14;10926:58;11018:10;11013:2;11005:6;11001:15;10994:35;10809:227;:::o;11042:366::-;11184:3;11205:67;11269:2;11264:3;11205:67;:::i;:::-;11198:74;;11281:93;11370:3;11281:93;:::i;:::-;11399:2;11394:3;11390:12;11383:19;;11042:366;;;:::o;11414:419::-;11580:4;11618:2;11607:9;11603:18;11595:26;;11667:9;11661:4;11657:20;11653:1;11642:9;11638:17;11631:47;11695:131;11821:4;11695:131;:::i;:::-;11687:139;;11414:419;;;:::o;11839:180::-;11887:77;11884:1;11877:88;11984:4;11981:1;11974:15;12008:4;12005:1;11998:15;12025:194;12065:4;12085:20;12103:1;12085:20;:::i;:::-;12080:25;;12119:20;12137:1;12119:20;:::i;:::-;12114:25;;12163:1;12160;12156:9;12148:17;;12187:1;12181:4;12178:11;12175:37;;;12192:18;;:::i;:::-;12175:37;12025:194;;;;:::o;12225:143::-;12282:5;12313:6;12307:13;12298:22;;12329:33;12356:5;12329:33;:::i;:::-;12225:143;;;;:::o;12374:351::-;12444:6;12493:2;12481:9;12472:7;12468:23;12464:32;12461:119;;;12499:79;;:::i;:::-;12461:119;12619:1;12644:64;12700:7;12691:6;12680:9;12676:22;12644:64;:::i;:::-;12634:74;;12590:128;12374:351;;;;:::o;12731:332::-;12852:4;12890:2;12879:9;12875:18;12867:26;;12903:71;12971:1;12960:9;12956:17;12947:6;12903:71;:::i;:::-;12984:72;13052:2;13041:9;13037:18;13028:6;12984:72;:::i;:::-;12731:332;;;;;:::o;13069:137::-;13123:5;13154:6;13148:13;13139:22;;13170:30;13194:5;13170:30;:::i;:::-;13069:137;;;;:::o;13212:345::-;13279:6;13328:2;13316:9;13307:7;13303:23;13299:32;13296:119;;;13334:79;;:::i;:::-;13296:119;13454:1;13479:61;13532:7;13523:6;13512:9;13508:22;13479:61;:::i;:::-;13469:71;;13425:125;13212:345;;;;:::o;13563:191::-;13603:3;13622:20;13640:1;13622:20;:::i;:::-;13617:25;;13656:20;13674:1;13656:20;:::i;:::-;13651:25;;13699:1;13696;13692:9;13685:16;;13720:3;13717:1;13714:10;13711:36;;;13727:18;;:::i;:::-;13711:36;13563:191;;;;:::o;13760:226::-;13900:34;13896:1;13888:6;13884:14;13877:58;13969:9;13964:2;13956:6;13952:15;13945:34;13760:226;:::o;13992:366::-;14134:3;14155:67;14219:2;14214:3;14155:67;:::i;:::-;14148:74;;14231:93;14320:3;14231:93;:::i;:::-;14349:2;14344:3;14340:12;14333:19;;13992:366;;;:::o;14364:419::-;14530:4;14568:2;14557:9;14553:18;14545:26;;14617:9;14611:4;14607:20;14603:1;14592:9;14588:17;14581:47;14645:131;14771:4;14645:131;:::i;:::-;14637:139;;14364:419;;;:::o;14789:147::-;14890:11;14927:3;14912:18;;14789:147;;;;:::o;14942:114::-;;:::o;15062:398::-;15221:3;15242:83;15323:1;15318:3;15242:83;:::i;:::-;15235:90;;15334:93;15423:3;15334:93;:::i;:::-;15452:1;15447:3;15443:11;15436:18;;15062:398;;;:::o;15466:379::-;15650:3;15672:147;15815:3;15672:147;:::i;:::-;15665:154;;15836:3;15829:10;;15466:379;;;:::o;15851:410::-;15891:7;15914:20;15932:1;15914:20;:::i;:::-;15909:25;;15948:20;15966:1;15948:20;:::i;:::-;15943:25;;16003:1;16000;15996:9;16025:30;16043:11;16025:30;:::i;:::-;16014:41;;16204:1;16195:7;16191:15;16188:1;16185:22;16165:1;16158:9;16138:83;16115:139;;16234:18;;:::i;:::-;16115:139;15899:362;15851:410;;;;:::o;16267:180::-;16315:77;16312:1;16305:88;16412:4;16409:1;16402:15;16436:4;16433:1;16426:15;16453:185;16493:1;16510:20;16528:1;16510:20;:::i;:::-;16505:25;;16544:20;16562:1;16544:20;:::i;:::-;16539:25;;16583:1;16573:35;;16588:18;;:::i;:::-;16573:35;16630:1;16627;16623:9;16618:14;;16453:185;;;;:::o;16644:224::-;16784:34;16780:1;16772:6;16768:14;16761:58;16853:7;16848:2;16840:6;16836:15;16829:32;16644:224;:::o;16874:366::-;17016:3;17037:67;17101:2;17096:3;17037:67;:::i;:::-;17030:74;;17113:93;17202:3;17113:93;:::i;:::-;17231:2;17226:3;17222:12;17215:19;;16874:366;;;:::o;17246:419::-;17412:4;17450:2;17439:9;17435:18;17427:26;;17499:9;17493:4;17489:20;17485:1;17474:9;17470:17;17463:47;17527:131;17653:4;17527:131;:::i;:::-;17519:139;;17246:419;;;:::o;17671:225::-;17811:34;17807:1;17799:6;17795:14;17788:58;17880:8;17875:2;17867:6;17863:15;17856:33;17671:225;:::o;17902:366::-;18044:3;18065:67;18129:2;18124:3;18065:67;:::i;:::-;18058:74;;18141:93;18230:3;18141:93;:::i;:::-;18259:2;18254:3;18250:12;18243:19;;17902:366;;;:::o;18274:419::-;18440:4;18478:2;18467:9;18463:18;18455:26;;18527:9;18521:4;18517:20;18513:1;18502:9;18498:17;18491:47;18555:131;18681:4;18555:131;:::i;:::-;18547:139;;18274:419;;;:::o;18699:223::-;18839:34;18835:1;18827:6;18823:14;18816:58;18908:6;18903:2;18895:6;18891:15;18884:31;18699:223;:::o;18928:366::-;19070:3;19091:67;19155:2;19150:3;19091:67;:::i;:::-;19084:74;;19167:93;19256:3;19167:93;:::i;:::-;19285:2;19280:3;19276:12;19269:19;;18928:366;;;:::o;19300:419::-;19466:4;19504:2;19493:9;19489:18;19481:26;;19553:9;19547:4;19543:20;19539:1;19528:9;19524:17;19517:47;19581:131;19707:4;19581:131;:::i;:::-;19573:139;;19300:419;;;:::o;19725:221::-;19865:34;19861:1;19853:6;19849:14;19842:58;19934:4;19929:2;19921:6;19917:15;19910:29;19725:221;:::o;19952:366::-;20094:3;20115:67;20179:2;20174:3;20115:67;:::i;:::-;20108:74;;20191:93;20280:3;20191:93;:::i;:::-;20309:2;20304:3;20300:12;20293:19;;19952:366;;;:::o;20324:419::-;20490:4;20528:2;20517:9;20513:18;20505:26;;20577:9;20571:4;20567:20;20563:1;20552:9;20548:17;20541:47;20605:131;20731:4;20605:131;:::i;:::-;20597:139;;20324:419;;;:::o;20749:228::-;20889:34;20885:1;20877:6;20873:14;20866:58;20958:11;20953:2;20945:6;20941:15;20934:36;20749:228;:::o;20983:366::-;21125:3;21146:67;21210:2;21205:3;21146:67;:::i;:::-;21139:74;;21222:93;21311:3;21222:93;:::i;:::-;21340:2;21335:3;21331:12;21324:19;;20983:366;;;:::o;21355:419::-;21521:4;21559:2;21548:9;21544:18;21536:26;;21608:9;21602:4;21598:20;21594:1;21583:9;21579:17;21572:47;21636:131;21762:4;21636:131;:::i;:::-;21628:139;;21355:419;;;:::o;21780:179::-;21920:31;21916:1;21908:6;21904:14;21897:55;21780:179;:::o;21965:366::-;22107:3;22128:67;22192:2;22187:3;22128:67;:::i;:::-;22121:74;;22204:93;22293:3;22204:93;:::i;:::-;22322:2;22317:3;22313:12;22306:19;;21965:366;;;:::o;22337:419::-;22503:4;22541:2;22530:9;22526:18;22518:26;;22590:9;22584:4;22580:20;22576:1;22565:9;22561:17;22554:47;22618:131;22744:4;22618:131;:::i;:::-;22610:139;;22337:419;;;:::o;22762:220::-;22902:34;22898:1;22890:6;22886:14;22879:58;22971:3;22966:2;22958:6;22954:15;22947:28;22762:220;:::o;22988:366::-;23130:3;23151:67;23215:2;23210:3;23151:67;:::i;:::-;23144:74;;23227:93;23316:3;23227:93;:::i;:::-;23345:2;23340:3;23336:12;23329:19;;22988:366;;;:::o;23360:419::-;23526:4;23564:2;23553:9;23549:18;23541:26;;23613:9;23607:4;23603:20;23599:1;23588:9;23584:17;23577:47;23641:131;23767:4;23641:131;:::i;:::-;23633:139;;23360:419;;;:::o;23785:233::-;23824:3;23847:24;23865:5;23847:24;:::i;:::-;23838:33;;23893:66;23886:5;23883:77;23880:103;;23963:18;;:::i;:::-;23880:103;24010:1;24003:5;23999:13;23992:20;;23785:233;;;:::o;24024:180::-;24072:77;24069:1;24062:88;24169:4;24166:1;24159:15;24193:4;24190:1;24183:15;24210:180;24258:77;24255:1;24248:88;24355:4;24352:1;24345:15;24379:4;24376:1;24369:15;24396:143;24453:5;24484:6;24478:13;24469:22;;24500:33;24527:5;24500:33;:::i;:::-;24396:143;;;;:::o;24545:351::-;24615:6;24664:2;24652:9;24643:7;24639:23;24635:32;24632:119;;;24670:79;;:::i;:::-;24632:119;24790:1;24815:64;24871:7;24862:6;24851:9;24847:22;24815:64;:::i;:::-;24805:74;;24761:128;24545:351;;;;:::o;24902:85::-;24947:7;24976:5;24965:16;;24902:85;;;:::o;24993:158::-;25051:9;25084:61;25102:42;25111:32;25137:5;25111:32;:::i;:::-;25102:42;:::i;:::-;25084:61;:::i;:::-;25071:74;;24993:158;;;:::o;25157:147::-;25252:45;25291:5;25252:45;:::i;:::-;25247:3;25240:58;25157:147;;:::o;25310:114::-;25377:6;25411:5;25405:12;25395:22;;25310:114;;;:::o;25430:184::-;25529:11;25563:6;25558:3;25551:19;25603:4;25598:3;25594:14;25579:29;;25430:184;;;;:::o;25620:132::-;25687:4;25710:3;25702:11;;25740:4;25735:3;25731:14;25723:22;;25620:132;;;:::o;25758:108::-;25835:24;25853:5;25835:24;:::i;:::-;25830:3;25823:37;25758:108;;:::o;25872:179::-;25941:10;25962:46;26004:3;25996:6;25962:46;:::i;:::-;26040:4;26035:3;26031:14;26017:28;;25872:179;;;;:::o;26057:113::-;26127:4;26159;26154:3;26150:14;26142:22;;26057:113;;;:::o;26206:732::-;26325:3;26354:54;26402:5;26354:54;:::i;:::-;26424:86;26503:6;26498:3;26424:86;:::i;:::-;26417:93;;26534:56;26584:5;26534:56;:::i;:::-;26613:7;26644:1;26629:284;26654:6;26651:1;26648:13;26629:284;;;26730:6;26724:13;26757:63;26816:3;26801:13;26757:63;:::i;:::-;26750:70;;26843:60;26896:6;26843:60;:::i;:::-;26833:70;;26689:224;26676:1;26673;26669:9;26664:14;;26629:284;;;26633:14;26929:3;26922:10;;26330:608;;;26206:732;;;;:::o;26944:831::-;27207:4;27245:3;27234:9;27230:19;27222:27;;27259:71;27327:1;27316:9;27312:17;27303:6;27259:71;:::i;:::-;27340:80;27416:2;27405:9;27401:18;27392:6;27340:80;:::i;:::-;27467:9;27461:4;27457:20;27452:2;27441:9;27437:18;27430:48;27495:108;27598:4;27589:6;27495:108;:::i;:::-;27487:116;;27613:72;27681:2;27670:9;27666:18;27657:6;27613:72;:::i;:::-;27695:73;27763:3;27752:9;27748:19;27739:6;27695:73;:::i;:::-;26944:831;;;;;;;;:::o;27781:224::-;27921:34;27917:1;27909:6;27905:14;27898:58;27990:7;27985:2;27977:6;27973:15;27966:32;27781:224;:::o;28011:366::-;28153:3;28174:67;28238:2;28233:3;28174:67;:::i;:::-;28167:74;;28250:93;28339:3;28250:93;:::i;:::-;28368:2;28363:3;28359:12;28352:19;;28011:366;;;:::o;28383:419::-;28549:4;28587:2;28576:9;28572:18;28564:26;;28636:9;28630:4;28626:20;28622:1;28611:9;28607:17;28600:47;28664:131;28790:4;28664:131;:::i;:::-;28656:139;;28383:419;;;:::o;28808:222::-;28948:34;28944:1;28936:6;28932:14;28925:58;29017:5;29012:2;29004:6;29000:15;28993:30;28808:222;:::o;29036:366::-;29178:3;29199:67;29263:2;29258:3;29199:67;:::i;:::-;29192:74;;29275:93;29364:3;29275:93;:::i;:::-;29393:2;29388:3;29384:12;29377:19;;29036:366;;;:::o;29408:419::-;29574:4;29612:2;29601:9;29597:18;29589:26;;29661:9;29655:4;29651:20;29647:1;29636:9;29632:17;29625:47;29689:131;29815:4;29689:131;:::i;:::-;29681:139;;29408:419;;;:::o;29833:225::-;29973:34;29969:1;29961:6;29957:14;29950:58;30042:8;30037:2;30029:6;30025:15;30018:33;29833:225;:::o;30064:366::-;30206:3;30227:67;30291:2;30286:3;30227:67;:::i;:::-;30220:74;;30303:93;30392:3;30303:93;:::i;:::-;30421:2;30416:3;30412:12;30405:19;;30064:366;;;:::o;30436:419::-;30602:4;30640:2;30629:9;30625:18;30617:26;;30689:9;30683:4;30679:20;30675:1;30664:9;30660:17;30653:47;30717:131;30843:4;30717:131;:::i;:::-;30709:139;;30436:419;;;:::o
Swarm Source
ipfs://49e4f2c03d0ec3c0d31eb274d9a056d591ed6e9f6faa7a7d80fca905dc66e340
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.