false
false
0

Contract Address Details

0x75cc9a4D059EF842b934f765c0D4b853b3e30E1B

Contract Name
Lottery
Creator
0xbb78ef–16399b at 0xdc82b3–ec7ba8
Balance
0 FTN ($0.00 USD)
Tokens
Fetching tokens...
Transactions
13 Transactions
Transfers
10 Transfers
Gas Used
2,346,073
Last Balance Update
4511259
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
Lottery




Optimization enabled
false
Compiler version
v0.8.20+commit.a1b79de6




EVM Version
paris




Verified at
2024-09-16T19:26:41.670023Z

Constructor Arguments

0000000000000000000000006c8c9bb7e89652b1c7d4fd00b7cce1dba2361304000000000000000000000000780fb5aca83f2e3f57ee18cc3094988ef49d8c3d0000000000000000000000000ca83dd56af172a1e04b667d6e64446d0b88c4a4000000000000000000000000bb78efaaaf9223b4840ea7defdc379a13b16399b

Arg [0] (address) : 0x6c8c9bb7e89652b1c7d4fd00b7cce1dba2361304
Arg [1] (address) : 0x780fb5aca83f2e3f57ee18cc3094988ef49d8c3d
Arg [2] (address) : 0x0ca83dd56af172a1e04b667d6e64446d0b88c4a4
Arg [3] (address) : 0xbb78efaaaf9223b4840ea7defdc379a13b16399b

              

contracts/Lottery.sol

