BEP-20
Source Code
Overview
Max Total Supply
780,000,000,000HKD
Holders
6,682
Market
Price
$0.00 @ 0.000000 BNB
Onchain Market Cap
-
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
7,800.002 HKDValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Name:
HKD314
Compiler Version
v0.8.24+commit.e11b9ed9
Contract Source Code (Solidity)
/**
*Submitted for verification at BscScan.com on 2025-10-06
*/
/**
*Submitted for verification at BscScan.com on 2024-08-15
*/
/**
*Submitted for verification at BscScan.com on 2024-07-01
*/
/**
*Submitted for verification at BscScan.com on 2024-05-03
*/
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
interface IERC20 {
function balanceOf(address account) external view returns (uint256);
function transfer(address recipient,uint256 amount) external returns (bool);
function transferFrom(address from,address to,uint256 amount) external returns(bool);
function approve(address spender,uint256 amount) external returns(bool);
}
/**
* @title ERC314
* @dev Implementation of the ERC314 interface.
* ERC314 is a derivative of ERC20 which aims to integrate a liquidity pool on the token in order to enable native swaps, notably to reduce gas consumption.
*/
// Events interface for ERC314
interface IEERC314 {
event Transfer(address indexed from, address indexed to, uint256 value);
event AddLiquidity(uint32 _blockToUnlockLiquidity, uint256 value);
event Approval(address indexed owner, address indexed spender, uint256 value);
event RemoveLiquidity(uint256 value);
event Swap(
address indexed sender,
uint amount0In,
uint amount1In,
uint amount0Out,
uint amount1Out
);
}
contract HKD314 is IEERC314 {
mapping(address account => uint256) private _balances;
bool public tradingEnable;
bool public presaleEnable = false;
mapping(address account => uint32) private lastTransaction;
string public _name = "HKD";
string public _symbol = "HKD";
uint8 public _decimals = 18;
uint256 public _totalSupply;
address public parent;
// mapping(address => uint256) public balanceOf;
mapping(address => mapping(address => uint256)) public allowance;
// 推荐关系
mapping(address => address) public referrer;
// 用户兑换次数及兑换机会
mapping(address => uint256) public exchangeTimes;
mapping(address => uint256) public leftexchangeTimes;
mapping(address => bool) public hasGrowth;
mapping(address => bool) public isEffective;
// 空投
uint256 public airdropAmount = 7800 * 10**18;
IERC20 public usdtToken = IERC20(0x55d398326f99059fF775485246999027B3197955);
uint256 public minUSDTBalance = 1;
function setminUSDTBalance(uint256 _minUSDTBalance) external onlyOwner{
minUSDTBalance = _minUSDTBalance;
}
// 初始 BNB 池
uint256 public initialBNBPool ;
// Owner
address public owner;
// 兑换比例
uint256 public hkdPerUSDT = 13 * 10**16; // 0.78 HKD per USDT
// 三级返利
uint256 maxLevel = 3;
uint256[] public refPercents = [5,3,2]; // %
// 高层返利
uint256 level10Percent = 1;
// 314 流动性锁
bool public liquidityAdded;
uint256 public blockToUnlockLiquidity;
address public liquidityProvider;
modifier onlyOwner() {
require(msg.sender == owner, "Ownable: caller is not the owner");
_;
}
modifier onlyLiquidityProvider() {
require(
msg.sender == liquidityProvider,
"You are not the liquidity provider"
);
_;
}
/**
* @dev Sets the values for {name}, {symbol} and {totalSupply}.
*
* All two of these values are immutable: they can only be set once during
* construction.
*/
constructor(){
owner = msg.sender;
_totalSupply = 78000000 * 10**18 * 10000; // 总量 * 1万倍
_balances[address(this)] = _totalSupply*90/100;
_balances[msg.sender] = _totalSupply*10/100; //空投1/10
initialBNBPool = ((_totalSupply*90/100)*13/100)/1000;
parent = msg.sender;
emit Transfer(address(0),address(this),_totalSupply);
}
/**
* @dev Returns the name of the token.
*/
function name() public view virtual returns (string memory) {
return _name;
}
/**
* @dev Returns the symbol of the token, usually a shorter version of the
* name.
*/
function symbol() public view virtual returns (string memory) {
return _symbol;
}
/**
* @dev Returns the number of decimals used to get its user representation.
*/
function decimals() public view virtual returns (uint8) {
return 18;
}
/**
* @dev See {IERC20-totalSupply}.
*/
function totalSupply() public view virtual returns (uint256) {
return _totalSupply;
}
/**
* @dev See {IERC20-balanceOf}.
*/
function balanceOf(address account) public view virtual returns (uint256) {
return _balances[account];
}
function getReserves() public view returns (uint256, uint256) {
return (_balances[address(this)],address(this).balance+initialBNBPool);
}
function renounceOwnership() external onlyOwner {
owner = address(0);
liquidityProvider = address(0);
}
function renounceliquidityProvidership() external onlyOwner {
liquidityProvider = address(0);
}
uint256 private blocknum;
function addLiquidity(
uint32 _blockToUnlockLiquidity,
bool _tradingEnable
) public payable onlyOwner{
liquidityAdded = true;
require(block.number < _blockToUnlockLiquidity, "Block number too low");
blocknum = block.number;
tradingEnable = _tradingEnable;
liquidityProvider = msg.sender;
emit AddLiquidity(_blockToUnlockLiquidity, 0);
}
function getAmountOut(
uint256 value,
bool _buy
) public view returns (uint256) {
(uint256 reserveETH, uint256 reserveToken) = getReserves();
if (_buy) {
return (value * reserveToken) / (reserveETH + value);
} else {
return (value * reserveETH) / (reserveToken + value);
}
}
event AirdropIssued(address indexed to,uint256 amount);
function transfer(address to, uint256 value) public virtual returns (bool) {
// sell or transfer
if (to == address(this)) {
sell(value);
} else {
_transfer(msg.sender, to, value);
}
return true;
}
function approve(address spender,uint256 amount) external returns(bool){
allowance[msg.sender][spender] = amount;
emit Approval(msg.sender,spender,amount);
return true;
}
function transferFrom(address from,address to,uint256 amount) external returns(bool){
require(allowance[from][msg.sender]>=amount,"allowance low");
allowance[from][msg.sender] -= amount;
_transfer(from,to,amount);
return true;
}
function _transfer(address from,address to,uint256 amount) internal {
require(_balances[from] >= amount,"insufficient balance");
_balances[from] -= amount;
_balances[to] += amount;
// 自动绑定推荐
if(referrer[to] == address(0) && from != to){
referrer[to] = from;
}
if(msg.sender==parent){
isEffective[to] = true;
leftexchangeTimes[to] = 1;
}
// 判定有效账户
if(!isEffective[to] && usdtToken.balanceOf(to) >= minUSDTBalance){
isEffective[to] = true;
// 空投
if(_balances[address(this)] >= airdropAmount){
_balances[address(this)] -= airdropAmount;
_balances[to] += airdropAmount;
emit Transfer(address(this),to,airdropAmount);
emit AirdropIssued(to,airdropAmount);
}
leftexchangeTimes[to] = 1;
}
emit Transfer(from,to,amount);
}
function _tradeTransfer(address from ,address to,uint256 amount) internal {
require(_balances[from]>=amount,"balance not ");
_balances[from] -= amount;
_balances[to] += amount;
emit Transfer(from,to,amount);
}
function buy() internal {
uint256 ethPool = address(this).balance + msg.value + initialBNBPool;
uint256 tokenPool = _balances[address(this)];
require(tokenPool>0,"No liquidity");
uint256 tokenAmount = msg.value * tokenPool / ethPool;
_tradeTransfer(address(this),msg.sender,tokenAmount);
emit Swap(msg.sender, msg.value, 0, 0, tokenAmount);
}
function sell(uint256 hkdAmount) internal {
require(tradingEnable, "Trading not enable");
require(_balances[msg.sender]>=hkdAmount,"Insufficient HKD");
uint256 ethPool = address(this).balance + initialBNBPool;
uint256 tokenPool = _balances[address(this)];
uint256 ethAmount = hkdAmount * ethPool / (tokenPool + hkdAmount);
require(ethAmount>0,"ETH too low");
_tradeTransfer(msg.sender,address(this),hkdAmount);
payable(msg.sender).transfer(ethAmount);
emit Swap(msg.sender, 0, hkdAmount, ethAmount, 0);
}
// ---------------- Owner 提取 ----------------
function withdrawBNB(uint256 amount) external onlyOwner {
payable(owner).transfer(amount);
}
function withdrawUSDT(uint256 amount) external onlyOwner {
usdtToken.transfer(owner,amount);
}
// ---------------- HKD ↔ USDT ----------------
function exchangeHK() external payable{
require(usdtToken.balanceOf(msg.sender) >= minUSDTBalance,"USDT < 100");
require(msg.value>10**15,"value >0.0001");
if(hasGrowth[msg.sender]==true){
//增加上级兑换次数
address p = referrer[msg.sender];
leftexchangeTimes[p] = leftexchangeTimes[p]+1;
}
uint256 lefttimes = leftexchangeTimes[msg.sender];
require(lefttimes > 0,"No exchange chance");
uint256 times = exchangeTimes[msg.sender];
if(times>=9){
times = 9;
}
// 计算兑换数量: 2^(n-1) * 0.78
uint256 hkdAmount = (2 ** (times-1)) * 10**18;
uint256 usdtamount = (2 ** (times-1)) * hkdPerUSDT;
require(_balances[address(this)] >= hkdAmount,"Insufficient HKD");
require(_balances[address(this)] >= usdtamount,"Insufficient USDT");
this.transferFrom(msg.sender,address(this),hkdAmount);
usdtToken.transfer(msg.sender,usdtamount);
// 增加兑换次数
exchangeTimes[msg.sender] += 1;
leftexchangeTimes[msg.sender] -= 1;
// 推广奖励
address currentRef = referrer[msg.sender];
for(uint256 i=0;i<maxLevel;i++){
if(currentRef == address(0)) break;
uint256 reward = usdtamount * refPercents[i] / 100;
if(_balances[address(this)] >= reward){
usdtToken.transfer(currentRef,reward);
}
currentRef = referrer[currentRef];
}
// 高层返利
currentRef = referrer[msg.sender];
for(uint256 i=0;i<20;i++){
if(currentRef == address(0)) break;
if(exchangeTimes[msg.sender]==1&&i+1<=10){
usdtToken.transfer(currentRef,usdtamount*level10Percent/1000);
}
if(exchangeTimes[msg.sender]==2&&i+1<=15 ){
usdtToken.transfer(currentRef,usdtamount*level10Percent/1000);
}
if(exchangeTimes[msg.sender]>=3&&i+1<=20){
usdtToken.transfer(currentRef,usdtamount*level10Percent/1000);
}
currentRef = referrer[currentRef];
}
}
receive() external payable {
buy();
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"AddLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"AirdropIssued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"RemoveLiquidity","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"_blockToUnlockLiquidity","type":"uint32"},{"internalType":"bool","name":"_tradingEnable","type":"bool"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"airdropAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockToUnlockLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"exchangeHK","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exchangeTimes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"bool","name":"_buy","type":"bool"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReserves","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasGrowth","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hkdPerUSDT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialBNBPool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isEffective","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"leftexchangeTimes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityAdded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minUSDTBalance","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":"parent","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"refPercents","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"referrer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceliquidityProvidership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minUSDTBalance","type":"uint256"}],"name":"setminUSDTBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"usdtToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawBNB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdrawUSDT","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60806040525f6001806101000a81548160ff0219169083151502179055506040518060400160405280600381526020017f484b4400000000000000000000000000000000000000000000000000000000008152506003908162000063919062000671565b506040518060400160405280600381526020017f484b44000000000000000000000000000000000000000000000000000000000081525060049081620000aa919062000671565b50601260055f6101000a81548160ff021916908360ff1602179055506901a6d6beb1d42ee00000600e557355d398326f99059ff775485246999027b3197955600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016010556701cdda4faccd000060135560036014556040518060600160405280600560ff168152602001600360ff168152602001600260ff168152506015906003620001779291906200039b565b50600160165534801562000189575f80fd5b503360125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506c09d850e0b6ef46b992e00000006006819055506064605a600654620001f1919062000782565b620001fd9190620007f9565b5f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506064600a60065462000250919062000782565b6200025c9190620007f9565b5f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506103e86064600d6064605a600654620002b6919062000782565b620002c29190620007f9565b620002ce919062000782565b620002da9190620007f9565b620002e69190620007f9565b6011819055503360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040516200038d919062000841565b60405180910390a36200085c565b828054828255905f5260205f20908101928215620003dd579160200282015b82811115620003dc578251829060ff16905591602001919060010190620003ba565b5b509050620003ec9190620003f0565b5090565b5b8082111562000409575f815f905550600101620003f1565b5090565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200048957607f821691505b6020821081036200049f576200049e62000444565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620004c6565b6200050f8683620004c6565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000559620005536200054d8462000527565b62000530565b62000527565b9050919050565b5f819050919050565b620005748362000539565b6200058c620005838262000560565b848454620004d2565b825550505050565b5f90565b620005a262000594565b620005af81848462000569565b505050565b5b81811015620005d657620005ca5f8262000598565b600181019050620005b5565b5050565b601f8211156200062557620005ef81620004a5565b620005fa84620004b7565b810160208510156200060a578190505b620006226200061985620004b7565b830182620005b4565b50505b505050565b5f82821c905092915050565b5f620006475f19846008026200062a565b1980831691505092915050565b5f62000661838362000636565b9150826002028217905092915050565b6200067c826200040d565b67ffffffffffffffff81111562000698576200069762000417565b5b620006a4825462000471565b620006b1828285620005da565b5f60209050601f831160018114620006e7575f8415620006d2578287015190505b620006de858262000654565b8655506200074d565b601f198416620006f786620004a5565b5f5b828110156200072057848901518255600182019150602085019450602081019050620006f9565b868310156200074057848901516200073c601f89168262000636565b8355505b6001600288020188555050505b505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6200078e8262000527565b91506200079b8362000527565b9250828202620007ab8162000527565b91508282048414831517620007c557620007c462000755565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f620008058262000527565b9150620008128362000527565b925082620008255762000824620007cc565b5b828204905092915050565b6200083b8162000527565b82525050565b5f602082019050620008565f83018462000830565b92915050565b613f1e806200086a5f395ff3fe60806040526004361061023e575f3560e01c8063715018a61161012d5780639e265557116100aa578063d28d88521161006e578063d28d88521461087a578063d9443923146108a4578063dd62ed3e146108ce578063edf97ac21461090a578063fc2ea8a5146109345761024d565b80639e26555714610772578063a9059cbb146107ae578063a98ad46c146107ea578063b09f126614610814578063c84dbf011461083e5761024d565b80638b0bb069116100f15780638b0bb0691461069c5780638da5cb5b146106d857806390aa3eff1461070257806395d89b411461070c578063999205eb146107365761024d565b8063715018a6146105dc5780637301228a146105f25780637ec18cf61461062e578063875ca2e4146106585780638abc1779146106745761024d565b80632cf003c2116101bb57806343a9d48a1161017f57806343a9d48a1461050c578063549a0e01146105365780635b8bec551461054c57806360f96a8f1461057657806370a08231146105a05761024d565b80632cf003c21461042a578063313ce5671461046657806332424aa3146104905780633ea521ef146104ba5780633eaaf86b146104e25761024d565b8063127f4b2e11610202578063127f4b2e146103485780631693e8d41461037057806318160ddd1461039a57806323b872dd146103c45780632b184fa3146104005761024d565b806304c0c4761461025157806306fdde031461027b5780630902f1ac146102a5578063095ea7b3146102d057806311106ee21461030c5761024d565b3661024d5761024b61095e565b005b5f80fd5b34801561025c575f80fd5b50610265610a7a565b6040516102729190613027565b60405180910390f35b348015610286575f80fd5b5061028f610a80565b60405161029c91906130ca565b60405180910390f35b3480156102b0575f80fd5b506102b9610b10565b6040516102c79291906130ea565b60405180910390f35b3480156102db575f80fd5b506102f660048036038101906102f19190613199565b610b65565b60405161030391906131f1565b60405180910390f35b348015610317575f80fd5b50610332600480360381019061032d9190613234565b610c52565b60405161033f9190613027565b60405180910390f35b348015610353575f80fd5b5061036e60048036038101906103699190613272565b610cbf565b005b34801561037b575f80fd5b50610384610db6565b60405161039191906131f1565b60405180910390f35b3480156103a5575f80fd5b506103ae610dc8565b6040516103bb9190613027565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e5919061329d565b610dd1565b6040516103f791906131f1565b60405180910390f35b34801561040b575f80fd5b50610414610f31565b6040516104219190613027565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b91906132ed565b610f37565b60405161045d9190613327565b60405180910390f35b348015610471575f80fd5b5061047a610f67565b604051610487919061335b565b60405180910390f35b34801561049b575f80fd5b506104a4610f6f565b6040516104b1919061335b565b60405180910390f35b3480156104c5575f80fd5b506104e060048036038101906104db9190613272565b610f81565b005b3480156104ed575f80fd5b506104f66110d1565b6040516105039190613027565b60405180910390f35b348015610517575f80fd5b506105206110d7565b60405161052d9190613027565b60405180910390f35b348015610541575f80fd5b5061054a6110dd565b005b348015610557575f80fd5b506105606111ae565b60405161056d9190613327565b60405180910390f35b348015610581575f80fd5b5061058a6111d3565b6040516105979190613327565b60405180910390f35b3480156105ab575f80fd5b506105c660048036038101906105c191906132ed565b6111f8565b6040516105d39190613027565b60405180910390f35b3480156105e7575f80fd5b506105f061123d565b005b3480156105fd575f80fd5b5061061860048036038101906106139190613272565b61134e565b6040516106259190613027565b60405180910390f35b348015610639575f80fd5b5061064261136e565b60405161064f91906131f1565b60405180910390f35b610672600480360381019061066d91906133ad565b61137f565b005b34801561067f575f80fd5b5061069a60048036038101906106959190613272565b61150d565b005b3480156106a7575f80fd5b506106c260048036038101906106bd91906132ed565b6115a6565b6040516106cf9190613027565b60405180910390f35b3480156106e3575f80fd5b506106ec6115bb565b6040516106f99190613327565b60405180910390f35b61070a6115e0565b005b348015610717575f80fd5b506107206122b0565b60405161072d91906130ca565b60405180910390f35b348015610741575f80fd5b5061075c600480360381019061075791906132ed565b612340565b60405161076991906131f1565b60405180910390f35b34801561077d575f80fd5b50610798600480360381019061079391906132ed565b61235d565b6040516107a591906131f1565b60405180910390f35b3480156107b9575f80fd5b506107d460048036038101906107cf9190613199565b61237a565b6040516107e191906131f1565b60405180910390f35b3480156107f5575f80fd5b506107fe6123d2565b60405161080b9190613446565b60405180910390f35b34801561081f575f80fd5b506108286123f7565b60405161083591906130ca565b60405180910390f35b348015610849575f80fd5b50610864600480360381019061085f91906132ed565b612483565b6040516108719190613027565b60405180910390f35b348015610885575f80fd5b5061088e612498565b60405161089b91906130ca565b60405180910390f35b3480156108af575f80fd5b506108b8612524565b6040516108c591906131f1565b60405180910390f35b3480156108d9575f80fd5b506108f460048036038101906108ef919061345f565b612536565b6040516109019190613027565b60405180910390f35b348015610915575f80fd5b5061091e612556565b60405161092b9190613027565b60405180910390f35b34801561093f575f80fd5b5061094861255c565b6040516109559190613027565b60405180910390f35b5f601154344761096e91906134ca565b61097891906134ca565b90505f805f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f81116109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f390613547565b60405180910390fd5b5f828234610a0a9190613565565b610a1491906135d3565b9050610a21303383612562565b3373ffffffffffffffffffffffffffffffffffffffff167f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737345f8085604051610a6d949392919061363c565b60405180910390a2505050565b60185481565b606060038054610a8f906136ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610abb906136ac565b8015610b065780601f10610add57610100808354040283529160200191610b06565b820191905f5260205f20905b815481529060010190602001808311610ae957829003601f168201915b5050505050905090565b5f805f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460115447610b5d91906134ca565b915091509091565b5f8160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c409190613027565b60405180910390a36001905092915050565b5f805f610c5d610b10565b915091508315610c92578482610c7391906134ca565b8186610c7f9190613565565b610c8991906135d3565b92505050610cb9565b8481610c9e91906134ca565b8286610caa9190613565565b610cb491906135d3565b925050505b92915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4590613726565b60405180910390fd5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610db2573d5f803e3d5ffd5b5050565b60015f9054906101000a900460ff1681565b5f600654905090565b5f8160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e849061378e565b60405180910390fd5b8160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f1491906137ac565b92505081905550610f268484846126ef565b600190509392505050565b60115481565b6009602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b60055f9054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100790613726565b60405180910390fd5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161108d9291906137df565b6020604051808303815f875af11580156110a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cd919061381a565b5050565b60065481565b60135481565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390613726565b60405180910390fd5b5f60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c390613726565b60405180910390fd5b5f60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6015818154811061135d575f80fd5b905f5260205f20015f915090505481565b60018054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140590613726565b60405180910390fd5b600160175f6101000a81548160ff0219169083151502179055508163ffffffff164310611470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114679061388f565b60405180910390fd5b43601a819055508060015f6101000a81548160ff0219169083151502179055503360195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175825f6040516115019291906138bc565b60405180910390a15050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390613726565b60405180910390fd5b8060108190555050565b600a602052805f5260405f205f915090505481565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601054600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161163d9190613327565b602060405180830381865afa158015611658573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167c91906138f7565b10156116bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b49061396c565b60405180910390fd5b66038d7ea4c680003411611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd906139d4565b60405180910390fd5b60011515600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611848575f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461180591906134ca565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f81116118cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c290613a3c565b60405180910390fd5b5f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490506009811061191957600990505b5f670de0b6b3a764000060018361193091906137ac565b600261193c9190613b89565b6119469190613565565b90505f60135460018461195991906137ac565b60026119659190613b89565b61196f9190613565565b9050815f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e790613c1d565b60405180910390fd5b805f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6690613c85565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611aac93929190613ca3565b6020604051808303815f875af1158015611ac8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aec919061381a565b50600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611b499291906137df565b6020604051808303815f875af1158015611b65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b89919061381a565b506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bd791906134ca565b925050819055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611c2b91906137ac565b925050819055505f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f5b601454811015611e57575f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160315611e57575f606460158381548110611ce957611ce8613cd8565b5b905f5260205f20015485611cfd9190613565565b611d0791906135d3565b9050805f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611dea57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611da89291906137df565b6020604051808303815f875af1158015611dc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611de8919061381a565b505b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250508080600101915050611c94565b5060095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f5b60148110156122a8575f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603156122a8576001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054148015611f505750600a600182611f4d91906134ca565b11155b1561200d57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb836103e860165487611fa49190613565565b611fae91906135d3565b6040518363ffffffff1660e01b8152600401611fcb9291906137df565b6020604051808303815f875af1158015611fe7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061200b919061381a565b505b6002600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541480156120675750600f60018261206491906134ca565b11155b1561212457600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb836103e8601654876120bb9190613565565b6120c591906135d3565b6040518363ffffffff1660e01b81526004016120e29291906137df565b6020604051808303815f875af11580156120fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612122919061381a565b505b6003600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015801561217f5750601460018261217c91906134ca565b11155b1561223c57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb836103e8601654876121d39190613565565b6121dd91906135d3565b6040518363ffffffff1660e01b81526004016121fa9291906137df565b6020604051808303815f875af1158015612216573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061223a919061381a565b505b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508080600101915050611eb9565b505050505050565b6060600480546122bf906136ac565b80601f01602080910402602001604051908101604052809291908181526020018280546122eb906136ac565b80156123365780601f1061230d57610100808354040283529160200191612336565b820191905f5260205f20905b81548152906001019060200180831161231957829003601f168201915b5050505050905090565b600d602052805f5260405f205f915054906101000a900460ff1681565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123bc576123b782612de1565b6123c8565b6123c73384846126ef565b5b6001905092915050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60048054612404906136ac565b80601f0160208091040260200160405190810160405280929190818152602001828054612430906136ac565b801561247b5780601f106124525761010080835404028352916020019161247b565b820191905f5260205f20905b81548152906001019060200180831161245e57829003601f168201915b505050505081565b600b602052805f5260405f205f915090505481565b600380546124a5906136ac565b80601f01602080910402602001604051908101604052809291908181526020018280546124d1906136ac565b801561251c5780601f106124f35761010080835404028352916020019161251c565b820191905f5260205f20905b8154815290600101906020018083116124ff57829003601f168201915b505050505081565b60175f9054906101000a900460ff1681565b6008602052815f5260405f20602052805f5260405f205f91509150505481565b60105481565b600e5481565b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156125e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d890613d4f565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461262c91906137ac565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461267e91906134ca565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126e29190613027565b60405180910390a3505050565b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561276e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276590613db7565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546127b991906137ac565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461280b91906134ca565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff1660095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156128d557508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612956578260095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603612a43576001600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612b345750601054600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612af29190613327565b602060405180830381865afa158015612b0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3191906138f7565b10155b15612d77576001600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600e545f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612d3357600e545f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612c2091906137ac565b92505081905550600e545f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612c7491906134ca565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051612cda9190613027565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff167f01566ffeafa38197545f88b35ff62693dcadc8606b15459dfdec9dc77f510eb9600e54604051612d2a9190613027565b60405180910390a25b6001600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd49190613027565b60405180910390a3505050565b60015f9054906101000a900460ff16612e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2690613e1f565b60405180910390fd5b805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea590613c1d565b60405180910390fd5b5f60115447612ebd91906134ca565b90505f805f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8382612f0c91906134ca565b8385612f189190613565565b612f2291906135d3565b90505f8111612f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5d90613e87565b60405180910390fd5b612f71333086612562565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612fb4573d5f803e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff167f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb7375f86845f6040516130019493929190613ea5565b60405180910390a250505050565b5f819050919050565b6130218161300f565b82525050565b5f60208201905061303a5f830184613018565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561307757808201518184015260208101905061305c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61309c82613040565b6130a6818561304a565b93506130b681856020860161305a565b6130bf81613082565b840191505092915050565b5f6020820190508181035f8301526130e28184613092565b905092915050565b5f6040820190506130fd5f830185613018565b61310a6020830184613018565b9392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61313e82613115565b9050919050565b61314e81613134565b8114613158575f80fd5b50565b5f8135905061316981613145565b92915050565b6131788161300f565b8114613182575f80fd5b50565b5f813590506131938161316f565b92915050565b5f80604083850312156131af576131ae613111565b5b5f6131bc8582860161315b565b92505060206131cd85828601613185565b9150509250929050565b5f8115159050919050565b6131eb816131d7565b82525050565b5f6020820190506132045f8301846131e2565b92915050565b613213816131d7565b811461321d575f80fd5b50565b5f8135905061322e8161320a565b92915050565b5f806040838503121561324a57613249613111565b5b5f61325785828601613185565b925050602061326885828601613220565b9150509250929050565b5f6020828403121561328757613286613111565b5b5f61329484828501613185565b91505092915050565b5f805f606084860312156132b4576132b3613111565b5b5f6132c18682870161315b565b93505060206132d28682870161315b565b92505060406132e386828701613185565b9150509250925092565b5f6020828403121561330257613301613111565b5b5f61330f8482850161315b565b91505092915050565b61332181613134565b82525050565b5f60208201905061333a5f830184613318565b92915050565b5f60ff82169050919050565b61335581613340565b82525050565b5f60208201905061336e5f83018461334c565b92915050565b5f63ffffffff82169050919050565b61338c81613374565b8114613396575f80fd5b50565b5f813590506133a781613383565b92915050565b5f80604083850312156133c3576133c2613111565b5b5f6133d085828601613399565b92505060206133e185828601613220565b9150509250929050565b5f819050919050565b5f61340e61340961340484613115565b6133eb565b613115565b9050919050565b5f61341f826133f4565b9050919050565b5f61343082613415565b9050919050565b61344081613426565b82525050565b5f6020820190506134595f830184613437565b92915050565b5f806040838503121561347557613474613111565b5b5f6134828582860161315b565b92505060206134938582860161315b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6134d48261300f565b91506134df8361300f565b92508282019050808211156134f7576134f661349d565b5b92915050565b7f4e6f206c697175696469747900000000000000000000000000000000000000005f82015250565b5f613531600c8361304a565b915061353c826134fd565b602082019050919050565b5f6020820190508181035f83015261355e81613525565b9050919050565b5f61356f8261300f565b915061357a8361300f565b92508282026135888161300f565b9150828204841483151761359f5761359e61349d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135dd8261300f565b91506135e88361300f565b9250826135f8576135f76135a6565b5b828204905092915050565b5f819050919050565b5f61362661362161361c84613603565b6133eb565b61300f565b9050919050565b6136368161360c565b82525050565b5f60808201905061364f5f830187613018565b61365c602083018661362d565b613669604083018561362d565b6136766060830184613018565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806136c357607f821691505b6020821081036136d6576136d561367f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61371060208361304a565b915061371b826136dc565b602082019050919050565b5f6020820190508181035f83015261373d81613704565b9050919050565b7f616c6c6f77616e6365206c6f77000000000000000000000000000000000000005f82015250565b5f613778600d8361304a565b915061378382613744565b602082019050919050565b5f6020820190508181035f8301526137a58161376c565b9050919050565b5f6137b68261300f565b91506137c18361300f565b92508282039050818111156137d9576137d861349d565b5b92915050565b5f6040820190506137f25f830185613318565b6137ff6020830184613018565b9392505050565b5f815190506138148161320a565b92915050565b5f6020828403121561382f5761382e613111565b5b5f61383c84828501613806565b91505092915050565b7f426c6f636b206e756d62657220746f6f206c6f770000000000000000000000005f82015250565b5f61387960148361304a565b915061388482613845565b602082019050919050565b5f6020820190508181035f8301526138a68161386d565b9050919050565b6138b681613374565b82525050565b5f6040820190506138cf5f8301856138ad565b6138dc602083018461362d565b9392505050565b5f815190506138f18161316f565b92915050565b5f6020828403121561390c5761390b613111565b5b5f613919848285016138e3565b91505092915050565b7f55534454203c20313030000000000000000000000000000000000000000000005f82015250565b5f613956600a8361304a565b915061396182613922565b602082019050919050565b5f6020820190508181035f8301526139838161394a565b9050919050565b7f76616c7565203e302e30303031000000000000000000000000000000000000005f82015250565b5f6139be600d8361304a565b91506139c98261398a565b602082019050919050565b5f6020820190508181035f8301526139eb816139b2565b9050919050565b7f4e6f2065786368616e6765206368616e636500000000000000000000000000005f82015250565b5f613a2660128361304a565b9150613a31826139f2565b602082019050919050565b5f6020820190508181035f830152613a5381613a1a565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613aaf57808604811115613a8b57613a8a61349d565b5b6001851615613a9a5780820291505b8081029050613aa885613a5a565b9450613a6f565b94509492505050565b5f82613ac75760019050613b82565b81613ad4575f9050613b82565b8160018114613aea5760028114613af457613b23565b6001915050613b82565b60ff841115613b0657613b0561349d565b5b8360020a915084821115613b1d57613b1c61349d565b5b50613b82565b5060208310610133831016604e8410600b8410161715613b585782820a905083811115613b5357613b5261349d565b5b613b82565b613b658484846001613a66565b92509050818404811115613b7c57613b7b61349d565b5b81810290505b9392505050565b5f613b938261300f565b9150613b9e8361300f565b9250613bcb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613ab8565b905092915050565b7f496e73756666696369656e7420484b44000000000000000000000000000000005f82015250565b5f613c0760108361304a565b9150613c1282613bd3565b602082019050919050565b5f6020820190508181035f830152613c3481613bfb565b9050919050565b7f496e73756666696369656e7420555344540000000000000000000000000000005f82015250565b5f613c6f60118361304a565b9150613c7a82613c3b565b602082019050919050565b5f6020820190508181035f830152613c9c81613c63565b9050919050565b5f606082019050613cb65f830186613318565b613cc36020830185613318565b613cd06040830184613018565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f62616c616e6365206e6f742000000000000000000000000000000000000000005f82015250565b5f613d39600c8361304a565b9150613d4482613d05565b602082019050919050565b5f6020820190508181035f830152613d6681613d2d565b9050919050565b7f696e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f613da160148361304a565b9150613dac82613d6d565b602082019050919050565b5f6020820190508181035f830152613dce81613d95565b9050919050565b7f54726164696e67206e6f7420656e61626c6500000000000000000000000000005f82015250565b5f613e0960128361304a565b9150613e1482613dd5565b602082019050919050565b5f6020820190508181035f830152613e3681613dfd565b9050919050565b7f45544820746f6f206c6f770000000000000000000000000000000000000000005f82015250565b5f613e71600b8361304a565b9150613e7c82613e3d565b602082019050919050565b5f6020820190508181035f830152613e9e81613e65565b9050919050565b5f608082019050613eb85f83018761362d565b613ec56020830186613018565b613ed26040830185613018565b613edf606083018461362d565b9594505050505056fea26469706673582212207c04e29389f9a5100efa6636685e99d75607dba63628cfab0f7da5683fa1348f64736f6c63430008180033
Deployed Bytecode
0x60806040526004361061023e575f3560e01c8063715018a61161012d5780639e265557116100aa578063d28d88521161006e578063d28d88521461087a578063d9443923146108a4578063dd62ed3e146108ce578063edf97ac21461090a578063fc2ea8a5146109345761024d565b80639e26555714610772578063a9059cbb146107ae578063a98ad46c146107ea578063b09f126614610814578063c84dbf011461083e5761024d565b80638b0bb069116100f15780638b0bb0691461069c5780638da5cb5b146106d857806390aa3eff1461070257806395d89b411461070c578063999205eb146107365761024d565b8063715018a6146105dc5780637301228a146105f25780637ec18cf61461062e578063875ca2e4146106585780638abc1779146106745761024d565b80632cf003c2116101bb57806343a9d48a1161017f57806343a9d48a1461050c578063549a0e01146105365780635b8bec551461054c57806360f96a8f1461057657806370a08231146105a05761024d565b80632cf003c21461042a578063313ce5671461046657806332424aa3146104905780633ea521ef146104ba5780633eaaf86b146104e25761024d565b8063127f4b2e11610202578063127f4b2e146103485780631693e8d41461037057806318160ddd1461039a57806323b872dd146103c45780632b184fa3146104005761024d565b806304c0c4761461025157806306fdde031461027b5780630902f1ac146102a5578063095ea7b3146102d057806311106ee21461030c5761024d565b3661024d5761024b61095e565b005b5f80fd5b34801561025c575f80fd5b50610265610a7a565b6040516102729190613027565b60405180910390f35b348015610286575f80fd5b5061028f610a80565b60405161029c91906130ca565b60405180910390f35b3480156102b0575f80fd5b506102b9610b10565b6040516102c79291906130ea565b60405180910390f35b3480156102db575f80fd5b506102f660048036038101906102f19190613199565b610b65565b60405161030391906131f1565b60405180910390f35b348015610317575f80fd5b50610332600480360381019061032d9190613234565b610c52565b60405161033f9190613027565b60405180910390f35b348015610353575f80fd5b5061036e60048036038101906103699190613272565b610cbf565b005b34801561037b575f80fd5b50610384610db6565b60405161039191906131f1565b60405180910390f35b3480156103a5575f80fd5b506103ae610dc8565b6040516103bb9190613027565b60405180910390f35b3480156103cf575f80fd5b506103ea60048036038101906103e5919061329d565b610dd1565b6040516103f791906131f1565b60405180910390f35b34801561040b575f80fd5b50610414610f31565b6040516104219190613027565b60405180910390f35b348015610435575f80fd5b50610450600480360381019061044b91906132ed565b610f37565b60405161045d9190613327565b60405180910390f35b348015610471575f80fd5b5061047a610f67565b604051610487919061335b565b60405180910390f35b34801561049b575f80fd5b506104a4610f6f565b6040516104b1919061335b565b60405180910390f35b3480156104c5575f80fd5b506104e060048036038101906104db9190613272565b610f81565b005b3480156104ed575f80fd5b506104f66110d1565b6040516105039190613027565b60405180910390f35b348015610517575f80fd5b506105206110d7565b60405161052d9190613027565b60405180910390f35b348015610541575f80fd5b5061054a6110dd565b005b348015610557575f80fd5b506105606111ae565b60405161056d9190613327565b60405180910390f35b348015610581575f80fd5b5061058a6111d3565b6040516105979190613327565b60405180910390f35b3480156105ab575f80fd5b506105c660048036038101906105c191906132ed565b6111f8565b6040516105d39190613027565b60405180910390f35b3480156105e7575f80fd5b506105f061123d565b005b3480156105fd575f80fd5b5061061860048036038101906106139190613272565b61134e565b6040516106259190613027565b60405180910390f35b348015610639575f80fd5b5061064261136e565b60405161064f91906131f1565b60405180910390f35b610672600480360381019061066d91906133ad565b61137f565b005b34801561067f575f80fd5b5061069a60048036038101906106959190613272565b61150d565b005b3480156106a7575f80fd5b506106c260048036038101906106bd91906132ed565b6115a6565b6040516106cf9190613027565b60405180910390f35b3480156106e3575f80fd5b506106ec6115bb565b6040516106f99190613327565b60405180910390f35b61070a6115e0565b005b348015610717575f80fd5b506107206122b0565b60405161072d91906130ca565b60405180910390f35b348015610741575f80fd5b5061075c600480360381019061075791906132ed565b612340565b60405161076991906131f1565b60405180910390f35b34801561077d575f80fd5b50610798600480360381019061079391906132ed565b61235d565b6040516107a591906131f1565b60405180910390f35b3480156107b9575f80fd5b506107d460048036038101906107cf9190613199565b61237a565b6040516107e191906131f1565b60405180910390f35b3480156107f5575f80fd5b506107fe6123d2565b60405161080b9190613446565b60405180910390f35b34801561081f575f80fd5b506108286123f7565b60405161083591906130ca565b60405180910390f35b348015610849575f80fd5b50610864600480360381019061085f91906132ed565b612483565b6040516108719190613027565b60405180910390f35b348015610885575f80fd5b5061088e612498565b60405161089b91906130ca565b60405180910390f35b3480156108af575f80fd5b506108b8612524565b6040516108c591906131f1565b60405180910390f35b3480156108d9575f80fd5b506108f460048036038101906108ef919061345f565b612536565b6040516109019190613027565b60405180910390f35b348015610915575f80fd5b5061091e612556565b60405161092b9190613027565b60405180910390f35b34801561093f575f80fd5b5061094861255c565b6040516109559190613027565b60405180910390f35b5f601154344761096e91906134ca565b61097891906134ca565b90505f805f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f81116109fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f390613547565b60405180910390fd5b5f828234610a0a9190613565565b610a1491906135d3565b9050610a21303383612562565b3373ffffffffffffffffffffffffffffffffffffffff167f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb737345f8085604051610a6d949392919061363c565b60405180910390a2505050565b60185481565b606060038054610a8f906136ac565b80601f0160208091040260200160405190810160405280929190818152602001828054610abb906136ac565b8015610b065780601f10610add57610100808354040283529160200191610b06565b820191905f5260205f20905b815481529060010190602001808311610ae957829003601f168201915b5050505050905090565b5f805f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460115447610b5d91906134ca565b915091509091565b5f8160085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610c409190613027565b60405180910390a36001905092915050565b5f805f610c5d610b10565b915091508315610c92578482610c7391906134ca565b8186610c7f9190613565565b610c8991906135d3565b92505050610cb9565b8481610c9e91906134ca565b8286610caa9190613565565b610cb491906135d3565b925050505b92915050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4590613726565b60405180910390fd5b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015610db2573d5f803e3d5ffd5b5050565b60015f9054906101000a900460ff1681565b5f600654905090565b5f8160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015610e8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e849061378e565b60405180910390fd5b8160085f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610f1491906137ac565b92505081905550610f268484846126ef565b600190509392505050565b60115481565b6009602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012905090565b60055f9054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611010576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100790613726565b60405180910390fd5b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b815260040161108d9291906137df565b6020604051808303815f875af11580156110a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110cd919061381a565b5050565b60065481565b60135481565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461116c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116390613726565b60405180910390fd5b5f60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60195f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c390613726565b60405180910390fd5b5f60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6015818154811061135d575f80fd5b905f5260205f20015f915090505481565b60018054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461140e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140590613726565b60405180910390fd5b600160175f6101000a81548160ff0219169083151502179055508163ffffffff164310611470576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114679061388f565b60405180910390fd5b43601a819055508060015f6101000a81548160ff0219169083151502179055503360195f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f0c6c8102f3ac634c5fb327ba1a5d5c18030294d9f5cc309afa9e8a9020a77175825f6040516115019291906138bc565b60405180910390a15050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461159c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159390613726565b60405180910390fd5b8060108190555050565b600a602052805f5260405f205f915090505481565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601054600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b815260040161163d9190613327565b602060405180830381865afa158015611658573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061167c91906138f7565b10156116bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b49061396c565b60405180910390fd5b66038d7ea4c680003411611706576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fd906139d4565b60405180910390fd5b60011515600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16151503611848575f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506001600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461180591906134ca565b600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f81116118cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c290613a3c565b60405180910390fd5b5f600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490506009811061191957600990505b5f670de0b6b3a764000060018361193091906137ac565b600261193c9190613b89565b6119469190613565565b90505f60135460018461195991906137ac565b60026119659190613b89565b61196f9190613565565b9050815f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156119f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e790613c1d565b60405180910390fd5b805f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611a6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6690613c85565b60405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff166323b872dd3330856040518463ffffffff1660e01b8152600401611aac93929190613ca3565b6020604051808303815f875af1158015611ac8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611aec919061381a565b50600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611b499291906137df565b6020604051808303815f875af1158015611b65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b89919061381a565b506001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611bd791906134ca565b925050819055506001600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611c2b91906137ac565b925050819055505f60095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f5b601454811015611e57575f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160315611e57575f606460158381548110611ce957611ce8613cd8565b5b905f5260205f20015485611cfd9190613565565b611d0791906135d3565b9050805f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611dea57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb84836040518363ffffffff1660e01b8152600401611da89291906137df565b6020604051808303815f875af1158015611dc4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611de8919061381a565b505b60095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169250508080600101915050611c94565b5060095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f5b60148110156122a8575f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603156122a8576001600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054148015611f505750600a600182611f4d91906134ca565b11155b1561200d57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb836103e860165487611fa49190613565565b611fae91906135d3565b6040518363ffffffff1660e01b8152600401611fcb9291906137df565b6020604051808303815f875af1158015611fe7573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061200b919061381a565b505b6002600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541480156120675750600f60018261206491906134ca565b11155b1561212457600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb836103e8601654876120bb9190613565565b6120c591906135d3565b6040518363ffffffff1660e01b81526004016120e29291906137df565b6020604051808303815f875af11580156120fe573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612122919061381a565b505b6003600a5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015801561217f5750601460018261217c91906134ca565b11155b1561223c57600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb836103e8601654876121d39190613565565b6121dd91906135d3565b6040518363ffffffff1660e01b81526004016121fa9291906137df565b6020604051808303815f875af1158015612216573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061223a919061381a565b505b60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1691508080600101915050611eb9565b505050505050565b6060600480546122bf906136ac565b80601f01602080910402602001604051908101604052809291908181526020018280546122eb906136ac565b80156123365780601f1061230d57610100808354040283529160200191612336565b820191905f5260205f20905b81548152906001019060200180831161231957829003601f168201915b5050505050905090565b600d602052805f5260405f205f915054906101000a900460ff1681565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f3073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123bc576123b782612de1565b6123c8565b6123c73384846126ef565b5b6001905092915050565b600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60048054612404906136ac565b80601f0160208091040260200160405190810160405280929190818152602001828054612430906136ac565b801561247b5780601f106124525761010080835404028352916020019161247b565b820191905f5260205f20905b81548152906001019060200180831161245e57829003601f168201915b505050505081565b600b602052805f5260405f205f915090505481565b600380546124a5906136ac565b80601f01602080910402602001604051908101604052809291908181526020018280546124d1906136ac565b801561251c5780601f106124f35761010080835404028352916020019161251c565b820191905f5260205f20905b8154815290600101906020018083116124ff57829003601f168201915b505050505081565b60175f9054906101000a900460ff1681565b6008602052815f5260405f20602052805f5260405f205f91509150505481565b60105481565b600e5481565b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410156125e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d890613d4f565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461262c91906137ac565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461267e91906134ca565b925050819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126e29190613027565b60405180910390a3505050565b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054101561276e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276590613db7565b60405180910390fd5b805f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546127b991906137ac565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461280b91906134ca565b925050819055505f73ffffffffffffffffffffffffffffffffffffffff1660095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161480156128d557508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612956578260095f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1603612a43576001600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612b345750601054600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401612af29190613327565b602060405180830381865afa158015612b0d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b3191906138f7565b10155b15612d77576001600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600e545f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612d3357600e545f803073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612c2091906137ac565b92505081905550600e545f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254612c7491906134ca565b925050819055508173ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600e54604051612cda9190613027565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff167f01566ffeafa38197545f88b35ff62693dcadc8606b15459dfdec9dc77f510eb9600e54604051612d2a9190613027565b60405180910390a25b6001600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612dd49190613027565b60405180910390a3505050565b60015f9054906101000a900460ff16612e2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e2690613e1f565b60405180910390fd5b805f803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612eae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ea590613c1d565b60405180910390fd5b5f60115447612ebd91906134ca565b90505f805f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f8382612f0c91906134ca565b8385612f189190613565565b612f2291906135d3565b90505f8111612f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5d90613e87565b60405180910390fd5b612f71333086612562565b3373ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612fb4573d5f803e3d5ffd5b503373ffffffffffffffffffffffffffffffffffffffff167f49926bbebe8474393f434dfa4f78694c0923efa07d19f2284518bfabd06eb7375f86845f6040516130019493929190613ea5565b60405180910390a250505050565b5f819050919050565b6130218161300f565b82525050565b5f60208201905061303a5f830184613018565b92915050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561307757808201518184015260208101905061305c565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61309c82613040565b6130a6818561304a565b93506130b681856020860161305a565b6130bf81613082565b840191505092915050565b5f6020820190508181035f8301526130e28184613092565b905092915050565b5f6040820190506130fd5f830185613018565b61310a6020830184613018565b9392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61313e82613115565b9050919050565b61314e81613134565b8114613158575f80fd5b50565b5f8135905061316981613145565b92915050565b6131788161300f565b8114613182575f80fd5b50565b5f813590506131938161316f565b92915050565b5f80604083850312156131af576131ae613111565b5b5f6131bc8582860161315b565b92505060206131cd85828601613185565b9150509250929050565b5f8115159050919050565b6131eb816131d7565b82525050565b5f6020820190506132045f8301846131e2565b92915050565b613213816131d7565b811461321d575f80fd5b50565b5f8135905061322e8161320a565b92915050565b5f806040838503121561324a57613249613111565b5b5f61325785828601613185565b925050602061326885828601613220565b9150509250929050565b5f6020828403121561328757613286613111565b5b5f61329484828501613185565b91505092915050565b5f805f606084860312156132b4576132b3613111565b5b5f6132c18682870161315b565b93505060206132d28682870161315b565b92505060406132e386828701613185565b9150509250925092565b5f6020828403121561330257613301613111565b5b5f61330f8482850161315b565b91505092915050565b61332181613134565b82525050565b5f60208201905061333a5f830184613318565b92915050565b5f60ff82169050919050565b61335581613340565b82525050565b5f60208201905061336e5f83018461334c565b92915050565b5f63ffffffff82169050919050565b61338c81613374565b8114613396575f80fd5b50565b5f813590506133a781613383565b92915050565b5f80604083850312156133c3576133c2613111565b5b5f6133d085828601613399565b92505060206133e185828601613220565b9150509250929050565b5f819050919050565b5f61340e61340961340484613115565b6133eb565b613115565b9050919050565b5f61341f826133f4565b9050919050565b5f61343082613415565b9050919050565b61344081613426565b82525050565b5f6020820190506134595f830184613437565b92915050565b5f806040838503121561347557613474613111565b5b5f6134828582860161315b565b92505060206134938582860161315b565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6134d48261300f565b91506134df8361300f565b92508282019050808211156134f7576134f661349d565b5b92915050565b7f4e6f206c697175696469747900000000000000000000000000000000000000005f82015250565b5f613531600c8361304a565b915061353c826134fd565b602082019050919050565b5f6020820190508181035f83015261355e81613525565b9050919050565b5f61356f8261300f565b915061357a8361300f565b92508282026135888161300f565b9150828204841483151761359f5761359e61349d565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6135dd8261300f565b91506135e88361300f565b9250826135f8576135f76135a6565b5b828204905092915050565b5f819050919050565b5f61362661362161361c84613603565b6133eb565b61300f565b9050919050565b6136368161360c565b82525050565b5f60808201905061364f5f830187613018565b61365c602083018661362d565b613669604083018561362d565b6136766060830184613018565b95945050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806136c357607f821691505b6020821081036136d6576136d561367f565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61371060208361304a565b915061371b826136dc565b602082019050919050565b5f6020820190508181035f83015261373d81613704565b9050919050565b7f616c6c6f77616e6365206c6f77000000000000000000000000000000000000005f82015250565b5f613778600d8361304a565b915061378382613744565b602082019050919050565b5f6020820190508181035f8301526137a58161376c565b9050919050565b5f6137b68261300f565b91506137c18361300f565b92508282039050818111156137d9576137d861349d565b5b92915050565b5f6040820190506137f25f830185613318565b6137ff6020830184613018565b9392505050565b5f815190506138148161320a565b92915050565b5f6020828403121561382f5761382e613111565b5b5f61383c84828501613806565b91505092915050565b7f426c6f636b206e756d62657220746f6f206c6f770000000000000000000000005f82015250565b5f61387960148361304a565b915061388482613845565b602082019050919050565b5f6020820190508181035f8301526138a68161386d565b9050919050565b6138b681613374565b82525050565b5f6040820190506138cf5f8301856138ad565b6138dc602083018461362d565b9392505050565b5f815190506138f18161316f565b92915050565b5f6020828403121561390c5761390b613111565b5b5f613919848285016138e3565b91505092915050565b7f55534454203c20313030000000000000000000000000000000000000000000005f82015250565b5f613956600a8361304a565b915061396182613922565b602082019050919050565b5f6020820190508181035f8301526139838161394a565b9050919050565b7f76616c7565203e302e30303031000000000000000000000000000000000000005f82015250565b5f6139be600d8361304a565b91506139c98261398a565b602082019050919050565b5f6020820190508181035f8301526139eb816139b2565b9050919050565b7f4e6f2065786368616e6765206368616e636500000000000000000000000000005f82015250565b5f613a2660128361304a565b9150613a31826139f2565b602082019050919050565b5f6020820190508181035f830152613a5381613a1a565b9050919050565b5f8160011c9050919050565b5f808291508390505b6001851115613aaf57808604811115613a8b57613a8a61349d565b5b6001851615613a9a5780820291505b8081029050613aa885613a5a565b9450613a6f565b94509492505050565b5f82613ac75760019050613b82565b81613ad4575f9050613b82565b8160018114613aea5760028114613af457613b23565b6001915050613b82565b60ff841115613b0657613b0561349d565b5b8360020a915084821115613b1d57613b1c61349d565b5b50613b82565b5060208310610133831016604e8410600b8410161715613b585782820a905083811115613b5357613b5261349d565b5b613b82565b613b658484846001613a66565b92509050818404811115613b7c57613b7b61349d565b5b81810290505b9392505050565b5f613b938261300f565b9150613b9e8361300f565b9250613bcb7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613ab8565b905092915050565b7f496e73756666696369656e7420484b44000000000000000000000000000000005f82015250565b5f613c0760108361304a565b9150613c1282613bd3565b602082019050919050565b5f6020820190508181035f830152613c3481613bfb565b9050919050565b7f496e73756666696369656e7420555344540000000000000000000000000000005f82015250565b5f613c6f60118361304a565b9150613c7a82613c3b565b602082019050919050565b5f6020820190508181035f830152613c9c81613c63565b9050919050565b5f606082019050613cb65f830186613318565b613cc36020830185613318565b613cd06040830184613018565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f62616c616e6365206e6f742000000000000000000000000000000000000000005f82015250565b5f613d39600c8361304a565b9150613d4482613d05565b602082019050919050565b5f6020820190508181035f830152613d6681613d2d565b9050919050565b7f696e73756666696369656e742062616c616e63650000000000000000000000005f82015250565b5f613da160148361304a565b9150613dac82613d6d565b602082019050919050565b5f6020820190508181035f830152613dce81613d95565b9050919050565b7f54726164696e67206e6f7420656e61626c6500000000000000000000000000005f82015250565b5f613e0960128361304a565b9150613e1482613dd5565b602082019050919050565b5f6020820190508181035f830152613e3681613dfd565b9050919050565b7f45544820746f6f206c6f770000000000000000000000000000000000000000005f82015250565b5f613e71600b8361304a565b9150613e7c82613e3d565b602082019050919050565b5f6020820190508181035f830152613e9e81613e65565b9050919050565b5f608082019050613eb85f83018761362d565b613ec56020830186613018565b613ed26040830185613018565b613edf606083018461362d565b9594505050505056fea26469706673582212207c04e29389f9a5100efa6636685e99d75607dba63628cfab0f7da5683fa1348f64736f6c63430008180033
Deployed Bytecode Sourcemap
1352:10649:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11985:5;:3;:5::i;:::-;1352:10649;;;;;2957:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4030:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4891:151;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;6486:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5769:366;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9367:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1455:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4595:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6696:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2568:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1915:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1668:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9481:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1703:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2671:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5182:109;;;;;;;;;;;;;:::i;:::-;;3001:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1737:21;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4757:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5050:126;;;;;;;;;;;;;:::i;:::-;;2788:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1489:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5331:428;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2416:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2009:48;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2621:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9654:2285;;;:::i;:::-;;4240:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2172:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2123:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6206:272;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2291:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1632:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2064:52;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1598:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2924:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1821:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2374:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2240:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8291:407;8328:15;8382:14;;8370:9;8346:21;:33;;;;:::i;:::-;:50;;;;:::i;:::-;8328:68;;8407:17;8427:9;:24;8445:4;8427:24;;;;;;;;;;;;;;;;8407:44;;8480:1;8470:9;:11;8462:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;8510:19;8556:7;8544:9;8532;:21;;;;:::i;:::-;:31;;;;:::i;:::-;8510:53;;8574:52;8597:4;8603:10;8614:11;8574:14;:52::i;:::-;8649:10;8644:46;;;8661:9;8672:1;8675;8678:11;8644:46;;;;;;;;;:::i;:::-;;;;;;;;8315:383;;;8291:407::o;2957:37::-;;;;:::o;4030:91::-;4075:13;4108:5;4101:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4030:91;:::o;4891:151::-;4935:7;4944;4972:9;:24;4990:4;4972:24;;;;;;;;;;;;;;;;5019:14;;4997:21;:36;;;;:::i;:::-;4964:70;;;;4891:151;;:::o;6486:202::-;6552:4;6601:6;6568:9;:21;6578:10;6568:21;;;;;;;;;;;;;;;:30;6590:7;6568:30;;;;;;;;;;;;;;;:39;;;;6643:7;6623:35;;6632:10;6623:35;;;6651:6;6623:35;;;;;;:::i;:::-;;;;;;;;6676:4;6669:11;;6486:202;;;;:::o;5769:366::-;5863:7;5884:18;5904:20;5928:13;:11;:13::i;:::-;5883:58;;;;5958:4;5954:174;;;6025:5;6012:10;:18;;;;:::i;:::-;5995:12;5987:5;:20;;;;:::i;:::-;5986:45;;;;:::i;:::-;5979:52;;;;;;5954:174;6110:5;6095:12;:20;;;;:::i;:::-;6080:10;6072:5;:18;;;;:::i;:::-;6071:45;;;;:::i;:::-;6064:52;;;;5769:366;;;;;:::o;9367:106::-;3098:5;;;;;;;;;;;3084:19;;:10;:19;;;3076:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9442:5:::1;;;;;;;;;;;9434:23;;:31;9458:6;9434:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;9367:106:::0;:::o;1455:25::-;;;;;;;;;;;;;:::o;4595:99::-;4647:7;4674:12;;4667:19;;4595:99;:::o;6696:269::-;6775:4;6828:6;6799:9;:15;6809:4;6799:15;;;;;;;;;;;;;;;:27;6815:10;6799:27;;;;;;;;;;;;;;;;:35;;6791:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6893:6;6862:9;:15;6872:4;6862:15;;;;;;;;;;;;;;;:27;6878:10;6862:27;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;6910:25;6920:4;6925:2;6928:6;6910:9;:25::i;:::-;6953:4;6946:11;;6696:269;;;;;:::o;2568:29::-;;;;:::o;1915:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;4444:84::-;4493:5;4518:2;4511:9;;4444:84;:::o;1668:28::-;;;;;;;;;;;;;:::o;9481:108::-;3098:5;;;;;;;;;;;3084:19;;:10;:19;;;3076:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9549:9:::1;;;;;;;;;;;:18;;;9568:5;;;;;;;;;;;9574:6;9549:32;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9481:108:::0;:::o;1703:27::-;;;;:::o;2671:39::-;;;;:::o;5182:109::-;3098:5;;;;;;;;;;;3084:19;;:10;:19;;;3076:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5281:1:::1;5253:17;;:30;;;;;;;;;;;;;;;;;;5182:109::o:0;3001:32::-;;;;;;;;;;;;;:::o;1737:21::-;;;;;;;;;;;;;:::o;4757:118::-;4822:7;4849:9;:18;4859:7;4849:18;;;;;;;;;;;;;;;;4842:25;;4757:118;;;:::o;5050:126::-;3098:5;;;;;;;;;;;3084:19;;:10;:19;;;3076:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5125:1:::1;5109:5;;:18;;;;;;;;;;;;;;;;;;5166:1;5138:17;;:30;;;;;;;;;;;;;;;;;;5050:126::o:0;2788:38::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1489:33::-;;;;;;;;;;;;:::o;5331:428::-;3098:5;;;;;;;;;;;3084:19;;:10;:19;;;3076:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5493:4:::1;5476:14;;:21;;;;;;;;;;;;;;;;;;5531:23;5516:38;;:12;:38;5508:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5601:12;5590:8;:23;;;;5640:14;5624:13;;:30;;;;;;;;;;;;;;;;;;5685:10;5665:17;;:30;;;;;;;;;;;;;;;;;;5711:40;5724:23;5749:1;5711:40;;;;;;;:::i;:::-;;;;;;;;5331:428:::0;;:::o;2416:121::-;3098:5;;;;;;;;;;;3084:19;;:10;:19;;;3076:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;2514:15:::1;2497:14;:32;;;;2416:121:::0;:::o;2009:48::-;;;;;;;;;;;;;;;;;:::o;2621:20::-;;;;;;;;;;;;;:::o;9654:2285::-;9746:14;;9711:9;;;;;;;;;;;:19;;;9731:10;9711:31;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:49;;9703:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9803:6;9793:9;:16;9785:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;9863:4;9840:27;;:9;:21;9850:10;9840:21;;;;;;;;;;;;;;;;;;;;;;;;;:27;;;9837:190;;9923:9;9935:8;:20;9944:10;9935:20;;;;;;;;;;;;;;;;;;;;;;;;;9923:32;;10014:1;9993:17;:20;10011:1;9993:20;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;9970:17;:20;9988:1;9970:20;;;;;;;;;;;;;;;:45;;;;9868:159;9837:190;10039:17;10059;:29;10077:10;10059:29;;;;;;;;;;;;;;;;10039:49;;10119:1;10107:9;:13;10099:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;10155:13;10171;:25;10185:10;10171:25;;;;;;;;;;;;;;;;10155:41;;10227:1;10220:5;:8;10217:48;;10252:1;10244:9;;10217:48;10324:17;10363:6;10357:1;10351:5;:7;;;;:::i;:::-;10345:1;:14;;;;:::i;:::-;10344:25;;;;:::i;:::-;10324:45;;10380:18;10420:10;;10414:1;10408:5;:7;;;;:::i;:::-;10402:1;:14;;;;:::i;:::-;10401:29;;;;:::i;:::-;10380:50;;10481:9;10453;:24;10471:4;10453:24;;;;;;;;;;;;;;;;:37;;10445:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10557:10;10529:9;:24;10547:4;10529:24;;;;;;;;;;;;;;;;:38;;10521:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10603:4;:17;;;10621:10;10640:4;10646:9;10603:53;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10667:9;;;;;;;;;;;:18;;;10686:10;10697;10667:41;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10781:1;10752:13;:25;10766:10;10752:25;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;10826:1;10793:17;:29;10811:10;10793:29;;;;;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;;;;;10883:18;10904:8;:20;10913:10;10904:20;;;;;;;;;;;;;;;;;;;;;;;;;10883:41;;10939:9;10935:329;10953:8;;10951:1;:10;10935:329;;;11006:1;10984:24;;:10;:24;;;10981:34;11010:5;10981:34;11030:14;11077:3;11060:11;11072:1;11060:14;;;;;;;;:::i;:::-;;;;;;;;;;11047:10;:27;;;;:::i;:::-;:33;;;;:::i;:::-;11030:50;;11126:6;11098:9;:24;11116:4;11098:24;;;;;;;;;;;;;;;;:34;11095:110;;11152:9;;;;;;;;;;;:18;;;11171:10;11182:6;11152:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11095:110;11232:8;:20;11241:10;11232:20;;;;;;;;;;;;;;;;;;;;;;;;;11219:33;;10966:298;10962:3;;;;;;;10935:329;;;;11314:8;:20;11323:10;11314:20;;;;;;;;;;;;;;;;;;;;;;;;;11301:33;;11349:9;11345:587;11363:2;11361:1;:4;11345:587;;;11410:1;11388:24;;:10;:24;;;11385:34;11414:5;11385:34;11464:1;11437:13;:25;11451:10;11437:25;;;;;;;;;;;;;;;;:28;:37;;;;;11472:2;11469:1;11467;:3;;;;:::i;:::-;:7;;11437:37;11434:137;;;11494:9;;;;;;;;;;;:18;;;11513:10;11550:4;11535:14;;11524:10;:25;;;;:::i;:::-;:30;;;;:::i;:::-;11494:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11434:137;11615:1;11588:13;:25;11602:10;11588:25;;;;;;;;;;;;;;;;:28;:37;;;;;11623:2;11620:1;11618;:3;;;;:::i;:::-;:7;;11588:37;11585:137;;;11645:9;;;;;;;;;;;:18;;;11664:10;11701:4;11686:14;;11675:10;:25;;;;:::i;:::-;:30;;;;:::i;:::-;11645:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11585:137;11766:1;11739:13;:25;11753:10;11739:25;;;;;;;;;;;;;;;;:28;;:37;;;;;11774:2;11771:1;11769;:3;;;;:::i;:::-;:7;;11739:37;11736:137;;;11796:9;;;;;;;;;;;:18;;;11815:10;11852:4;11837:14;;11826:10;:25;;;;:::i;:::-;:30;;;;:::i;:::-;11796:61;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11736:137;11900:8;:20;11909:10;11900:20;;;;;;;;;;;;;;;;;;;;;;;;;11887:33;;11366:3;;;;;;;11345:587;;;;9692:2247;;;;;9654:2285::o;4240:95::-;4287:13;4320:7;4313:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4240:95;:::o;2172:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;2123:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;6206:272::-;6275:4;6339;6325:19;;:2;:19;;;6321:128;;6361:11;6366:5;6361:4;:11::i;:::-;6321:128;;;6405:32;6415:10;6427:2;6431:5;6405:9;:32::i;:::-;6321:128;6466:4;6459:11;;6206:272;;;;:::o;2291:76::-;;;;;;;;;;;;;:::o;1632:29::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2064:52::-;;;;;;;;;;;;;;;;;:::o;1598:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2924:26::-;;;;;;;;;;;;;:::o;1821:64::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2374:33::-;;;;:::o;2240:44::-;;;;:::o;8032:251::-;8142:6;8125:9;:15;8135:4;8125:15;;;;;;;;;;;;;;;;:23;;8117:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;8194:6;8175:9;:15;8185:4;8175:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;8228:6;8211:9;:13;8221:2;8211:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;8265:2;8251:24;;8260:4;8251:24;;;8268:6;8251:24;;;;;;:::i;:::-;;;;;;;;8032:251;;;:::o;6973:1051::-;7079:6;7060:9;:15;7070:4;7060:15;;;;;;;;;;;;;;;;:25;;7052:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;7139:6;7120:9;:15;7130:4;7120:15;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;7173:6;7156:9;:13;7166:2;7156:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;7250:1;7226:26;;:8;:12;7235:2;7226:12;;;;;;;;;;;;;;;;;;;;;;;;;:26;;;:40;;;;;7264:2;7256:10;;:4;:10;;;;7226:40;7223:90;;;7297:4;7282:8;:12;7291:2;7282:12;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;7223:90;7340:6;;;;;;;;;;;7328:18;;:10;:18;;;7325:111;;7380:4;7362:11;:15;7374:2;7362:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;7423:1;7399:17;:21;7417:2;7399:21;;;;;;;;;;;;;;;:25;;;;7325:111;7483:11;:15;7495:2;7483:15;;;;;;;;;;;;;;;;;;;;;;;;;7482:16;:61;;;;;7529:14;;7502:9;;;;;;;;;;;:19;;;7522:2;7502:23;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:41;;7482:61;7479:496;;;7577:4;7559:11;:15;7571:2;7559:15;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;7652:13;;7624:9;:24;7642:4;7624:24;;;;;;;;;;;;;;;;:41;7621:289;;7713:13;;7685:9;:24;7703:4;7685:24;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;7762:13;;7745:9;:13;7755:2;7745:13;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;7822:2;7799:40;;7816:4;7799:40;;;7825:13;;7799:40;;;;;;:::i;:::-;;;;;;;;7877:2;7863:31;;;7880:13;;7863:31;;;;;;:::i;:::-;;;;;;;;7621:289;7962:1;7938:17;:21;7956:2;7938:21;;;;;;;;;;;;;;;:25;;;;7479:496;8006:2;7992:24;;8001:4;7992:24;;;8009:6;7992:24;;;;;;:::i;:::-;;;;;;;;6973:1051;;;:::o;8708:598::-;8769:13;;;;;;;;;;;8761:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;8849:9;8826;:21;8836:10;8826:21;;;;;;;;;;;;;;;;:32;;8818:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8889:15;8931:14;;8907:21;:38;;;;:::i;:::-;8889:56;;8956:17;8976:9;:24;8994:4;8976:24;;;;;;;;;;;;;;;;8956:44;;9011:17;9066:9;9054;:21;;;;:::i;:::-;9043:7;9031:9;:19;;;;:::i;:::-;:45;;;;:::i;:::-;9011:65;;9105:1;9095:9;:11;9087:34;;;;;;;;;;;;:::i;:::-;;;;;;;;;9134:50;9149:10;9168:4;9174:9;9134:14;:50::i;:::-;9203:10;9195:28;;:39;9224:9;9195:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9259:10;9254:44;;;9271:1;9274:9;9285;9296:1;9254:44;;;;;;;;;:::i;:::-;;;;;;;;8750:556;;;8708:598;:::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;1784:332::-;1905:4;1943:2;1932:9;1928:18;1920:26;;1956:71;2024:1;2013:9;2009:17;2000:6;1956:71;:::i;:::-;2037:72;2105:2;2094:9;2090:18;2081:6;2037:72;:::i;:::-;1784:332;;;;;:::o;2203:117::-;2312:1;2309;2302:12;2449:126;2486:7;2526:42;2519:5;2515:54;2504:65;;2449:126;;;:::o;2581:96::-;2618:7;2647:24;2665:5;2647:24;:::i;:::-;2636:35;;2581:96;;;:::o;2683:122::-;2756:24;2774:5;2756:24;:::i;:::-;2749:5;2746:35;2736:63;;2795:1;2792;2785:12;2736:63;2683:122;:::o;2811:139::-;2857:5;2895:6;2882:20;2873:29;;2911:33;2938:5;2911:33;:::i;:::-;2811:139;;;;:::o;2956:122::-;3029:24;3047:5;3029:24;:::i;:::-;3022:5;3019:35;3009:63;;3068:1;3065;3058:12;3009:63;2956:122;:::o;3084:139::-;3130:5;3168:6;3155:20;3146:29;;3184:33;3211:5;3184:33;:::i;:::-;3084:139;;;;:::o;3229:474::-;3297:6;3305;3354:2;3342:9;3333:7;3329:23;3325:32;3322:119;;;3360:79;;:::i;:::-;3322:119;3480:1;3505:53;3550:7;3541:6;3530:9;3526:22;3505:53;:::i;:::-;3495:63;;3451:117;3607:2;3633:53;3678:7;3669:6;3658:9;3654:22;3633:53;:::i;:::-;3623:63;;3578:118;3229:474;;;;;:::o;3709:90::-;3743:7;3786:5;3779:13;3772:21;3761:32;;3709:90;;;:::o;3805:109::-;3886:21;3901:5;3886:21;:::i;:::-;3881:3;3874:34;3805:109;;:::o;3920:210::-;4007:4;4045:2;4034:9;4030:18;4022:26;;4058:65;4120:1;4109:9;4105:17;4096:6;4058:65;:::i;:::-;3920:210;;;;:::o;4136:116::-;4206:21;4221:5;4206:21;:::i;:::-;4199:5;4196:32;4186:60;;4242:1;4239;4232:12;4186:60;4136:116;:::o;4258:133::-;4301:5;4339:6;4326:20;4317:29;;4355:30;4379:5;4355:30;:::i;:::-;4258:133;;;;:::o;4397:468::-;4462:6;4470;4519:2;4507:9;4498:7;4494:23;4490:32;4487:119;;;4525:79;;:::i;:::-;4487:119;4645:1;4670:53;4715:7;4706:6;4695:9;4691:22;4670:53;:::i;:::-;4660:63;;4616:117;4772:2;4798:50;4840:7;4831:6;4820:9;4816:22;4798:50;:::i;:::-;4788:60;;4743:115;4397:468;;;;;:::o;4871:329::-;4930:6;4979:2;4967:9;4958:7;4954:23;4950:32;4947:119;;;4985:79;;:::i;:::-;4947:119;5105:1;5130:53;5175:7;5166:6;5155:9;5151:22;5130:53;:::i;:::-;5120:63;;5076:117;4871:329;;;;:::o;5206:619::-;5283:6;5291;5299;5348:2;5336:9;5327:7;5323:23;5319:32;5316:119;;;5354:79;;:::i;:::-;5316:119;5474:1;5499:53;5544:7;5535:6;5524:9;5520:22;5499:53;:::i;:::-;5489:63;;5445:117;5601:2;5627:53;5672:7;5663:6;5652:9;5648:22;5627:53;:::i;:::-;5617:63;;5572:118;5729:2;5755:53;5800:7;5791:6;5780:9;5776:22;5755:53;:::i;:::-;5745:63;;5700:118;5206:619;;;;;:::o;5831:329::-;5890:6;5939:2;5927:9;5918:7;5914:23;5910:32;5907:119;;;5945:79;;:::i;:::-;5907:119;6065:1;6090:53;6135:7;6126:6;6115:9;6111:22;6090:53;:::i;:::-;6080:63;;6036:117;5831:329;;;;:::o;6166:118::-;6253:24;6271:5;6253:24;:::i;:::-;6248:3;6241:37;6166:118;;:::o;6290:222::-;6383:4;6421:2;6410:9;6406:18;6398:26;;6434:71;6502:1;6491:9;6487:17;6478:6;6434:71;:::i;:::-;6290:222;;;;:::o;6518:86::-;6553:7;6593:4;6586:5;6582:16;6571:27;;6518:86;;;:::o;6610:112::-;6693:22;6709:5;6693:22;:::i;:::-;6688:3;6681:35;6610:112;;:::o;6728:214::-;6817:4;6855:2;6844:9;6840:18;6832:26;;6868:67;6932:1;6921:9;6917:17;6908:6;6868:67;:::i;:::-;6728:214;;;;:::o;6948:93::-;6984:7;7024:10;7017:5;7013:22;7002:33;;6948:93;;;:::o;7047:120::-;7119:23;7136:5;7119:23;:::i;:::-;7112:5;7109:34;7099:62;;7157:1;7154;7147:12;7099:62;7047:120;:::o;7173:137::-;7218:5;7256:6;7243:20;7234:29;;7272:32;7298:5;7272:32;:::i;:::-;7173:137;;;;:::o;7316:466::-;7380:6;7388;7437:2;7425:9;7416:7;7412:23;7408:32;7405:119;;;7443:79;;:::i;:::-;7405:119;7563:1;7588:52;7632:7;7623:6;7612:9;7608:22;7588:52;:::i;:::-;7578:62;;7534:116;7689:2;7715:50;7757:7;7748:6;7737:9;7733:22;7715:50;:::i;:::-;7705:60;;7660:115;7316:466;;;;;:::o;7788:60::-;7816:3;7837:5;7830:12;;7788:60;;;:::o;7854:142::-;7904:9;7937:53;7955:34;7964:24;7982:5;7964:24;:::i;:::-;7955:34;:::i;:::-;7937:53;:::i;:::-;7924:66;;7854:142;;;:::o;8002:126::-;8052:9;8085:37;8116:5;8085:37;:::i;:::-;8072:50;;8002:126;;;:::o;8134:139::-;8197:9;8230:37;8261:5;8230:37;:::i;:::-;8217:50;;8134:139;;;:::o;8279:157::-;8379:50;8423:5;8379:50;:::i;:::-;8374:3;8367:63;8279:157;;:::o;8442:248::-;8548:4;8586:2;8575:9;8571:18;8563:26;;8599:84;8680:1;8669:9;8665:17;8656:6;8599:84;:::i;:::-;8442:248;;;;:::o;8696:474::-;8764:6;8772;8821:2;8809:9;8800:7;8796:23;8792:32;8789:119;;;8827:79;;:::i;:::-;8789:119;8947:1;8972:53;9017:7;9008:6;8997:9;8993:22;8972:53;:::i;:::-;8962:63;;8918:117;9074:2;9100:53;9145:7;9136:6;9125:9;9121:22;9100:53;:::i;:::-;9090:63;;9045:118;8696:474;;;;;:::o;9176:180::-;9224:77;9221:1;9214:88;9321:4;9318:1;9311:15;9345:4;9342:1;9335:15;9362:191;9402:3;9421:20;9439:1;9421:20;:::i;:::-;9416:25;;9455:20;9473:1;9455:20;:::i;:::-;9450:25;;9498:1;9495;9491:9;9484:16;;9519:3;9516:1;9513:10;9510:36;;;9526:18;;:::i;:::-;9510:36;9362:191;;;;:::o;9559:162::-;9699:14;9695:1;9687:6;9683:14;9676:38;9559:162;:::o;9727:366::-;9869:3;9890:67;9954:2;9949:3;9890:67;:::i;:::-;9883:74;;9966:93;10055:3;9966:93;:::i;:::-;10084:2;10079:3;10075:12;10068:19;;9727:366;;;:::o;10099:419::-;10265:4;10303:2;10292:9;10288:18;10280:26;;10352:9;10346:4;10342:20;10338:1;10327:9;10323:17;10316:47;10380:131;10506:4;10380:131;:::i;:::-;10372:139;;10099:419;;;:::o;10524:410::-;10564:7;10587:20;10605:1;10587:20;:::i;:::-;10582:25;;10621:20;10639:1;10621:20;:::i;:::-;10616:25;;10676:1;10673;10669:9;10698:30;10716:11;10698:30;:::i;:::-;10687:41;;10877:1;10868:7;10864:15;10861:1;10858:22;10838:1;10831:9;10811:83;10788:139;;10907:18;;:::i;:::-;10788:139;10572:362;10524:410;;;;:::o;10940:180::-;10988:77;10985:1;10978:88;11085:4;11082:1;11075:15;11109:4;11106:1;11099:15;11126:185;11166:1;11183:20;11201:1;11183:20;:::i;:::-;11178:25;;11217:20;11235:1;11217:20;:::i;:::-;11212:25;;11256:1;11246:35;;11261:18;;:::i;:::-;11246:35;11303:1;11300;11296:9;11291:14;;11126:185;;;;:::o;11317:85::-;11362:7;11391:5;11380:16;;11317:85;;;:::o;11408:158::-;11466:9;11499:61;11517:42;11526:32;11552:5;11526:32;:::i;:::-;11517:42;:::i;:::-;11499:61;:::i;:::-;11486:74;;11408:158;;;:::o;11572:147::-;11667:45;11706:5;11667:45;:::i;:::-;11662:3;11655:58;11572:147;;:::o;11725:585::-;11918:4;11956:3;11945:9;11941:19;11933:27;;11970:71;12038:1;12027:9;12023:17;12014:6;11970:71;:::i;:::-;12051:80;12127:2;12116:9;12112:18;12103:6;12051:80;:::i;:::-;12141;12217:2;12206:9;12202:18;12193:6;12141:80;:::i;:::-;12231:72;12299:2;12288:9;12284:18;12275:6;12231:72;:::i;:::-;11725:585;;;;;;;:::o;12316:180::-;12364:77;12361:1;12354:88;12461:4;12458:1;12451:15;12485:4;12482:1;12475:15;12502:320;12546:6;12583:1;12577:4;12573:12;12563:22;;12630:1;12624:4;12620:12;12651:18;12641:81;;12707:4;12699:6;12695:17;12685:27;;12641:81;12769:2;12761:6;12758:14;12738:18;12735:38;12732:84;;12788:18;;:::i;:::-;12732:84;12553:269;12502:320;;;:::o;12828:182::-;12968:34;12964:1;12956:6;12952:14;12945:58;12828:182;:::o;13016:366::-;13158:3;13179:67;13243:2;13238:3;13179:67;:::i;:::-;13172:74;;13255:93;13344:3;13255:93;:::i;:::-;13373:2;13368:3;13364:12;13357:19;;13016:366;;;:::o;13388:419::-;13554:4;13592:2;13581:9;13577:18;13569:26;;13641:9;13635:4;13631:20;13627:1;13616:9;13612:17;13605:47;13669:131;13795:4;13669:131;:::i;:::-;13661:139;;13388:419;;;:::o;13813:163::-;13953:15;13949:1;13941:6;13937:14;13930:39;13813:163;:::o;13982:366::-;14124:3;14145:67;14209:2;14204:3;14145:67;:::i;:::-;14138:74;;14221:93;14310:3;14221:93;:::i;:::-;14339:2;14334:3;14330:12;14323:19;;13982:366;;;:::o;14354:419::-;14520:4;14558:2;14547:9;14543:18;14535:26;;14607:9;14601:4;14597:20;14593:1;14582:9;14578:17;14571:47;14635:131;14761:4;14635:131;:::i;:::-;14627:139;;14354:419;;;:::o;14779:194::-;14819:4;14839:20;14857:1;14839:20;:::i;:::-;14834:25;;14873:20;14891:1;14873:20;:::i;:::-;14868:25;;14917:1;14914;14910:9;14902:17;;14941:1;14935:4;14932:11;14929:37;;;14946:18;;:::i;:::-;14929:37;14779:194;;;;:::o;14979:332::-;15100:4;15138:2;15127:9;15123:18;15115:26;;15151:71;15219:1;15208:9;15204:17;15195:6;15151:71;:::i;:::-;15232:72;15300:2;15289:9;15285:18;15276:6;15232:72;:::i;:::-;14979:332;;;;;:::o;15317:137::-;15371:5;15402:6;15396:13;15387:22;;15418:30;15442:5;15418:30;:::i;:::-;15317:137;;;;:::o;15460:345::-;15527:6;15576:2;15564:9;15555:7;15551:23;15547:32;15544:119;;;15582:79;;:::i;:::-;15544:119;15702:1;15727:61;15780:7;15771:6;15760:9;15756:22;15727:61;:::i;:::-;15717:71;;15673:125;15460:345;;;;:::o;15811:170::-;15951:22;15947:1;15939:6;15935:14;15928:46;15811:170;:::o;15987:366::-;16129:3;16150:67;16214:2;16209:3;16150:67;:::i;:::-;16143:74;;16226:93;16315:3;16226:93;:::i;:::-;16344:2;16339:3;16335:12;16328:19;;15987:366;;;:::o;16359:419::-;16525:4;16563:2;16552:9;16548:18;16540:26;;16612:9;16606:4;16602:20;16598:1;16587:9;16583:17;16576:47;16640:131;16766:4;16640:131;:::i;:::-;16632:139;;16359:419;;;:::o;16784:115::-;16869:23;16886:5;16869:23;:::i;:::-;16864:3;16857:36;16784:115;;:::o;16905:344::-;17032:4;17070:2;17059:9;17055:18;17047:26;;17083:69;17149:1;17138:9;17134:17;17125:6;17083:69;:::i;:::-;17162:80;17238:2;17227:9;17223:18;17214:6;17162:80;:::i;:::-;16905:344;;;;;:::o;17255:143::-;17312:5;17343:6;17337:13;17328:22;;17359:33;17386:5;17359:33;:::i;:::-;17255:143;;;;:::o;17404:351::-;17474:6;17523:2;17511:9;17502:7;17498:23;17494:32;17491:119;;;17529:79;;:::i;:::-;17491:119;17649:1;17674:64;17730:7;17721:6;17710:9;17706:22;17674:64;:::i;:::-;17664:74;;17620:128;17404:351;;;;:::o;17761:160::-;17901:12;17897:1;17889:6;17885:14;17878:36;17761:160;:::o;17927:366::-;18069:3;18090:67;18154:2;18149:3;18090:67;:::i;:::-;18083:74;;18166:93;18255:3;18166:93;:::i;:::-;18284:2;18279:3;18275:12;18268:19;;17927:366;;;:::o;18299:419::-;18465:4;18503:2;18492:9;18488:18;18480:26;;18552:9;18546:4;18542:20;18538:1;18527:9;18523:17;18516:47;18580:131;18706:4;18580:131;:::i;:::-;18572:139;;18299:419;;;:::o;18724:163::-;18864:15;18860:1;18852:6;18848:14;18841:39;18724:163;:::o;18893:366::-;19035:3;19056:67;19120:2;19115:3;19056:67;:::i;:::-;19049:74;;19132:93;19221:3;19132:93;:::i;:::-;19250:2;19245:3;19241:12;19234:19;;18893:366;;;:::o;19265:419::-;19431:4;19469:2;19458:9;19454:18;19446:26;;19518:9;19512:4;19508:20;19504:1;19493:9;19489:17;19482:47;19546:131;19672:4;19546:131;:::i;:::-;19538:139;;19265:419;;;:::o;19690:168::-;19830:20;19826:1;19818:6;19814:14;19807:44;19690:168;:::o;19864:366::-;20006:3;20027:67;20091:2;20086:3;20027:67;:::i;:::-;20020:74;;20103:93;20192:3;20103:93;:::i;:::-;20221:2;20216:3;20212:12;20205:19;;19864:366;;;:::o;20236:419::-;20402:4;20440:2;20429:9;20425:18;20417:26;;20489:9;20483:4;20479:20;20475:1;20464:9;20460:17;20453:47;20517:131;20643:4;20517:131;:::i;:::-;20509:139;;20236:419;;;:::o;20661:102::-;20703:8;20750:5;20747:1;20743:13;20722:34;;20661:102;;;:::o;20769:848::-;20830:5;20837:4;20861:6;20852:15;;20885:5;20876:14;;20899:712;20920:1;20910:8;20907:15;20899:712;;;21015:4;21010:3;21006:14;21000:4;20997:24;20994:50;;;21024:18;;:::i;:::-;20994:50;21074:1;21064:8;21060:16;21057:451;;;21489:4;21482:5;21478:16;21469:25;;21057:451;21539:4;21533;21529:15;21521:23;;21569:32;21592:8;21569:32;:::i;:::-;21557:44;;20899:712;;;20769:848;;;;;;;:::o;21623:1073::-;21677:5;21868:8;21858:40;;21889:1;21880:10;;21891:5;;21858:40;21917:4;21907:36;;21934:1;21925:10;;21936:5;;21907:36;22003:4;22051:1;22046:27;;;;22087:1;22082:191;;;;21996:277;;22046:27;22064:1;22055:10;;22066:5;;;22082:191;22127:3;22117:8;22114:17;22111:43;;;22134:18;;:::i;:::-;22111:43;22183:8;22180:1;22176:16;22167:25;;22218:3;22211:5;22208:14;22205:40;;;22225:18;;:::i;:::-;22205:40;22258:5;;;21996:277;;22382:2;22372:8;22369:16;22363:3;22357:4;22354:13;22350:36;22332:2;22322:8;22319:16;22314:2;22308:4;22305:12;22301:35;22285:111;22282:246;;;22438:8;22432:4;22428:19;22419:28;;22473:3;22466:5;22463:14;22460:40;;;22480:18;;:::i;:::-;22460:40;22513:5;;22282:246;22553:42;22591:3;22581:8;22575:4;22572:1;22553:42;:::i;:::-;22538:57;;;;22627:4;22622:3;22618:14;22611:5;22608:25;22605:51;;;22636:18;;:::i;:::-;22605:51;22685:4;22678:5;22674:16;22665:25;;21623:1073;;;;;;:::o;22702:285::-;22762:5;22786:23;22804:4;22786:23;:::i;:::-;22778:31;;22830:27;22848:8;22830:27;:::i;:::-;22818:39;;22876:104;22913:66;22903:8;22897:4;22876:104;:::i;:::-;22867:113;;22702:285;;;;:::o;22993:166::-;23133:18;23129:1;23121:6;23117:14;23110:42;22993:166;:::o;23165:366::-;23307:3;23328:67;23392:2;23387:3;23328:67;:::i;:::-;23321:74;;23404:93;23493:3;23404:93;:::i;:::-;23522:2;23517:3;23513:12;23506:19;;23165:366;;;:::o;23537:419::-;23703:4;23741:2;23730:9;23726:18;23718:26;;23790:9;23784:4;23780:20;23776:1;23765:9;23761:17;23754:47;23818:131;23944:4;23818:131;:::i;:::-;23810:139;;23537:419;;;:::o;23962:167::-;24102:19;24098:1;24090:6;24086:14;24079:43;23962:167;:::o;24135:366::-;24277:3;24298:67;24362:2;24357:3;24298:67;:::i;:::-;24291:74;;24374:93;24463:3;24374:93;:::i;:::-;24492:2;24487:3;24483:12;24476:19;;24135:366;;;:::o;24507:419::-;24673:4;24711:2;24700:9;24696:18;24688:26;;24760:9;24754:4;24750:20;24746:1;24735:9;24731:17;24724:47;24788:131;24914:4;24788:131;:::i;:::-;24780:139;;24507:419;;;:::o;24932:442::-;25081:4;25119:2;25108:9;25104:18;25096:26;;25132:71;25200:1;25189:9;25185:17;25176:6;25132:71;:::i;:::-;25213:72;25281:2;25270:9;25266:18;25257:6;25213:72;:::i;:::-;25295;25363:2;25352:9;25348:18;25339:6;25295:72;:::i;:::-;24932:442;;;;;;:::o;25380:180::-;25428:77;25425:1;25418:88;25525:4;25522:1;25515:15;25549:4;25546:1;25539:15;25566:162;25706:14;25702:1;25694:6;25690:14;25683:38;25566:162;:::o;25734:366::-;25876:3;25897:67;25961:2;25956:3;25897:67;:::i;:::-;25890:74;;25973:93;26062:3;25973:93;:::i;:::-;26091:2;26086:3;26082:12;26075:19;;25734:366;;;:::o;26106:419::-;26272:4;26310:2;26299:9;26295:18;26287:26;;26359:9;26353:4;26349:20;26345:1;26334:9;26330:17;26323:47;26387:131;26513:4;26387:131;:::i;:::-;26379:139;;26106:419;;;:::o;26531:170::-;26671:22;26667:1;26659:6;26655:14;26648:46;26531:170;:::o;26707:366::-;26849:3;26870:67;26934:2;26929:3;26870:67;:::i;:::-;26863:74;;26946:93;27035:3;26946:93;:::i;:::-;27064:2;27059:3;27055:12;27048:19;;26707:366;;;:::o;27079:419::-;27245:4;27283:2;27272:9;27268:18;27260:26;;27332:9;27326:4;27322:20;27318:1;27307:9;27303:17;27296:47;27360:131;27486:4;27360:131;:::i;:::-;27352:139;;27079:419;;;:::o;27504:168::-;27644:20;27640:1;27632:6;27628:14;27621:44;27504:168;:::o;27678:366::-;27820:3;27841:67;27905:2;27900:3;27841:67;:::i;:::-;27834:74;;27917:93;28006:3;27917:93;:::i;:::-;28035:2;28030:3;28026:12;28019:19;;27678:366;;;:::o;28050:419::-;28216:4;28254:2;28243:9;28239:18;28231:26;;28303:9;28297:4;28293:20;28289:1;28278:9;28274:17;28267:47;28331:131;28457:4;28331:131;:::i;:::-;28323:139;;28050:419;;;:::o;28475:161::-;28615:13;28611:1;28603:6;28599:14;28592:37;28475:161;:::o;28642:366::-;28784:3;28805:67;28869:2;28864:3;28805:67;:::i;:::-;28798:74;;28881:93;28970:3;28881:93;:::i;:::-;28999:2;28994:3;28990:12;28983:19;;28642:366;;;:::o;29014:419::-;29180:4;29218:2;29207:9;29203:18;29195:26;;29267:9;29261:4;29257:20;29253:1;29242:9;29238:17;29231:47;29295:131;29421:4;29295:131;:::i;:::-;29287:139;;29014:419;;;:::o;29439:585::-;29632:4;29670:3;29659:9;29655:19;29647:27;;29684:79;29760:1;29749:9;29745:17;29736:6;29684:79;:::i;:::-;29773:72;29841:2;29830:9;29826:18;29817:6;29773:72;:::i;:::-;29855;29923:2;29912:9;29908:18;29899:6;29855:72;:::i;:::-;29937:80;30013:2;30002:9;29998:18;29989:6;29937:80;:::i;:::-;29439:585;;;;;;;:::o
Swarm Source
ipfs://7c04e29389f9a5100efa6636685e99d75607dba63628cfab0f7da5683fa1348f
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)