More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 158 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Finalize Last Ro... | 7047010 | 46 hrs ago | IN | 0 ETH | 0.00000795 | ||||
Donate | 7045184 | 47 hrs ago | IN | 0 ETH | 0.00000852 | ||||
Finalize Last Ro... | 6842742 | 4 days ago | IN | 0 ETH | 0.0000076 | ||||
Donate | 6836903 | 4 days ago | IN | 0 ETH | 0.00000831 | ||||
Finalize Last Ro... | 6816673 | 5 days ago | IN | 0 ETH | 0.00000801 | ||||
Donate | 6814952 | 5 days ago | IN | 0 ETH | 0.00000941 | ||||
Finalize Last Ro... | 6504383 | 8 days ago | IN | 0 ETH | 0.00000769 | ||||
Donate | 6502656 | 8 days ago | IN | 0 ETH | 0.00000992 | ||||
Donate | 6498602 | 8 days ago | IN | 0 ETH | 0.00000844 | ||||
Donate | 6497395 | 9 days ago | IN | 0 ETH | 0.00000862 | ||||
Finalize Last Ro... | 6150173 | 13 days ago | IN | 0 ETH | 0.00000664 | ||||
Donate | 6077825 | 14 days ago | IN | 0 ETH | 0.00001049 | ||||
Donate | 6066786 | 14 days ago | IN | 0 ETH | 0.0000095 | ||||
Donate | 6065054 | 14 days ago | IN | 0 ETH | 0.00000903 | ||||
Donate | 6017640 | 14 days ago | IN | 0 ETH | 0.00000868 | ||||
Finalize Last Ro... | 6007008 | 14 days ago | IN | 0 ETH | 0.00000468 | ||||
Donate | 6006957 | 14 days ago | IN | 0 ETH | 0.00000428 | ||||
Donate | 6006947 | 14 days ago | IN | 0 ETH | 0.00000454 | ||||
Donate | 6006939 | 14 days ago | IN | 0 ETH | 0.00000449 | ||||
Donate | 6006937 | 14 days ago | IN | 0 ETH | 0.00000428 | ||||
Donate | 6006917 | 14 days ago | IN | 0 ETH | 0.00000455 | ||||
Donate | 6006917 | 14 days ago | IN | 0 ETH | 0.00000613 | ||||
Donate | 6006881 | 14 days ago | IN | 0 ETH | 0.00000589 | ||||
Donate | 6006867 | 14 days ago | IN | 0 ETH | 0.00000449 | ||||
Donate | 6006813 | 14 days ago | IN | 0 ETH | 0.00000449 |
Latest 1 internal transaction
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5585426 | 19 days ago | Contract Creation | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Contract Name:
PotContract
Compiler Version
v0.8.9+commit.e5eed63a
ZkSolc Version
v1.5.12
Optimization Enabled:
Yes with Mode 3
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.9; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/security/ReentrancyGuard.sol"; import "@openzeppelin/contracts/access/Ownable.sol"; contract PotContract is ReentrancyGuard, Ownable { struct RoundState { address lastDonor; uint256 endTime; uint256 roundCounter; bool isActive; } struct TokenInfo { bool isWhitelisted; uint256 minDonation; uint256 potBalance; uint256 taxPool; // Accumulated tax from donations } RoundState public currentRound; mapping(address => TokenInfo) public tokenInfo; address[] public whitelistedTokens; bool public isContractActive = true; uint256 public constant ROUND_DURATION = 30 minutes; uint256 public constant OVERTIME_EXTENSION = 30 minutes; uint256 public constant NO_EXTENSION_PERIOD = 5 minutes; uint256 public constant TAX_PERCENT = 2; // Previously JACKPOT_PERCENT uint256 public constant SUDDEN_DEATH_TIME = 5; uint256 public constant MAX_DONORS_PER_ROUND = 1000; event TokenWhitelisted(address indexed token, uint256 minDonation); event TokenDelisted(address indexed token); event DonationReceived(address indexed token, address indexed donor, uint256 amount); event RoundStarted(uint256 endTime); event RoundEnded(address winner); event TaxCollected(address indexed token, uint256 amount); modifier noActiveRound() { require(!currentRound.isActive, "Round is active"); _; } function whitelistToken(address token, uint256 minDonation) external onlyOwner { require(token != address(0), "Invalid token address"); require(minDonation > 0, "Min donation must be > 0"); require(!tokenInfo[token].isWhitelisted, "Token already whitelisted"); tokenInfo[token] = TokenInfo({ isWhitelisted: true, minDonation: minDonation, potBalance: 0, taxPool: 0 }); whitelistedTokens.push(token); emit TokenWhitelisted(token, minDonation); } function delistToken(address token) external onlyOwner { require(tokenInfo[token].isWhitelisted, "Token not whitelisted"); require(tokenInfo[token].potBalance == 0, "Pot balance not zero"); require(tokenInfo[token].taxPool == 0, "Tax balance not zero"); require(IERC20(token).balanceOf(address(this)) == 0, "Token balance not zero"); tokenInfo[token].isWhitelisted = false; // Remove from whitelistedTokens array for (uint i = 0; i < whitelistedTokens.length; i++) { if (whitelistedTokens[i] == token) { whitelistedTokens[i] = whitelistedTokens[whitelistedTokens.length - 1]; whitelistedTokens.pop(); break; } } emit TokenDelisted(token); } function startNewRound() internal { require(whitelistedTokens.length > 0, "No whitelisted tokens"); require(isContractActive, "Contract is disabled"); currentRound.endTime = block.timestamp + ROUND_DURATION; currentRound.lastDonor = address(0); currentRound.isActive = true; emit RoundStarted(currentRound.endTime); } // Allow contract to receive ETH for testing purposes receive() external payable {} constructor() { _transferOwnership(msg.sender); } function setMinDonation(address token, uint256 amount) external onlyOwner { TokenInfo storage info = tokenInfo[token]; require(info.isWhitelisted, "Token not whitelisted"); info.minDonation = amount; } function donate(address token, uint256 amount) external nonReentrant { require(token != address(0), "Zero address token"); TokenInfo storage info = tokenInfo[token]; require(info.isWhitelisted, "Token not whitelisted"); require(amount >= info.minDonation, "Amount below minimum"); // First, handle any pending round finalization if (currentRound.isActive && block.timestamp >= currentRound.endTime + SUDDEN_DEATH_TIME) { finalizeRound(); } // Start new round if needed if (!currentRound.isActive) { startNewRound(); } uint256 balanceBefore = IERC20(token).balanceOf(address(this)); // Transfer tokens IERC20(token).transferFrom(msg.sender, address(this), amount); // Verify received amount uint256 actualAmount = IERC20(token).balanceOf(address(this)) - balanceBefore; require(actualAmount >= amount, "Fee on transfer tokens not supported"); // Update balances if (currentRound.lastDonor == address(0)) { info.potBalance += amount; } else { uint256 taxAmount = (amount * TAX_PERCENT) / 100; info.taxPool += taxAmount; info.potBalance += (amount - taxAmount); } currentRound.lastDonor = msg.sender; // Only extend time if we're not in the last 5 minutes if (block.timestamp < currentRound.endTime - NO_EXTENSION_PERIOD) { // Calculate the maximum allowed end time (30 minutes from now) uint256 maxEndTime = block.timestamp + OVERTIME_EXTENSION; // Calculate the new end time after extension uint256 newEndTime = currentRound.endTime + OVERTIME_EXTENSION; // Use the earlier of the two times currentRound.endTime = newEndTime < maxEndTime ? newEndTime : maxEndTime; } emit DonationReceived(token, msg.sender, amount); } function finalizeRound() internal { require(currentRound.isActive, "No active round"); require(currentRound.lastDonor != address(0), "No winner in this round"); address winner = currentRound.lastDonor; currentRound.roundCounter++; currentRound.isActive = false; // Distribute pot balances for (uint i = 0; i < whitelistedTokens.length; i++) { address token = whitelistedTokens[i]; TokenInfo storage info = tokenInfo[token]; if (info.potBalance > 0) { uint256 winnings = info.potBalance; info.potBalance = 0; require( IERC20(token).transfer(winner, winnings), "Transfer to winner failed" ); } } emit RoundEnded(winner); } function finalizeLastRound() external { require(currentRound.lastDonor != address(0), "No winner in this round"); // Check if enough time has passed since the last donation require( block.timestamp >= currentRound.endTime + SUDDEN_DEATH_TIME, "Round not finished yet" ); finalizeRound(); } function setContractActive(bool _isActive) external onlyOwner { isContractActive = _isActive; } function collectTax() external onlyOwner { for (uint i = 0; i < whitelistedTokens.length; i++) { address token = whitelistedTokens[i]; TokenInfo storage info = tokenInfo[token]; // If there's any tax to collect if (info.taxPool > 0) { uint256 taxAmount = info.taxPool; info.taxPool = 0; require(IERC20(token).transfer(msg.sender, taxAmount), "Transfer failed"); emit TaxCollected(token, taxAmount); } } } function getWhitelistedTokens() external view returns (address[] memory) { return whitelistedTokens; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (security/ReentrancyGuard.sol) pragma solidity ^0.8.0; /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. */ abstract contract ReentrancyGuard { // Booleans are more expensive than uint256 or any type that takes up a full // word because each write operation emits an extra SLOAD to first read the // slot's contents, replace the bits taken up by the boolean, and then write // back. This is the compiler's defense against contract upgrades and // pointer aliasing, and it cannot be disabled. // The values being non-zero value makes deployment a bit more expensive, // but in exchange the refund on every call to nonReentrant will be lower in // amount. Since refunds are capped to a percentage of the total // transaction's gas, it is best to keep them low in cases like this one, to // increase the likelihood of the full refund coming into effect. uint256 private constant _NOT_ENTERED = 1; uint256 private constant _ENTERED = 2; uint256 private _status; constructor() { _status = _NOT_ENTERED; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and making it call a * `private` function that does the actual work. */ modifier nonReentrant() { _nonReentrantBefore(); _; _nonReentrantAfter(); } function _nonReentrantBefore() private { // On the first call to nonReentrant, _status will be _NOT_ENTERED require(_status != _ENTERED, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _status = _ENTERED; } function _nonReentrantAfter() private { // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _status = _NOT_ENTERED; } /** * @dev Returns true if the reentrancy guard is currently set to "entered", which indicates there is a * `nonReentrant` function in the call stack. */ function _reentrancyGuardEntered() internal view returns (bool) { return _status == _ENTERED; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (access/Ownable.sol) pragma solidity ^0.8.0; import "../utils/Context.sol"; /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _transferOwnership(_msgSender()); } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { _checkOwner(); _; } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if the sender is not the owner. */ function _checkOwner() internal view virtual { require(owner() == _msgSender(), "Ownable: caller is not the owner"); } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby disabling any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Internal function without access restriction. */ function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address from, address to, uint256 amount) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Context.sol) pragma solidity ^0.8.0; /** * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
{ "optimizer": { "enabled": true, "mode": "3" }, "outputSelection": { "*": { "*": [ "abi" ] } }, "detectMissingLibraries": false, "forceEVMLA": false, "enableEraVMExtensions": false, "codegen": "evmla", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"address","name":"donor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"DonationReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"winner","type":"address"}],"name":"RoundEnded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"endTime","type":"uint256"}],"name":"RoundStarted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TaxCollected","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"}],"name":"TokenDelisted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"minDonation","type":"uint256"}],"name":"TokenWhitelisted","type":"event"},{"inputs":[],"name":"MAX_DONORS_PER_ROUND","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NO_EXTENSION_PERIOD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OVERTIME_EXTENSION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ROUND_DURATION","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUDDEN_DEATH_TIME","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TAX_PERCENT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentRound","outputs":[{"internalType":"address","name":"lastDonor","type":"address"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"uint256","name":"roundCounter","type":"uint256"},{"internalType":"bool","name":"isActive","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"delistToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"donate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalizeLastRound","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getWhitelistedTokens","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isContractActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isActive","type":"bool"}],"name":"setContractActive","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setMinDonation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenInfo","outputs":[{"internalType":"bool","name":"isWhitelisted","type":"bool"},{"internalType":"uint256","name":"minDonation","type":"uint256"},{"internalType":"uint256","name":"potBalance","type":"uint256"},{"internalType":"uint256","name":"taxPool","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"minDonation","type":"uint256"}],"name":"whitelistToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"whitelistedTokens","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
9c4d535b00000000000000000000000000000000000000000000000000000000000000000100026391c9ee72cc634a79ec5f29c8789f094857a305dd3061a1151f98643500000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000000
Deployed Bytecode
0x00080000000000020000008003000039000000400030043f0000000100200190000000300000c13d00000060021002700000020002200197000000040020008c000000430000413d000000000401043b000000e004400270000002020040009c000000470000a13d000002030040009c000000520000a13d000002040040009c0000008b0000213d000002080040009c000001a00000613d000002090040009c000002420000613d0000020a0040009c000005840000c13d000000440020008c000005840000413d0000000002000416000000000002004b000005840000c13d0000000402100370000000000202043b000300000002001d0000021f0020009c000005840000213d0000002401100370000000000201043b000000000100041a000000020010008c0000035a0000c13d0000022501000041000000800010043f0000002001000039000000840010043f0000001f01000039000000a40010043f0000024601000041000000c40010043f0000024501000041000007ff000104300000000001000416000000000001004b000005840000c13d0000000101000039000000000010041b000000000100041107fd07d70000040f0000000801000039000000000201041a0000025c0220019700000001022001bf000000000021041b000000000100041107fd07d70000040f0000002001000039000001000010044300000120000004430000020101000041000007fe0001042e000000000002004b000005840000c13d0000000001000019000007fe0001042e000002110040009c000000780000213d000002180040009c000000a30000a13d000002190040009c000001ad0000613d0000021a0040009c0000020a0000613d0000021b0040009c000000d20000613d000005840000013d0000020b0040009c000000980000a13d0000020c0040009c000000d90000613d0000020d0040009c000001920000613d0000020e0040009c000005840000c13d000000440020008c000005840000413d0000000002000416000000000002004b000005840000c13d0000000402100370000000000202043b000800000002001d0000021f0020009c000005840000213d0000002401100370000000000301043b0000000101000039000000000101041a0000021f011001970000000002000411000000000021004b000002300000c13d000000080000006b000003690000c13d0000022501000041000000800010043f0000002001000039000000840010043f0000001501000039000000a40010043f0000024c01000041000000c40010043f0000024501000041000007ff00010430000002120040009c000000b50000a13d000002130040009c000001bf0000613d000002140040009c000002390000613d000002150040009c000005840000c13d0000000001000416000000000001004b000005840000c13d0000000801000039000000000101041a000000ff001001900000000001000039000000010100c039000000800010043f0000021e01000041000007fe0001042e000002050040009c000001d40000613d000002060040009c000002490000613d000002070040009c000005840000c13d0000000001000416000000000001004b000005840000c13d0000000201000039000000800010043f0000021e01000041000007fe0001042e0000020f0040009c000001f10000613d000002100040009c000005840000c13d0000000001000416000000000001004b000005840000c13d0000012c01000039000000800010043f0000021e01000041000007fe0001042e0000021c0040009c000000d20000613d0000021d0040009c000005840000c13d000000240020008c000005840000413d0000000002000416000000000002004b000005840000c13d0000000401100370000000000101043b0000000702000039000000000302041a000000000013004b000005840000a13d000000000020043f0000022b0110009a0000023d0000013d000002160040009c000002760000613d000002170040009c000005840000c13d0000000001000416000000000001004b000005840000c13d0000000101000039000000000201041a0000021f032001970000000005000411000000000053004b000002300000c13d0000022202200197000000000021041b0000000001000414000002000010009c0000020001008041000000c00110021000000223011001c70000800d0200003900000003030000390000022404000041000000000600001907fd07f30000040f0000000100200190000005840000613d000000400100043d000001bb0000013d0000000001000416000000000001004b000005840000c13d0000070801000039000000800010043f0000021e01000041000007fe0001042e000000240020008c000005840000413d0000000002000416000000000002004b000005840000c13d0000000401100370000000000101043b000800000001001d0000021f0010009c000005840000213d0000000101000039000000000101041a0000021f011001970000000002000411000000000021004b000002300000c13d0000000801000029000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000101043b000000000101041a000000ff00100190000003920000613d0000000801000029000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000101043b0000000201100039000000000101041a000000000001004b000004350000c13d0000000801000029000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000101043b0000000301100039000000000101041a000000000001004b000004b10000c13d0000022c010000410000000000100443000000080100002900000004001004430000000001000414000002000010009c0000020001008041000000c0011002100000022d011001c7000080020200003907fd07f80000040f0000000100200190000007bf0000613d000000000101043b000000000001004b000005840000613d000000400300043d000700000003001d0000023901000041000000000013043500000000010004100000021f0110019700000004023000390000000000120435000002000030009c0000020001000041000000000103401900000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f0000023a011001c7000000080200002907fd07f80000040f00000060031002700000020003300197000000200030008c000000200400003900000000040340190000001f0540018f0000002006400190000000070a0000290000000704600029000001520000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b0000014e0000c13d000000000005004b0000015f0000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f00000000005404350000000100200190000006990000613d0000001f0130003900000231021001970000000001a20019000000000021004b00000000020000390000000102004039000002320010009c000002960000213d0000000100200190000002960000c13d000000400010043f000000200030008c000005840000413d00000000020a0433000000000002004b000006b10000c13d0000000801000029000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000101043b000000000201041a0000025c02200197000000000021041b0000000701000039000000000201041a000000000002004b00000008050000290000075d0000613d000000000010043f00000000030000190000022b0430009a000000000704041a0000021f06700197000000000056004b0000073a0000613d0000000103300039000000000023004b000001890000413d0000075d0000013d0000000001000416000000000001004b000005840000c13d0000000201000039000000000101041a0000021f001001980000027d0000c13d0000008001000039000000440210003900000237030000410000000000320435000000240210003900000017030000390000053e0000013d0000000001000416000000000001004b000005840000c13d0000000702000039000000000102041a000000800010043f000000000020043f0000002002000039000000000001004b000002870000c13d000000a0010000390000000005020019000003410000013d0000000001000416000000000001004b000005840000c13d0000000101000039000000000101041a0000021f011001970000000002000411000000000021004b000002300000c13d0000000701000039000000000101041a000000000001004b000002b40000c13d0000008001000039000002000010009c00000200010080410000004001100210000007fe0001042e0000000001000416000000000001004b000005840000c13d0000000501000039000000000101041a0000000402000039000000000202041a0000000303000039000000000303041a0000000204000039000000000404041a0000021f04400197000000800040043f000000a00030043f000000c00020043f000000ff001001900000000001000039000000010100c039000000e00010043f0000025701000041000007fe0001042e000000240020008c000005840000413d0000000002000416000000000002004b000005840000c13d0000000401100370000000000601043b0000021f0060009c000005840000213d0000000101000039000000000201041a0000021f032001970000000005000411000000000053004b000002300000c13d000000000006004b000003750000c13d0000022501000041000000800010043f0000002001000039000000840010043f0000002601000039000000a40010043f0000022601000041000000c40010043f0000022701000041000000e40010043f0000022801000041000007ff00010430000000240020008c000005840000413d0000000002000416000000000002004b000005840000c13d0000000401100370000000000101043b000000000001004b0000000002000039000000010200c039000000000021004b000005840000c13d0000000102000039000000000202041a0000021f022001970000000003000411000000000032004b000002300000c13d0000000802000039000000000302041a0000025c03300197000000000113019f000000000012041b0000025601000041000007fe0001042e000000440020008c000005840000413d0000000002000416000000000002004b000005840000c13d0000000402100370000000000202043b0000021f0020009c000005840000213d0000002401100370000000000401043b0000000101000039000000000101041a0000021f011001970000000003000411000000000031004b000002300000c13d000800000004001d000000000020043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000101043b000000000201041a000000ff00200190000003920000613d00000001011000390000000802000029000000000021041b000000d00000013d0000022501000041000000800010043f0000002001000039000000840010043f000000a40010043f0000025901000041000000c40010043f0000024501000041000007ff000104300000000001000416000000000001004b000005840000c13d0000000101000039000000000101041a0000021f01100197000000800010043f0000021e01000041000007fe0001042e0000000001000416000000000001004b000005840000c13d000003e801000039000000800010043f0000021e01000041000007fe0001042e000000240020008c000005840000413d0000000002000416000000000002004b000005840000c13d0000000401100370000000000101043b0000021f0010009c000005840000213d000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000101043b0000000102100039000000000202041a0000000203100039000000000303041a000000000401041a0000000301100039000000000101041a000000400500043d000000600650003900000000001604350000004001500039000000000031043500000020015000390000000000210435000000ff004001900000000001000039000000010100c0390000000000150435000002000050009c0000020005008041000000400150021000000221011001c7000007fe0001042e0000000001000416000000000001004b000005840000c13d0000000501000039000000800010043f0000021e01000041000007fe0001042e0000000301000039000000000201041a0000025d0020009c0000029c0000413d0000024f01000041000000000010043f0000001101000039000000040010043f0000023a01000041000007ff000104300000024704000041000000a00500003900000000060000190000000007050019000000000504041a0000021f05500197000000000557043600000001044000390000000106600039000000000016004b0000028a0000413d000000410170008a0000025e05100197000002480050009c000003400000a13d0000024f01000041000000000010043f0000004101000039000000040010043f0000023a01000041000007ff00010430000800000002001d000002290100004100000000001004430000000001000414000002000010009c0000020001008041000000c0011002100000022a011001c70000800b0200003907fd07f80000040f0000000100200190000007bf0000613d00000008020000290000000502200039000000000101043b000000000021004b000003fb0000813d000000400100043d00000044021000390000024e030000410000000000320435000000240210003900000016030000390000053e0000013d0000000002000019000002bc0000013d000000060200002900000001022000390000000701000039000000000101041a000000000012004b000000d00000813d000600000002001d0000022b0120009a000000000101041a0000021f01100197000800000001001d000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000101043b0000000301100039000000000201041a000700000002001d000000000002004b000002b60000613d000000000001041b0000022c010000410000000000100443000000080100002900000004001004430000000001000414000002000010009c0000020001008041000000c0011002100000022d011001c7000080020200003907fd07f80000040f0000000100200190000007bf0000613d000000000101043b000000000001004b000005840000613d000000400300043d000500000003001d0000002401300039000000070200002900000000002104350000022e010000410000000000130435000000040130003900000000020004110000000000210435000002000030009c0000020001000041000000000103401900000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f0000022f011001c7000000080200002907fd07f30000040f000000050a00002900000060031002700000020003300197000000200030008c00000020060000390000000006034019000000200560019000000000045a0019000003090000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000003050000c13d0000001f06600190000003160000613d000000000551034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f00000000005404350000000100200190000004110000613d0000001f0130003900000231021001970000000001a20019000000000021004b00000000020000390000000102004039000002320010009c000002960000213d0000000100200190000002960000c13d000000400010043f000000200030008c000005840000413d00000000020a0433000000000002004b0000000003000039000000010300c039000000000032004b000005840000c13d000000000002004b0000042f0000613d00000007020000290000000000210435000002000010009c000002000100804100000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f00000235011001c70000800d0200003900000002030000390000025a04000041000000080500002907fd07f30000040f0000000100200190000002b60000c13d000005840000013d0000008001500039000000400010043f0000000000210435000000a002500039000000800400043d0000000000420435000000c002500039000000000004004b000003510000613d0000000005000019000000200330003900000000060304330000021f0660019700000000026204360000000105500039000000000045004b0000034a0000413d0000000002120049000002000020009c00000200020080410000006002200210000002000010009c00000200010080410000004001100210000000000112019f000007fe0001042e0000000201000039000000000010041b0000000301000029000000000001004b000003810000c13d0000022501000041000000800010043f0000002001000039000000840010043f0000001201000039000000a40010043f0000024401000041000000c40010043f0000024501000041000007ff00010430000000000003004b000003990000c13d0000022501000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f0000024b01000041000000c40010043f0000024501000041000007ff000104300000022202200197000000000262019f000000000021041b0000000001000414000002000010009c0000020001008041000000c00110021000000223011001c70000800d0200003900000003030000390000022404000041000000cd0000013d000200000002001d000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000301043b000000000103041a000000ff00100190000004030000c13d000000400100043d000000440210003900000258030000410000000000320435000000240210003900000015030000390000053e0000013d000700000003001d0000000801000029000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000400300043d000000000101043b000000000101041a000000ff00100190000004390000c13d000002480030009c000002960000213d0000008001300039000000400010043f00000020023000390000000701000029000400000002001d0000000000120435000000010100003900000000001304350000006001300039000500000001001d0000000000010435000600000003001d0000004001300039000300000001001d00000000000104350000000801000029000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000101043b000000000201041a0000025c0220019700000006030000290000000003030433000000000003004b000000010220c1bf000000000021041b000000040200002900000000020204330000000103100039000000000023041b000000030200002900000000020204330000000203100039000000000023041b000000030110003900000005020000290000000002020433000000000021041b0000000702000039000000000102041a000002320010009c000002960000213d0000000103100039000000000032041b000000000020043f0000022b0110009a000000000201041a00000222022001970000000805000029000000000252019f000000000021041b000000400100043d00000007020000290000000000210435000002000010009c000002000100804100000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f00000235011001c70000800d0200003900000002030000390000024a04000041000000cd0000013d0000000501000039000000000201041a000000ff002001900000040b0000c13d000000400100043d00000044021000390000024d03000041000004310000013d0000000101300039000000000101041a000000020010006c000004490000a13d000000400100043d000000440210003900000243030000410000053b0000013d0000000203000039000000000303041a0004021f0030019c000004580000c13d000000400100043d0000019a0000013d0000001f0530018f0000023006300198000000400200043d00000000046200190000041c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000004180000c13d000000000005004b000004290000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000006001300210000002000020009c00000200020080410000004002200210000000000112019f000007ff0001043000000044021000390000025b03000041000000000032043500000024021000390000000f030000390000053e0000013d000000400100043d000000440210003900000250030000410000053b0000013d00000044013000390000024902000041000000000021043500000024013000390000001902000039000000000021043500000225010000410000000000130435000000040130003900000020020000390000000000210435000002000030009c0000020003008041000000400130021000000234011001c7000007ff00010430000100000003001d0000000501000039000000000201041a000000ff00200190000004730000c13d000000ff00200190000005740000c13d0000000701000039000000000101041a000000000001004b000005340000c13d000000400100043d00000044021000390000024203000041000003950000013d0000000403000039000000000403041a000000010440003a000002810000613d000000000043041b0000025c02200197000000000021041b0000000701000039000000000101041a000000000001004b000004b50000c13d000000400100043d00000004020000290000000000210435000002000010009c000002000100804100000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f00000235011001c70000800d0200003900000001030000390000023604000041000000cd0000013d0000000301000039000000000201041a000800000002001d0000025f0020009c000002810000213d000002290100004100000000001004430000000001000414000002000010009c0000020001008041000000c0011002100000022a011001c70000800b0200003907fd07f80000040f0000000100200190000007bf0000613d0000000502000039000000000202041a00000008030000290000000503300039000000000101043b000000000031004b0000044e0000413d000000ff00200190000003ff0000613d0000000201000039000000000101041a0004021f0010019c0000040f0000613d0000000401000039000000000301041a000000010330003a000002810000613d000000000031041b0000025c012001970000000502000039000000000012041b0000000701000039000000000101041a000000000001004b000006b40000c13d000000400100043d00000004020000290000000000210435000002000010009c000002000100804100000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f00000235011001c70000800d020000390000000103000039000002360400004107fd07f30000040f0000000100200190000005840000613d0000000501000039000000000201041a0000044e0000013d000000400100043d000000440210003900000251030000410000053b0000013d0000000002000019000004bd0000013d000000070200002900000001022000390000000701000039000000000101041a000000000012004b000004630000813d000700000002001d0000022b0120009a000000000101041a0000021f01100197000800000001001d000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000101043b0000000201100039000000000201041a000000000002004b000004b70000613d000600000002001d000000000001041b0000022c010000410000000000100443000000080100002900000004001004430000000001000414000002000010009c0000020001008041000000c0011002100000022d011001c7000080020200003907fd07f80000040f0000000100200190000007bf0000613d000000000101043b000000000001004b0000000602000029000005840000613d000000400300043d000500000003001d000000240130003900000000002104350000022e010000410000000000130435000000040130003900000004020000290000000000210435000002000030009c0000020001000041000000000103401900000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f0000022f011001c7000000080200002907fd07f30000040f000000050a00002900000060031002700000020003300197000000200030008c00000020060000390000000006034019000000200560019000000000045a00190000050a0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000005060000c13d0000001f06600190000005170000613d000000000551034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f00000000005404350000000100200190000006a50000613d0000001f0130003900000231021001970000000001a20019000000000021004b00000000020000390000000102004039000002320010009c000002960000213d0000000100200190000002960000c13d000000400010043f000000200030008c000005840000413d00000000020a0433000000000002004b0000000003000039000000010300c039000000000032004b000005840000c13d000000000002004b000004b70000c13d000000440210003900000233030000410000000000320435000000240210003900000019030000390000053e0000013d0000000801000039000000000101041a000000ff00100190000005490000c13d000000400100043d00000044021000390000024103000041000000000032043500000024021000390000001403000039000000000032043500000225020000410000000000210435000000040210003900000020030000390000000000320435000002000010009c0000020001008041000000400110021000000234011001c7000007ff00010430000002290100004100000000001004430000000001000414000002000010009c0000020001008041000000c0011002100000022a011001c70000800b0200003907fd07f80000040f0000000100200190000007bf0000613d000000000101043b000002600010009c000002810000213d00000708011000390000000302000039000000000012041b0000000203000039000000000203041a0000022202200197000000000023041b0000000504000039000000000204041a0000025c0220019700000001022001bf000000000024041b000000400200043d0000000000120435000002000020009c000002000200804100000040012002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f00000235011001c70000800d020000390000000103000039000002380400004107fd07f30000040f0000000100200190000005840000613d0000022c010000410000000000100443000000030100002900000004001004430000000001000414000002000010009c0000020001008041000000c0011002100000022d011001c7000080020200003907fd07f80000040f0000000100200190000007bf0000613d000000000101043b000000000001004b000005860000c13d0000000001000019000007ff00010430000000400300043d000800000003001d0000023901000041000000000013043500000000010004100000021f021001970000000401300039000700000002001d0000000000210435000002000030009c0000020001000041000000000103401900000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f0000023a011001c7000000030200002907fd07f80000040f00000060031002700000020003300197000000200030008c000000200400003900000000040340190000001f0540018f0000002006400190000000080a0000290000000804600029000005ab0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000005a70000c13d000000000005004b000005b80000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f000000000054043500000001002001900000068d0000613d0000001f0130003900000231021001970000000001a20019000000000021004b00000000020000390000000102004039000002320010009c000002960000213d0000000100200190000002960000c13d000000400010043f000000200030008c000005840000413d00000000010a0433000800000001001d0000022c010000410000000000100443000000030100002900000004001004430000000001000414000002000010009c0000020001008041000000c0011002100000022d011001c7000080020200003907fd07f80000040f0000000100200190000007bf0000613d000000000101043b000000000001004b000005840000613d000000400300043d000600000003001d0000004401300039000000020200002900000000002104350000002401300039000000070200002900000000002104350000023b01000041000000000013043500000000010004110000021f021001970000000401300039000500000002001d0000000000210435000002000030009c0000020001000041000000000103401900000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f00000234011001c7000000030200002907fd07f30000040f00000060031002700000020003300197000000200030008c000000200400003900000000040340190000001f0540018f0000002006400190000000060a0000290000000604600029000006040000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000006000000c13d000000000005004b000006110000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f000000000054043500000001002001900000072e0000613d0000001f0130003900000231021001970000000001a20019000000000021004b00000000020000390000000102004039000002320010009c000002960000213d0000000100200190000002960000c13d000000400010043f000000200030008c000005840000413d00000000010a0433000000000001004b0000000002000039000000010200c039000000000021004b000005840000c13d0000022c010000410000000000100443000000030100002900000004001004430000000001000414000002000010009c0000020001008041000000c0011002100000022d011001c7000080020200003907fd07f80000040f0000000100200190000007bf0000613d000000000101043b000000000001004b000005840000613d000000400300043d000600000003001d00000239010000410000000000130435000000040130003900000007020000290000000000210435000002000030009c0000020001000041000000000103401900000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f0000023a011001c7000000030200002907fd07f80000040f00000060031002700000020003300197000000200030008c000000200400003900000000040340190000001f0540018f0000002006400190000000060a0000290000000604600029000006590000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000006550000c13d000000000005004b000006660000613d000000000661034f0000000305500210000000000704043300000000075701cf000000000757022f000000000606043b0000010005500089000000000656022f00000000055601cf000000000575019f000000000054043500000001002001900000076b0000613d0000001f0130003900000231021001970000000001a20019000000000021004b00000000020000390000000102004039000002320010009c000002960000213d0000000100200190000002960000c13d000000400010043f000000200030008c000005840000413d00000000020a0433000000080220006c000002810000413d000000020020006c000007770000813d00000064021000390000023e03000041000000000032043500000044021000390000023f03000041000000000032043500000024021000390000002403000039000000000032043500000225020000410000000000210435000000040210003900000020030000390000000000320435000002000010009c0000020001008041000000400110021000000240011001c7000007ff000104300000001f0530018f0000023006300198000000400200043d00000000046200190000041c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000006940000c13d0000041c0000013d0000001f0530018f0000023006300198000000400200043d00000000046200190000041c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000006a00000c13d0000041c0000013d0000001f0530018f0000023006300198000000400200043d00000000046200190000041c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000006ac0000c13d0000041c0000013d00000044021000390000025203000041000002b00000013d0000000002000019000006bc0000013d000000070200002900000001022000390000000701000039000000000101041a000000000012004b0000049c0000813d000700000002001d0000022b0120009a000000000101041a0000021f01100197000800000001001d000000000010043f0000000601000039000000200010043f0000000001000414000002000010009c0000020001008041000000c00110021000000220011001c7000080100200003907fd07f80000040f0000000100200190000005840000613d000000000101043b0000000201100039000000000201041a000000000002004b000006b60000613d000600000002001d000000000001041b0000022c010000410000000000100443000000080100002900000004001004430000000001000414000002000010009c0000020001008041000000c0011002100000022d011001c7000080020200003907fd07f80000040f0000000100200190000007bf0000613d000000000101043b000000000001004b000005840000613d000000400300043d000500000003001d0000002401300039000000060200002900000000002104350000022e010000410000000000130435000000040130003900000004020000290000000000210435000002000030009c0000020001000041000000000103401900000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f0000022f011001c7000000080200002907fd07f30000040f000000050a00002900000060031002700000020003300197000000200030008c00000020060000390000000006034019000000200560019000000000045a0019000007090000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b000007050000c13d0000001f06600190000007160000613d000000000551034f0000000306600210000000000704043300000000076701cf000000000767022f000000000505043b0000010006600089000000000565022f00000000056501cf000000000575019f00000000005404350000000100200190000007490000613d0000001f0130003900000231021001970000000001a20019000000000021004b00000000020000390000000102004039000002320010009c000002960000213d0000000100200190000002960000c13d000000400010043f000000200030008c000005840000413d00000000020a0433000000000002004b0000000003000039000000010300c039000000000032004b000005840000c13d000000000002004b000006b60000c13d0000052e0000013d0000001f0530018f0000023006300198000000400200043d00000000046200190000041c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007350000c13d0000041c0000013d0000022203700197000002530220009a000000000202041a0000021f02200197000000000232019f000000000024041b000000000201041a000000000002004b000007550000c13d0000024f01000041000000000010043f0000003101000039000000040010043f0000023a01000041000007ff000104300000001f0530018f0000023006300198000000400200043d00000000046200190000041c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007500000c13d0000041c0000013d000000000010043f000002530320009a000000000403041a0000022204400197000000000043041b000000010220008a000000000021041b0000000805000029000000400100043d000002000010009c000002000100804100000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f00000254011001c70000800d0200003900000002030000390000025504000041000000cd0000013d0000001f0530018f0000023006300198000000400200043d00000000046200190000041c0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000007720000c13d0000041c0000013d0000000201000039000000000101041a0000021f00100198000007c00000c13d000000010100008a000000020310014f00000001010000290000000201100039000000000201041a000000000032004b000002810000213d0000000202200029000000000021041b0000000202000039000000000102041a000002220110019700000005011001af000000000012041b0000000301000039000000000101041a000700000001001d0008012c00100094000002810000413d000002290100004100000000001004430000000001000414000002000010009c0000020001008041000000c0011002100000022a011001c70000800b0200003907fd07f80000040f0000000100200190000007bf0000613d000000000101043b000000080010006c000007a80000813d000007090200008a000000070020006b000002810000213d000000000021004b000002810000213d000007080110003900000007020000290000070802200039000000000012004b00000000020180190000000301000039000000000021041b000000400100043d00000002020000290000000000210435000002000010009c000002000100804100000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f00000235011001c70000800d0200003900000003030000390000023d040000410000000305000029000000000600041107fd07f30000040f0000000100200190000005840000613d0000000101000039000000000010041b000000d00000013d000000000001042f00000002010000290000023c0010009c000002810000213d0000000201000029000000320110011a000002610510016700000001030000290000000303300039000000000403041a000000000054004b000002810000213d0000000004140019000000000043041b0000000201100069000002610410016700000001020000290000000202200039000000000302041a000000000043004b000002810000213d0000000001130019000000000012041b000007840000013d00000000060100190000021f011001970000000102000039000000000302041a0000022204300197000000000114019f000000000012041b000000400100043d000002000010009c000002000100804100000040011002100000000002000414000002000020009c0000020002008041000000c002200210000000000112019f0000021f0530019700000254011001c70000800d020000390000000303000039000002240400004107fd07f30000040f0000000100200190000007f00000613d000000000001042d0000000001000019000007ff00010430000000000001042f000007f6002104210000000102000039000000000001042d0000000002000019000000000001042d000007fb002104230000000102000039000000000001042d0000000002000019000000000001042d000007fd00000432000007fe0001042e000007ff0001043000000000000000000000000000000000000000000000000000000000ffffffff000000020000000000000000000000000000004000000100000000000000000000000000000000000000000000000000000000000000000000000000970388b400000000000000000000000000000000000000000000000000000000e26f78ff00000000000000000000000000000000000000000000000000000000f2fde38a00000000000000000000000000000000000000000000000000000000f2fde38b00000000000000000000000000000000000000000000000000000000f5dab71100000000000000000000000000000000000000000000000000000000fd17766700000000000000000000000000000000000000000000000000000000e26f790000000000000000000000000000000000000000000000000000000000e31ef08c00000000000000000000000000000000000000000000000000000000e69d849d00000000000000000000000000000000000000000000000000000000abffc9ab00000000000000000000000000000000000000000000000000000000abffc9ac00000000000000000000000000000000000000000000000000000000c24a967400000000000000000000000000000000000000000000000000000000c4e16b7d00000000000000000000000000000000000000000000000000000000970388b5000000000000000000000000000000000000000000000000000000009e5c6c6f000000000000000000000000000000000000000000000000000000006c21b198000000000000000000000000000000000000000000000000000000008a19c8bb000000000000000000000000000000000000000000000000000000008a19c8bc000000000000000000000000000000000000000000000000000000008da5cb5b000000000000000000000000000000000000000000000000000000008f5949f9000000000000000000000000000000000000000000000000000000006c21b19900000000000000000000000000000000000000000000000000000000715018a6000000000000000000000000000000000000000000000000000000003d8705aa000000000000000000000000000000000000000000000000000000003d8705ab0000000000000000000000000000000000000000000000000000000050088a4a000000000000000000000000000000000000000000000000000000006641ea080000000000000000000000000000000000000000000000000000000007a761c7000000000000000000000000000000000000000000000000000000002154bc440000000000000000000000000000000000000020000000800000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffff02000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000002000000000000000000000000000000000000000000008000000000000000008be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e008c379a0000000000000000000000000000000000000000000000000000000004f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d955391320200000200000000000000000000000000000004000000000000000000000000599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c939781806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b830200000200000000000000000000000000000024000000000000000000000000a9059cbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004400000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffe000000000000000000000000000000000000000000000000000000001ffffffe0000000000000000000000000000000000000000000000000ffffffffffffffff5472616e7366657220746f2077696e6e6572206661696c656400000000000000000000000000000000000000000000000000006400000000000000000000000002000000000000000000000000000000000000200000000000000000000000002b9fdac57de7baa66c19a3995ca4c3dfd741dd15b8139615f022ef84e0bab2f64e6f2077696e6e657220696e207468697320726f756e6400000000000000000033a701182892fd888ed152ca2ac23771a32e814469b7cd255965471e1af3a65970a0823100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002400000000000000000000000023b872dd000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff509fb5d764cf5e98b9f02a3d86350f8085cedb516140098d2d6fc2eb6256ac247274656400000000000000000000000000000000000000000000000000000000466565206f6e207472616e7366657220746f6b656e73206e6f7420737570706f0000000000000000000000000000000000000084000000000000000000000000436f6e74726163742069732064697361626c65640000000000000000000000004e6f2077686974656c697374656420746f6b656e730000000000000000000000416d6f756e742062656c6f77206d696e696d756d0000000000000000000000005a65726f206164647265737320746f6b656e000000000000000000000000000000000000000000000000000000000000000000640000008000000000000000005265656e7472616e637947756172643a207265656e7472616e742063616c6c00a66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688000000000000000000000000000000000000000000000000ffffffffffffff7f546f6b656e20616c72656164792077686974656c697374656400000000000000e184914670d9e097e90729e2a9159866b30b1203952f0586bedca1d6fcf130a84d696e20646f6e6174696f6e206d757374206265203e20300000000000000000496e76616c696420746f6b656e206164647265737300000000000000000000004e6f2061637469766520726f756e640000000000000000000000000000000000526f756e64206e6f742066696e697368656420796574000000000000000000004e487b7100000000000000000000000000000000000000000000000000000000506f742062616c616e6365206e6f74207a65726f0000000000000000000000005461782062616c616e6365206e6f74207a65726f000000000000000000000000546f6b656e2062616c616e6365206e6f74207a65726f00000000000000000000599336d74a1247d50642b66dd6abeaa5484f6bd96b415b31bb99e26578c9397902000000000000000000000000000000000000000000000000000000000000006621c4efc5efa31320394260425b7d14cbb9d7e3754b2c98c04af66b1cbf315b00000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000080000000800000000000000000546f6b656e206e6f742077686974656c697374656400000000000000000000004f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65727f1b726f82f7a14636a7a5932448f1bce683188520ba3150fd8423989353ebf25472616e73666572206661696c65640000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff31d12774ca4a0fa347bab4696da15eb12b84a5e393338b8efc30c9534976c98e
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 34 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
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.