// SPDX-License-Identifier: Unlicensed
pragma solidity 0.8.20;
import {ReentrancyGuard} from "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";
import "./utils/VRFConsumerBaseV2.sol";
import "./interfaces/IErinaceusVRF.sol";
import "hardhat/console.sol";
interface ILolik {
function submit(address _referral) external payable returns (uint256);
function swap(uint256 amount) external;
function getPooledFtnByShares(uint256 _sharesAmount) external view returns (uint256);
function getSharesByPooledFtn(uint256 _ftnAmount) external view returns (uint256);
}
contract Lottery is VRFConsumerBaseV2, Ownable {
uint256 public currentPoolID;
uint256 public nextPoolID;
uint256 public day; // test
IErinaceusVRF public erinaceusVRF;
ILolik public Lolik;
ILolik public LolikWithdraw;
IERC20 public stFTN;
uint64 public subID;
uint16 public requestConfirmations;
uint32 public gasLimit;
bytes32 public keyHash;
// tokens that are not claimed yet
uint256 public remainingTokens;
uint256 public teamRewards;
uint256 public totalDeposit;
address public team;
struct Pool {
uint256 poolStart;
uint32 countOfWinners;
uint256 totalDeposit;
uint256 totalTickets;
uint256 duration;
 
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

@openzeppelin/contracts/access/Ownable.sol

// 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.
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

@openzeppelin/contracts/security/ReentrancyGuard.sol

// 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;
}
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

@openzeppelin/contracts/token/ERC20/IERC20.sol

// 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);
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

@openzeppelin/contracts/utils/Context.sol

// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.9.4) (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;
}
function _contextSuffixLength() internal view virtual returns (uint256) {
return 0;
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

contracts/interfaces/IErinaceusVRF.sol

// SPDX-License-Identifier: MIT
pragma solidity 0.8.20;
interface IErinaceusVRF {
function requestRandomWords(
bytes32 keyHash,
uint64 subId,
uint16 requestConfirmations,
uint32 callbackGasLimit,
uint32 numWords
) external;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

contracts/utils/VRFConsumerBaseV2.sol

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.4;
/** ****************************************************************************
* @notice Interface for contracts using VRF randomness
* *****************************************************************************
* @dev PURPOSE
*
* @dev Reggie the Random Oracle (not his real job) wants to provide randomness
* @dev to Vera the verifier in such a way that Vera can be sure he's not
* @dev making his output up to suit himself. Reggie provides Vera a public key
* @dev to which he knows the secret key. Each time Vera provides a seed to
* @dev Reggie, he gives back a value which is computed completely
* @dev deterministically from the seed and the secret key.
*
* @dev Reggie provides a proof by which Vera can verify that the output was
* @dev correctly computed once Reggie tells it to her, but without that proof,
* @dev the output is indistinguishable to her from a uniform random sample
* @dev from the output space.
*
* @dev The purpose of this contract is to make it easy for unrelated contracts
* @dev to talk to Vera the verifier about the work Reggie is doing, to provide
* @dev simple access to a verifiable source of randomness. It ensures 2 things:
* @dev 1. The fulfillment came from the ErinaceusVRF
* @dev 2. The consumer contract implements fulfillRandomWords.
* *****************************************************************************
* @dev USAGE
*
* @dev Calling contracts must inherit from VRFConsumerBase, and can
* @dev initialize VRFConsumerBase's attributes in their constructor as
* @dev shown:
*
* @dev contract VRFConsumer {
* @dev constructor(<other arguments>, address _erinaceusVRF, address _link)
* @dev VRFConsumerBase(_erinaceusVRF) public {
* @dev <initialization with other arguments goes here>
* @dev }
* @dev }
*
* @dev The oracle will have given you an ID for the VRF keypair they have
* @dev committed to (let's call it keyHash). Create subscription, fund it
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

hardhat/console.sol

// SPDX-License-Identifier: MIT
pragma solidity >=0.4.22 <0.9.0;
library console {
address constant CONSOLE_ADDRESS =
0x000000000000000000636F6e736F6c652e6c6f67;
function _sendLogPayloadImplementation(bytes memory payload) internal view {
address consoleAddress = CONSOLE_ADDRESS;
/// @solidity memory-safe-assembly
assembly {
pop(
staticcall(
gas(),
consoleAddress,
add(payload, 32),
mload(payload),
0,
0
)
)
}
}
function _castToPure(
function(bytes memory) internal view fnIn
) internal pure returns (function(bytes memory) pure fnOut) {
assembly {
fnOut := fnIn
}
}
function _sendLogPayload(bytes memory payload) internal pure {
_castToPure(_sendLogPayloadImplementation)(payload);
}
function log() internal pure {
_sendLogPayload(abi.encodeWithSignature("log()"));
}
function logInt(int256 p0) internal pure {
_sendLogPayload(abi.encodeWithSignature("log(int256)", p0));
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Compiler Settings

{"outputSelection":{"*":{"*":["*"],"":["*"]}},"optimizer":{"runs":200,"enabled":false},"metadata":{"useLiteralContent":true},"libraries":{},"evmVersion":"paris"}
              

Contract ABI

[{"type":"constructor","stateMutability":"nonpayable","inputs":[{"type":"address","name":"_erinaceusVRF","internalType":"address"},{"type":"address","name":"_vaultContract","internalType":"address"},{"type":"address","name":"_withdrowalContract","internalType":"address"},{"type":"address","name":"_team","internalType":"address"}]},{"type":"error","name":"OnlyErinaceusCanFulfill","inputs":[{"type":"address","name":"have","internalType":"address"},{"type":"address","name":"want","internalType":"address"}]},{"type":"event","name":"NewRoundAdded","inputs":[{"type":"uint256","name":"id","internalType":"uint256","indexed":true},{"type":"uint256","name":"duration","internalType":"uint256","indexed":false},{"type":"uint256","name":"start","internalType":"uint256","indexed":false},{"type":"uint256","name":"countOfWinners","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"type":"address","name":"previousOwner","internalType":"address","indexed":true},{"type":"address","name":"newOwner","internalType":"address","indexed":true}],"anonymous":false},{"type":"event","name":"RoundFinished","inputs":[{"type":"uint256","name":"id","internalType":"uint256","indexed":true},{"type":"uint256","name":"rewardsForRound","internalType":"uint256","indexed":false},{"type":"uint256","name":"totalDeposit","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"Stake","inputs":[{"type":"address","name":"user","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"event","name":"UnStake","inputs":[{"type":"address","name":"user","internalType":"address","indexed":true},{"type":"uint256","name":"amount","internalType":"uint256","indexed":false}],"anonymous":false},{"type":"fallback","stateMutability":"payable"},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract ILolik"}],"name":"Lolik","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract ILolik"}],"name":"LolikWithdraw","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256[]","name":"winingNumbers","internalType":"uint256[]"}],"name":"check","inputs":[{"type":"uint256","name":"poolID","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"claim","inputs":[{"type":"uint256","name":"poolID","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"claimTeamRewards","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"currentPoolID","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"currentUserIDInPool","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"day","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IErinaceusVRF"}],"name":"erinaceusVRF","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"finalizeRound","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint32","name":"","internalType":"uint32"}],"name":"gasLimit","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"chance","internalType":"uint256"}],"name":"getChance","inputs":[{"type":"address","name":"_user","internalType":"address"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"bytes32","name":"","internalType":"bytes32"}],"name":"keyHash","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"newRound","inputs":[{"type":"uint256","name":"duration","internalType":"uint256"},{"type":"uint32","name":"countOfWinners","internalType":"uint32"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"nextPoolID","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"owner","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"totalDeposit","internalType":"uint256"},{"type":"uint256","name":"totalTickets","internalType":"uint256"},{"type":"uint256","name":"lastUpdateTime","internalType":"uint256"}],"name":"poolFlag","inputs":[{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"poolStart","internalType":"uint256"},{"type":"uint32","name":"countOfWinners","internalType":"uint32"},{"type":"uint256","name":"totalDeposit","internalType":"uint256"},{"type":"uint256","name":"totalTickets","internalType":"uint256"},{"type":"uint256","name":"duration","internalType":"uint256"},{"type":"uint256","name":"lastUpdateTime","internalType":"uint256"},{"type":"uint256","name":"rewardForRound","internalType":"uint256"},{"type":"uint8","name":"poolStatus","internalType":"enum Lottery.PoolStatus"}],"name":"poolInfo","inputs":[{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"rawFulfillRandomWords","inputs":[{"type":"uint256","name":"requestId","internalType":"uint256"},{"type":"uint256[]","name":"randomWords","internalType":"uint256[]"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"remainingTokens","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"renounceOwnership","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint16","name":"","internalType":"uint16"}],"name":"requestConfirmations","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"contract IERC20"}],"name":"stFTN","inputs":[]},{"type":"function","stateMutability":"payable","outputs":[],"name":"stake","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint64","name":"","internalType":"uint64"}],"name":"subID","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"address","name":"","internalType":"address"}],"name":"team","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"teamRewards","inputs":[]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"totalDeposit","inputs":[]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"transferOwnership","inputs":[{"type":"address","name":"newOwner","internalType":"address"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"unstake","inputs":[{"type":"uint256","name":"_amount","internalType":"uint256"},{"type":"uint256","name":"_poolID","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"","internalType":"uint256"}],"name":"userID","inputs":[{"type":"address","name":"","internalType":"address"},{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"view","outputs":[{"type":"uint256","name":"depositFTN","internalType":"uint256"},{"type":"uint256","name":"tickets","internalType":"uint256"},{"type":"uint256","name":"lastUpdatedTime","internalType":"uint256"}],"name":"userInfo","inputs":[{"type":"uint256","name":"","internalType":"uint256"},{"type":"uint256","name":"","internalType":"uint256"}]},{"type":"function","stateMutability":"nonpayable","outputs":[],"name":"vrfSetup","inputs":[{"type":"uint64","name":"_subID","internalType":"uint64"},{"type":"bytes32","name":"_keyHash","internalType":"bytes32"},{"type":"uint32","name":"_gasLimit","internalType":"uint32"},{"type":"uint16","name":"_requestConfirmations","internalType":"uint16"}]},{"type":"receive","stateMutability":"payable"}]
              

Contract Creation Code

0x60a06040523480156200001157600080fd5b50604051620049e4380380620049e483398181016040528101906200003791906200031b565b838073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050506200008d62000081620001e560201b60201c565b620001ed60201b60201c565b83600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610708600381905550505050506200038d565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002e382620002b6565b9050919050565b620002f581620002d6565b81146200030157600080fd5b50565b6000815190506200031581620002ea565b92915050565b60008060008060808587031215620003385762000337620002b1565b5b6000620003488782880162000304565b94505060206200035b8782880162000304565b93505060406200036e8782880162000304565b9250506060620003818782880162000304565b91505092959194509250565b608051614634620003b060003960008181610db50152610e0901526146346000f3fe6080604052600436106101f25760003560e01c806376ce29811161010d578063b345dc8c116100a0578063f2fde38b1161006f578063f2fde38b146106e5578063f41dfe2b1461070e578063f6153ccd14610739578063f68016b714610764578063fb2846291461078f576101f9565b8063b345dc8c14610627578063bf58390314610666578063cc4b97e114610691578063d7070ae2146106ba576101f9565b80638da5cb5b116100dc5780638da5cb5b1461057d5780639e2c8a5b146105a8578063aec47759146105d1578063b0fb162f146105fc576101f9565b806376ce2981146104ab5780637b76ac91146104e857806385f2aef2146105135780638921b0ca1461053e576101f9565b80633a4b66f11161018557806362a58fb81161015457806362a58fb814610401578063669f0e821461042c5780636acf26b914610469578063715018a614610494576101f9565b80633a4b66f114610364578063576a31701461036e5780635f72f4501461039957806361728f39146103d6576101f9565b80632add13c7116101c15780632add13c7146102a85780633121e7d7146102d3578063379607f514610310578063390724ac14610339576101f9565b80631526fe27146101fb578063195a79401461023f5780631e820325146102685780631fe543e31461027f576101f9565b366101f957005b005b34801561020757600080fd5b50610222600480360381019061021d91906135ee565b6107a6565b6040516102369897969594939291906136c0565b60405180910390f35b34801561024b57600080fd5b506102666004803603810190610261919061381a565b61080b565b005b34801561027457600080fd5b5061027d610887565b005b34801561028b57600080fd5b506102a660048036038101906102a191906139da565b610db3565b005b3480156102b457600080fd5b506102bd610e73565b6040516102ca9190613a36565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190613aaf565b610e79565b6040516103079190613a36565b60405180910390f35b34801561031c57600080fd5b50610337600480360381019061033291906135ee565b61111f565b005b34801561034557600080fd5b5061034e61145d565b60405161035b9190613a36565b60405180910390f35b61036c611463565b005b34801561037a57600080fd5b50610383611913565b6040516103909190613b3b565b60405180910390f35b3480156103a557600080fd5b506103c060048036038101906103bb91906135ee565b611939565b6040516103cd9190613c14565b60405180910390f35b3480156103e257600080fd5b506103eb612146565b6040516103f89190613c45565b60405180910390f35b34801561040d57600080fd5b5061041661214c565b6040516104239190613c6f565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e91906135ee565b612166565b6040516104609190613a36565b60405180910390f35b34801561047557600080fd5b5061047e61217e565b60405161048b9190613cab565b60405180910390f35b3480156104a057600080fd5b506104a96121a4565b005b3480156104b757600080fd5b506104d260048036038101906104cd9190613cc6565b6121b8565b6040516104df9190613a36565b60405180910390f35b3480156104f457600080fd5b506104fd6121dd565b60405161050a9190613a36565b60405180910390f35b34801561051f57600080fd5b506105286121e3565b6040516105359190613d15565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190613d30565b612209565b60405161057493929190613d70565b60405180910390f35b34801561058957600080fd5b50610592612240565b60405161059f9190613d15565b60405180910390f35b3480156105b457600080fd5b506105cf60048036038101906105ca9190613d30565b612269565b005b3480156105dd57600080fd5b506105e661259c565b6040516105f39190613dc8565b60405180910390f35b34801561060857600080fd5b506106116125c2565b60405161061e9190613df2565b60405180910390f35b34801561063357600080fd5b5061064e60048036038101906106499190613d30565b6125d6565b60405161065d93929190613d70565b60405180910390f35b34801561067257600080fd5b5061067b61260d565b6040516106889190613a36565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190613e0d565b612613565b005b3480156106c657600080fd5b506106cf61284f565b6040516106dc9190613a36565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190613aaf565b612855565b005b34801561071a57600080fd5b506107236128d8565b6040516107309190613cab565b60405180910390f35b34801561074557600080fd5b5061074e6128fe565b60405161075b9190613a36565b60405180910390f35b34801561077057600080fd5b50610779612904565b6040516107869190613e4d565b60405180910390f35b34801561079b57600080fd5b506107a461291a565b005b600f6020528060005260406000206000915090508060000154908060010160009054906101000a900463ffffffff16908060020154908060030154908060040154908060050154908060070154908060080160009054906101000a900460ff16905088565b610813612ab2565b83600760146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508260098190555081600860006101000a81548163ffffffff021916908363ffffffff160217905550806007601c6101000a81548161ffff021916908361ffff16021790555050505050565b6000600f60006001548152602001908152602001600020905060006064600e60006001548152602001908152602001600020546108c49190613ec6565b905042826004015483600001546108db9190613ef7565b111561091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390613f88565b60405180910390fd5b6000429050826004015483600001546109359190613ef7565b42111561095357826004015483600001546109509190613ef7565b90505b60005b828111610a5357600354601060006001548152602001908152602001600020600083815260200190815260200160002060020154836109959190613fa8565b61099f9190613ec6565b6010600060015481526020019081526020016000206000838152602001908152602001600020600001546109d39190613fdc565b60106000600154815260200190815260200160002060008381526020019081526020016000206001016000828254610a0b9190613ef7565b92505081905550816010600060015481526020019081526020016000206000838152602001908152602001600020600201819055508080610a4b9061401e565b915050610956565b50600354836005015482610a679190613fa8565b610a719190613ec6565b8360020154610a809190613fdc565b836003016000828254610a939190613ef7565b92505081905550808360050181905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d3b1d30600954600760149054906101000a900467ffffffffffffffff166007601c9054906101000a900461ffff16600860009054906101000a900463ffffffff168860010160009054906101000a900463ffffffff166040518663ffffffff1660e01b8152600401610b54959493929190614066565b600060405180830381600087803b158015610b6e57600080fd5b505af1158015610b82573d6000803e3d6000fd5b5050505060028360080160006101000a81548160ff02191690836002811115610bae57610bad613649565b5b0217905550600c5483600201548460020154600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c1e9190613d15565b602060405180830381865afa158015610c3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5f91906140ce565b610c699190613fa8565b610c739190613fa8565b610c7d9190613fdc565b610c879190613ec6565b836007018190555082600201548360070154610ca39190613ef7565b600a6000828254610cb49190613ef7565b92505081905550600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d199190613d15565b602060405180830381865afa158015610d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5a91906140ce565b610d649190613fa8565b600b819055506001547f87d39ec94082b342cc157bbd80096ad2fa03e1698a57924ad16e36709cb0e28784600701548560020154604051610da69291906140fb565b60405180910390a2505050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6557337f00000000000000000000000000000000000000000000000000000000000000006040517f1cdc5ebb000000000000000000000000000000000000000000000000000000008152600401610e5c929190614124565b60405180910390fd5b610e6f8282612b30565b5050565b60015481565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600154815260200190815260200160002054905060006012600060015481526020019081526020016000206000838152602001908152602001600020604051806060016040529081600082015481526020016001820154815260200160028201548152505090506000600f6000600154815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201805480602002602001604051908101604052809291908181526020018280548015610fee57602002820191906000526020600020905b815481526020019060010190808311610fda575b50505050508152602001600782015481526020016008820160009054906101000a900460ff16600281111561102657611025613649565b5b600281111561103857611037613649565b5b8152505090506000429050816080015182600001516110579190613ef7565b42111561107557816080015182600001516110729190613ef7565b90505b600060035484604001518361108a9190613fa8565b6110949190613ec6565b84600001516110a39190613fdc565b84602001516110b29190613ef7565b905060006003548460a00151846110c99190613fa8565b6110d39190613ec6565b84604001516110e29190613fdc565b84606001516110f19190613ef7565b905080670de0b6b3a7640000836111089190613fdc565b6111129190613ec6565b9650505050505050919050565b600061112a82611939565b90506000600f6000600154815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682018054806020026020016040519081016040528092919081815260200182805480156111f657602002820191906000526020600020905b8154815260200190600101908083116111e2575b50505050508152602001600782015481526020016008820160009054906101000a900460ff16600281111561122e5761122d613649565b5b60028111156112405761123f613649565b5b81525050905060008251111561145857600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836020015163ffffffff1685518560e001516112cd9190613fdc565b6112d79190613ec6565b6040518363ffffffff1660e01b81526004016112f492919061414d565b6020604051808303816000875af1158015611313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133791906141ae565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394b918de826020015163ffffffff1684518460e001516113929190613fdc565b61139c9190613ec6565b6040518263ffffffff1660e01b81526004016113b89190613a36565b600060405180830381600087803b1580156113d257600080fd5b505af11580156113e6573d6000803e3d6000fd5b5050505061141933826020015163ffffffff1684518460e0015161140a9190613fdc565b6114149190613ec6565b612b61565b806020015163ffffffff1682518260e001516114359190613fdc565b61143f9190613ec6565b600a60008282546114509190613fa8565b925050819055505b505050565b60025481565b6000600f6000600154815260200190815260200160002090506000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001548152602001908152602001600020549050600160028111156114e7576114e6613649565b5b8260080160009054906101000a900460ff16600281111561150b5761150a613649565b5b1461154b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154290614227565b60405180910390fd5b42600354836004015484600001546115639190613ef7565b61156d9190613fa8565b116115ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a490614293565b60405180910390fd5b600034116115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e7906142ff565b60405180910390fd5b6000810361161157600e600060015481526020019081526020016000205490505b60006012600060015481526020019081526020016000206000838152602001908152602001600020905081601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001548152602001908152602001600020819055506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1903eab34306040518363ffffffff1660e01b81526004016116f09190613d15565b60206040518083038185885af115801561170e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061173391906140ce565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d48764e826040518263ffffffff1660e01b81526004016117909190613a36565b602060405180830381865afa1580156117ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d191906140ce565b90506117df33826001612bdc565b6040518060600160405280828460000160008282546117fe9190613ef7565b92505081905581526020018360010154815260200142815250601260006001548152602001908152602001600020600085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505080600c60008282546118709190613ef7565b92505081905550600e600060015481526020019081526020016000205483036118bf57600e6000600154815260200190815260200160002060008154809291906118b99061401e565b91905055505b3373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a826040516119059190613a36565b60405180910390a250505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000205490506000600f600085815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201805480602002602001604051908101604052809291908181526020018280548015611a5857602002820191906000526020600020905b815481526020019060010190808311611a44575b50505050508152602001600782015481526020016008820160009054906101000a900460ff166002811115611a9057611a8f613649565b5b6002811115611aa257611aa1613649565b5b8152505090506000601260008681526020019081526020016000206000848152602001908152602001600020604051806060016040529081600082015481526020016001820154815260200160028201548152505090506000606484611b089190613ec6565b90506000600267ffffffffffffffff811115611b2757611b26613897565b5b604051908082528060200260200182016040528015611b555781602001602082028036833780820191505090505b5090506000821115611bd85760005b82811015611bd6576010600089815260200190815260200160002060008281526020019081526020016000206001015482600081518110611ba857611ba761431f565b5b60200260200101818151611bbc9190613ef7565b915081815250508080611bce9061401e565b915050611b64565b505b60016010600089815260200190815260200160002060008481526020019081526020016000206001015482600081518110611c1657611c1561431f565b5b6020026020010151611c289190613ef7565b611c329190613fa8565b81600181518110611c4657611c4561431f565b5b6020026020010181815250506000600267ffffffffffffffff811115611c6f57611c6e613897565b5b604051908082528060200260200182016040528015611c9d5781602001602082028036833780820191505090505b509050600042905085608001518660000151611cb99190613ef7565b421115611cd75785608001518660000151611cd49190613ef7565b90505b6000871115611e31576000606485611cef9190613fdc565b90505b87811015611de057600354601260008c815260200190815260200160002060008381526020019081526020016000206002015483611d309190613fa8565b611d3a9190613ec6565b601260008c8152602001908152602001600020600083815260200190815260200160002060000154611d6c9190613fdc565b601260008c8152602001908152602001600020600083815260200190815260200160002060010154611d9e9190613ef7565b83600081518110611db257611db161431f565b5b60200260200101818151611dc69190613ef7565b915081815250508080611dd89061401e565b915050611cf2565b5082600081518110611df557611df461431f565b5b602002602001015182600081518110611e1157611e1061431f565b5b60200260200101818151611e259190613ef7565b91508181525050611e6e565b82600081518110611e4557611e4461431f565b5b602002602001015182600081518110611e6157611e6061431f565b5b6020026020010181815250505b6001600354866040015183611e839190613fa8565b611e8d9190613ec6565b8660000151611e9c9190613fdc565b866020015184600081518110611eb557611eb461431f565b5b6020026020010151611ec79190613ef7565b611ed19190613ef7565b611edb9190613fa8565b82600181518110611eef57611eee61431f565b5b6020026020010181815250506000600f60008b815260200190815260200160002060010160009054906101000a900463ffffffff1663ffffffff1667ffffffffffffffff811115611f4357611f42613897565b5b604051908082528060200260200182016040528015611f715781602001602082028036833780820191505090505b5090506000805b886020015163ffffffff168163ffffffff161015612089578860c001518163ffffffff1681518110611fad57611fac61431f565b5b602002602001015185600081518110611fc957611fc861431f565b5b60200260200101511115801561201e575084600181518110611fee57611fed61431f565b5b60200260200101518960c001518263ffffffff16815181106120135761201261431f565b5b602002602001015111155b15612076578860c001518163ffffffff16815181106120405761203f61431f565b5b602002602001015183838151811061205b5761205a61431f565b5b60200260200101818152505081806120729061401e565b9250505b80806120819061434e565b915050611f78565b506000811115612138578067ffffffffffffffff8111156120ad576120ac613897565b5b6040519080825280602002602001820160405280156120db5781602001602082028036833780820191505090505b50995060005b81811015612136578281815181106120fc576120fb61431f565b5b60200260200101518b82815181106121175761211661431f565b5b602002602001018181525050808061212e9061401e565b9150506120e1565b505b505050505050505050919050565b60095481565b600760149054906101000a900467ffffffffffffffff1681565b600e6020528060005260406000206000915090505481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6121ac612ab2565b6121b6600061346e565b565b6011602052816000526040600020602052806000526040600020600091509150505481565b60035481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6010602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154905083565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020549050600060126000848152602001908152602001600020600083815260200190815260200160002090506000600f600085815260200190815260200160002090508482600001541015612344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233b906143c6565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b81526004016123c392919061414d565b6020604051808303816000875af11580156123e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240691906141ae565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394b918de866040518263ffffffff1660e01b81526004016124629190613a36565b600060405180830381600087803b15801561247c57600080fd5b505af1158015612490573d6000803e3d6000fd5b5050505060015484036124ae576124a933866000612bdc565b6124c8565b84600a60008282546124c09190613fa8565b925050819055505b84600c60008282546124da9190613fa8565b92505081905550848260000160008282546124f59190613fa8565b925050819055506000429050816004015482600001546125159190613ef7565b42111561253357816004015482600001546125309190613ef7565b90505b8083600201819055506125463387612b61565b3373ffffffffffffffffffffffffffffffffffffffff167fb24546d975e2628748efc9aced80665e0fad66272033e5c0ea25fd3afac997958760405161258c9190613a36565b60405180910390a2505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007601c9054906101000a900461ffff1681565b6012602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154905083565b600a5481565b61261b612ab2565b600254600181905550600060015411156126c65760028081111561264257612641613649565b5b600f6000600180546126549190613fa8565b815260200190815260200160002060080160009054906101000a900460ff16600281111561268557612684613649565b5b146126c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bc90614432565b60405180910390fd5b5b81600f600060015481526020019081526020016000206004018190555042600f60006001548152602001908152602001600020600001819055506001600f6000600154815260200190815260200160002060080160006101000a81548160ff0219169083600281111561273c5761273b613649565b5b021790555080600f6000600154815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055508063ffffffff1667ffffffffffffffff81111561279857612797613897565b5b6040519080825280602002602001820160405280156127c65781602001602082028036833780820191505090505b50600f6000600154815260200190815260200160002060060190805190602001906127f292919061353a565b506001600260008282546128069190613ef7565b925050819055506001547fcf30947cc5e4faa736b723018e806822835db29e1b1c2e6d140f95e19d8ede8583428460405161284393929190614483565b60405180910390a25050565b600b5481565b61285d612ab2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036128cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c39061452c565b60405180910390fd5b6128d58161346e565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600860009054906101000a900463ffffffff1681565b6000600b541115612ab057600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b546040518363ffffffff1660e01b81526004016129a692919061414d565b6020604051808303816000875af11580156129c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e991906141ae565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394b918de600b546040518263ffffffff1660e01b8152600401612a479190613a36565b600060405180830381600087803b158015612a6157600080fd5b505af1158015612a75573d6000803e3d6000fd5b50505050612aa7600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54612b61565b6000600b819055505b565b612aba613532565b73ffffffffffffffffffffffffffffffffffffffff16612ad8612240565b73ffffffffffffffffffffffffffffffffffffffff1614612b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2590614598565b60405180910390fd5b565b80600f600060015481526020019081526020016000206006019080519060200190612b5c92919061353a565b505050565b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612b87906145e9565b60006040518083038185875af1925050503d8060008114612bc4576040519150601f19603f3d011682016040523d82523d6000602084013e612bc9565b606091505b5050905080612bd757600080fd5b505050565b6000600f600060015481526020019081526020016000209050600042905081600401548260000154612c0e9190613ef7565b421115612c2c5781600401548260000154612c299190613ef7565b90505b600354826005015482612c3f9190613fa8565b612c499190613ec6565b8260020154612c589190613fdc565b826003016000828254612c6b9190613ef7565b9250508190555080826005018190555060008411156134675782156130815783826002016000828254612c9e9190613ef7565b925050819055506000601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060015481526020019081526020016000205490506000601260006001548152602001908152602001600020600083815260200190815260200160002090506000606483612d359190613ec6565b905060035460106000600154815260200190815260200160002060008381526020019081526020016000206002015485612d6f9190613fa8565b612d799190613ec6565b601060006001548152602001908152602001600020600083815260200190815260200160002060000154612dad9190613fdc565b60106000600154815260200190815260200160002060008381526020019081526020016000206001016000828254612de59190613ef7565b925050819055508660106000600154815260200190815260200160002060008381526020019081526020016000206000016000828254612e259190613ef7565b925050819055508360106000600154815260200190815260200160002060008381526020019081526020016000206002018190555050600081600001541115612eaf57600354816002015484612e7b9190613fa8565b612e859190613ec6565b8160000154612e949190613fdc565b816001016000828254612ea79190613ef7565b925050819055505b600086600c54612ebf9190613ef7565b111561307a5785600c54612ed39190613ef7565b84600201548560020154600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612f3b9190613d15565b602060405180830381865afa158015612f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7c91906140ce565b612f869190613fa8565b612f909190613fa8565b612f9a9190613fdc565b612fa49190613ec6565b846007018190555083600701548460020154600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016130149190613d15565b602060405180830381865afa158015613031573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305591906140ce565b61305f9190613fa8565b6130699190613fa8565b6130739190613fa8565b600b819055505b5050613466565b838260020160008282546130959190613fa8565b925050819055506000601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001548152602001908152602001600020549050600060126000600154815260200190815260200160002060008381526020019081526020016000209050600060648361312c9190613ec6565b9050600354601060006001548152602001908152602001600020600083815260200190815260200160002060020154856131669190613fa8565b6131709190613ec6565b6010600060015481526020019081526020016000206000838152602001908152602001600020600001546131a49190613fdc565b601060006001548152602001908152602001600020600083815260200190815260200160002060010160008282546131dc9190613ef7565b92505081905550866010600060015481526020019081526020016000206000838152602001908152602001600020600001600082825461321c9190613fa8565b9250508190555083601060006001548152602001908152602001600020600083815260200190815260200160002060020181905550506003548160020154846132659190613fa8565b61326f9190613ec6565b816000015461327e9190613fdc565b8160010160008282546132919190613ef7565b92505081905550600086600c546132a89190613fa8565b11156134635785600c546132bc9190613fa8565b84600201548560020154600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016133249190613d15565b602060405180830381865afa158015613341573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061336591906140ce565b61336f9190613fa8565b6133799190613fa8565b6133839190613fdc565b61338d9190613ec6565b846007018190555083600701548460020154600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016133fd9190613d15565b602060405180830381865afa15801561341a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343e91906140ce565b6134489190613fa8565b6134529190613fa8565b61345c9190613fa8565b600b819055505b50505b5b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b828054828255906000526020600020908101928215613576579160200282015b8281111561357557825182559160200191906001019061355a565b5b5090506135839190613587565b5090565b5b808211156135a0576000816000905550600101613588565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6135cb816135b8565b81146135d657600080fd5b50565b6000813590506135e8816135c2565b92915050565b600060208284031215613604576136036135ae565b5b6000613612848285016135d9565b91505092915050565b613624816135b8565b82525050565b600063ffffffff82169050919050565b6136438161362a565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061368957613688613649565b5b50565b600081905061369a82613678565b919050565b60006136aa8261368c565b9050919050565b6136ba8161369f565b82525050565b6000610100820190506136d6600083018b61361b565b6136e3602083018a61363a565b6136f0604083018961361b565b6136fd606083018861361b565b61370a608083018761361b565b61371760a083018661361b565b61372460c083018561361b565b61373160e08301846136b1565b9998505050505050505050565b600067ffffffffffffffff82169050919050565b61375b8161373e565b811461376657600080fd5b50565b60008135905061377881613752565b92915050565b6000819050919050565b6137918161377e565b811461379c57600080fd5b50565b6000813590506137ae81613788565b92915050565b6137bd8161362a565b81146137c857600080fd5b50565b6000813590506137da816137b4565b92915050565b600061ffff82169050919050565b6137f7816137e0565b811461380257600080fd5b50565b600081359050613814816137ee565b92915050565b60008060008060808587031215613834576138336135ae565b5b600061384287828801613769565b94505060206138538782880161379f565b9350506040613864878288016137cb565b925050606061387587828801613805565b91505092959194509250565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6138cf82613886565b810181811067ffffffffffffffff821117156138ee576138ed613897565b5b80604052505050565b60006139016135a4565b905061390d82826138c6565b919050565b600067ffffffffffffffff82111561392d5761392c613897565b5b602082029050602081019050919050565b600080fd5b600061395661395184613912565b6138f7565b905080838252602082019050602084028301858111156139795761397861393e565b5b835b818110156139a2578061398e88826135d9565b84526020840193505060208101905061397b565b5050509392505050565b600082601f8301126139c1576139c0613881565b5b81356139d1848260208601613943565b91505092915050565b600080604083850312156139f1576139f06135ae565b5b60006139ff858286016135d9565b925050602083013567ffffffffffffffff811115613a2057613a1f6135b3565b5b613a2c858286016139ac565b9150509250929050565b6000602082019050613a4b600083018461361b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a7c82613a51565b9050919050565b613a8c81613a71565b8114613a9757600080fd5b50565b600081359050613aa981613a83565b92915050565b600060208284031215613ac557613ac46135ae565b5b6000613ad384828501613a9a565b91505092915050565b6000819050919050565b6000613b01613afc613af784613a51565b613adc565b613a51565b9050919050565b6000613b1382613ae6565b9050919050565b6000613b2582613b08565b9050919050565b613b3581613b1a565b82525050565b6000602082019050613b506000830184613b2c565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b8b816135b8565b82525050565b6000613b9d8383613b82565b60208301905092915050565b6000602082019050919050565b6000613bc182613b56565b613bcb8185613b61565b9350613bd683613b72565b8060005b83811015613c07578151613bee8882613b91565b9750613bf983613ba9565b925050600181019050613bda565b5085935050505092915050565b60006020820190508181036000830152613c2e8184613bb6565b905092915050565b613c3f8161377e565b82525050565b6000602082019050613c5a6000830184613c36565b92915050565b613c698161373e565b82525050565b6000602082019050613c846000830184613c60565b92915050565b6000613c9582613b08565b9050919050565b613ca581613c8a565b82525050565b6000602082019050613cc06000830184613c9c565b92915050565b60008060408385031215613cdd57613cdc6135ae565b5b6000613ceb85828601613a9a565b9250506020613cfc858286016135d9565b9150509250929050565b613d0f81613a71565b82525050565b6000602082019050613d2a6000830184613d06565b92915050565b60008060408385031215613d4757613d466135ae565b5b6000613d55858286016135d9565b9250506020613d66858286016135d9565b9150509250929050565b6000606082019050613d85600083018661361b565b613d92602083018561361b565b613d9f604083018461361b565b949350505050565b6000613db282613b08565b9050919050565b613dc281613da7565b82525050565b6000602082019050613ddd6000830184613db9565b92915050565b613dec816137e0565b82525050565b6000602082019050613e076000830184613de3565b92915050565b60008060408385031215613e2457613e236135ae565b5b6000613e32858286016135d9565b9250506020613e43858286016137cb565b9150509250929050565b6000602082019050613e62600083018461363a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ed1826135b8565b9150613edc836135b8565b925082613eec57613eeb613e68565b5b828204905092915050565b6000613f02826135b8565b9150613f0d836135b8565b9250828201905080821115613f2557613f24613e97565b5b92915050565b600082825260208201905092915050565b7f506f6f6c206973207374696c6c20616374697665000000000000000000000000600082015250565b6000613f72601483613f2b565b9150613f7d82613f3c565b602082019050919050565b60006020820190508181036000830152613fa181613f65565b9050919050565b6000613fb3826135b8565b9150613fbe836135b8565b9250828203905081811115613fd657613fd5613e97565b5b92915050565b6000613fe7826135b8565b9150613ff2836135b8565b9250828202614000816135b8565b9150828204841483151761401757614016613e97565b5b5092915050565b6000614029826135b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361405b5761405a613e97565b5b600182019050919050565b600060a08201905061407b6000830188613c36565b6140886020830187613c60565b6140956040830186613de3565b6140a2606083018561363a565b6140af608083018461363a565b9695505050505050565b6000815190506140c8816135c2565b92915050565b6000602082840312156140e4576140e36135ae565b5b60006140f2848285016140b9565b91505092915050565b6000604082019050614110600083018561361b565b61411d602083018461361b565b9392505050565b60006040820190506141396000830185613d06565b6141466020830184613d06565b9392505050565b60006040820190506141626000830185613d06565b61416f602083018461361b565b9392505050565b60008115159050919050565b61418b81614176565b811461419657600080fd5b50565b6000815190506141a881614182565b92915050565b6000602082840312156141c4576141c36135ae565b5b60006141d284828501614199565b91505092915050565b7f506f6f6c206973206e6f74207374617274656420796574000000000000000000600082015250565b6000614211601783613f2b565b915061421c826141db565b602082019050919050565b6000602082019050818103600083015261424081614204565b9050919050565b7f4e6f7420616c6c6f77656420746f207374616b65206f6e206c61737420646179600082015250565b600061427d602083613f2b565b915061428882614247565b602082019050919050565b600060208201905081810360008301526142ac81614270565b9050919050565b7f4e6f7468696e6720746f207374616b6500000000000000000000000000000000600082015250565b60006142e9601083613f2b565b91506142f4826142b3565b602082019050919050565b60006020820190508181036000830152614318816142dc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006143598261362a565b915063ffffffff820361436f5761436e613e97565b5b600182019050919050565b7f496e73756666696369656e74206465706f736974000000000000000000000000600082015250565b60006143b0601483613f2b565b91506143bb8261437a565b602082019050919050565b600060208201905081810360008301526143df816143a3565b9050919050565b7f50726576696f757320706f6f6c206973206e6f742066696e6973686564000000600082015250565b600061441c601d83613f2b565b9150614427826143e6565b602082019050919050565b6000602082019050818103600083015261444b8161440f565b9050919050565b600061446d6144686144638461362a565b613adc565b6135b8565b9050919050565b61447d81614452565b82525050565b6000606082019050614498600083018661361b565b6144a5602083018561361b565b6144b26040830184614474565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614516602683613f2b565b9150614521826144ba565b604082019050919050565b6000602082019050818103600083015261454581614509565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614582602083613f2b565b915061458d8261454c565b602082019050919050565b600060208201905081810360008301526145b181614575565b9050919050565b600081905092915050565b50565b60006145d36000836145b8565b91506145de826145c3565b600082019050919050565b60006145f4826145c6565b915081905091905056fea2646970667358221220d7e9d010124d5532de5bfaaf634dc264b73146913901821b0309cde6b59f84cf64736f6c634300081400330000000000000000000000006c8c9bb7e89652b1c7d4fd00b7cce1dba2361304000000000000000000000000780fb5aca83f2e3f57ee18cc3094988ef49d8c3d0000000000000000000000000ca83dd56af172a1e04b667d6e64446d0b88c4a4000000000000000000000000bb78efaaaf9223b4840ea7defdc379a13b16399b

Deployed ByteCode

0x6080604052600436106101f25760003560e01c806376ce29811161010d578063b345dc8c116100a0578063f2fde38b1161006f578063f2fde38b146106e5578063f41dfe2b1461070e578063f6153ccd14610739578063f68016b714610764578063fb2846291461078f576101f9565b8063b345dc8c14610627578063bf58390314610666578063cc4b97e114610691578063d7070ae2146106ba576101f9565b80638da5cb5b116100dc5780638da5cb5b1461057d5780639e2c8a5b146105a8578063aec47759146105d1578063b0fb162f146105fc576101f9565b806376ce2981146104ab5780637b76ac91146104e857806385f2aef2146105135780638921b0ca1461053e576101f9565b80633a4b66f11161018557806362a58fb81161015457806362a58fb814610401578063669f0e821461042c5780636acf26b914610469578063715018a614610494576101f9565b80633a4b66f114610364578063576a31701461036e5780635f72f4501461039957806361728f39146103d6576101f9565b80632add13c7116101c15780632add13c7146102a85780633121e7d7146102d3578063379607f514610310578063390724ac14610339576101f9565b80631526fe27146101fb578063195a79401461023f5780631e820325146102685780631fe543e31461027f576101f9565b366101f957005b005b34801561020757600080fd5b50610222600480360381019061021d91906135ee565b6107a6565b6040516102369897969594939291906136c0565b60405180910390f35b34801561024b57600080fd5b506102666004803603810190610261919061381a565b61080b565b005b34801561027457600080fd5b5061027d610887565b005b34801561028b57600080fd5b506102a660048036038101906102a191906139da565b610db3565b005b3480156102b457600080fd5b506102bd610e73565b6040516102ca9190613a36565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190613aaf565b610e79565b6040516103079190613a36565b60405180910390f35b34801561031c57600080fd5b50610337600480360381019061033291906135ee565b61111f565b005b34801561034557600080fd5b5061034e61145d565b60405161035b9190613a36565b60405180910390f35b61036c611463565b005b34801561037a57600080fd5b50610383611913565b6040516103909190613b3b565b60405180910390f35b3480156103a557600080fd5b506103c060048036038101906103bb91906135ee565b611939565b6040516103cd9190613c14565b60405180910390f35b3480156103e257600080fd5b506103eb612146565b6040516103f89190613c45565b60405180910390f35b34801561040d57600080fd5b5061041661214c565b6040516104239190613c6f565b60405180910390f35b34801561043857600080fd5b50610453600480360381019061044e91906135ee565b612166565b6040516104609190613a36565b60405180910390f35b34801561047557600080fd5b5061047e61217e565b60405161048b9190613cab565b60405180910390f35b3480156104a057600080fd5b506104a96121a4565b005b3480156104b757600080fd5b506104d260048036038101906104cd9190613cc6565b6121b8565b6040516104df9190613a36565b60405180910390f35b3480156104f457600080fd5b506104fd6121dd565b60405161050a9190613a36565b60405180910390f35b34801561051f57600080fd5b506105286121e3565b6040516105359190613d15565b60405180910390f35b34801561054a57600080fd5b5061056560048036038101906105609190613d30565b612209565b60405161057493929190613d70565b60405180910390f35b34801561058957600080fd5b50610592612240565b60405161059f9190613d15565b60405180910390f35b3480156105b457600080fd5b506105cf60048036038101906105ca9190613d30565b612269565b005b3480156105dd57600080fd5b506105e661259c565b6040516105f39190613dc8565b60405180910390f35b34801561060857600080fd5b506106116125c2565b60405161061e9190613df2565b60405180910390f35b34801561063357600080fd5b5061064e60048036038101906106499190613d30565b6125d6565b60405161065d93929190613d70565b60405180910390f35b34801561067257600080fd5b5061067b61260d565b6040516106889190613a36565b60405180910390f35b34801561069d57600080fd5b506106b860048036038101906106b39190613e0d565b612613565b005b3480156106c657600080fd5b506106cf61284f565b6040516106dc9190613a36565b60405180910390f35b3480156106f157600080fd5b5061070c60048036038101906107079190613aaf565b612855565b005b34801561071a57600080fd5b506107236128d8565b6040516107309190613cab565b60405180910390f35b34801561074557600080fd5b5061074e6128fe565b60405161075b9190613a36565b60405180910390f35b34801561077057600080fd5b50610779612904565b6040516107869190613e4d565b60405180910390f35b34801561079b57600080fd5b506107a461291a565b005b600f6020528060005260406000206000915090508060000154908060010160009054906101000a900463ffffffff16908060020154908060030154908060040154908060050154908060070154908060080160009054906101000a900460ff16905088565b610813612ab2565b83600760146101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055508260098190555081600860006101000a81548163ffffffff021916908363ffffffff160217905550806007601c6101000a81548161ffff021916908361ffff16021790555050505050565b6000600f60006001548152602001908152602001600020905060006064600e60006001548152602001908152602001600020546108c49190613ec6565b905042826004015483600001546108db9190613ef7565b111561091c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091390613f88565b60405180910390fd5b6000429050826004015483600001546109359190613ef7565b42111561095357826004015483600001546109509190613ef7565b90505b60005b828111610a5357600354601060006001548152602001908152602001600020600083815260200190815260200160002060020154836109959190613fa8565b61099f9190613ec6565b6010600060015481526020019081526020016000206000838152602001908152602001600020600001546109d39190613fdc565b60106000600154815260200190815260200160002060008381526020019081526020016000206001016000828254610a0b9190613ef7565b92505081905550816010600060015481526020019081526020016000206000838152602001908152602001600020600201819055508080610a4b9061401e565b915050610956565b50600354836005015482610a679190613fa8565b610a719190613ec6565b8360020154610a809190613fdc565b836003016000828254610a939190613ef7565b92505081905550808360050181905550600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635d3b1d30600954600760149054906101000a900467ffffffffffffffff166007601c9054906101000a900461ffff16600860009054906101000a900463ffffffff168860010160009054906101000a900463ffffffff166040518663ffffffff1660e01b8152600401610b54959493929190614066565b600060405180830381600087803b158015610b6e57600080fd5b505af1158015610b82573d6000803e3d6000fd5b5050505060028360080160006101000a81548160ff02191690836002811115610bae57610bad613649565b5b0217905550600c5483600201548460020154600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610c1e9190613d15565b602060405180830381865afa158015610c3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c5f91906140ce565b610c699190613fa8565b610c739190613fa8565b610c7d9190613fdc565b610c879190613ec6565b836007018190555082600201548360070154610ca39190613ef7565b600a6000828254610cb49190613ef7565b92505081905550600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610d199190613d15565b602060405180830381865afa158015610d36573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d5a91906140ce565b610d649190613fa8565b600b819055506001547f87d39ec94082b342cc157bbd80096ad2fa03e1698a57924ad16e36709cb0e28784600701548560020154604051610da69291906140fb565b60405180910390a2505050565b7f0000000000000000000000006c8c9bb7e89652b1c7d4fd00b7cce1dba236130473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e6557337f0000000000000000000000006c8c9bb7e89652b1c7d4fd00b7cce1dba23613046040517f1cdc5ebb000000000000000000000000000000000000000000000000000000008152600401610e5c929190614124565b60405180910390fd5b610e6f8282612b30565b5050565b60015481565b600080601160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600154815260200190815260200160002054905060006012600060015481526020019081526020016000206000838152602001908152602001600020604051806060016040529081600082015481526020016001820154815260200160028201548152505090506000600f6000600154815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201805480602002602001604051908101604052809291908181526020018280548015610fee57602002820191906000526020600020905b815481526020019060010190808311610fda575b50505050508152602001600782015481526020016008820160009054906101000a900460ff16600281111561102657611025613649565b5b600281111561103857611037613649565b5b8152505090506000429050816080015182600001516110579190613ef7565b42111561107557816080015182600001516110729190613ef7565b90505b600060035484604001518361108a9190613fa8565b6110949190613ec6565b84600001516110a39190613fdc565b84602001516110b29190613ef7565b905060006003548460a00151846110c99190613fa8565b6110d39190613ec6565b84604001516110e29190613fdc565b84606001516110f19190613ef7565b905080670de0b6b3a7640000836111089190613fdc565b6111129190613ec6565b9650505050505050919050565b600061112a82611939565b90506000600f6000600154815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff16815260200160028201548152602001600382015481526020016004820154815260200160058201548152602001600682018054806020026020016040519081016040528092919081815260200182805480156111f657602002820191906000526020600020905b8154815260200190600101908083116111e2575b50505050508152602001600782015481526020016008820160009054906101000a900460ff16600281111561122e5761122d613649565b5b60028111156112405761123f613649565b5b81525050905060008251111561145857600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836020015163ffffffff1685518560e001516112cd9190613fdc565b6112d79190613ec6565b6040518363ffffffff1660e01b81526004016112f492919061414d565b6020604051808303816000875af1158015611313573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061133791906141ae565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394b918de826020015163ffffffff1684518460e001516113929190613fdc565b61139c9190613ec6565b6040518263ffffffff1660e01b81526004016113b89190613a36565b600060405180830381600087803b1580156113d257600080fd5b505af11580156113e6573d6000803e3d6000fd5b5050505061141933826020015163ffffffff1684518460e0015161140a9190613fdc565b6114149190613ec6565b612b61565b806020015163ffffffff1682518260e001516114359190613fdc565b61143f9190613ec6565b600a60008282546114509190613fa8565b925050819055505b505050565b60025481565b6000600f6000600154815260200190815260200160002090506000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001548152602001908152602001600020549050600160028111156114e7576114e6613649565b5b8260080160009054906101000a900460ff16600281111561150b5761150a613649565b5b1461154b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154290614227565b60405180910390fd5b42600354836004015484600001546115639190613ef7565b61156d9190613fa8565b116115ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a490614293565b60405180910390fd5b600034116115f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e7906142ff565b60405180910390fd5b6000810361161157600e600060015481526020019081526020016000205490505b60006012600060015481526020019081526020016000206000838152602001908152602001600020905081601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001548152602001908152602001600020819055506000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663a1903eab34306040518363ffffffff1660e01b81526004016116f09190613d15565b60206040518083038185885af115801561170e573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061173391906140ce565b9050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630d48764e826040518263ffffffff1660e01b81526004016117909190613a36565b602060405180830381865afa1580156117ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d191906140ce565b90506117df33826001612bdc565b6040518060600160405280828460000160008282546117fe9190613ef7565b92505081905581526020018360010154815260200142815250601260006001548152602001908152602001600020600085815260200190815260200160002060008201518160000155602082015181600101556040820151816002015590505080600c60008282546118709190613ef7565b92505081905550600e600060015481526020019081526020016000205483036118bf57600e6000600154815260200190815260200160002060008154809291906118b99061401e565b91905055505b3373ffffffffffffffffffffffffffffffffffffffff167febedb8b3c678666e7f36970bc8f57abf6d8fa2e828c0da91ea5b75bf68ed101a826040516119059190613a36565b60405180910390a250505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60606000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000205490506000600f600085815260200190815260200160002060405180610120016040529081600082015481526020016001820160009054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201805480602002602001604051908101604052809291908181526020018280548015611a5857602002820191906000526020600020905b815481526020019060010190808311611a44575b50505050508152602001600782015481526020016008820160009054906101000a900460ff166002811115611a9057611a8f613649565b5b6002811115611aa257611aa1613649565b5b8152505090506000601260008681526020019081526020016000206000848152602001908152602001600020604051806060016040529081600082015481526020016001820154815260200160028201548152505090506000606484611b089190613ec6565b90506000600267ffffffffffffffff811115611b2757611b26613897565b5b604051908082528060200260200182016040528015611b555781602001602082028036833780820191505090505b5090506000821115611bd85760005b82811015611bd6576010600089815260200190815260200160002060008281526020019081526020016000206001015482600081518110611ba857611ba761431f565b5b60200260200101818151611bbc9190613ef7565b915081815250508080611bce9061401e565b915050611b64565b505b60016010600089815260200190815260200160002060008481526020019081526020016000206001015482600081518110611c1657611c1561431f565b5b6020026020010151611c289190613ef7565b611c329190613fa8565b81600181518110611c4657611c4561431f565b5b6020026020010181815250506000600267ffffffffffffffff811115611c6f57611c6e613897565b5b604051908082528060200260200182016040528015611c9d5781602001602082028036833780820191505090505b509050600042905085608001518660000151611cb99190613ef7565b421115611cd75785608001518660000151611cd49190613ef7565b90505b6000871115611e31576000606485611cef9190613fdc565b90505b87811015611de057600354601260008c815260200190815260200160002060008381526020019081526020016000206002015483611d309190613fa8565b611d3a9190613ec6565b601260008c8152602001908152602001600020600083815260200190815260200160002060000154611d6c9190613fdc565b601260008c8152602001908152602001600020600083815260200190815260200160002060010154611d9e9190613ef7565b83600081518110611db257611db161431f565b5b60200260200101818151611dc69190613ef7565b915081815250508080611dd89061401e565b915050611cf2565b5082600081518110611df557611df461431f565b5b602002602001015182600081518110611e1157611e1061431f565b5b60200260200101818151611e259190613ef7565b91508181525050611e6e565b82600081518110611e4557611e4461431f565b5b602002602001015182600081518110611e6157611e6061431f565b5b6020026020010181815250505b6001600354866040015183611e839190613fa8565b611e8d9190613ec6565b8660000151611e9c9190613fdc565b866020015184600081518110611eb557611eb461431f565b5b6020026020010151611ec79190613ef7565b611ed19190613ef7565b611edb9190613fa8565b82600181518110611eef57611eee61431f565b5b6020026020010181815250506000600f60008b815260200190815260200160002060010160009054906101000a900463ffffffff1663ffffffff1667ffffffffffffffff811115611f4357611f42613897565b5b604051908082528060200260200182016040528015611f715781602001602082028036833780820191505090505b5090506000805b886020015163ffffffff168163ffffffff161015612089578860c001518163ffffffff1681518110611fad57611fac61431f565b5b602002602001015185600081518110611fc957611fc861431f565b5b60200260200101511115801561201e575084600181518110611fee57611fed61431f565b5b60200260200101518960c001518263ffffffff16815181106120135761201261431f565b5b602002602001015111155b15612076578860c001518163ffffffff16815181106120405761203f61431f565b5b602002602001015183838151811061205b5761205a61431f565b5b60200260200101818152505081806120729061401e565b9250505b80806120819061434e565b915050611f78565b506000811115612138578067ffffffffffffffff8111156120ad576120ac613897565b5b6040519080825280602002602001820160405280156120db5781602001602082028036833780820191505090505b50995060005b81811015612136578281815181106120fc576120fb61431f565b5b60200260200101518b82815181106121175761211661431f565b5b602002602001018181525050808061212e9061401e565b9150506120e1565b505b505050505050505050919050565b60095481565b600760149054906101000a900467ffffffffffffffff1681565b600e6020528060005260406000206000915090505481565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6121ac612ab2565b6121b6600061346e565b565b6011602052816000526040600020602052806000526040600020600091509150505481565b60035481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6010602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154905083565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000838152602001908152602001600020549050600060126000848152602001908152602001600020600083815260200190815260200160002090506000600f600085815260200190815260200160002090508482600001541015612344576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161233b906143c6565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16876040518363ffffffff1660e01b81526004016123c392919061414d565b6020604051808303816000875af11580156123e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240691906141ae565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394b918de866040518263ffffffff1660e01b81526004016124629190613a36565b600060405180830381600087803b15801561247c57600080fd5b505af1158015612490573d6000803e3d6000fd5b5050505060015484036124ae576124a933866000612bdc565b6124c8565b84600a60008282546124c09190613fa8565b925050819055505b84600c60008282546124da9190613fa8565b92505081905550848260000160008282546124f59190613fa8565b925050819055506000429050816004015482600001546125159190613ef7565b42111561253357816004015482600001546125309190613ef7565b90505b8083600201819055506125463387612b61565b3373ffffffffffffffffffffffffffffffffffffffff167fb24546d975e2628748efc9aced80665e0fad66272033e5c0ea25fd3afac997958760405161258c9190613a36565b60405180910390a2505050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6007601c9054906101000a900461ffff1681565b6012602052816000526040600020602052806000526040600020600091509150508060000154908060010154908060020154905083565b600a5481565b61261b612ab2565b600254600181905550600060015411156126c65760028081111561264257612641613649565b5b600f6000600180546126549190613fa8565b815260200190815260200160002060080160009054906101000a900460ff16600281111561268557612684613649565b5b146126c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bc90614432565b60405180910390fd5b5b81600f600060015481526020019081526020016000206004018190555042600f60006001548152602001908152602001600020600001819055506001600f6000600154815260200190815260200160002060080160006101000a81548160ff0219169083600281111561273c5761273b613649565b5b021790555080600f6000600154815260200190815260200160002060010160006101000a81548163ffffffff021916908363ffffffff1602179055508063ffffffff1667ffffffffffffffff81111561279857612797613897565b5b6040519080825280602002602001820160405280156127c65781602001602082028036833780820191505090505b50600f6000600154815260200190815260200160002060060190805190602001906127f292919061353a565b506001600260008282546128069190613ef7565b925050819055506001547fcf30947cc5e4faa736b723018e806822835db29e1b1c2e6d140f95e19d8ede8583428460405161284393929190614483565b60405180910390a25050565b600b5481565b61285d612ab2565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036128cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c39061452c565b60405180910390fd5b6128d58161346e565b50565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600c5481565b600860009054906101000a900463ffffffff1681565b6000600b541115612ab057600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b546040518363ffffffff1660e01b81526004016129a692919061414d565b6020604051808303816000875af11580156129c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e991906141ae565b50600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166394b918de600b546040518263ffffffff1660e01b8152600401612a479190613a36565b600060405180830381600087803b158015612a6157600080fd5b505af1158015612a75573d6000803e3d6000fd5b50505050612aa7600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600b54612b61565b6000600b819055505b565b612aba613532565b73ffffffffffffffffffffffffffffffffffffffff16612ad8612240565b73ffffffffffffffffffffffffffffffffffffffff1614612b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b2590614598565b60405180910390fd5b565b80600f600060015481526020019081526020016000206006019080519060200190612b5c92919061353a565b505050565b60008273ffffffffffffffffffffffffffffffffffffffff1682604051612b87906145e9565b60006040518083038185875af1925050503d8060008114612bc4576040519150601f19603f3d011682016040523d82523d6000602084013e612bc9565b606091505b5050905080612bd757600080fd5b505050565b6000600f600060015481526020019081526020016000209050600042905081600401548260000154612c0e9190613ef7565b421115612c2c5781600401548260000154612c299190613ef7565b90505b600354826005015482612c3f9190613fa8565b612c499190613ec6565b8260020154612c589190613fdc565b826003016000828254612c6b9190613ef7565b9250508190555080826005018190555060008411156134675782156130815783826002016000828254612c9e9190613ef7565b925050819055506000601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060015481526020019081526020016000205490506000601260006001548152602001908152602001600020600083815260200190815260200160002090506000606483612d359190613ec6565b905060035460106000600154815260200190815260200160002060008381526020019081526020016000206002015485612d6f9190613fa8565b612d799190613ec6565b601060006001548152602001908152602001600020600083815260200190815260200160002060000154612dad9190613fdc565b60106000600154815260200190815260200160002060008381526020019081526020016000206001016000828254612de59190613ef7565b925050819055508660106000600154815260200190815260200160002060008381526020019081526020016000206000016000828254612e259190613ef7565b925050819055508360106000600154815260200190815260200160002060008381526020019081526020016000206002018190555050600081600001541115612eaf57600354816002015484612e7b9190613fa8565b612e859190613ec6565b8160000154612e949190613fdc565b816001016000828254612ea79190613ef7565b925050819055505b600086600c54612ebf9190613ef7565b111561307a5785600c54612ed39190613ef7565b84600201548560020154600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401612f3b9190613d15565b602060405180830381865afa158015612f58573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f7c91906140ce565b612f869190613fa8565b612f909190613fa8565b612f9a9190613fdc565b612fa49190613ec6565b846007018190555083600701548460020154600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016130149190613d15565b602060405180830381865afa158015613031573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061305591906140ce565b61305f9190613fa8565b6130699190613fa8565b6130739190613fa8565b600b819055505b5050613466565b838260020160008282546130959190613fa8565b925050819055506000601160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006001548152602001908152602001600020549050600060126000600154815260200190815260200160002060008381526020019081526020016000209050600060648361312c9190613ec6565b9050600354601060006001548152602001908152602001600020600083815260200190815260200160002060020154856131669190613fa8565b6131709190613ec6565b6010600060015481526020019081526020016000206000838152602001908152602001600020600001546131a49190613fdc565b601060006001548152602001908152602001600020600083815260200190815260200160002060010160008282546131dc9190613ef7565b92505081905550866010600060015481526020019081526020016000206000838152602001908152602001600020600001600082825461321c9190613fa8565b9250508190555083601060006001548152602001908152602001600020600083815260200190815260200160002060020181905550506003548160020154846132659190613fa8565b61326f9190613ec6565b816000015461327e9190613fdc565b8160010160008282546132919190613ef7565b92505081905550600086600c546132a89190613fa8565b11156134635785600c546132bc9190613fa8565b84600201548560020154600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016133249190613d15565b602060405180830381865afa158015613341573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061336591906140ce565b61336f9190613fa8565b6133799190613fa8565b6133839190613fdc565b61338d9190613ec6565b846007018190555083600701548460020154600a54600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016133fd9190613d15565b602060405180830381865afa15801561341a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061343e91906140ce565b6134489190613fa8565b6134529190613fa8565b61345c9190613fa8565b600b819055505b50505b5b5050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600033905090565b828054828255906000526020600020908101928215613576579160200282015b8281111561357557825182559160200191906001019061355a565b5b5090506135839190613587565b5090565b5b808211156135a0576000816000905550600101613588565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6135cb816135b8565b81146135d657600080fd5b50565b6000813590506135e8816135c2565b92915050565b600060208284031215613604576136036135ae565b5b6000613612848285016135d9565b91505092915050565b613624816135b8565b82525050565b600063ffffffff82169050919050565b6136438161362a565b82525050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6003811061368957613688613649565b5b50565b600081905061369a82613678565b919050565b60006136aa8261368c565b9050919050565b6136ba8161369f565b82525050565b6000610100820190506136d6600083018b61361b565b6136e3602083018a61363a565b6136f0604083018961361b565b6136fd606083018861361b565b61370a608083018761361b565b61371760a083018661361b565b61372460c083018561361b565b61373160e08301846136b1565b9998505050505050505050565b600067ffffffffffffffff82169050919050565b61375b8161373e565b811461376657600080fd5b50565b60008135905061377881613752565b92915050565b6000819050919050565b6137918161377e565b811461379c57600080fd5b50565b6000813590506137ae81613788565b92915050565b6137bd8161362a565b81146137c857600080fd5b50565b6000813590506137da816137b4565b92915050565b600061ffff82169050919050565b6137f7816137e0565b811461380257600080fd5b50565b600081359050613814816137ee565b92915050565b60008060008060808587031215613834576138336135ae565b5b600061384287828801613769565b94505060206138538782880161379f565b9350506040613864878288016137cb565b925050606061387587828801613805565b91505092959194509250565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6138cf82613886565b810181811067ffffffffffffffff821117156138ee576138ed613897565b5b80604052505050565b60006139016135a4565b905061390d82826138c6565b919050565b600067ffffffffffffffff82111561392d5761392c613897565b5b602082029050602081019050919050565b600080fd5b600061395661395184613912565b6138f7565b905080838252602082019050602084028301858111156139795761397861393e565b5b835b818110156139a2578061398e88826135d9565b84526020840193505060208101905061397b565b5050509392505050565b600082601f8301126139c1576139c0613881565b5b81356139d1848260208601613943565b91505092915050565b600080604083850312156139f1576139f06135ae565b5b60006139ff858286016135d9565b925050602083013567ffffffffffffffff811115613a2057613a1f6135b3565b5b613a2c858286016139ac565b9150509250929050565b6000602082019050613a4b600083018461361b565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000613a7c82613a51565b9050919050565b613a8c81613a71565b8114613a9757600080fd5b50565b600081359050613aa981613a83565b92915050565b600060208284031215613ac557613ac46135ae565b5b6000613ad384828501613a9a565b91505092915050565b6000819050919050565b6000613b01613afc613af784613a51565b613adc565b613a51565b9050919050565b6000613b1382613ae6565b9050919050565b6000613b2582613b08565b9050919050565b613b3581613b1a565b82525050565b6000602082019050613b506000830184613b2c565b92915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b8b816135b8565b82525050565b6000613b9d8383613b82565b60208301905092915050565b6000602082019050919050565b6000613bc182613b56565b613bcb8185613b61565b9350613bd683613b72565b8060005b83811015613c07578151613bee8882613b91565b9750613bf983613ba9565b925050600181019050613bda565b5085935050505092915050565b60006020820190508181036000830152613c2e8184613bb6565b905092915050565b613c3f8161377e565b82525050565b6000602082019050613c5a6000830184613c36565b92915050565b613c698161373e565b82525050565b6000602082019050613c846000830184613c60565b92915050565b6000613c9582613b08565b9050919050565b613ca581613c8a565b82525050565b6000602082019050613cc06000830184613c9c565b92915050565b60008060408385031215613cdd57613cdc6135ae565b5b6000613ceb85828601613a9a565b9250506020613cfc858286016135d9565b9150509250929050565b613d0f81613a71565b82525050565b6000602082019050613d2a6000830184613d06565b92915050565b60008060408385031215613d4757613d466135ae565b5b6000613d55858286016135d9565b9250506020613d66858286016135d9565b9150509250929050565b6000606082019050613d85600083018661361b565b613d92602083018561361b565b613d9f604083018461361b565b949350505050565b6000613db282613b08565b9050919050565b613dc281613da7565b82525050565b6000602082019050613ddd6000830184613db9565b92915050565b613dec816137e0565b82525050565b6000602082019050613e076000830184613de3565b92915050565b60008060408385031215613e2457613e236135ae565b5b6000613e32858286016135d9565b9250506020613e43858286016137cb565b9150509250929050565b6000602082019050613e62600083018461363a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ed1826135b8565b9150613edc836135b8565b925082613eec57613eeb613e68565b5b828204905092915050565b6000613f02826135b8565b9150613f0d836135b8565b9250828201905080821115613f2557613f24613e97565b5b92915050565b600082825260208201905092915050565b7f506f6f6c206973207374696c6c20616374697665000000000000000000000000600082015250565b6000613f72601483613f2b565b9150613f7d82613f3c565b602082019050919050565b60006020820190508181036000830152613fa181613f65565b9050919050565b6000613fb3826135b8565b9150613fbe836135b8565b9250828203905081811115613fd657613fd5613e97565b5b92915050565b6000613fe7826135b8565b9150613ff2836135b8565b9250828202614000816135b8565b9150828204841483151761401757614016613e97565b5b5092915050565b6000614029826135b8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361405b5761405a613e97565b5b600182019050919050565b600060a08201905061407b6000830188613c36565b6140886020830187613c60565b6140956040830186613de3565b6140a2606083018561363a565b6140af608083018461363a565b9695505050505050565b6000815190506140c8816135c2565b92915050565b6000602082840312156140e4576140e36135ae565b5b60006140f2848285016140b9565b91505092915050565b6000604082019050614110600083018561361b565b61411d602083018461361b565b9392505050565b60006040820190506141396000830185613d06565b6141466020830184613d06565b9392505050565b60006040820190506141626000830185613d06565b61416f602083018461361b565b9392505050565b60008115159050919050565b61418b81614176565b811461419657600080fd5b50565b6000815190506141a881614182565b92915050565b6000602082840312156141c4576141c36135ae565b5b60006141d284828501614199565b91505092915050565b7f506f6f6c206973206e6f74207374617274656420796574000000000000000000600082015250565b6000614211601783613f2b565b915061421c826141db565b602082019050919050565b6000602082019050818103600083015261424081614204565b9050919050565b7f4e6f7420616c6c6f77656420746f207374616b65206f6e206c61737420646179600082015250565b600061427d602083613f2b565b915061428882614247565b602082019050919050565b600060208201905081810360008301526142ac81614270565b9050919050565b7f4e6f7468696e6720746f207374616b6500000000000000000000000000000000600082015250565b60006142e9601083613f2b565b91506142f4826142b3565b602082019050919050565b60006020820190508181036000830152614318816142dc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006143598261362a565b915063ffffffff820361436f5761436e613e97565b5b600182019050919050565b7f496e73756666696369656e74206465706f736974000000000000000000000000600082015250565b60006143b0601483613f2b565b91506143bb8261437a565b602082019050919050565b600060208201905081810360008301526143df816143a3565b9050919050565b7f50726576696f757320706f6f6c206973206e6f742066696e6973686564000000600082015250565b600061441c601d83613f2b565b9150614427826143e6565b602082019050919050565b6000602082019050818103600083015261444b8161440f565b9050919050565b600061446d6144686144638461362a565b613adc565b6135b8565b9050919050565b61447d81614452565b82525050565b6000606082019050614498600083018661361b565b6144a5602083018561361b565b6144b26040830184614474565b949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614516602683613f2b565b9150614521826144ba565b604082019050919050565b6000602082019050818103600083015261454581614509565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614582602083613f2b565b915061458d8261454c565b602082019050919050565b600060208201905081810360008301526145b181614575565b9050919050565b600081905092915050565b50565b60006145d36000836145b8565b91506145de826145c3565b600082019050919050565b60006145f4826145c6565b915081905091905056fea2646970667358221220d7e9d010124d5532de5bfaaf634dc264b73146913901821b0309cde6b59f84cf64736f6c63430008140033