Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 66 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Withdraw Mint Sa... | 20653664 | 577 days ago | IN | 0 ETH | 0.00003616 | ||||
| Claim Bounty | 20653660 | 577 days ago | IN | 0 ETH | 0.00777666 | ||||
| Claim Bounty | 20653656 | 577 days ago | IN | 0 ETH | 0.00830998 | ||||
| Mint Many | 20653653 | 577 days ago | IN | 0.02 ETH | 0.00017849 | ||||
| Mint Many | 20653651 | 577 days ago | IN | 0.02 ETH | 0.00018607 | ||||
| Set Eligible Ids | 20653645 | 577 days ago | IN | 0 ETH | 0.00009994 | ||||
| Set Eligible Ids | 20653643 | 577 days ago | IN | 0 ETH | 0.00010119 | ||||
| Claim Bounty | 20653637 | 577 days ago | IN | 0 ETH | 0.008669 | ||||
| Mint Many | 20653634 | 577 days ago | IN | 0.0175 ETH | 0.00020324 | ||||
| Set Eligible Ids | 20653630 | 577 days ago | IN | 0 ETH | 0.0001036 | ||||
| Approve | 20653609 | 577 days ago | IN | 0 ETH | 0.00004967 | ||||
| Claim Bounty | 20653604 | 577 days ago | IN | 0 ETH | 0.00401841 | ||||
| Claim Bounty | 20653600 | 577 days ago | IN | 0 ETH | 0.00387539 | ||||
| Claim Bounty | 20653597 | 577 days ago | IN | 0 ETH | 0.00387446 | ||||
| Claim Bounty | 20653593 | 577 days ago | IN | 0 ETH | 0.00383481 | ||||
| Mint Many | 20653584 | 577 days ago | IN | 0.0125 ETH | 0.00018358 | ||||
| Mint Many | 20653579 | 577 days ago | IN | 0.0125 ETH | 0.00018115 | ||||
| Mint Many | 20653573 | 577 days ago | IN | 0.0125 ETH | 0.0001727 | ||||
| Mint Many | 20653570 | 577 days ago | IN | 0.0125 ETH | 0.00019744 | ||||
| Set Eligible Ids | 20653508 | 577 days ago | IN | 0 ETH | 0.00009581 | ||||
| Set Eligible Ids | 20653505 | 577 days ago | IN | 0 ETH | 0.00009294 | ||||
| Set Eligible Ids | 20653500 | 577 days ago | IN | 0 ETH | 0.00008882 | ||||
| Set Eligible Ids | 20653493 | 577 days ago | IN | 0 ETH | 0.00009706 | ||||
| Approve | 20653480 | 577 days ago | IN | 0 ETH | 0.00003037 | ||||
| Claim Bounty | 20653471 | 577 days ago | IN | 0 ETH | 0.00426489 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ErcOrdinal
Compiler Version
v0.8.17+commit.8df45f5f
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2023-03-23
*/
//SPDX-License-Identifier: MIT
//https://ercordinal.io
pragma solidity ^0.8.8;
contract ErcOrdinal {
uint256 genesis_supply = 111;
uint256 MAX_SUPPLY = 100000;
uint256 public mint_price = 10000000000000000;
uint256 public price_addition = 500000000000000;
uint8 token_decimals = 0;
uint256 public token_counter = 0;
uint256 public free_mint_allocation = 0;
uint256 public expired_bounty = 0;
string token_name = "ErcOrdinal";
string token_symbol = "ERCORD";
string public base_uri;
address public the_creator;
address public ercordinal_erc721;
mapping(address => mapping(address => uint256)) spender_allowance;
mapping(uint256 => Tokens) public idToTokens;
mapping(address => uint256[]) private addressToTokenIds;
mapping(address => mapping(uint256 => TokenIndex)) private idToTokenIndex;
mapping(uint256 => EligiblePrize) public idIsEligible;
mapping(uint256 => EligibleIdForBounty) public idToEligibleForBounty;
event Transfer(address indexed from, address indexed to, uint256 value);
event Mint(address indexed _to, uint256 indexed _id);
event ClaimBounty(uint256 indexed id, uint256 indexed amount);
event ExpiredBounty(uint256 indexed id);
event EligibleBounty(
address indexed minter,
uint256 indexed id,
uint256 indexed prize_amount
);
event EligibleIds(uint256 indexed id, EligiblePrize eligible_prize);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
/**
* @dev TokenIndex is needed to track index of ID's inserted.
* Index started from 1,
* because every index (even the non-existing one) is default to 0.
* @notice this index is different from addressToTokenIds
* which started from 0, normal array
*/
struct TokenIndex {
uint256 index;
}
struct Tokens {
address owner;
}
/** @dev when all of these ids is_claimed == true
*and the rest (the unclaimed one) from_claiming == true
*free_mint_allocation - expired_bounty should == 0
*/
struct EligiblePrize {
bool is_eligible;
uint256 prize_amount;
bool is_claimed;
bool from_claiming;
}
struct EligibleIdForBounty {
bool is_eligible;
uint256 prize_amount;
}
modifier onlyCreator() {
require(
msg.sender == the_creator,
"Only The Creator is Able to Do That"
);
_;
}
constructor(address _dev1, address _dev2, string memory _base_uri) {
the_creator = msg.sender;
genesis(_dev1, _dev2);
base_uri = _base_uri;
emit Transfer(address(0), msg.sender, 101);
emit Transfer(address(0), _dev1, 5);
emit Transfer(address(0), _dev2, 5);
}
function getAddressToIds(
address _owner
) public view returns (uint256[] memory) {
return addressToTokenIds[_owner];
}
function getIdToIndex(
address _owner,
uint256 _token_id
) public view returns (TokenIndex memory) {
return idToTokenIndex[_owner][_token_id];
}
function getIdToTokens(uint256 _id) public view returns (address) {
return idToTokens[_id].owner;
}
function getGenesisSupply() public view returns (uint256) {
return genesis_supply;
}
// ERC20 standard implementation -->
function name() public view returns (string memory) {
return token_name;
}
function symbol() public view returns (string memory) {
return token_symbol;
}
function totalSupply() public view returns (uint256) {
return MAX_SUPPLY;
}
function decimals() public view returns (uint256) {
return token_decimals;
}
function balanceOf(address _owner) public view returns (uint256) {
return addressToTokenIds[_owner].length;
}
function transfer(
address _recipient,
uint256 _amount
) public returns (bool) {
transferBulk(msg.sender, _recipient, _amount);
return true;
}
function approve(address _spender, uint256 _amount) public returns (bool) {
spender_allowance[msg.sender][_spender] = _amount;
emit Approval(msg.sender, _spender, _amount);
return true;
}
function allowance(
address _owner,
address _spender
) public view returns (uint256) {
return spender_allowance[_owner][_spender];
}
function transferFrom(
address _sender,
address _recipient,
uint256 _amount
) public returns (bool) {
require(
spender_allowance[_sender][msg.sender] >= _amount,
"Not enough allowance"
);
transferBulk(_sender, _recipient, _amount);
spender_allowance[_sender][msg.sender] -= _amount;
return true;
}
/** @dev Watch out, idToTokenIndex[address][uint256].index started from 1
* @param _dev1 and _dev2 assigned initial allocation
*
*/
function genesis(address _dev1, address _dev2) private onlyCreator {
//genesis 0 for the_creator
idToTokens[0] = Tokens({owner: the_creator});
addressToTokenIds[the_creator].push(0);
idToTokenIndex[the_creator][0].index = 1;
EligiblePrize memory eligible_prize = EligiblePrize({
is_eligible: true,
prize_amount: 10,
is_claimed: false,
from_claiming: false
});
token_counter += 1;
for (uint256 i = 1; i < genesis_supply; i++) {
//.index started from 1
if (i < 6) {
idToTokens[i] = Tokens({owner: _dev1});
addressToTokenIds[_dev1].push(i);
idToTokenIndex[_dev1][i].index = i;
idIsEligible[i] = eligible_prize;
emit EligibleIds(i, eligible_prize);
idToEligibleForBounty[i] = EligibleIdForBounty({
is_eligible: true,
prize_amount: 10
});
token_counter += 1;
}
if (i >= 6 && i < 11) {
idToTokens[i] = Tokens({owner: _dev2});
addressToTokenIds[_dev2].push(i);
idToTokenIndex[_dev2][i].index = i - 5;
idToEligibleForBounty[i] = EligibleIdForBounty({
is_eligible: true,
prize_amount: 10
});
idIsEligible[i] = eligible_prize;
emit EligibleIds(i, eligible_prize);
idToEligibleForBounty[i] = EligibleIdForBounty({
is_eligible: true,
prize_amount: 10
});
token_counter += 1;
}
if (i >= 11) {
idToTokens[i] = Tokens({owner: the_creator});
addressToTokenIds[the_creator].push(i);
idToTokenIndex[the_creator][i].index = i - 9;
token_counter += 1;
}
}
free_mint_allocation = 100;
}
//set ercordinal erc721 address
function setErc721Address(address _erc721_address) public onlyCreator {
ercordinal_erc721 = _erc721_address;
}
//set which token ids are eligible for free minting
function setEligibleIds(
uint256[] memory _eligible_ids,
uint256 _amount
) public onlyCreator {
uint256 currentAlloc = token_counter +
(free_mint_allocation - expired_bounty) +
(_eligible_ids.length * _amount);
require(
currentAlloc < MAX_SUPPLY,
"Can't set free mint more than max supply"
);
for (uint256 i = 0; i < _eligible_ids.length; i++) {
if (idIsEligible[_eligible_ids[i]].is_eligible == true) {
//prevent rewriting prize_amount
revert("Id already inserted");
}
if (_eligible_ids[i] + _amount > MAX_SUPPLY - currentAlloc) {
revert("Can't set free mint more than max supply");
}
EligiblePrize memory eligible_prize = EligiblePrize({
is_eligible: true,
prize_amount: _amount,
is_claimed: false,
from_claiming: false
});
idIsEligible[_eligible_ids[i]] = eligible_prize;
emit EligibleIds(_eligible_ids[i], eligible_prize);
}
free_mint_allocation =
(_eligible_ids.length * _amount) +
free_mint_allocation;
}
//set uniswap resurrect
///@notice give free mint eligibility for ids inside uniswap pool
function setUniswapResurrection(
uint256[] memory _eligible_ids,
uint256 _amount
) public onlyCreator {
uint256 currentAlloc = token_counter +
(free_mint_allocation - expired_bounty) +
(_eligible_ids.length * _amount);
require(
currentAlloc < MAX_SUPPLY,
"Can't set free mint more than max supply"
);
for (uint256 i = 0; i < _eligible_ids.length; i++) {
if (_eligible_ids[i] + _amount > MAX_SUPPLY - currentAlloc) {
revert("Can't set free mint more than max supply");
}
EligiblePrize memory eligible_prize = EligiblePrize({
is_eligible: true,
prize_amount: _amount,
is_claimed: false,
from_claiming: false
});
idIsEligible[_eligible_ids[i]] = eligible_prize;
idToEligibleForBounty[_eligible_ids[i]] = EligibleIdForBounty({
is_eligible: true,
prize_amount: _amount
});
emit EligibleIds(_eligible_ids[i], eligible_prize);
}
free_mint_allocation =
(_eligible_ids.length * _amount) +
free_mint_allocation;
}
//claim free minting
function claimBounty(uint256 _id) public {
require(
idToEligibleForBounty[_id].is_eligible == true,
"The id is not eligible"
);
require(idToTokens[_id].owner == msg.sender, "You are not eligible");
for (uint256 i = 0; i < idToEligibleForBounty[_id].prize_amount; i++) {
if (token_counter >= MAX_SUPPLY) {
revert("Claiming reached max supply");
}
uint256 nextId = token_counter + 1;
if (nextId % 500 == 0) {
mint_price += price_addition;
}
if (idIsEligible[token_counter].is_eligible == true) {
idIsEligible[token_counter].from_claiming = true;
expired_bounty += idIsEligible[token_counter].prize_amount;
emit ExpiredBounty(token_counter);
}
idToTokens[token_counter] = Tokens({owner: msg.sender});
idToTokenIndex[msg.sender][token_counter].index =
addressToTokenIds[msg.sender].length +
1;
addressToTokenIds[msg.sender].push(token_counter);
token_counter += 1;
emit Mint(msg.sender, token_counter);
}
idIsEligible[_id].is_claimed = true;
free_mint_allocation -= idToEligibleForBounty[_id].prize_amount;
delete idToEligibleForBounty[_id];
emit ClaimBounty(_id, idToEligibleForBounty[_id].prize_amount);
emit Transfer(
address(0),
msg.sender,
idToEligibleForBounty[_id].prize_amount
);
}
//claim free minting via erc721
function claimViaErc721(uint256 _id, address _owner) external {
require(
msg.sender == ercordinal_erc721,
"Only ErcOrdinal ERC721 address can call"
);
if (token_counter >= MAX_SUPPLY) {
revert("Claiming reached max supply");
}
require(
idToEligibleForBounty[_id].is_eligible == true,
"The id is not eligible"
);
require(idToTokens[_id].owner == _owner, "You are not eligible");
for (uint256 i = 0; i < idToEligibleForBounty[_id].prize_amount; i++) {
uint256 nextId = token_counter + 1;
if (nextId % 500 == 0) {
mint_price += price_addition;
}
if (idIsEligible[token_counter].is_eligible == true) {
idIsEligible[token_counter].from_claiming = true;
expired_bounty += idIsEligible[token_counter].prize_amount;
emit ExpiredBounty(token_counter);
}
idToTokens[token_counter] = Tokens({owner: _owner});
idToTokenIndex[_owner][token_counter].index =
addressToTokenIds[_owner].length +
1;
addressToTokenIds[_owner].push(token_counter);
token_counter += 1;
emit Mint(_owner, token_counter);
}
idIsEligible[_id].is_claimed = true;
free_mint_allocation -= idToEligibleForBounty[_id].prize_amount;
delete idToEligibleForBounty[_id];
emit ClaimBounty(_id, idToEligibleForBounty[_id].prize_amount);
emit Transfer(
address(0),
_owner,
idToEligibleForBounty[_id].prize_amount
);
}
function mintMany(uint256 _amount) external payable {
uint256 token_left = free_mint_allocation - expired_bounty;
require(token_counter < MAX_SUPPLY - token_left, "Max supply reached");
if (token_counter + _amount > MAX_SUPPLY - token_left) {
revert("Can't mint more than max supply");
}
require(msg.value >= mint_price * _amount, "Not enough ETH");
require(_amount > 0, "Can't mint zero amount");
for (uint256 i = 0; i < _amount; i++) {
uint256 modder = token_counter;
uint256 nextId = token_counter + 1;
//revert if there's id in mintMany located beetwen old and new price
if (modder % 500 == 0 && i != 0) {
revert("Hit price change point");
}
if (msg.value < mint_price * _amount) {
revert("Price already up");
}
if (nextId % 500 == 0) {
mint_price += price_addition;
}
//add token id to winners list
if (idIsEligible[token_counter].is_eligible == true) {
idToEligibleForBounty[token_counter] = EligibleIdForBounty({
is_eligible: true,
prize_amount: idIsEligible[token_counter].prize_amount
});
emit EligibleBounty(
msg.sender,
token_counter,
idIsEligible[token_counter].prize_amount
);
}
idToTokens[token_counter] = Tokens({owner: msg.sender});
idToTokenIndex[msg.sender][token_counter].index =
addressToTokenIds[msg.sender].length +
1;
addressToTokenIds[msg.sender].push(token_counter);
token_counter += 1;
emit Mint(msg.sender, token_counter);
}
emit Transfer(address(0), msg.sender, _amount);
}
function withdrawMintSale() public onlyCreator {
(bool success, ) = payable(msg.sender).call{
value: address(this).balance
}("");
require(success, "failed");
}
///@dev read this one carefully, easy to get lost in it ^_^
function transferBulk(
address _sender,
address _recipient,
uint256 _amount
) private {
require(
_amount <= addressToTokenIds[_sender].length,
"Not enough balance"
);
require(_sender != _recipient, "Self transfer not allowed");
require(_sender != address(0), "ERC20: transfer from the zero address");
uint256 senderHoldingsLength = addressToTokenIds[_sender].length;
uint256 recipientLength = addressToTokenIds[_recipient].length;
if (recipientLength < 1) {
for (uint256 i = 1; i < _amount + 1; i++) {
uint256 senderLastTokenIndex = senderHoldingsLength - i;
uint256 senderLastTokenId = addressToTokenIds[_sender][
senderLastTokenIndex
];
idToTokenIndex[_recipient][senderLastTokenId].index = i;
addressToTokenIds[_recipient].push(senderLastTokenId);
//change the tokens owner
idToTokens[senderLastTokenId].owner = _recipient;
//take out ids, no need to know the ids
addressToTokenIds[_sender].pop();
delete idToTokenIndex[_sender][senderLastTokenId];
}
emit Transfer(_sender, _recipient, _amount);
} else {
for (uint256 i = 1; i < _amount + 1; i++) {
uint256 senderLastTokenIndex = senderHoldingsLength - i;
uint256 senderLastTokenId = addressToTokenIds[_sender][
senderLastTokenIndex
];
uint256 idToMove = addressToTokenIds[_recipient][i - 1];
//add ids, this needs ids instead
idToTokenIndex[_recipient][idToMove].index =
recipientLength +
i;
addressToTokenIds[_recipient].push(idToMove);
idToTokenIndex[_recipient][senderLastTokenId].index = i;
addressToTokenIds[_recipient][i - 1] = senderLastTokenId;
//change the tokens owner
idToTokens[senderLastTokenId].owner = _recipient;
//take out ids, no need to know the ids
addressToTokenIds[_sender].pop();
delete idToTokenIndex[_sender][senderLastTokenId];
}
emit Transfer(_sender, _recipient, _amount);
}
}
function transferMany(address _recipient, uint256[] memory _ids) public {
require(_recipient != msg.sender, "Self transfer not allowed");
require(
_ids.length <= addressToTokenIds[msg.sender].length,
"Not enough balance"
);
for (uint256 i = 0; i < _ids.length; i++) {
transferSingle(_recipient, _ids[i]);
}
emit Transfer(msg.sender, _recipient, _ids.length);
}
function transferSingle(address _recipient, uint256 _id) private {
require(_recipient != msg.sender, "Self transfer not allowed");
require(idToTokens[_id].owner == msg.sender, "Must be the owner");
uint256 senderLastIndex = addressToTokenIds[msg.sender].length - 1;
uint256 senderLastId = addressToTokenIds[msg.sender][senderLastIndex];
//_id won't be duplicate
//once sent, ownership changed
idToTokenIndex[_recipient][_id].index =
addressToTokenIds[_recipient].length +
1;
addressToTokenIds[_recipient].push(_id);
//change the owner
idToTokens[_id].owner = _recipient;
//find the index position of _id
uint256 indexToRemove = idToTokenIndex[msg.sender][_id].index;
//move last id on the arrays
uint256 idToMove = addressToTokenIds[msg.sender][senderLastIndex];
addressToTokenIds[msg.sender][indexToRemove - 1] = idToMove;
//update idTotokenIndex for sender
idToTokenIndex[msg.sender][senderLastId].index = indexToRemove;
delete idToTokenIndex[msg.sender][_id];
addressToTokenIds[msg.sender].pop();
}
function erc721Switch(address _from, uint256 _id) public {
require(
msg.sender == ercordinal_erc721,
"Only ErcOrdinal ERC721 address can call"
);
require(
idToTokens[_id].owner == _from,
"Address from is not the owner"
);
uint256 senderLastIndex = addressToTokenIds[_from].length - 1;
uint256 senderLastId = addressToTokenIds[_from][senderLastIndex];
idToTokenIndex[msg.sender][_id].index =
addressToTokenIds[msg.sender].length +
1;
addressToTokenIds[msg.sender].push(_id);
idToTokens[_id].owner = msg.sender;
//find the index position of _id
uint256 indexToRemove = idToTokenIndex[_from][_id].index;
//move last id on the arrays
uint256 idToMove = addressToTokenIds[_from][senderLastIndex];
addressToTokenIds[_from][indexToRemove - 1] = idToMove;
//update idTotokenIndex for sender
idToTokenIndex[_from][senderLastId].index = indexToRemove;
delete idToTokenIndex[_from][_id];
addressToTokenIds[_from].pop();
emit Transfer(_from, msg.sender, 1);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[{"internalType":"address","name":"_dev1","type":"address"},{"internalType":"address","name":"_dev2","type":"address"},{"internalType":"string","name":"_base_uri","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"ClaimBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"minter","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"prize_amount","type":"uint256"}],"name":"EligibleBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"components":[{"internalType":"bool","name":"is_eligible","type":"bool"},{"internalType":"uint256","name":"prize_amount","type":"uint256"},{"internalType":"bool","name":"is_claimed","type":"bool"},{"internalType":"bool","name":"from_claiming","type":"bool"}],"indexed":false,"internalType":"struct ErcOrdinal.EligiblePrize","name":"eligible_prize","type":"tuple"}],"name":"EligibleIds","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"ExpiredBounty","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":true,"internalType":"uint256","name":"_id","type":"uint256"}],"name":"Mint","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":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"base_uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"claimBounty","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"},{"internalType":"address","name":"_owner","type":"address"}],"name":"claimViaErc721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"erc721Switch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"ercordinal_erc721","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"expired_bounty","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"free_mint_allocation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"getAddressToIds","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGenesisSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"uint256","name":"_token_id","type":"uint256"}],"name":"getIdToIndex","outputs":[{"components":[{"internalType":"uint256","name":"index","type":"uint256"}],"internalType":"struct ErcOrdinal.TokenIndex","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_id","type":"uint256"}],"name":"getIdToTokens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"idIsEligible","outputs":[{"internalType":"bool","name":"is_eligible","type":"bool"},{"internalType":"uint256","name":"prize_amount","type":"uint256"},{"internalType":"bool","name":"is_claimed","type":"bool"},{"internalType":"bool","name":"from_claiming","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"idToEligibleForBounty","outputs":[{"internalType":"bool","name":"is_eligible","type":"bool"},{"internalType":"uint256","name":"prize_amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"idToTokens","outputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mintMany","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"mint_price","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":"price_addition","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_eligible_ids","type":"uint256[]"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setEligibleIds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_erc721_address","type":"address"}],"name":"setErc721Address","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"_eligible_ids","type":"uint256[]"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setUniswapResurrection","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"the_creator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"token_counter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_recipient","type":"address"},{"internalType":"uint256[]","name":"_ids","type":"uint256[]"}],"name":"transferMany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawMintSale","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
6080604052606f600055620186a0600155662386f26fc100006002556601c6bf526340006003556000600460006101000a81548160ff021916908360ff1602179055506000600555600060065560006007556040518060400160405280600a81526020017f4572634f7264696e616c000000000000000000000000000000000000000000008152506008908162000097919062000f36565b506040518060400160405280600681526020017f4552434f5244000000000000000000000000000000000000000000000000000081525060099081620000de919062000f36565b50348015620000ec57600080fd5b5060405162006987380380620069878339818101604052810190620001129190620011e6565b33600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620001658383620002bb60201b60201c565b80600a908162000176919062000f36565b503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6065604051620001d89190620012a4565b60405180910390a38273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600560405162000241919062001304565b60405180910390a38173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6005604051620002aa919062001304565b60405180910390a350505062001564565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146200034e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200034590620013a8565b60405180910390fd5b6040518060200160405280600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250600e600080815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050600f6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009080600181540180825580915050600190039060005260206000200160009091909190915055600160106000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008081526020019081526020016000206000018190555060006040518060800160405280600115158152602001600a81526020016000151581526020016000151581525090506001600560008282546200053a9190620013f9565b925050819055506000600190505b60005481101562000cae576006811015620007ce5760405180602001604052808573ffffffffffffffffffffffffffffffffffffffff16815250600e600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505580601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000181905550816011600083815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050807f96e44be901b9fa360fb05e2ea5b991ddc8cd371acf10e305fd5d327e881bc72383604051620007509190620014bf565b60405180910390a26040518060400160405280600115158152602001600a8152506012600083815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010155905050600160056000828254620007c69190620013f9565b925050819055505b60068110158015620007e05750600b81105b1562000abe5760405180602001604052808473ffffffffffffffffffffffffffffffffffffffff16815250600e600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819080600181540180825580915050600190039060005260206000200160009091909190915055600581620008dd9190620014dc565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020600001819055506040518060400160405280600115158152602001600a8152506012600083815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010155905050816011600083815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff021916908315150217905550905050807f96e44be901b9fa360fb05e2ea5b991ddc8cd371acf10e305fd5d327e881bc7238360405162000a409190620014bf565b60405180910390a26040518060400160405280600115158152602001600a8152506012600083815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015590505060016005600082825462000ab69190620013f9565b925050819055505b600b811062000c98576040518060200160405280600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250600e600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550905050600f6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505560098162000c029190620014dc565b60106000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000018190555060016005600082825462000c909190620013f9565b925050819055505b808062000ca59062001517565b91505062000548565b506064600681905550505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d3e57607f821691505b60208210810362000d545762000d5362000cf6565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000dbe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d7f565b62000dca868362000d7f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000e1762000e1162000e0b8462000de2565b62000dec565b62000de2565b9050919050565b6000819050919050565b62000e338362000df6565b62000e4b62000e428262000e1e565b84845462000d8c565b825550505050565b600090565b62000e6262000e53565b62000e6f81848462000e28565b505050565b5b8181101562000e975762000e8b60008262000e58565b60018101905062000e75565b5050565b601f82111562000ee65762000eb08162000d5a565b62000ebb8462000d6f565b8101602085101562000ecb578190505b62000ee362000eda8562000d6f565b83018262000e74565b50505b505050565b600082821c905092915050565b600062000f0b6000198460080262000eeb565b1980831691505092915050565b600062000f26838362000ef8565b9150826002028217905092915050565b62000f418262000cbc565b67ffffffffffffffff81111562000f5d5762000f5c62000cc7565b5b62000f69825462000d25565b62000f7682828562000e9b565b600060209050601f83116001811462000fae576000841562000f99578287015190505b62000fa5858262000f18565b86555062001015565b601f19841662000fbe8662000d5a565b60005b8281101562000fe85784890151825560018201915060208501945060208101905062000fc1565b8683101562001008578489015162001004601f89168262000ef8565b8355505b6001600288020188555050505b505050505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200105e8262001031565b9050919050565b620010708162001051565b81146200107c57600080fd5b50565b600081519050620010908162001065565b92915050565b600080fd5b600080fd5b6000601f19601f8301169050919050565b620010bc82620010a0565b810181811067ffffffffffffffff82111715620010de57620010dd62000cc7565b5b80604052505050565b6000620010f36200101d565b9050620011018282620010b1565b919050565b600067ffffffffffffffff82111562001124576200112362000cc7565b5b6200112f82620010a0565b9050602081019050919050565b60005b838110156200115c5780820151818401526020810190506200113f565b60008484015250505050565b60006200117f620011798462001106565b620010e7565b9050828152602081018484840111156200119e576200119d6200109b565b5b620011ab8482856200113c565b509392505050565b600082601f830112620011cb57620011ca62001096565b5b8151620011dd84826020860162001168565b91505092915050565b60008060006060848603121562001202576200120162001027565b5b600062001212868287016200107f565b935050602062001225868287016200107f565b925050604084015167ffffffffffffffff8111156200124957620012486200102c565b5b6200125786828701620011b3565b9150509250925092565b6000819050919050565b60006200128c62001286620012808462001261565b62000dec565b62000de2565b9050919050565b6200129e816200126b565b82525050565b6000602082019050620012bb600083018462001293565b92915050565b6000819050919050565b6000620012ec620012e6620012e084620012c1565b62000dec565b62000de2565b9050919050565b620012fe81620012cb565b82525050565b60006020820190506200131b6000830184620012f3565b92915050565b600082825260208201905092915050565b7f4f6e6c79205468652043726561746f722069732041626c6520746f20446f205460008201527f6861740000000000000000000000000000000000000000000000000000000000602082015250565b60006200139060238362001321565b91506200139d8262001332565b604082019050919050565b60006020820190508181036000830152620013c38162001381565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620014068262000de2565b9150620014138362000de2565b92508282019050808211156200142e576200142d620013ca565b5b92915050565b60008115159050919050565b6200144b8162001434565b82525050565b6200145c8162000de2565b82525050565b6080820160008201516200147a600085018262001440565b5060208201516200148f602085018262001451565b506040820151620014a4604085018262001440565b506060820151620014b9606085018262001440565b50505050565b6000608082019050620014d6600083018462001462565b92915050565b6000620014e98262000de2565b9150620014f68362000de2565b9250828203905081811115620015115762001510620013ca565b5b92915050565b6000620015248262000de2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203620015595762001558620013ca565b5b600182019050919050565b61541380620015746000396000f3fe6080604052600436106101ee5760003560e01c80636f45a9d11161010d578063a9059cbb116100a0578063ddc94e191161006f578063ddc94e191461071f578063e1f9d83b1461074a578063e5dca02f14610773578063edea75111461079c578063f357735e146107d9576101ee565b8063a9059cbb1461064f578063ac8616b91461068c578063c8c85d26146106b7578063dd62ed3e146106e2576101ee565b806392fe5226116100dc57806392fe52261461056d57806395d89b41146105aa5780639c1010c0146105d5578063a5fb6afb14610612576101ee565b80636f45a9d1146104ae57806370a08231146104ee578063786f29101461052b5780638d62a5e114610556576101ee565b80632210abfc1161018557806344021ad71161015457806344021ad71461040857806349ebdff4146104315780635fce793e1461045a5780636e2900cc14610485576101ee565b80632210abfc1461034c57806323b872dd146103755780632ae405a0146103b2578063313ce567146103dd576101ee565b80631027802a116101c15780631027802a146102a257806318160ddd146102cb5780631a4231a4146102f65780631d64e0ba14610321576101ee565b8063059513a6146101f357806306fdde031461020f578063095ea7b31461023a5780630cb454a514610277575b600080fd5b61020d600480360381019061020891906140e5565b610817565b005b34801561021b57600080fd5b50610224610de7565b60405161023191906141a2565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190614222565b610e79565b60405161026e919061427d565b60405180910390f35b34801561028357600080fd5b5061028c610f6b565b60405161029991906142a7565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c4919061440a565b610f91565b005b3480156102d757600080fd5b506102e06112e5565b6040516102ed9190614475565b60405180910390f35b34801561030257600080fd5b5061030b6112ef565b6040516103189190614475565b60405180910390f35b34801561032d57600080fd5b506103366112f5565b60405161034391906142a7565b60405180910390f35b34801561035857600080fd5b50610373600480360381019061036e9190614222565b61131b565b005b34801561038157600080fd5b5061039c60048036038101906103979190614490565b61190d565b6040516103a9919061427d565b60405180910390f35b3480156103be57600080fd5b506103c7611a77565b6040516103d49190614475565b60405180910390f35b3480156103e957600080fd5b506103f2611a7d565b6040516103ff9190614475565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a91906140e5565b611a97565b005b34801561043d57600080fd5b50610458600480360381019061045391906144e3565b61206f565b005b34801561046657600080fd5b5061046f6126d8565b60405161047c9190614475565b60405180910390f35b34801561049157600080fd5b506104ac60048036038101906104a7919061440a565b6126e1565b005b3480156104ba57600080fd5b506104d560048036038101906104d091906140e5565b612a47565b6040516104e59493929190614523565b60405180910390f35b3480156104fa57600080fd5b5061051560048036038101906105109190614568565b612a9e565b6040516105229190614475565b60405180910390f35b34801561053757600080fd5b50610540612aea565b60405161054d91906141a2565b60405180910390f35b34801561056257600080fd5b5061056b612b78565b005b34801561057957600080fd5b50610594600480360381019061058f91906140e5565b612cb7565b6040516105a191906142a7565b60405180910390f35b3480156105b657600080fd5b506105bf612cf5565b6040516105cc91906141a2565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f791906140e5565b612d87565b60405161060991906142a7565b60405180910390f35b34801561061e57600080fd5b5061063960048036038101906106349190614222565b612dc7565b60405161064691906145c0565b60405180910390f35b34801561065b57600080fd5b5061067660048036038101906106719190614222565b612e3c565b604051610683919061427d565b60405180910390f35b34801561069857600080fd5b506106a1612e53565b6040516106ae9190614475565b60405180910390f35b3480156106c357600080fd5b506106cc612e59565b6040516106d99190614475565b60405180910390f35b3480156106ee57600080fd5b50610709600480360381019061070491906145db565b612e5f565b6040516107169190614475565b60405180910390f35b34801561072b57600080fd5b50610734612ee6565b6040516107419190614475565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c919061461b565b612eec565b005b34801561077f57600080fd5b5061079a60048036038101906107959190614568565b61308e565b005b3480156107a857600080fd5b506107c360048036038101906107be9190614568565b613162565b6040516107d09190614726565b60405180910390f35b3480156107e557600080fd5b5061080060048036038101906107fb91906140e5565b6131f9565b60405161080e929190614748565b60405180910390f35b600060075460065461082991906147a0565b90508060015461083991906147a0565b6005541061087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390614820565b60405180910390fd5b8060015461088a91906147a0565b826005546108989190614840565b11156108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d0906148c0565b60405180910390fd5b816002546108e791906148e0565b341015610929576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109209061496e565b60405180910390fd5b6000821161096c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610963906149da565b60405180910390fd5b60005b82811015610d7c57600060055490506000600160055461098f9190614840565b905060006101f4836109a19190614a29565b1480156109af575060008314155b156109ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e690614aa6565b60405180910390fd5b846002546109fd91906148e0565b341015610a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3690614b12565b60405180910390fd5b60006101f482610a4f9190614a29565b03610a705760035460026000828254610a689190614840565b925050819055505b6001151560116000600554815260200190815260200160002060000160009054906101000a900460ff16151503610b735760405180604001604052806001151581526020016011600060055481526020019081526020016000206001015481525060126000600554815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010155905050601160006005548152602001908152602001600020600101546005543373ffffffffffffffffffffffffffffffffffffffff167f3972d5c8831190a153a683ed38e6bfe82fcf6409ce185440360d1f69d3505da960405160405180910390a45b60405180602001604052803373ffffffffffffffffffffffffffffffffffffffff16815250600e6000600554815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050610c469190614840565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002060000181905550600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005549080600181540180825580915050600190039060005260206000200160009091909190915055600160056000828254610d1a9190614840565b925050819055506005543373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560405160405180910390a350508080610d7490614b32565b91505061096f565b503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ddb9190614475565b60405180910390a35050565b606060088054610df690614ba9565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2290614ba9565b8015610e6f5780601f10610e4457610100808354040283529160200191610e6f565b820191906000526020600020905b815481529060010190602001808311610e5257829003601f168201915b5050505050905090565b600081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f599190614475565b60405180910390a36001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101890614c4c565b60405180910390fd5b600081835161103091906148e0565b60075460065461104091906147a0565b60055461104d9190614840565b6110579190614840565b9050600154811061109d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109490614cde565b60405180910390fd5b60005b83518110156112bf57816001546110b791906147a0565b838583815181106110cb576110ca614cfe565b5b60200260200101516110dd9190614840565b111561111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590614cde565b60405180910390fd5b60006040518060800160405280600115158152602001858152602001600015158152602001600015158152509050806011600087858151811061116457611163614cfe565b5b6020026020010151815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff0219169083151502179055509050506040518060400160405280600115158152602001858152506012600087858151811061121657611215614cfe565b5b6020026020010151815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015590505084828151811061126c5761126b614cfe565b5b60200260200101517f96e44be901b9fa360fb05e2ea5b991ddc8cd371acf10e305fd5d327e881bc723826040516112a39190614d91565b60405180910390a25080806112b790614b32565b9150506110a0565b506006548284516112d091906148e0565b6112da9190614840565b600681905550505050565b6000600154905090565b60025481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a290614e1e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600e600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144690614e8a565b60405180910390fd5b60006001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506114a091906147a0565b90506000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106114f5576114f4614cfe565b5b906000526020600020015490506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506115519190614840565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000181905550600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083908060018154018082558091505060019003906000526020600020016000909190919091505533600e600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206000015490506000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061170e5761170d614cfe565b5b9060005260206000200154905080600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018461176891906147a0565b8154811061177957611778614cfe565b5b906000526020600020018190555081601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000181905550601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008681526020019081526020016000206000808201600090555050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548061188957611888614eaa565b5b600190038181906000526020600020016000905590553373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016040516118fd9190614f1e565b60405180910390a3505050505050565b600081600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c590614f85565b60405180910390fd5b6119d984848461322a565b81600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a6591906147a0565b92505081905550600190509392505050565b60075481565b6000600460009054906101000a900460ff1660ff16905090565b600115156012600083815260200190815260200160002060000160009054906101000a900460ff16151514611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af890614ff1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600e600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c9061505d565b60405180910390fd5b60005b6012600083815260200190815260200160002060010154811015611f1b5760015460055410611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c03906150c9565b60405180910390fd5b60006001600554611c1d9190614840565b905060006101f482611c2f9190614a29565b03611c505760035460026000828254611c489190614840565b925050819055505b6001151560116000600554815260200190815260200160002060000160009054906101000a900460ff16151503611d1357600160116000600554815260200190815260200160002060020160016101000a81548160ff0219169083151502179055506011600060055481526020019081526020016000206001015460076000828254611cdc9190614840565b925050819055506005547f56bff29b8cacbb42f66f31db3c2ca73b83540e9a240e63051d5dc6a27332cec660405160405180910390a25b60405180602001604052803373ffffffffffffffffffffffffffffffffffffffff16815250600e6000600554815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611de69190614840565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002060000181905550600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005549080600181540180825580915050600190039060005260206000200160009091909190915055600160056000828254611eba9190614840565b925050819055506005543373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560405160405180910390a3508080611f1390614b32565b915050611ba8565b5060016011600083815260200190815260200160002060020160006101000a81548160ff021916908315150217905550601260008281526020019081526020016000206001015460066000828254611f7391906147a0565b9250508190555060126000828152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550506012600082815260200190815260200160002060010154817fd045b728ed8dcf8d897a7f4fec2de5b2f8c5255f777267b4ff6f6d9155ac3c6d60405160405180910390a33373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60126000858152602001908152602001600020600101546040516120649190614475565b60405180910390a350565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f690614e1e565b60405180910390fd5b60015460055410612145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213c906150c9565b60405180910390fd5b600115156012600084815260200190815260200160002060000160009054906101000a900460ff161515146121af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a690614ff1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600e600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a9061505d565b60405180910390fd5b60005b601260008481526020019081526020016000206001015481101561258357600060016005546122859190614840565b905060006101f4826122979190614a29565b036122b857600354600260008282546122b09190614840565b925050819055505b6001151560116000600554815260200190815260200160002060000160009054906101000a900460ff1615150361237b57600160116000600554815260200190815260200160002060020160016101000a81548160ff02191690831515021790555060116000600554815260200190815260200160002060010154600760008282546123449190614840565b925050819055506005547f56bff29b8cacbb42f66f31db3c2ca73b83540e9a240e63051d5dc6a27332cec660405160405180910390a25b60405180602001604052808473ffffffffffffffffffffffffffffffffffffffff16815250600e6000600554815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061244e9190614840565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002060000181905550600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060055490806001815401808255809150506001900390600052602060002001600090919091909150556001600560008282546125229190614840565b925050819055506005548373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560405160405180910390a350808061257b90614b32565b915050612256565b5060016011600084815260200190815260200160002060020160006101000a81548160ff0219169083151502179055506012600083815260200190815260200160002060010154600660008282546125db91906147a0565b9250508190555060126000838152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550506012600083815260200190815260200160002060010154827fd045b728ed8dcf8d897a7f4fec2de5b2f8c5255f777267b4ff6f6d9155ac3c6d60405160405180910390a38073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60126000868152602001908152602001600020600101546040516126cc9190614475565b60405180910390a35050565b60008054905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276890614c4c565b60405180910390fd5b600081835161278091906148e0565b60075460065461279091906147a0565b60055461279d9190614840565b6127a79190614840565b905060015481106127ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e490614cde565b60405180910390fd5b60005b8351811015612a2157600115156011600086848151811061281457612813614cfe565b5b6020026020010151815260200190815260200160002060000160009054906101000a900460ff1615150361287d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287490615135565b60405180910390fd5b8160015461288b91906147a0565b8385838151811061289f5761289e614cfe565b5b60200260200101516128b19190614840565b11156128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e990614cde565b60405180910390fd5b60006040518060800160405280600115158152602001858152602001600015158152602001600015158152509050806011600087858151811061293857612937614cfe565b5b6020026020010151815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff0219169083151502179055509050508482815181106129ce576129cd614cfe565b5b60200260200101517f96e44be901b9fa360fb05e2ea5b991ddc8cd371acf10e305fd5d327e881bc72382604051612a059190614d91565b60405180910390a2508080612a1990614b32565b9150506127f0565b50600654828451612a3291906148e0565b612a3c9190614840565b600681905550505050565b60116020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905084565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600a8054612af790614ba9565b80601f0160208091040260200160405190810160405280929190818152602001828054612b2390614ba9565b8015612b705780601f10612b4557610100808354040283529160200191612b70565b820191906000526020600020905b815481529060010190602001808311612b5357829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bff90614c4c565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612c2e90615186565b60006040518083038185875af1925050503d8060008114612c6b576040519150601f19603f3d011682016040523d82523d6000602084013e612c70565b606091505b5050905080612cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cab906151e7565b60405180910390fd5b50565b600e6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081565b606060098054612d0490614ba9565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3090614ba9565b8015612d7d5780601f10612d5257610100808354040283529160200191612d7d565b820191906000526020600020905b815481529060010190602001808311612d6057829003601f168201915b5050505050905090565b6000600e600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b612dcf614088565b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020604051806020016040529081600082015481525050905092915050565b6000612e4933848461322a565b6001905092915050565b60055481565b60065481565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5190615253565b60405180910390fd5b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081511115612fe0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd7906152bf565b60405180910390fd5b60005b8151811015613023576130108383838151811061300357613002614cfe565b5b6020026020010151613b1e565b808061301b90614b32565b915050612fe3565b508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83516040516130829190614475565b60405180910390a35050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461311e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311590614c4c565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156131ed57602002820191906000526020600020905b8154815260200190600101908083116131d9575b50505050509050919050565b60126020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508111156132af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a6906152bf565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361331d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331490615253565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361338c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338390615351565b60405180910390fd5b6000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506001811015613701576000600190505b6001846134379190614840565b811015613696576000818461344c91906147a0565b90506000600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106134a1576134a0614cfe565b5b9060005260206000200154905082601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000181905550600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505586600e600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806136105761360f614eaa565b5b60019003818190600052602060002001600090559055601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002060008082016000905550505050808061368e90614b32565b91505061342a565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516136f49190614475565b60405180910390a3613b17565b6000600190505b6001846137159190614840565b811015613ab0576000818461372a91906147a0565b90506000600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061377f5761377e614cfe565b5b906000526020600020015490506000600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001856137da91906147a0565b815481106137eb576137ea614cfe565b5b9060005260206000200154905083856138049190614840565b601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000181905550600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505583601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000206000018190555081600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018661396691906147a0565b8154811061397757613976614cfe565b5b906000526020600020018190555087600e600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480613a2957613a28614eaa565b5b60019003818190600052602060002001600090559055601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008082016000905550505050508080613aa890614b32565b915050613708565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613b0e9190614475565b60405180910390a35b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b8390615253565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600e600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c27906153bd565b60405180910390fd5b60006001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050613c8191906147a0565b90506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613cd657613cd5614cfe565b5b906000526020600020015490506001600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050613d329190614840565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000181905550600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083908060018154018082558091505060019003906000526020600020016000909190919091505583600e600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206000015490506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110613eef57613eee614cfe565b5b9060005260206000200154905080600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600184613f4991906147a0565b81548110613f5a57613f59614cfe565b5b906000526020600020018190555081601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000181905550601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008681526020019081526020016000206000808201600090555050600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548061406a57614069614eaa565b5b60019003818190600052602060002001600090559055505050505050565b6040518060200160405280600081525090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6140c2816140af565b81146140cd57600080fd5b50565b6000813590506140df816140b9565b92915050565b6000602082840312156140fb576140fa6140a5565b5b6000614109848285016140d0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561414c578082015181840152602081019050614131565b60008484015250505050565b6000601f19601f8301169050919050565b600061417482614112565b61417e818561411d565b935061418e81856020860161412e565b61419781614158565b840191505092915050565b600060208201905081810360008301526141bc8184614169565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006141ef826141c4565b9050919050565b6141ff816141e4565b811461420a57600080fd5b50565b60008135905061421c816141f6565b92915050565b60008060408385031215614239576142386140a5565b5b60006142478582860161420d565b9250506020614258858286016140d0565b9150509250929050565b60008115159050919050565b61427781614262565b82525050565b6000602082019050614292600083018461426e565b92915050565b6142a1816141e4565b82525050565b60006020820190506142bc6000830184614298565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6142ff82614158565b810181811067ffffffffffffffff8211171561431e5761431d6142c7565b5b80604052505050565b600061433161409b565b905061433d82826142f6565b919050565b600067ffffffffffffffff82111561435d5761435c6142c7565b5b602082029050602081019050919050565b600080fd5b600061438661438184614342565b614327565b905080838252602082019050602084028301858111156143a9576143a861436e565b5b835b818110156143d257806143be88826140d0565b8452602084019350506020810190506143ab565b5050509392505050565b600082601f8301126143f1576143f06142c2565b5b8135614401848260208601614373565b91505092915050565b60008060408385031215614421576144206140a5565b5b600083013567ffffffffffffffff81111561443f5761443e6140aa565b5b61444b858286016143dc565b925050602061445c858286016140d0565b9150509250929050565b61446f816140af565b82525050565b600060208201905061448a6000830184614466565b92915050565b6000806000606084860312156144a9576144a86140a5565b5b60006144b78682870161420d565b93505060206144c88682870161420d565b92505060406144d9868287016140d0565b9150509250925092565b600080604083850312156144fa576144f96140a5565b5b6000614508858286016140d0565b92505060206145198582860161420d565b9150509250929050565b6000608082019050614538600083018761426e565b6145456020830186614466565b614552604083018561426e565b61455f606083018461426e565b95945050505050565b60006020828403121561457e5761457d6140a5565b5b600061458c8482850161420d565b91505092915050565b61459e816140af565b82525050565b6020820160008201516145ba6000850182614595565b50505050565b60006020820190506145d560008301846145a4565b92915050565b600080604083850312156145f2576145f16140a5565b5b60006146008582860161420d565b92505060206146118582860161420d565b9150509250929050565b60008060408385031215614632576146316140a5565b5b60006146408582860161420d565b925050602083013567ffffffffffffffff811115614661576146606140aa565b5b61466d858286016143dc565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006146af8383614595565b60208301905092915050565b6000602082019050919050565b60006146d382614677565b6146dd8185614682565b93506146e883614693565b8060005b8381101561471957815161470088826146a3565b975061470b836146bb565b9250506001810190506146ec565b5085935050505092915050565b6000602082019050818103600083015261474081846146c8565b905092915050565b600060408201905061475d600083018561426e565b61476a6020830184614466565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006147ab826140af565b91506147b6836140af565b92508282039050818111156147ce576147cd614771565b5b92915050565b7f4d617820737570706c7920726561636865640000000000000000000000000000600082015250565b600061480a60128361411d565b9150614815826147d4565b602082019050919050565b60006020820190508181036000830152614839816147fd565b9050919050565b600061484b826140af565b9150614856836140af565b925082820190508082111561486e5761486d614771565b5b92915050565b7f43616e2774206d696e74206d6f7265207468616e206d617820737570706c7900600082015250565b60006148aa601f8361411d565b91506148b582614874565b602082019050919050565b600060208201905081810360008301526148d98161489d565b9050919050565b60006148eb826140af565b91506148f6836140af565b9250828202614904816140af565b9150828204841483151761491b5761491a614771565b5b5092915050565b7f4e6f7420656e6f75676820455448000000000000000000000000000000000000600082015250565b6000614958600e8361411d565b915061496382614922565b602082019050919050565b600060208201905081810360008301526149878161494b565b9050919050565b7f43616e2774206d696e74207a65726f20616d6f756e7400000000000000000000600082015250565b60006149c460168361411d565b91506149cf8261498e565b602082019050919050565b600060208201905081810360008301526149f3816149b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a34826140af565b9150614a3f836140af565b925082614a4f57614a4e6149fa565b5b828206905092915050565b7f486974207072696365206368616e676520706f696e7400000000000000000000600082015250565b6000614a9060168361411d565b9150614a9b82614a5a565b602082019050919050565b60006020820190508181036000830152614abf81614a83565b9050919050565b7f507269636520616c726561647920757000000000000000000000000000000000600082015250565b6000614afc60108361411d565b9150614b0782614ac6565b602082019050919050565b60006020820190508181036000830152614b2b81614aef565b9050919050565b6000614b3d826140af565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614b6f57614b6e614771565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614bc157607f821691505b602082108103614bd457614bd3614b7a565b5b50919050565b7f4f6e6c79205468652043726561746f722069732041626c6520746f20446f205460008201527f6861740000000000000000000000000000000000000000000000000000000000602082015250565b6000614c3660238361411d565b9150614c4182614bda565b604082019050919050565b60006020820190508181036000830152614c6581614c29565b9050919050565b7f43616e2774207365742066726565206d696e74206d6f7265207468616e206d6160008201527f7820737570706c79000000000000000000000000000000000000000000000000602082015250565b6000614cc860288361411d565b9150614cd382614c6c565b604082019050919050565b60006020820190508181036000830152614cf781614cbb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b614d3681614262565b82525050565b608082016000820151614d526000850182614d2d565b506020820151614d656020850182614595565b506040820151614d786040850182614d2d565b506060820151614d8b6060850182614d2d565b50505050565b6000608082019050614da66000830184614d3c565b92915050565b7f4f6e6c79204572634f7264696e616c204552433732312061646472657373206360008201527f616e2063616c6c00000000000000000000000000000000000000000000000000602082015250565b6000614e0860278361411d565b9150614e1382614dac565b604082019050919050565b60006020820190508181036000830152614e3781614dfb565b9050919050565b7f416464726573732066726f6d206973206e6f7420746865206f776e6572000000600082015250565b6000614e74601d8361411d565b9150614e7f82614e3e565b602082019050919050565b60006020820190508181036000830152614ea381614e67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000819050919050565b6000819050919050565b6000614f08614f03614efe84614ed9565b614ee3565b6140af565b9050919050565b614f1881614eed565b82525050565b6000602082019050614f336000830184614f0f565b92915050565b7f4e6f7420656e6f75676820616c6c6f77616e6365000000000000000000000000600082015250565b6000614f6f60148361411d565b9150614f7a82614f39565b602082019050919050565b60006020820190508181036000830152614f9e81614f62565b9050919050565b7f546865206964206973206e6f7420656c696769626c6500000000000000000000600082015250565b6000614fdb60168361411d565b9150614fe682614fa5565b602082019050919050565b6000602082019050818103600083015261500a81614fce565b9050919050565b7f596f7520617265206e6f7420656c696769626c65000000000000000000000000600082015250565b600061504760148361411d565b915061505282615011565b602082019050919050565b600060208201905081810360008301526150768161503a565b9050919050565b7f436c61696d696e672072656163686564206d617820737570706c790000000000600082015250565b60006150b3601b8361411d565b91506150be8261507d565b602082019050919050565b600060208201905081810360008301526150e2816150a6565b9050919050565b7f496420616c726561647920696e73657274656400000000000000000000000000600082015250565b600061511f60138361411d565b915061512a826150e9565b602082019050919050565b6000602082019050818103600083015261514e81615112565b9050919050565b600081905092915050565b50565b6000615170600083615155565b915061517b82615160565b600082019050919050565b600061519182615163565b9150819050919050565b7f6661696c65640000000000000000000000000000000000000000000000000000600082015250565b60006151d160068361411d565b91506151dc8261519b565b602082019050919050565b60006020820190508181036000830152615200816151c4565b9050919050565b7f53656c66207472616e73666572206e6f7420616c6c6f77656400000000000000600082015250565b600061523d60198361411d565b915061524882615207565b602082019050919050565b6000602082019050818103600083015261526c81615230565b9050919050565b7f4e6f7420656e6f7567682062616c616e63650000000000000000000000000000600082015250565b60006152a960128361411d565b91506152b482615273565b602082019050919050565b600060208201905081810360008301526152d88161529c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061533b60258361411d565b9150615346826152df565b604082019050919050565b6000602082019050818103600083015261536a8161532e565b9050919050565b7f4d75737420626520746865206f776e6572000000000000000000000000000000600082015250565b60006153a760118361411d565b91506153b282615371565b602082019050919050565b600060208201905081810360008301526153d68161539a565b905091905056fea26469706673582212204532ab2fd74c15b3cc5834bb2c6d3aef40a59e7be6eb01d194f83e5ecff339a964736f6c63430008110033000000000000000000000000348bbcf00286870958b69e757526b8bdd44387890000000000000000000000004e32585da8366b1293ad0f9671e781ff98046d540000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003b6261667962656962716b6e7078743264633273336f35756c667376716f676e796d7a7a616f7432786b36686b776f6e687133716d7965726c6a66650000000000
Deployed Bytecode
0x6080604052600436106101ee5760003560e01c80636f45a9d11161010d578063a9059cbb116100a0578063ddc94e191161006f578063ddc94e191461071f578063e1f9d83b1461074a578063e5dca02f14610773578063edea75111461079c578063f357735e146107d9576101ee565b8063a9059cbb1461064f578063ac8616b91461068c578063c8c85d26146106b7578063dd62ed3e146106e2576101ee565b806392fe5226116100dc57806392fe52261461056d57806395d89b41146105aa5780639c1010c0146105d5578063a5fb6afb14610612576101ee565b80636f45a9d1146104ae57806370a08231146104ee578063786f29101461052b5780638d62a5e114610556576101ee565b80632210abfc1161018557806344021ad71161015457806344021ad71461040857806349ebdff4146104315780635fce793e1461045a5780636e2900cc14610485576101ee565b80632210abfc1461034c57806323b872dd146103755780632ae405a0146103b2578063313ce567146103dd576101ee565b80631027802a116101c15780631027802a146102a257806318160ddd146102cb5780631a4231a4146102f65780631d64e0ba14610321576101ee565b8063059513a6146101f357806306fdde031461020f578063095ea7b31461023a5780630cb454a514610277575b600080fd5b61020d600480360381019061020891906140e5565b610817565b005b34801561021b57600080fd5b50610224610de7565b60405161023191906141a2565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190614222565b610e79565b60405161026e919061427d565b60405180910390f35b34801561028357600080fd5b5061028c610f6b565b60405161029991906142a7565b60405180910390f35b3480156102ae57600080fd5b506102c960048036038101906102c4919061440a565b610f91565b005b3480156102d757600080fd5b506102e06112e5565b6040516102ed9190614475565b60405180910390f35b34801561030257600080fd5b5061030b6112ef565b6040516103189190614475565b60405180910390f35b34801561032d57600080fd5b506103366112f5565b60405161034391906142a7565b60405180910390f35b34801561035857600080fd5b50610373600480360381019061036e9190614222565b61131b565b005b34801561038157600080fd5b5061039c60048036038101906103979190614490565b61190d565b6040516103a9919061427d565b60405180910390f35b3480156103be57600080fd5b506103c7611a77565b6040516103d49190614475565b60405180910390f35b3480156103e957600080fd5b506103f2611a7d565b6040516103ff9190614475565b60405180910390f35b34801561041457600080fd5b5061042f600480360381019061042a91906140e5565b611a97565b005b34801561043d57600080fd5b50610458600480360381019061045391906144e3565b61206f565b005b34801561046657600080fd5b5061046f6126d8565b60405161047c9190614475565b60405180910390f35b34801561049157600080fd5b506104ac60048036038101906104a7919061440a565b6126e1565b005b3480156104ba57600080fd5b506104d560048036038101906104d091906140e5565b612a47565b6040516104e59493929190614523565b60405180910390f35b3480156104fa57600080fd5b5061051560048036038101906105109190614568565b612a9e565b6040516105229190614475565b60405180910390f35b34801561053757600080fd5b50610540612aea565b60405161054d91906141a2565b60405180910390f35b34801561056257600080fd5b5061056b612b78565b005b34801561057957600080fd5b50610594600480360381019061058f91906140e5565b612cb7565b6040516105a191906142a7565b60405180910390f35b3480156105b657600080fd5b506105bf612cf5565b6040516105cc91906141a2565b60405180910390f35b3480156105e157600080fd5b506105fc60048036038101906105f791906140e5565b612d87565b60405161060991906142a7565b60405180910390f35b34801561061e57600080fd5b5061063960048036038101906106349190614222565b612dc7565b60405161064691906145c0565b60405180910390f35b34801561065b57600080fd5b5061067660048036038101906106719190614222565b612e3c565b604051610683919061427d565b60405180910390f35b34801561069857600080fd5b506106a1612e53565b6040516106ae9190614475565b60405180910390f35b3480156106c357600080fd5b506106cc612e59565b6040516106d99190614475565b60405180910390f35b3480156106ee57600080fd5b50610709600480360381019061070491906145db565b612e5f565b6040516107169190614475565b60405180910390f35b34801561072b57600080fd5b50610734612ee6565b6040516107419190614475565b60405180910390f35b34801561075657600080fd5b50610771600480360381019061076c919061461b565b612eec565b005b34801561077f57600080fd5b5061079a60048036038101906107959190614568565b61308e565b005b3480156107a857600080fd5b506107c360048036038101906107be9190614568565b613162565b6040516107d09190614726565b60405180910390f35b3480156107e557600080fd5b5061080060048036038101906107fb91906140e5565b6131f9565b60405161080e929190614748565b60405180910390f35b600060075460065461082991906147a0565b90508060015461083991906147a0565b6005541061087c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161087390614820565b60405180910390fd5b8060015461088a91906147a0565b826005546108989190614840565b11156108d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d0906148c0565b60405180910390fd5b816002546108e791906148e0565b341015610929576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109209061496e565b60405180910390fd5b6000821161096c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610963906149da565b60405180910390fd5b60005b82811015610d7c57600060055490506000600160055461098f9190614840565b905060006101f4836109a19190614a29565b1480156109af575060008314155b156109ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e690614aa6565b60405180910390fd5b846002546109fd91906148e0565b341015610a3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3690614b12565b60405180910390fd5b60006101f482610a4f9190614a29565b03610a705760035460026000828254610a689190614840565b925050819055505b6001151560116000600554815260200190815260200160002060000160009054906101000a900460ff16151503610b735760405180604001604052806001151581526020016011600060055481526020019081526020016000206001015481525060126000600554815260200190815260200160002060008201518160000160006101000a81548160ff02191690831515021790555060208201518160010155905050601160006005548152602001908152602001600020600101546005543373ffffffffffffffffffffffffffffffffffffffff167f3972d5c8831190a153a683ed38e6bfe82fcf6409ce185440360d1f69d3505da960405160405180910390a45b60405180602001604052803373ffffffffffffffffffffffffffffffffffffffff16815250600e6000600554815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050610c469190614840565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002060000181905550600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005549080600181540180825580915050600190039060005260206000200160009091909190915055600160056000828254610d1a9190614840565b925050819055506005543373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560405160405180910390a350508080610d7490614b32565b91505061096f565b503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610ddb9190614475565b60405180910390a35050565b606060088054610df690614ba9565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2290614ba9565b8015610e6f5780601f10610e4457610100808354040283529160200191610e6f565b820191906000526020600020905b815481529060010190602001808311610e5257829003601f168201915b5050505050905090565b600081600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610f599190614475565b60405180910390a36001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611021576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101890614c4c565b60405180910390fd5b600081835161103091906148e0565b60075460065461104091906147a0565b60055461104d9190614840565b6110579190614840565b9050600154811061109d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109490614cde565b60405180910390fd5b60005b83518110156112bf57816001546110b791906147a0565b838583815181106110cb576110ca614cfe565b5b60200260200101516110dd9190614840565b111561111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590614cde565b60405180910390fd5b60006040518060800160405280600115158152602001858152602001600015158152602001600015158152509050806011600087858151811061116457611163614cfe565b5b6020026020010151815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff0219169083151502179055509050506040518060400160405280600115158152602001858152506012600087858151811061121657611215614cfe565b5b6020026020010151815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015590505084828151811061126c5761126b614cfe565b5b60200260200101517f96e44be901b9fa360fb05e2ea5b991ddc8cd371acf10e305fd5d327e881bc723826040516112a39190614d91565b60405180910390a25080806112b790614b32565b9150506110a0565b506006548284516112d091906148e0565b6112da9190614840565b600681905550505050565b6000600154905090565b60025481565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a290614e1e565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff16600e600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461144f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161144690614e8a565b60405180910390fd5b60006001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506114a091906147a0565b90506000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106114f5576114f4614cfe565b5b906000526020600020015490506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490506115519190614840565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000181905550600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083908060018154018082558091505060019003906000526020600020016000909190919091505533600e600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206000015490506000600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811061170e5761170d614cfe565b5b9060005260206000200154905080600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018461176891906147a0565b8154811061177957611778614cfe565b5b906000526020600020018190555081601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000181905550601060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008681526020019081526020016000206000808201600090555050600f60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548061188957611888614eaa565b5b600190038181906000526020600020016000905590553373ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60016040516118fd9190614f1e565b60405180910390a3505050505050565b600081600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156119ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c590614f85565b60405180910390fd5b6119d984848461322a565b81600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a6591906147a0565b92505081905550600190509392505050565b60075481565b6000600460009054906101000a900460ff1660ff16905090565b600115156012600083815260200190815260200160002060000160009054906101000a900460ff16151514611b01576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af890614ff1565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600e600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ba5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9c9061505d565b60405180910390fd5b60005b6012600083815260200190815260200160002060010154811015611f1b5760015460055410611c0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c03906150c9565b60405180910390fd5b60006001600554611c1d9190614840565b905060006101f482611c2f9190614a29565b03611c505760035460026000828254611c489190614840565b925050819055505b6001151560116000600554815260200190815260200160002060000160009054906101000a900460ff16151503611d1357600160116000600554815260200190815260200160002060020160016101000a81548160ff0219169083151502179055506011600060055481526020019081526020016000206001015460076000828254611cdc9190614840565b925050819055506005547f56bff29b8cacbb42f66f31db3c2ca73b83540e9a240e63051d5dc6a27332cec660405160405180910390a25b60405180602001604052803373ffffffffffffffffffffffffffffffffffffffff16815250600e6000600554815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050611de69190614840565b601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002060000181905550600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206005549080600181540180825580915050600190039060005260206000200160009091909190915055600160056000828254611eba9190614840565b925050819055506005543373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560405160405180910390a3508080611f1390614b32565b915050611ba8565b5060016011600083815260200190815260200160002060020160006101000a81548160ff021916908315150217905550601260008281526020019081526020016000206001015460066000828254611f7391906147a0565b9250508190555060126000828152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550506012600082815260200190815260200160002060010154817fd045b728ed8dcf8d897a7f4fec2de5b2f8c5255f777267b4ff6f6d9155ac3c6d60405160405180910390a33373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60126000858152602001908152602001600020600101546040516120649190614475565b60405180910390a350565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f690614e1e565b60405180910390fd5b60015460055410612145576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213c906150c9565b60405180910390fd5b600115156012600084815260200190815260200160002060000160009054906101000a900460ff161515146121af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a690614ff1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600e600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612253576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224a9061505d565b60405180910390fd5b60005b601260008481526020019081526020016000206001015481101561258357600060016005546122859190614840565b905060006101f4826122979190614a29565b036122b857600354600260008282546122b09190614840565b925050819055505b6001151560116000600554815260200190815260200160002060000160009054906101000a900460ff1615150361237b57600160116000600554815260200190815260200160002060020160016101000a81548160ff02191690831515021790555060116000600554815260200190815260200160002060010154600760008282546123449190614840565b925050819055506005547f56bff29b8cacbb42f66f31db3c2ca73b83540e9a240e63051d5dc6a27332cec660405160405180910390a25b60405180602001604052808473ffffffffffffffffffffffffffffffffffffffff16815250600e6000600554815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055509050506001600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061244e9190614840565b601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600554815260200190815260200160002060000181905550600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060055490806001815401808255809150506001900390600052602060002001600090919091909150556001600560008282546125229190614840565b925050819055506005548373ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688560405160405180910390a350808061257b90614b32565b915050612256565b5060016011600084815260200190815260200160002060020160006101000a81548160ff0219169083151502179055506012600083815260200190815260200160002060010154600660008282546125db91906147a0565b9250508190555060126000838152602001908152602001600020600080820160006101000a81549060ff0219169055600182016000905550506012600083815260200190815260200160002060010154827fd045b728ed8dcf8d897a7f4fec2de5b2f8c5255f777267b4ff6f6d9155ac3c6d60405160405180910390a38073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60126000868152602001908152602001600020600101546040516126cc9190614475565b60405180910390a35050565b60008054905090565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612771576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276890614c4c565b60405180910390fd5b600081835161278091906148e0565b60075460065461279091906147a0565b60055461279d9190614840565b6127a79190614840565b905060015481106127ed576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127e490614cde565b60405180910390fd5b60005b8351811015612a2157600115156011600086848151811061281457612813614cfe565b5b6020026020010151815260200190815260200160002060000160009054906101000a900460ff1615150361287d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287490615135565b60405180910390fd5b8160015461288b91906147a0565b8385838151811061289f5761289e614cfe565b5b60200260200101516128b19190614840565b11156128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e990614cde565b60405180910390fd5b60006040518060800160405280600115158152602001858152602001600015158152602001600015158152509050806011600087858151811061293857612937614cfe565b5b6020026020010151815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548160ff02191690831515021790555060608201518160020160016101000a81548160ff0219169083151502179055509050508482815181106129ce576129cd614cfe565b5b60200260200101517f96e44be901b9fa360fb05e2ea5b991ddc8cd371acf10e305fd5d327e881bc72382604051612a059190614d91565b60405180910390a2508080612a1990614b32565b9150506127f0565b50600654828451612a3291906148e0565b612a3c9190614840565b600681905550505050565b60116020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020160009054906101000a900460ff16908060020160019054906101000a900460ff16905084565b6000600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050919050565b600a8054612af790614ba9565b80601f0160208091040260200160405190810160405280929190818152602001828054612b2390614ba9565b8015612b705780601f10612b4557610100808354040283529160200191612b70565b820191906000526020600020905b815481529060010190602001808311612b5357829003601f168201915b505050505081565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612bff90614c4c565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff1647604051612c2e90615186565b60006040518083038185875af1925050503d8060008114612c6b576040519150601f19603f3d011682016040523d82523d6000602084013e612c70565b606091505b5050905080612cb4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612cab906151e7565b60405180910390fd5b50565b600e6020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081565b606060098054612d0490614ba9565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3090614ba9565b8015612d7d5780601f10612d5257610100808354040283529160200191612d7d565b820191906000526020600020905b815481529060010190602001808311612d6057829003601f168201915b5050505050905090565b6000600e600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b612dcf614088565b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020604051806020016040529081600082015481525050905092915050565b6000612e4933848461322a565b6001905092915050565b60055481565b60065481565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60035481565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612f5a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f5190615253565b60405180910390fd5b600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905081511115612fe0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fd7906152bf565b60405180910390fd5b60005b8151811015613023576130108383838151811061300357613002614cfe565b5b6020026020010151613b1e565b808061301b90614b32565b915050612fe3565b508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83516040516130829190614475565b60405180910390a35050565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461311e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161311590614c4c565b60405180910390fd5b80600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600f60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806020026020016040519081016040528092919081815260200182805480156131ed57602002820191906000526020600020905b8154815260200190600101908083116131d9575b50505050509050919050565b60126020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154905082565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490508111156132af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132a6906152bf565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361331d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161331490615253565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361338c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161338390615351565b60405180910390fd5b6000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506000600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905090506001811015613701576000600190505b6001846134379190614840565b811015613696576000818461344c91906147a0565b90506000600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481106134a1576134a0614cfe565b5b9060005260206000200154905082601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000181905550600f60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505586600e600083815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806136105761360f614eaa565b5b60019003818190600052602060002001600090559055601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002060008082016000905550505050808061368e90614b32565b91505061342a565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516136f49190614475565b60405180910390a3613b17565b6000600190505b6001846137159190614840565b811015613ab0576000818461372a91906147a0565b90506000600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020828154811061377f5761377e614cfe565b5b906000526020600020015490506000600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001856137da91906147a0565b815481106137eb576137ea614cfe565b5b9060005260206000200154905083856138049190614840565b601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060000181905550600f60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081908060018154018082558091505060019003906000526020600020016000909190919091505583601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000206000018190555081600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060018661396691906147a0565b8154811061397757613976614cfe565b5b906000526020600020018190555087600e600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480613a2957613a28614eaa565b5b60019003818190600052602060002001600090559055601060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060008082016000905550505050508080613aa890614b32565b915050613708565b508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613b0e9190614475565b60405180910390a35b5050505050565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603613b8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613b8390615253565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff16600e600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614613c30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613c27906153bd565b60405180910390fd5b60006001600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050613c8191906147a0565b90506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110613cd657613cd5614cfe565b5b906000526020600020015490506001600f60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050613d329190614840565b601060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000181905550600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002083908060018154018082558091505060019003906000526020600020016000909190919091505583600e600085815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008581526020019081526020016000206000015490506000600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208481548110613eef57613eee614cfe565b5b9060005260206000200154905080600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600184613f4991906147a0565b81548110613f5a57613f59614cfe565b5b906000526020600020018190555081601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085815260200190815260200160002060000181905550601060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008681526020019081526020016000206000808201600090555050600f60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080548061406a57614069614eaa565b5b60019003818190600052602060002001600090559055505050505050565b6040518060200160405280600081525090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6140c2816140af565b81146140cd57600080fd5b50565b6000813590506140df816140b9565b92915050565b6000602082840312156140fb576140fa6140a5565b5b6000614109848285016140d0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561414c578082015181840152602081019050614131565b60008484015250505050565b6000601f19601f8301169050919050565b600061417482614112565b61417e818561411d565b935061418e81856020860161412e565b61419781614158565b840191505092915050565b600060208201905081810360008301526141bc8184614169565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006141ef826141c4565b9050919050565b6141ff816141e4565b811461420a57600080fd5b50565b60008135905061421c816141f6565b92915050565b60008060408385031215614239576142386140a5565b5b60006142478582860161420d565b9250506020614258858286016140d0565b9150509250929050565b60008115159050919050565b61427781614262565b82525050565b6000602082019050614292600083018461426e565b92915050565b6142a1816141e4565b82525050565b60006020820190506142bc6000830184614298565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6142ff82614158565b810181811067ffffffffffffffff8211171561431e5761431d6142c7565b5b80604052505050565b600061433161409b565b905061433d82826142f6565b919050565b600067ffffffffffffffff82111561435d5761435c6142c7565b5b602082029050602081019050919050565b600080fd5b600061438661438184614342565b614327565b905080838252602082019050602084028301858111156143a9576143a861436e565b5b835b818110156143d257806143be88826140d0565b8452602084019350506020810190506143ab565b5050509392505050565b600082601f8301126143f1576143f06142c2565b5b8135614401848260208601614373565b91505092915050565b60008060408385031215614421576144206140a5565b5b600083013567ffffffffffffffff81111561443f5761443e6140aa565b5b61444b858286016143dc565b925050602061445c858286016140d0565b9150509250929050565b61446f816140af565b82525050565b600060208201905061448a6000830184614466565b92915050565b6000806000606084860312156144a9576144a86140a5565b5b60006144b78682870161420d565b93505060206144c88682870161420d565b92505060406144d9868287016140d0565b9150509250925092565b600080604083850312156144fa576144f96140a5565b5b6000614508858286016140d0565b92505060206145198582860161420d565b9150509250929050565b6000608082019050614538600083018761426e565b6145456020830186614466565b614552604083018561426e565b61455f606083018461426e565b95945050505050565b60006020828403121561457e5761457d6140a5565b5b600061458c8482850161420d565b91505092915050565b61459e816140af565b82525050565b6020820160008201516145ba6000850182614595565b50505050565b60006020820190506145d560008301846145a4565b92915050565b600080604083850312156145f2576145f16140a5565b5b60006146008582860161420d565b92505060206146118582860161420d565b9150509250929050565b60008060408385031215614632576146316140a5565b5b60006146408582860161420d565b925050602083013567ffffffffffffffff811115614661576146606140aa565b5b61466d858286016143dc565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b60006146af8383614595565b60208301905092915050565b6000602082019050919050565b60006146d382614677565b6146dd8185614682565b93506146e883614693565b8060005b8381101561471957815161470088826146a3565b975061470b836146bb565b9250506001810190506146ec565b5085935050505092915050565b6000602082019050818103600083015261474081846146c8565b905092915050565b600060408201905061475d600083018561426e565b61476a6020830184614466565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006147ab826140af565b91506147b6836140af565b92508282039050818111156147ce576147cd614771565b5b92915050565b7f4d617820737570706c7920726561636865640000000000000000000000000000600082015250565b600061480a60128361411d565b9150614815826147d4565b602082019050919050565b60006020820190508181036000830152614839816147fd565b9050919050565b600061484b826140af565b9150614856836140af565b925082820190508082111561486e5761486d614771565b5b92915050565b7f43616e2774206d696e74206d6f7265207468616e206d617820737570706c7900600082015250565b60006148aa601f8361411d565b91506148b582614874565b602082019050919050565b600060208201905081810360008301526148d98161489d565b9050919050565b60006148eb826140af565b91506148f6836140af565b9250828202614904816140af565b9150828204841483151761491b5761491a614771565b5b5092915050565b7f4e6f7420656e6f75676820455448000000000000000000000000000000000000600082015250565b6000614958600e8361411d565b915061496382614922565b602082019050919050565b600060208201905081810360008301526149878161494b565b9050919050565b7f43616e2774206d696e74207a65726f20616d6f756e7400000000000000000000600082015250565b60006149c460168361411d565b91506149cf8261498e565b602082019050919050565b600060208201905081810360008301526149f3816149b7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000614a34826140af565b9150614a3f836140af565b925082614a4f57614a4e6149fa565b5b828206905092915050565b7f486974207072696365206368616e676520706f696e7400000000000000000000600082015250565b6000614a9060168361411d565b9150614a9b82614a5a565b602082019050919050565b60006020820190508181036000830152614abf81614a83565b9050919050565b7f507269636520616c726561647920757000000000000000000000000000000000600082015250565b6000614afc60108361411d565b9150614b0782614ac6565b602082019050919050565b60006020820190508181036000830152614b2b81614aef565b9050919050565b6000614b3d826140af565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614b6f57614b6e614771565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680614bc157607f821691505b602082108103614bd457614bd3614b7a565b5b50919050565b7f4f6e6c79205468652043726561746f722069732041626c6520746f20446f205460008201527f6861740000000000000000000000000000000000000000000000000000000000602082015250565b6000614c3660238361411d565b9150614c4182614bda565b604082019050919050565b60006020820190508181036000830152614c6581614c29565b9050919050565b7f43616e2774207365742066726565206d696e74206d6f7265207468616e206d6160008201527f7820737570706c79000000000000000000000000000000000000000000000000602082015250565b6000614cc860288361411d565b9150614cd382614c6c565b604082019050919050565b60006020820190508181036000830152614cf781614cbb565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b614d3681614262565b82525050565b608082016000820151614d526000850182614d2d565b506020820151614d656020850182614595565b506040820151614d786040850182614d2d565b506060820151614d8b6060850182614d2d565b50505050565b6000608082019050614da66000830184614d3c565b92915050565b7f4f6e6c79204572634f7264696e616c204552433732312061646472657373206360008201527f616e2063616c6c00000000000000000000000000000000000000000000000000602082015250565b6000614e0860278361411d565b9150614e1382614dac565b604082019050919050565b60006020820190508181036000830152614e3781614dfb565b9050919050565b7f416464726573732066726f6d206973206e6f7420746865206f776e6572000000600082015250565b6000614e74601d8361411d565b9150614e7f82614e3e565b602082019050919050565b60006020820190508181036000830152614ea381614e67565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000819050919050565b6000819050919050565b6000614f08614f03614efe84614ed9565b614ee3565b6140af565b9050919050565b614f1881614eed565b82525050565b6000602082019050614f336000830184614f0f565b92915050565b7f4e6f7420656e6f75676820616c6c6f77616e6365000000000000000000000000600082015250565b6000614f6f60148361411d565b9150614f7a82614f39565b602082019050919050565b60006020820190508181036000830152614f9e81614f62565b9050919050565b7f546865206964206973206e6f7420656c696769626c6500000000000000000000600082015250565b6000614fdb60168361411d565b9150614fe682614fa5565b602082019050919050565b6000602082019050818103600083015261500a81614fce565b9050919050565b7f596f7520617265206e6f7420656c696769626c65000000000000000000000000600082015250565b600061504760148361411d565b915061505282615011565b602082019050919050565b600060208201905081810360008301526150768161503a565b9050919050565b7f436c61696d696e672072656163686564206d617820737570706c790000000000600082015250565b60006150b3601b8361411d565b91506150be8261507d565b602082019050919050565b600060208201905081810360008301526150e2816150a6565b9050919050565b7f496420616c726561647920696e73657274656400000000000000000000000000600082015250565b600061511f60138361411d565b915061512a826150e9565b602082019050919050565b6000602082019050818103600083015261514e81615112565b9050919050565b600081905092915050565b50565b6000615170600083615155565b915061517b82615160565b600082019050919050565b600061519182615163565b9150819050919050565b7f6661696c65640000000000000000000000000000000000000000000000000000600082015250565b60006151d160068361411d565b91506151dc8261519b565b602082019050919050565b60006020820190508181036000830152615200816151c4565b9050919050565b7f53656c66207472616e73666572206e6f7420616c6c6f77656400000000000000600082015250565b600061523d60198361411d565b915061524882615207565b602082019050919050565b6000602082019050818103600083015261526c81615230565b9050919050565b7f4e6f7420656e6f7567682062616c616e63650000000000000000000000000000600082015250565b60006152a960128361411d565b91506152b482615273565b602082019050919050565b600060208201905081810360008301526152d88161529c565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061533b60258361411d565b9150615346826152df565b604082019050919050565b6000602082019050818103600083015261536a8161532e565b9050919050565b7f4d75737420626520746865206f776e6572000000000000000000000000000000600082015250565b60006153a760118361411d565b91506153b282615371565b602082019050919050565b600060208201905081810360008301526153d68161539a565b905091905056fea26469706673582212204532ab2fd74c15b3cc5834bb2c6d3aef40a59e7be6eb01d194f83e5ecff339a964736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000348bbcf00286870958b69e757526b8bdd44387890000000000000000000000004e32585da8366b1293ad0f9671e781ff98046d540000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000003b6261667962656962716b6e7078743264633273336f35756c667376716f676e796d7a7a616f7432786b36686b776f6e687133716d7965726c6a66650000000000
-----Decoded View---------------
Arg [0] : _dev1 (address): 0x348bbCF00286870958b69e757526b8bDD4438789
Arg [1] : _dev2 (address): 0x4e32585da8366B1293aD0F9671E781fF98046D54
Arg [2] : _base_uri (string): bafybeibqknpxt2dc2s3o5ulfsvqognymzzaot2xk6hkwonhq3qmyerljfe
-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000348bbcf00286870958b69e757526b8bdd4438789
Arg [1] : 0000000000000000000000004e32585da8366b1293ad0f9671e781ff98046d54
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000060
Arg [3] : 000000000000000000000000000000000000000000000000000000000000003b
Arg [4] : 6261667962656962716b6e7078743264633273336f35756c667376716f676e79
Arg [5] : 6d7a7a616f7432786b36686b776f6e687133716d7965726c6a66650000000000
Deployed Bytecode Sourcemap
86:21259:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13718:1979;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3545:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4263:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;582:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8973:1286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3741:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;182:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;549:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20141:1201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4667:405;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;404:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3838:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10293:1631;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11969:1741;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3397:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7572:1293;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;886:53;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;3936:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;520:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15705:204;;;;;;;;;;;;;:::i;:::-;;693:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3641:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3276:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3087:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4067:188;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;319:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;358:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4490:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;234:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18464:458;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7383:124;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2932:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;946:68;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;13718:1979;13781:18;13825:14;;13802:20;;:37;;;;:::i;:::-;13781:58;;13887:10;13874;;:23;;;;:::i;:::-;13858:13;;:39;13850:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;13974:10;13961;;:23;;;;:::i;:::-;13951:7;13935:13;;:23;;;;:::i;:::-;:49;13931:123;;;14001:41;;;;;;;;;;:::i;:::-;;;;;;;;13931:123;14098:7;14085:10;;:20;;;;:::i;:::-;14072:9;:33;;14064:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;14153:1;14143:7;:11;14135:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;14197:9;14192:1441;14216:7;14212:1;:11;14192:1441;;;14245:14;14262:13;;14245:30;;14290:14;14323:1;14307:13;;:17;;;;:::i;:::-;14290:34;;14441:1;14434:3;14425:6;:12;;;;:::i;:::-;:17;:27;;;;;14451:1;14446;:6;;14425:27;14421:100;;;14473:32;;;;;;;;;;:::i;:::-;;;;;;;;14421:100;14564:7;14551:10;;:20;;;;:::i;:::-;14539:9;:32;14535:99;;;14592:26;;;;;;;;;;:::i;:::-;;;;;;;;14535:99;14668:1;14661:3;14652:6;:12;;;;:::i;:::-;:17;14648:86;;14704:14;;14690:10;;:28;;;;;;;:::i;:::-;;;;;;;;14648:86;14839:4;14796:47;;:12;:27;14809:13;;14796:27;;;;;;;;;;;:39;;;;;;;;;;;;:47;;;14792:473;;14903:157;;;;;;;;14959:4;14903:157;;;;;;15000:12;:27;15013:13;;15000:27;;;;;;;;;;;:40;;;14903:157;;;14864:21;:36;14886:13;;14864:36;;;;;;;;;;;:196;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15190:12;:27;15203:13;;15190:27;;;;;;;;;;;:40;;;15154:13;;15121:10;15084:165;;;;;;;;;;;;14792:473;15307:27;;;;;;;;15322:10;15307:27;;;;;15279:10;:25;15290:13;;15279:25;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15472:1;15416:17;:29;15434:10;15416:29;;;;;;;;;;;;;;;:36;;;;:57;;;;:::i;:::-;15349:14;:26;15364:10;15349:26;;;;;;;;;;;;;;;:41;15376:13;;15349:41;;;;;;;;;;;:47;;:124;;;;15488:17;:29;15506:10;15488:29;;;;;;;;;;;;;;;15523:13;;15488:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15569:1;15552:13;;:18;;;;;;;:::i;:::-;;;;;;;;15607:13;;15595:10;15590:31;;;;;;;;;;;;14230:1403;;14225:3;;;;;:::i;:::-;;;;14192:1441;;;;15669:10;15648:41;;15665:1;15648:41;;;15681:7;15648:41;;;;;;:::i;:::-;;;;;;;;13770:1927;13718:1979;:::o;3545:88::-;3582:13;3615:10;3608:17;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3545:88;:::o;4263:219::-;4331:4;4390:7;4348:17;:29;4366:10;4348:29;;;;;;;;;;;;;;;:39;4378:8;4348:39;;;;;;;;;;;;;;;:49;;;;4434:8;4413:39;;4422:10;4413:39;;;4444:7;4413:39;;;;;;:::i;:::-;;;;;;;;4470:4;4463:11;;4263:219;;;;:::o;582:32::-;;;;;;;;;;;;;:::o;8973:1286::-;2504:11;;;;;;;;;;;2490:25;;:10;:25;;;2468:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9109:20:::1;9240:7;9217:13;:20;:30;;;;:::i;:::-;9185:14;;9162:20;;:37;;;;:::i;:::-;9132:13;;:68;;;;:::i;:::-;:116;;;;:::i;:::-;9109:139;;9296:10;;9281:12;:25;9259:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;9390:9;9385:752;9409:13;:20;9405:1;:24;9385:752;;;9497:12;9484:10;;:25;;;;:::i;:::-;9474:7;9455:13;9469:1;9455:16;;;;;;;;:::i;:::-;;;;;;;;:26;;;;:::i;:::-;:54;9451:145;;;9530:50;;;;;;;;;;:::i;:::-;;;;;;;;9451:145;9610:35;9648:181;;;;;;;;9694:4;9648:181;;;;;;9731:7;9648:181;;;;9769:5;9648:181;;;;;;9808:5;9648:181;;;;::::0;9610:219:::1;;9877:14;9844:12;:30;9857:13;9871:1;9857:16;;;;;;;;:::i;:::-;;;;;;;;9844:30;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9948:112;;;;;;;;10000:4;9948:112;;;;;;10037:7;9948:112;;::::0;9906:21:::1;:39;9928:13;9942:1;9928:16;;;;;;;;:::i;:::-;;;;;;;;9906:39;;;;;;;;;;;:154;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10092:13;10106:1;10092:16;;;;;;;;:::i;:::-;;;;;;;;10080:45;10110:14;10080:45;;;;;;:::i;:::-;;;;;;;;9436:701;9431:3;;;;;:::i;:::-;;;;9385:752;;;;10231:20;;10207:7;10184:13;:20;:30;;;;:::i;:::-;10183:68;;;;:::i;:::-;10147:20;:104;;;;9098:1161;8973:1286:::0;;:::o;3741:89::-;3785:7;3812:10;;3805:17;;3741:89;:::o;182:45::-;;;;:::o;549:26::-;;;;;;;;;;;;;:::o;20141:1201::-;20245:17;;;;;;;;;;;20231:31;;:10;:31;;;20209:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;20387:5;20362:30;;:10;:15;20373:3;20362:15;;;;;;;;;;;:21;;;;;;;;;;;;:30;;;20340:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;20460:23;20520:1;20486:17;:24;20504:5;20486:24;;;;;;;;;;;;;;;:31;;;;:35;;;;:::i;:::-;20460:61;;20532:20;20555:17;:24;20573:5;20555:24;;;;;;;;;;;;;;;20580:15;20555:41;;;;;;;;:::i;:::-;;;;;;;;;;20532:64;;20712:1;20660:17;:29;20678:10;20660:29;;;;;;;;;;;;;;;:36;;;;:53;;;;:::i;:::-;20607:14;:26;20622:10;20607:26;;;;;;;;;;;;;;;:31;20634:3;20607:31;;;;;;;;;;;:37;;:106;;;;20724:17;:29;20742:10;20724:29;;;;;;;;;;;;;;;20759:3;20724:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20798:10;20774;:15;20785:3;20774:15;;;;;;;;;;;:21;;;:34;;;;;;;;;;;;;;;;;;20861:21;20885:14;:21;20900:5;20885:21;;;;;;;;;;;;;;;:26;20907:3;20885:26;;;;;;;;;;;:32;;;20861:56;;20966:16;20985:17;:24;21003:5;20985:24;;;;;;;;;;;;;;;21010:15;20985:41;;;;;;;;:::i;:::-;;;;;;;;;;20966:60;;21083:8;21037:17;:24;21055:5;21037:24;;;;;;;;;;;;;;;21078:1;21062:13;:17;;;;:::i;:::-;21037:43;;;;;;;;:::i;:::-;;;;;;;;;:54;;;;21190:13;21146:14;:21;21161:5;21146:21;;;;;;;;;;;;;;;:35;21168:12;21146:35;;;;;;;;;;;:41;;:57;;;;21221:14;:21;21236:5;21221:21;;;;;;;;;;;;;;;:26;21243:3;21221:26;;;;;;;;;;;;21214:33;;;;;;;;21258:17;:24;21276:5;21258:24;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;21320:10;21304:30;;21313:5;21304:30;;;21332:1;21304:30;;;;;;:::i;:::-;;;;;;;;20198:1144;;;;20141:1201;;:::o;4667:405::-;4793:4;4874:7;4832:17;:26;4850:7;4832:26;;;;;;;;;;;;;;;:38;4859:10;4832:38;;;;;;;;;;;;;;;;:49;;4810:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;4940:42;4953:7;4962:10;4974:7;4940:12;:42::i;:::-;5035:7;4993:17;:26;5011:7;4993:26;;;;;;;;;;;;;;;:38;5020:10;4993:38;;;;;;;;;;;;;;;;:49;;;;;;;:::i;:::-;;;;;;;;5060:4;5053:11;;4667:405;;;;;:::o;404:33::-;;;;:::o;3838:90::-;3879:7;3906:14;;;;;;;;;;;3899:21;;;;3838:90;:::o;10293:1631::-;10409:4;10367:46;;:21;:26;10389:3;10367:26;;;;;;;;;;;:38;;;;;;;;;;;;:46;;;10345:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;10507:10;10482:35;;:10;:15;10493:3;10482:15;;;;;;;;;;;:21;;;;;;;;;;;;:35;;;10474:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10560:9;10555:986;10579:21;:26;10601:3;10579:26;;;;;;;;;;;:39;;;10575:1;:43;10555:986;;;10661:10;;10644:13;;:27;10640:105;;10692:37;;;;;;;;;;:::i;:::-;;;;;;;;10640:105;10759:14;10792:1;10776:13;;:17;;;;:::i;:::-;10759:34;;10828:1;10821:3;10812:6;:12;;;;:::i;:::-;:17;10808:86;;10864:14;;10850:10;;:28;;;;;;;:::i;:::-;;;;;;;;10808:86;10955:4;10912:47;;:12;:27;10925:13;;10912:27;;;;;;;;;;;:39;;;;;;;;;;;;:47;;;10908:265;;11024:4;10980:12;:27;10993:13;;10980:27;;;;;;;;;;;:41;;;:48;;;;;;;;;;;;;;;;;;11065:12;:27;11078:13;;11065:27;;;;;;;;;;;:40;;;11047:14;;:58;;;;;;;:::i;:::-;;;;;;;;11143:13;;11129:28;;;;;;;;;;10908:265;11215:27;;;;;;;;11230:10;11215:27;;;;;11187:10;:25;11198:13;;11187:25;;;;;;;;;;;:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11380:1;11324:17;:29;11342:10;11324:29;;;;;;;;;;;;;;;:36;;;;:57;;;;:::i;:::-;11257:14;:26;11272:10;11257:26;;;;;;;;;;;;;;;:41;11284:13;;11257:41;;;;;;;;;;;:47;;:124;;;;11396:17;:29;11414:10;11396:29;;;;;;;;;;;;;;;11431:13;;11396:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11477:1;11460:13;;:18;;;;;;;:::i;:::-;;;;;;;;11515:13;;11503:10;11498:31;;;;;;;;;;;;10625:916;10620:3;;;;;:::i;:::-;;;;10555:986;;;;11582:4;11551:12;:17;11564:3;11551:17;;;;;;;;;;;:28;;;:35;;;;;;;;;;;;;;;;;;11621:21;:26;11643:3;11621:26;;;;;;;;;;;:39;;;11597:20;;:63;;;;;;;:::i;:::-;;;;;;;;11678:21;:26;11700:3;11678:26;;;;;;;;;;;;11671:33;;;;;;;;;;;;;;;;;;;;;;;11737:21;:26;11759:3;11737:26;;;;;;;;;;;:39;;;11732:3;11720:57;;;;;;;;;;11841:10;11793:123;;11824:1;11793:123;;;11866:21;:26;11888:3;11866:26;;;;;;;;;;;:39;;;11793:123;;;;;;:::i;:::-;;;;;;;;10293:1631;:::o;11969:1741::-;12078:17;;;;;;;;;;;12064:31;;:10;:31;;;12042:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;12194:10;;12177:13;;:27;12173:97;;12221:37;;;;;;;;;;:::i;:::-;;;;;;;;12173:97;12344:4;12302:46;;:21;:26;12324:3;12302:26;;;;;;;;;;;:38;;;;;;;;;;;;:46;;;12280:118;;;;;;;;;;;;:::i;:::-;;;;;;;;;12442:6;12417:31;;:10;:15;12428:3;12417:15;;;;;;;;;;;:21;;;;;;;;;;;;:31;;;12409:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;12489:9;12484:847;12508:21;:26;12530:3;12508:26;;;;;;;;;;;:39;;;12504:1;:43;12484:847;;;12569:14;12602:1;12586:13;;:17;;;;:::i;:::-;12569:34;;12638:1;12631:3;12622:6;:12;;;;:::i;:::-;:17;12618:86;;12674:14;;12660:10;;:28;;;;;;;:::i;:::-;;;;;;;;12618:86;12765:4;12722:47;;:12;:27;12735:13;;12722:27;;;;;;;;;;;:39;;;;;;;;;;;;:47;;;12718:265;;12834:4;12790:12;:27;12803:13;;12790:27;;;;;;;;;;;:41;;;:48;;;;;;;;;;;;;;;;;;12875:12;:27;12888:13;;12875:27;;;;;;;;;;;:40;;;12857:14;;:58;;;;;;;:::i;:::-;;;;;;;;12953:13;;12939:28;;;;;;;;;;12718:265;13025:23;;;;;;;;13040:6;13025:23;;;;;12997:10;:25;13008:13;;12997:25;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13178:1;13126:17;:25;13144:6;13126:25;;;;;;;;;;;;;;;:32;;;;:53;;;;:::i;:::-;13063:14;:22;13078:6;13063:22;;;;;;;;;;;;;;;:37;13086:13;;13063:37;;;;;;;;;;;:43;;:116;;;;13194:17;:25;13212:6;13194:25;;;;;;;;;;;;;;;13225:13;;13194:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13271:1;13254:13;;:18;;;;;;;:::i;:::-;;;;;;;;13305:13;;13297:6;13292:27;;;;;;;;;;;;12554:777;12549:3;;;;;:::i;:::-;;;;12484:847;;;;13372:4;13341:12;:17;13354:3;13341:17;;;;;;;;;;;:28;;;:35;;;;;;;;;;;;;;;;;;13411:21;:26;13433:3;13411:26;;;;;;;;;;;:39;;;13387:20;;:63;;;;;;;:::i;:::-;;;;;;;;13468:21;:26;13490:3;13468:26;;;;;;;;;;;;13461:33;;;;;;;;;;;;;;;;;;;;;;;13527:21;:26;13549:3;13527:26;;;;;;;;;;;:39;;;13522:3;13510:57;;;;;;;;;;13631:6;13583:119;;13614:1;13583:119;;;13652:21;:26;13674:3;13652:26;;;;;;;;;;;:39;;;13583:119;;;;;;:::i;:::-;;;;;;;;11969:1741;;:::o;3397:98::-;3446:7;3473:14;;3466:21;;3397:98;:::o;7572:1293::-;2504:11;;;;;;;;;;;2490:25;;:10;:25;;;2468:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7700:20:::1;7831:7;7808:13;:20;:30;;;;:::i;:::-;7776:14;;7753:20;;:37;;;;:::i;:::-;7723:13;;:68;;;;:::i;:::-;:116;;;;:::i;:::-;7700:139;;7887:10;;7872:12;:25;7850:115;;;;;;;;;;;;:::i;:::-;;;;;;;;;7981:9;7976:767;8000:13;:20;7996:1;:24;7976:767;;;8092:4;8046:50;;:12;:30;8059:13;8073:1;8059:16;;;;;;;;:::i;:::-;;;;;;;;8046:30;;;;;;;;;;;:42;;;;;;;;;;;;:50;;::::0;8042:170:::1;;8167:29;;;;;;;;;;:::i;:::-;;;;;;;;8042:170;8272:12;8259:10;;:25;;;;:::i;:::-;8249:7;8230:13;8244:1;8230:16;;;;;;;;:::i;:::-;;;;;;;;:26;;;;:::i;:::-;:54;8226:145;;;8305:50;;;;;;;;;;:::i;:::-;;;;;;;;8226:145;8385:35;8423:181;;;;;;;;8469:4;8423:181;;;;;;8506:7;8423:181;;;;8544:5;8423:181;;;;;;8583:5;8423:181;;;;::::0;8385:219:::1;;8652:14;8619:12;:30;8632:13;8646:1;8632:16;;;;;;;;:::i;:::-;;;;;;;;8619:30;;;;;;;;;;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8698:13;8712:1;8698:16;;;;;;;;:::i;:::-;;;;;;;;8686:45;8716:14;8686:45;;;;;;:::i;:::-;;;;;;;;8027:716;8022:3;;;;;:::i;:::-;;;;7976:767;;;;8837:20;;8813:7;8790:13;:20;:30;;;;:::i;:::-;8789:68;;;;:::i;:::-;8753:20;:104;;;;7689:1176;7572:1293:::0;;:::o;886:53::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3936:123::-;3992:7;4019:17;:25;4037:6;4019:25;;;;;;;;;;;;;;;:32;;;;4012:39;;3936:123;;;:::o;520:22::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15705:204::-;2504:11;;;;;;;;;;;2490:25;;:10;:25;;;2468:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;15764:12:::1;15790:10;15782:24;;15828:21;15782:82;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15763:101;;;15883:7;15875:26;;;;;;;;;;;;:::i;:::-;;;;;;;;;15752:157;15705:204::o:0;693:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3641:92::-;3680:13;3713:12;3706:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3641:92;:::o;3276:113::-;3333:7;3360:10;:15;3371:3;3360:15;;;;;;;;;;;:21;;;;;;;;;;;;3353:28;;3276:113;;;:::o;3087:181::-;3190:17;;:::i;:::-;3227:14;:22;3242:6;3227:22;;;;;;;;;;;;;;;:33;3250:9;3227:33;;;;;;;;;;;3220:40;;;;;;;;;;;;;;;;;;;3087:181;;;;:::o;4067:188::-;4163:4;4180:45;4193:10;4205;4217:7;4180:12;:45::i;:::-;4243:4;4236:11;;4067:188;;;;:::o;319:32::-;;;;:::o;358:39::-;;;;:::o;4490:169::-;4589:7;4616:17;:25;4634:6;4616:25;;;;;;;;;;;;;;;:35;4642:8;4616:35;;;;;;;;;;;;;;;;4609:42;;4490:169;;;;:::o;234:47::-;;;;:::o;18464:458::-;18569:10;18555:24;;:10;:24;;;18547:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;18657:17;:29;18675:10;18657:29;;;;;;;;;;;;;;;:36;;;;18642:4;:11;:51;;18620:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;18755:9;18750:104;18774:4;:11;18770:1;:15;18750:104;;;18807:35;18822:10;18834:4;18839:1;18834:7;;;;;;;;:::i;:::-;;;;;;;;18807:14;:35::i;:::-;18787:3;;;;;:::i;:::-;;;;18750:104;;;;18890:10;18869:45;;18878:10;18869:45;;;18902:4;:11;18869:45;;;;;;:::i;:::-;;;;;;;;18464:458;;:::o;7383:124::-;2504:11;;;;;;;;;;;2490:25;;:10;:25;;;2468:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7484:15:::1;7464:17;;:35;;;;;;;;;;;;;;;;;;7383:124:::0;:::o;2932:147::-;3010:16;3046:17;:25;3064:6;3046:25;;;;;;;;;;;;;;;3039:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:147;;;:::o;946:68::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;15982:2474::-;16144:17;:26;16162:7;16144:26;;;;;;;;;;;;;;;:33;;;;16133:7;:44;;16111:112;;;;;;;;;;;;:::i;:::-;;;;;;;;;16253:10;16242:21;;:7;:21;;;16234:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;16331:1;16312:21;;:7;:21;;;16304:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;16386:28;16417:17;:26;16435:7;16417:26;;;;;;;;;;;;;;;:33;;;;16386:64;;16461:23;16487:17;:29;16505:10;16487:29;;;;;;;;;;;;;;;:36;;;;16461:62;;16556:1;16538:15;:19;16534:1915;;;16579:9;16591:1;16579:13;;16574:699;16608:1;16598:7;:11;;;;:::i;:::-;16594:1;:15;16574:699;;;16635:28;16689:1;16666:20;:24;;;;:::i;:::-;16635:55;;16709:25;16737:17;:26;16755:7;16737:26;;;;;;;;;;;;;;;16786:20;16737:88;;;;;;;;:::i;:::-;;;;;;;;;;16709:116;;16898:1;16844:14;:26;16859:10;16844:26;;;;;;;;;;;;;;;:45;16871:17;16844:45;;;;;;;;;;;:51;;:55;;;;16918:17;:29;16936:10;16918:29;;;;;;;;;;;;;;;16953:17;16918:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17071:10;17033;:29;17044:17;17033:29;;;;;;;;;;;:35;;;:48;;;;;;;;;;;;;;;;;;17157:17;:26;17175:7;17157:26;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17215:14;:23;17230:7;17215:23;;;;;;;;;;;;;;;:42;17239:17;17215:42;;;;;;;;;;;;17208:49;;;;;;;;16616:657;;16611:3;;;;;:::i;:::-;;;;16574:699;;;;17312:10;17294:38;;17303:7;17294:38;;;17324:7;17294:38;;;;;;:::i;:::-;;;;;;;;16534:1915;;;17370:9;17382:1;17370:13;;17365:1015;17399:1;17389:7;:11;;;;:::i;:::-;17385:1;:15;17365:1015;;;17426:28;17480:1;17457:20;:24;;;;:::i;:::-;17426:55;;17500:25;17528:17;:26;17546:7;17528:26;;;;;;;;;;;;;;;17577:20;17528:88;;;;;;;;:::i;:::-;;;;;;;;;;17500:116;;17635:16;17654:17;:29;17672:10;17654:29;;;;;;;;;;;;;;;17688:1;17684;:5;;;;:::i;:::-;17654:36;;;;;;;;:::i;:::-;;;;;;;;;;17635:55;;17865:1;17826:15;:40;;;;:::i;:::-;17760:14;:26;17775:10;17760:26;;;;;;;;;;;;;;;:36;17787:8;17760:36;;;;;;;;;;;:42;;:106;;;;17885:17;:29;17903:10;17885:29;;;;;;;;;;;;;;;17920:8;17885:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18002:1;17948:14;:26;17963:10;17948:26;;;;;;;;;;;;;;;:45;17975:17;17948:45;;;;;;;;;;;:51;;:55;;;;18061:17;18022;:29;18040:10;18022:29;;;;;;;;;;;;;;;18056:1;18052;:5;;;;:::i;:::-;18022:36;;;;;;;;:::i;:::-;;;;;;;;;:56;;;;18178:10;18140;:29;18151:17;18140:29;;;;;;;;;;;:35;;;:48;;;;;;;;;;;;;;;;;;18264:17;:26;18282:7;18264:26;;;;;;;;;;;;;;;:32;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18322:14;:23;18337:7;18322:23;;;;;;;;;;;;;;;:42;18346:17;18322:42;;;;;;;;;;;;18315:49;;;;;;;;17407:973;;;17402:3;;;;;:::i;:::-;;;;17365:1015;;;;18417:10;18399:38;;18408:7;18399:38;;;18429:7;18399:38;;;;;;:::i;:::-;;;;;;;;16534:1915;16100:2356;;15982:2474;;;:::o;18930:1203::-;19028:10;19014:24;;:10;:24;;;19006:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;19112:10;19087:35;;:10;:15;19098:3;19087:15;;;;;;;;;;;:21;;;;;;;;;;;;:35;;;19079:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;19155:23;19220:1;19181:17;:29;19199:10;19181:29;;;;;;;;;;;;;;;:36;;;;:40;;;;:::i;:::-;19155:66;;19232:20;19255:17;:29;19273:10;19255:29;;;;;;;;;;;;;;;19285:15;19255:46;;;;;;;;:::i;:::-;;;;;;;;;;19232:69;;19491:1;19439:17;:29;19457:10;19439:29;;;;;;;;;;;;;;;:36;;;;:53;;;;:::i;:::-;19386:14;:26;19401:10;19386:26;;;;;;;;;;;;;;;:31;19413:3;19386:31;;;;;;;;;;;:37;;:106;;;;19503:17;:29;19521:10;19503:29;;;;;;;;;;;;;;;19538:3;19503:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19605:10;19581;:15;19592:3;19581:15;;;;;;;;;;;:21;;;:34;;;;;;;;;;;;;;;;;;19668:21;19692:14;:26;19707:10;19692:26;;;;;;;;;;;;;;;:31;19719:3;19692:31;;;;;;;;;;;:37;;;19668:61;;19778:16;19797:17;:29;19815:10;19797:29;;;;;;;;;;;;;;;19827:15;19797:46;;;;;;;;:::i;:::-;;;;;;;;;;19778:65;;19905:8;19854:17;:29;19872:10;19854:29;;;;;;;;;;;;;;;19900:1;19884:13;:17;;;;:::i;:::-;19854:48;;;;;;;;:::i;:::-;;;;;;;;;:59;;;;20017:13;19968:14;:26;19983:10;19968:26;;;;;;;;;;;;;;;:40;19995:12;19968:40;;;;;;;;;;;:46;;:62;;;;20048:14;:26;20063:10;20048:26;;;;;;;;;;;;;;;:31;20075:3;20048:31;;;;;;;;;;;;20041:38;;;;;;;;20090:17;:29;20108:10;20090:29;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18995:1138;;;;18930:1203;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:99::-;1077:6;1111:5;1105:12;1095:22;;1025:99;;;:::o;1130:169::-;1214:11;1248:6;1243:3;1236:19;1288:4;1283:3;1279:14;1264:29;;1130:169;;;;:::o;1305:246::-;1386:1;1396:113;1410:6;1407:1;1404:13;1396:113;;;1495:1;1490:3;1486:11;1480:18;1476:1;1471:3;1467:11;1460:39;1432:2;1429:1;1425:10;1420:15;;1396:113;;;1543:1;1534:6;1529:3;1525:16;1518:27;1367:184;1305:246;;;:::o;1557:102::-;1598:6;1649:2;1645:7;1640:2;1633:5;1629:14;1625:28;1615:38;;1557:102;;;:::o;1665:377::-;1753:3;1781:39;1814:5;1781:39;:::i;:::-;1836:71;1900:6;1895:3;1836:71;:::i;:::-;1829:78;;1916:65;1974:6;1969:3;1962:4;1955:5;1951:16;1916:65;:::i;:::-;2006:29;2028:6;2006:29;:::i;:::-;2001:3;1997:39;1990:46;;1757:285;1665:377;;;;:::o;2048:313::-;2161:4;2199:2;2188:9;2184:18;2176:26;;2248:9;2242:4;2238:20;2234:1;2223:9;2219:17;2212:47;2276:78;2349:4;2340:6;2276:78;:::i;:::-;2268:86;;2048:313;;;;:::o;2367:126::-;2404:7;2444:42;2437:5;2433:54;2422:65;;2367:126;;;:::o;2499:96::-;2536:7;2565:24;2583:5;2565:24;:::i;:::-;2554:35;;2499:96;;;:::o;2601:122::-;2674:24;2692:5;2674:24;:::i;:::-;2667:5;2664:35;2654:63;;2713:1;2710;2703:12;2654:63;2601:122;:::o;2729:139::-;2775:5;2813:6;2800:20;2791:29;;2829:33;2856:5;2829:33;:::i;:::-;2729:139;;;;:::o;2874:474::-;2942:6;2950;2999:2;2987:9;2978:7;2974:23;2970:32;2967:119;;;3005:79;;:::i;:::-;2967:119;3125:1;3150:53;3195:7;3186:6;3175:9;3171:22;3150:53;:::i;:::-;3140:63;;3096:117;3252:2;3278:53;3323:7;3314:6;3303:9;3299:22;3278:53;:::i;:::-;3268:63;;3223:118;2874:474;;;;;:::o;3354:90::-;3388:7;3431:5;3424:13;3417:21;3406:32;;3354:90;;;:::o;3450:109::-;3531:21;3546:5;3531:21;:::i;:::-;3526:3;3519:34;3450:109;;:::o;3565:210::-;3652:4;3690:2;3679:9;3675:18;3667:26;;3703:65;3765:1;3754:9;3750:17;3741:6;3703:65;:::i;:::-;3565:210;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:117::-;4242:1;4239;4232:12;4256:180;4304:77;4301:1;4294:88;4401:4;4398:1;4391:15;4425:4;4422:1;4415:15;4442:281;4525:27;4547:4;4525:27;:::i;:::-;4517:6;4513:40;4655:6;4643:10;4640:22;4619:18;4607:10;4604:34;4601:62;4598:88;;;4666:18;;:::i;:::-;4598:88;4706:10;4702:2;4695:22;4485:238;4442:281;;:::o;4729:129::-;4763:6;4790:20;;:::i;:::-;4780:30;;4819:33;4847:4;4839:6;4819:33;:::i;:::-;4729:129;;;:::o;4864:311::-;4941:4;5031:18;5023:6;5020:30;5017:56;;;5053:18;;:::i;:::-;5017:56;5103:4;5095:6;5091:17;5083:25;;5163:4;5157;5153:15;5145:23;;4864:311;;;:::o;5181:117::-;5290:1;5287;5280:12;5321:710;5417:5;5442:81;5458:64;5515:6;5458:64;:::i;:::-;5442:81;:::i;:::-;5433:90;;5543:5;5572:6;5565:5;5558:21;5606:4;5599:5;5595:16;5588:23;;5659:4;5651:6;5647:17;5639:6;5635:30;5688:3;5680:6;5677:15;5674:122;;;5707:79;;:::i;:::-;5674:122;5822:6;5805:220;5839:6;5834:3;5831:15;5805:220;;;5914:3;5943:37;5976:3;5964:10;5943:37;:::i;:::-;5938:3;5931:50;6010:4;6005:3;6001:14;5994:21;;5881:144;5865:4;5860:3;5856:14;5849:21;;5805:220;;;5809:21;5423:608;;5321:710;;;;;:::o;6054:370::-;6125:5;6174:3;6167:4;6159:6;6155:17;6151:27;6141:122;;6182:79;;:::i;:::-;6141:122;6299:6;6286:20;6324:94;6414:3;6406:6;6399:4;6391:6;6387:17;6324:94;:::i;:::-;6315:103;;6131:293;6054:370;;;;:::o;6430:684::-;6523:6;6531;6580:2;6568:9;6559:7;6555:23;6551:32;6548:119;;;6586:79;;:::i;:::-;6548:119;6734:1;6723:9;6719:17;6706:31;6764:18;6756:6;6753:30;6750:117;;;6786:79;;:::i;:::-;6750:117;6891:78;6961:7;6952:6;6941:9;6937:22;6891:78;:::i;:::-;6881:88;;6677:302;7018:2;7044:53;7089:7;7080:6;7069:9;7065:22;7044:53;:::i;:::-;7034:63;;6989:118;6430:684;;;;;:::o;7120:118::-;7207:24;7225:5;7207:24;:::i;:::-;7202:3;7195:37;7120:118;;:::o;7244:222::-;7337:4;7375:2;7364:9;7360:18;7352:26;;7388:71;7456:1;7445:9;7441:17;7432:6;7388:71;:::i;:::-;7244:222;;;;:::o;7472:619::-;7549:6;7557;7565;7614:2;7602:9;7593:7;7589:23;7585:32;7582:119;;;7620:79;;:::i;:::-;7582:119;7740:1;7765:53;7810:7;7801:6;7790:9;7786:22;7765:53;:::i;:::-;7755:63;;7711:117;7867:2;7893:53;7938:7;7929:6;7918:9;7914:22;7893:53;:::i;:::-;7883:63;;7838:118;7995:2;8021:53;8066:7;8057:6;8046:9;8042:22;8021:53;:::i;:::-;8011:63;;7966:118;7472:619;;;;;:::o;8097:474::-;8165:6;8173;8222:2;8210:9;8201:7;8197:23;8193:32;8190:119;;;8228:79;;:::i;:::-;8190:119;8348:1;8373:53;8418:7;8409:6;8398:9;8394:22;8373:53;:::i;:::-;8363:63;;8319:117;8475:2;8501:53;8546:7;8537:6;8526:9;8522:22;8501:53;:::i;:::-;8491:63;;8446:118;8097:474;;;;;:::o;8577:517::-;8736:4;8774:3;8763:9;8759:19;8751:27;;8788:65;8850:1;8839:9;8835:17;8826:6;8788:65;:::i;:::-;8863:72;8931:2;8920:9;8916:18;8907:6;8863:72;:::i;:::-;8945:66;9007:2;8996:9;8992:18;8983:6;8945:66;:::i;:::-;9021;9083:2;9072:9;9068:18;9059:6;9021:66;:::i;:::-;8577:517;;;;;;;:::o;9100:329::-;9159:6;9208:2;9196:9;9187:7;9183:23;9179:32;9176:119;;;9214:79;;:::i;:::-;9176:119;9334:1;9359:53;9404:7;9395:6;9384:9;9380:22;9359:53;:::i;:::-;9349:63;;9305:117;9100:329;;;;:::o;9435:108::-;9512:24;9530:5;9512:24;:::i;:::-;9507:3;9500:37;9435:108;;:::o;9617:338::-;9768:4;9763:3;9759:14;9856:4;9849:5;9845:16;9839:23;9875:63;9932:4;9927:3;9923:14;9909:12;9875:63;:::i;:::-;9783:165;9737:218;9617:338;;:::o;9961:330::-;10108:4;10146:2;10135:9;10131:18;10123:26;;10159:125;10281:1;10270:9;10266:17;10257:6;10159:125;:::i;:::-;9961:330;;;;:::o;10297:474::-;10365:6;10373;10422:2;10410:9;10401:7;10397:23;10393:32;10390:119;;;10428:79;;:::i;:::-;10390:119;10548:1;10573:53;10618:7;10609:6;10598:9;10594:22;10573:53;:::i;:::-;10563:63;;10519:117;10675:2;10701:53;10746:7;10737:6;10726:9;10722:22;10701:53;:::i;:::-;10691:63;;10646:118;10297:474;;;;;:::o;10777:684::-;10870:6;10878;10927:2;10915:9;10906:7;10902:23;10898:32;10895:119;;;10933:79;;:::i;:::-;10895:119;11053:1;11078:53;11123:7;11114:6;11103:9;11099:22;11078:53;:::i;:::-;11068:63;;11024:117;11208:2;11197:9;11193:18;11180:32;11239:18;11231:6;11228:30;11225:117;;;11261:79;;:::i;:::-;11225:117;11366:78;11436:7;11427:6;11416:9;11412:22;11366:78;:::i;:::-;11356:88;;11151:303;10777:684;;;;;:::o;11467:114::-;11534:6;11568:5;11562:12;11552:22;;11467:114;;;:::o;11587:184::-;11686:11;11720:6;11715:3;11708:19;11760:4;11755:3;11751:14;11736:29;;11587:184;;;;:::o;11777:132::-;11844:4;11867:3;11859:11;;11897:4;11892:3;11888:14;11880:22;;11777:132;;;:::o;11915:179::-;11984:10;12005:46;12047:3;12039:6;12005:46;:::i;:::-;12083:4;12078:3;12074:14;12060:28;;11915:179;;;;:::o;12100:113::-;12170:4;12202;12197:3;12193:14;12185:22;;12100:113;;;:::o;12249:732::-;12368:3;12397:54;12445:5;12397:54;:::i;:::-;12467:86;12546:6;12541:3;12467:86;:::i;:::-;12460:93;;12577:56;12627:5;12577:56;:::i;:::-;12656:7;12687:1;12672:284;12697:6;12694:1;12691:13;12672:284;;;12773:6;12767:13;12800:63;12859:3;12844:13;12800:63;:::i;:::-;12793:70;;12886:60;12939:6;12886:60;:::i;:::-;12876:70;;12732:224;12719:1;12716;12712:9;12707:14;;12672:284;;;12676:14;12972:3;12965:10;;12373:608;;;12249:732;;;;:::o;12987:373::-;13130:4;13168:2;13157:9;13153:18;13145:26;;13217:9;13211:4;13207:20;13203:1;13192:9;13188:17;13181:47;13245:108;13348:4;13339:6;13245:108;:::i;:::-;13237:116;;12987:373;;;;:::o;13366:320::-;13481:4;13519:2;13508:9;13504:18;13496:26;;13532:65;13594:1;13583:9;13579:17;13570:6;13532:65;:::i;:::-;13607:72;13675:2;13664:9;13660:18;13651:6;13607:72;:::i;:::-;13366:320;;;;;:::o;13692:180::-;13740:77;13737:1;13730:88;13837:4;13834:1;13827:15;13861:4;13858:1;13851:15;13878:194;13918:4;13938:20;13956:1;13938:20;:::i;:::-;13933:25;;13972:20;13990:1;13972:20;:::i;:::-;13967:25;;14016:1;14013;14009:9;14001:17;;14040:1;14034:4;14031:11;14028:37;;;14045:18;;:::i;:::-;14028:37;13878:194;;;;:::o;14078:168::-;14218:20;14214:1;14206:6;14202:14;14195:44;14078:168;:::o;14252:366::-;14394:3;14415:67;14479:2;14474:3;14415:67;:::i;:::-;14408:74;;14491:93;14580:3;14491:93;:::i;:::-;14609:2;14604:3;14600:12;14593:19;;14252:366;;;:::o;14624:419::-;14790:4;14828:2;14817:9;14813:18;14805:26;;14877:9;14871:4;14867:20;14863:1;14852:9;14848:17;14841:47;14905:131;15031:4;14905:131;:::i;:::-;14897:139;;14624:419;;;:::o;15049:191::-;15089:3;15108:20;15126:1;15108:20;:::i;:::-;15103:25;;15142:20;15160:1;15142:20;:::i;:::-;15137:25;;15185:1;15182;15178:9;15171:16;;15206:3;15203:1;15200:10;15197:36;;;15213:18;;:::i;:::-;15197:36;15049:191;;;;:::o;15246:181::-;15386:33;15382:1;15374:6;15370:14;15363:57;15246:181;:::o;15433:366::-;15575:3;15596:67;15660:2;15655:3;15596:67;:::i;:::-;15589:74;;15672:93;15761:3;15672:93;:::i;:::-;15790:2;15785:3;15781:12;15774:19;;15433:366;;;:::o;15805:419::-;15971:4;16009:2;15998:9;15994:18;15986:26;;16058:9;16052:4;16048:20;16044:1;16033:9;16029:17;16022:47;16086:131;16212:4;16086:131;:::i;:::-;16078:139;;15805:419;;;:::o;16230:410::-;16270:7;16293:20;16311:1;16293:20;:::i;:::-;16288:25;;16327:20;16345:1;16327:20;:::i;:::-;16322:25;;16382:1;16379;16375:9;16404:30;16422:11;16404:30;:::i;:::-;16393:41;;16583:1;16574:7;16570:15;16567:1;16564:22;16544:1;16537:9;16517:83;16494:139;;16613:18;;:::i;:::-;16494:139;16278:362;16230:410;;;;:::o;16646:164::-;16786:16;16782:1;16774:6;16770:14;16763:40;16646:164;:::o;16816:366::-;16958:3;16979:67;17043:2;17038:3;16979:67;:::i;:::-;16972:74;;17055:93;17144:3;17055:93;:::i;:::-;17173:2;17168:3;17164:12;17157:19;;16816:366;;;:::o;17188:419::-;17354:4;17392:2;17381:9;17377:18;17369:26;;17441:9;17435:4;17431:20;17427:1;17416:9;17412:17;17405:47;17469:131;17595:4;17469:131;:::i;:::-;17461:139;;17188:419;;;:::o;17613:172::-;17753:24;17749:1;17741:6;17737:14;17730:48;17613:172;:::o;17791:366::-;17933:3;17954:67;18018:2;18013:3;17954:67;:::i;:::-;17947:74;;18030:93;18119:3;18030:93;:::i;:::-;18148:2;18143:3;18139:12;18132:19;;17791:366;;;:::o;18163:419::-;18329:4;18367:2;18356:9;18352:18;18344:26;;18416:9;18410:4;18406:20;18402:1;18391:9;18387:17;18380:47;18444:131;18570:4;18444:131;:::i;:::-;18436:139;;18163:419;;;:::o;18588:180::-;18636:77;18633:1;18626:88;18733:4;18730:1;18723:15;18757:4;18754:1;18747:15;18774:176;18806:1;18823:20;18841:1;18823:20;:::i;:::-;18818:25;;18857:20;18875:1;18857:20;:::i;:::-;18852:25;;18896:1;18886:35;;18901:18;;:::i;:::-;18886:35;18942:1;18939;18935:9;18930:14;;18774:176;;;;:::o;18956:172::-;19096:24;19092:1;19084:6;19080:14;19073:48;18956:172;:::o;19134:366::-;19276:3;19297:67;19361:2;19356:3;19297:67;:::i;:::-;19290:74;;19373:93;19462:3;19373:93;:::i;:::-;19491:2;19486:3;19482:12;19475:19;;19134:366;;;:::o;19506:419::-;19672:4;19710:2;19699:9;19695:18;19687:26;;19759:9;19753:4;19749:20;19745:1;19734:9;19730:17;19723:47;19787:131;19913:4;19787:131;:::i;:::-;19779:139;;19506:419;;;:::o;19931:166::-;20071:18;20067:1;20059:6;20055:14;20048:42;19931:166;:::o;20103:366::-;20245:3;20266:67;20330:2;20325:3;20266:67;:::i;:::-;20259:74;;20342:93;20431:3;20342:93;:::i;:::-;20460:2;20455:3;20451:12;20444:19;;20103:366;;;:::o;20475:419::-;20641:4;20679:2;20668:9;20664:18;20656:26;;20728:9;20722:4;20718:20;20714:1;20703:9;20699:17;20692:47;20756:131;20882:4;20756:131;:::i;:::-;20748:139;;20475:419;;;:::o;20900:233::-;20939:3;20962:24;20980:5;20962:24;:::i;:::-;20953:33;;21008:66;21001:5;20998:77;20995:103;;21078:18;;:::i;:::-;20995:103;21125:1;21118:5;21114:13;21107:20;;20900:233;;;:::o;21139:180::-;21187:77;21184:1;21177:88;21284:4;21281:1;21274:15;21308:4;21305:1;21298:15;21325:320;21369:6;21406:1;21400:4;21396:12;21386:22;;21453:1;21447:4;21443:12;21474:18;21464:81;;21530:4;21522:6;21518:17;21508:27;;21464:81;21592:2;21584:6;21581:14;21561:18;21558:38;21555:84;;21611:18;;:::i;:::-;21555:84;21376:269;21325:320;;;:::o;21651:222::-;21791:34;21787:1;21779:6;21775:14;21768:58;21860:5;21855:2;21847:6;21843:15;21836:30;21651:222;:::o;21879:366::-;22021:3;22042:67;22106:2;22101:3;22042:67;:::i;:::-;22035:74;;22118:93;22207:3;22118:93;:::i;:::-;22236:2;22231:3;22227:12;22220:19;;21879:366;;;:::o;22251:419::-;22417:4;22455:2;22444:9;22440:18;22432:26;;22504:9;22498:4;22494:20;22490:1;22479:9;22475:17;22468:47;22532:131;22658:4;22532:131;:::i;:::-;22524:139;;22251:419;;;:::o;22676:227::-;22816:34;22812:1;22804:6;22800:14;22793:58;22885:10;22880:2;22872:6;22868:15;22861:35;22676:227;:::o;22909:366::-;23051:3;23072:67;23136:2;23131:3;23072:67;:::i;:::-;23065:74;;23148:93;23237:3;23148:93;:::i;:::-;23266:2;23261:3;23257:12;23250:19;;22909:366;;;:::o;23281:419::-;23447:4;23485:2;23474:9;23470:18;23462:26;;23534:9;23528:4;23524:20;23520:1;23509:9;23505:17;23498:47;23562:131;23688:4;23562:131;:::i;:::-;23554:139;;23281:419;;;:::o;23706:180::-;23754:77;23751:1;23744:88;23851:4;23848:1;23841:15;23875:4;23872:1;23865:15;23892:99;23963:21;23978:5;23963:21;:::i;:::-;23958:3;23951:34;23892:99;;:::o;24071:877::-;24228:4;24223:3;24219:14;24322:4;24315:5;24311:16;24305:23;24341:57;24392:4;24387:3;24383:14;24369:12;24341:57;:::i;:::-;24243:165;24498:4;24491:5;24487:16;24481:23;24517:63;24574:4;24569:3;24565:14;24551:12;24517:63;:::i;:::-;24418:172;24678:4;24671:5;24667:16;24661:23;24697:57;24748:4;24743:3;24739:14;24725:12;24697:57;:::i;:::-;24600:164;24855:4;24848:5;24844:16;24838:23;24874:57;24925:4;24920:3;24916:14;24902:12;24874:57;:::i;:::-;24774:167;24197:751;24071:877;;:::o;24954:343::-;25107:4;25145:3;25134:9;25130:19;25122:27;;25159:131;25287:1;25276:9;25272:17;25263:6;25159:131;:::i;:::-;24954:343;;;;:::o;25303:226::-;25443:34;25439:1;25431:6;25427:14;25420:58;25512:9;25507:2;25499:6;25495:15;25488:34;25303:226;:::o;25535:366::-;25677:3;25698:67;25762:2;25757:3;25698:67;:::i;:::-;25691:74;;25774:93;25863:3;25774:93;:::i;:::-;25892:2;25887:3;25883:12;25876:19;;25535:366;;;:::o;25907:419::-;26073:4;26111:2;26100:9;26096:18;26088:26;;26160:9;26154:4;26150:20;26146:1;26135:9;26131:17;26124:47;26188:131;26314:4;26188:131;:::i;:::-;26180:139;;25907:419;;;:::o;26332:179::-;26472:31;26468:1;26460:6;26456:14;26449:55;26332:179;:::o;26517:366::-;26659:3;26680:67;26744:2;26739:3;26680:67;:::i;:::-;26673:74;;26756:93;26845:3;26756:93;:::i;:::-;26874:2;26869:3;26865:12;26858:19;;26517:366;;;:::o;26889:419::-;27055:4;27093:2;27082:9;27078:18;27070:26;;27142:9;27136:4;27132:20;27128:1;27117:9;27113:17;27106:47;27170:131;27296:4;27170:131;:::i;:::-;27162:139;;26889:419;;;:::o;27314:180::-;27362:77;27359:1;27352:88;27459:4;27456:1;27449:15;27483:4;27480:1;27473:15;27500:85;27545:7;27574:5;27563:16;;27500:85;;;:::o;27591:60::-;27619:3;27640:5;27633:12;;27591:60;;;:::o;27657:158::-;27715:9;27748:61;27766:42;27775:32;27801:5;27775:32;:::i;:::-;27766:42;:::i;:::-;27748:61;:::i;:::-;27735:74;;27657:158;;;:::o;27821:147::-;27916:45;27955:5;27916:45;:::i;:::-;27911:3;27904:58;27821:147;;:::o;27974:238::-;28075:4;28113:2;28102:9;28098:18;28090:26;;28126:79;28202:1;28191:9;28187:17;28178:6;28126:79;:::i;:::-;27974:238;;;;:::o;28218:170::-;28358:22;28354:1;28346:6;28342:14;28335:46;28218:170;:::o;28394:366::-;28536:3;28557:67;28621:2;28616:3;28557:67;:::i;:::-;28550:74;;28633:93;28722:3;28633:93;:::i;:::-;28751:2;28746:3;28742:12;28735:19;;28394:366;;;:::o;28766:419::-;28932:4;28970:2;28959:9;28955:18;28947:26;;29019:9;29013:4;29009:20;29005:1;28994:9;28990:17;28983:47;29047:131;29173:4;29047:131;:::i;:::-;29039:139;;28766:419;;;:::o;29191:172::-;29331:24;29327:1;29319:6;29315:14;29308:48;29191:172;:::o;29369:366::-;29511:3;29532:67;29596:2;29591:3;29532:67;:::i;:::-;29525:74;;29608:93;29697:3;29608:93;:::i;:::-;29726:2;29721:3;29717:12;29710:19;;29369:366;;;:::o;29741:419::-;29907:4;29945:2;29934:9;29930:18;29922:26;;29994:9;29988:4;29984:20;29980:1;29969:9;29965:17;29958:47;30022:131;30148:4;30022:131;:::i;:::-;30014:139;;29741:419;;;:::o;30166:170::-;30306:22;30302:1;30294:6;30290:14;30283:46;30166:170;:::o;30342:366::-;30484:3;30505:67;30569:2;30564:3;30505:67;:::i;:::-;30498:74;;30581:93;30670:3;30581:93;:::i;:::-;30699:2;30694:3;30690:12;30683:19;;30342:366;;;:::o;30714:419::-;30880:4;30918:2;30907:9;30903:18;30895:26;;30967:9;30961:4;30957:20;30953:1;30942:9;30938:17;30931:47;30995:131;31121:4;30995:131;:::i;:::-;30987:139;;30714:419;;;:::o;31139:177::-;31279:29;31275:1;31267:6;31263:14;31256:53;31139:177;:::o;31322:366::-;31464:3;31485:67;31549:2;31544:3;31485:67;:::i;:::-;31478:74;;31561:93;31650:3;31561:93;:::i;:::-;31679:2;31674:3;31670:12;31663:19;;31322:366;;;:::o;31694:419::-;31860:4;31898:2;31887:9;31883:18;31875:26;;31947:9;31941:4;31937:20;31933:1;31922:9;31918:17;31911:47;31975:131;32101:4;31975:131;:::i;:::-;31967:139;;31694:419;;;:::o;32119:169::-;32259:21;32255:1;32247:6;32243:14;32236:45;32119:169;:::o;32294:366::-;32436:3;32457:67;32521:2;32516:3;32457:67;:::i;:::-;32450:74;;32533:93;32622:3;32533:93;:::i;:::-;32651:2;32646:3;32642:12;32635:19;;32294:366;;;:::o;32666:419::-;32832:4;32870:2;32859:9;32855:18;32847:26;;32919:9;32913:4;32909:20;32905:1;32894:9;32890:17;32883:47;32947:131;33073:4;32947:131;:::i;:::-;32939:139;;32666:419;;;:::o;33091:147::-;33192:11;33229:3;33214:18;;33091:147;;;;:::o;33244:114::-;;:::o;33364:398::-;33523:3;33544:83;33625:1;33620:3;33544:83;:::i;:::-;33537:90;;33636:93;33725:3;33636:93;:::i;:::-;33754:1;33749:3;33745:11;33738:18;;33364:398;;;:::o;33768:379::-;33952:3;33974:147;34117:3;33974:147;:::i;:::-;33967:154;;34138:3;34131:10;;33768:379;;;:::o;34153:156::-;34293:8;34289:1;34281:6;34277:14;34270:32;34153:156;:::o;34315:365::-;34457:3;34478:66;34542:1;34537:3;34478:66;:::i;:::-;34471:73;;34553:93;34642:3;34553:93;:::i;:::-;34671:2;34666:3;34662:12;34655:19;;34315:365;;;:::o;34686:419::-;34852:4;34890:2;34879:9;34875:18;34867:26;;34939:9;34933:4;34929:20;34925:1;34914:9;34910:17;34903:47;34967:131;35093:4;34967:131;:::i;:::-;34959:139;;34686:419;;;:::o;35111:175::-;35251:27;35247:1;35239:6;35235:14;35228:51;35111:175;:::o;35292:366::-;35434:3;35455:67;35519:2;35514:3;35455:67;:::i;:::-;35448:74;;35531:93;35620:3;35531:93;:::i;:::-;35649:2;35644:3;35640:12;35633:19;;35292:366;;;:::o;35664:419::-;35830:4;35868:2;35857:9;35853:18;35845:26;;35917:9;35911:4;35907:20;35903:1;35892:9;35888:17;35881:47;35945:131;36071:4;35945:131;:::i;:::-;35937:139;;35664:419;;;:::o;36089:168::-;36229:20;36225:1;36217:6;36213:14;36206:44;36089:168;:::o;36263:366::-;36405:3;36426:67;36490:2;36485:3;36426:67;:::i;:::-;36419:74;;36502:93;36591:3;36502:93;:::i;:::-;36620:2;36615:3;36611:12;36604:19;;36263:366;;;:::o;36635:419::-;36801:4;36839:2;36828:9;36824:18;36816:26;;36888:9;36882:4;36878:20;36874:1;36863:9;36859:17;36852:47;36916:131;37042:4;36916:131;:::i;:::-;36908:139;;36635:419;;;:::o;37060:224::-;37200:34;37196:1;37188:6;37184:14;37177:58;37269:7;37264:2;37256:6;37252:15;37245:32;37060:224;:::o;37290:366::-;37432:3;37453:67;37517:2;37512:3;37453:67;:::i;:::-;37446:74;;37529:93;37618:3;37529:93;:::i;:::-;37647:2;37642:3;37638:12;37631:19;;37290:366;;;:::o;37662:419::-;37828:4;37866:2;37855:9;37851:18;37843:26;;37915:9;37909:4;37905:20;37901:1;37890:9;37886:17;37879:47;37943:131;38069:4;37943:131;:::i;:::-;37935:139;;37662:419;;;:::o;38087:167::-;38227:19;38223:1;38215:6;38211:14;38204:43;38087:167;:::o;38260:366::-;38402:3;38423:67;38487:2;38482:3;38423:67;:::i;:::-;38416:74;;38499:93;38588:3;38499:93;:::i;:::-;38617:2;38612:3;38608:12;38601:19;;38260:366;;;:::o;38632:419::-;38798:4;38836:2;38825:9;38821:18;38813:26;;38885:9;38879:4;38875:20;38871:1;38860:9;38856:17;38849:47;38913:131;39039:4;38913:131;:::i;:::-;38905:139;;38632:419;;;:::o
Swarm Source
ipfs://4532ab2fd74c15b3cc5834bb2c6d3aef40a59e7be6eb01d194f83e5ecff339a9
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.