ETH Price: $2,695.01 (-1.10%)

SaveTheWeb3 (SAV3)
 

Overview

TokenID

112

Total Transfers

-

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Here are some people who have gone back in time to avoid repeating their downfall in the future due to the failure of web3. The project is the story of time travelers who belong to various organizations with different moralities who want to save web3.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
SaveTheWeb3

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
File 1 of 7 : SaveTheWeb3.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "erc721a/contracts/ERC721A.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
import "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";
contract SaveTheWeb3 is Ownable, ERC721A, ReentrancyGuard {
uint256 public immutable collectionSize;
uint256 public maxPerAddressDuringMint;
uint256 public maxWhitelistMintCount;
// whitelist root
bytes32 public whitelistRoot;
uint64 public whitelistPrice;
uint64 public publicPrice;
uint256 public whitelistSaleStartTime;
uint256 public whitelistSaleEndTime;
uint256 public publicSaleStartTime;
uint256 public publicSaleEndTime;
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 2 of 7 : ERC721A.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.1.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
import './IERC721A.sol';
/**
* @dev ERC721 token receiver interface.
*/
interface ERC721A__IERC721Receiver {
function onERC721Received(
address operator,
address from,
uint256 tokenId,
bytes calldata data
) external returns (bytes4);
}
/**
* @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard,
* including the Metadata extension. Built to optimize for lower gas during batch mints.
*
* Assumes serials are sequentially minted starting at `_startTokenId()`
* (defaults to 0, e.g. 0, 1, 2, 3..).
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 3 of 7 : Ownable.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (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.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 4 of 7 : ReentrancyGuard.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 5 of 7 : MerkleProof.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (utils/cryptography/MerkleProof.sol)
pragma solidity ^0.8.0;
/**
* @dev These functions deal with verification of Merkle Trees proofs.
*
* The proofs can be generated using the JavaScript library
* https://github.com/miguelmota/merkletreejs[merkletreejs].
* Note: the hashing algorithm should be keccak256 and pair sorting should be enabled.
*
* See `test/utils/cryptography/MerkleProof.test.js` for some examples.
*
* WARNING: You should avoid using leaf values that are 64 bytes long prior to
* hashing, or use a hash function other than keccak256 for hashing leaves.
* This is because the concatenation of a sorted pair of internal nodes in
* the merkle tree could be reinterpreted as a leaf value.
*/
library MerkleProof {
/**
* @dev Returns true if a `leaf` can be proved to be a part of a Merkle tree
* defined by `root`. For this, a `proof` must be provided, containing
* sibling hashes on the branch from the leaf to the root of the tree. Each
* pair of leaves and each pair of pre-images are assumed to be sorted.
*/
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 6 of 7 : IERC721A.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// SPDX-License-Identifier: MIT
// ERC721A Contracts v4.1.0
// Creator: Chiru Labs
pragma solidity ^0.8.4;
/**
* @dev Interface of an ERC721A compliant contract.
*/
interface IERC721A {
/**
* The caller must own the token or be an approved operator.
*/
error ApprovalCallerNotOwnerNorApproved();
/**
* The token does not exist.
*/
error ApprovalQueryForNonexistentToken();
/**
* The caller cannot approve to their own address.
*/
error ApproveToCaller();
/**
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

File 7 of 7 : Context.sol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
pragma solidity ^0.8.0;
/**
* @dev Provides information about the current execution context, including the
* sender of the transaction and its data. While these are generally available
* via msg.sender and msg.data, they should not be accessed in such a direct
* manner, since when dealing with meta-transactions the account sending and
* paying for execution may not be the actual sender (as far as an application
* is concerned).
*
* This contract is only required for intermediate, library-like contracts.
*/
abstract contract Context {
function _msgSender() internal view virtual returns (address) {
return msg.sender;
}
function _msgData() internal view virtual returns (bytes calldata) {
return msg.data;
}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Settings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
"optimizer": {
"enabled": false,
"runs": 200
},
"outputSelection": {
"*": {
"*": [
"evm.bytecode",
"evm.deployedBytecode",
"devdoc",
"userdoc",
"metadata",
"abi"
]
}
},
"libraries": {}
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"maxBatchSize_","type":"uint256"},{"internalType":"uint256","name":"collectionSize_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ApprovalCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"ApprovalQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"ApproveToCaller","type":"error"},{"inputs":[],"name":"BalanceQueryForZeroAddress","type":"error"},{"inputs":[],"name":"MintERC2309QuantityExceedsLimit","type":"error"},{"inputs":[],"name":"MintToZeroAddress","type":"error"},{"inputs":[],"name":"MintZeroQuantity","type":"error"},{"inputs":[],"name":"OwnerQueryForNonexistentToken","type":"error"},{"inputs":[],"name":"OwnershipNotInitializedForExtraData","type":"error"},{"inputs":[],"name":"TransferCallerNotOwnerNorApproved","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToNonERC721ReceiverImplementer","type":"error"},{"inputs":[],"name":"TransferToZeroAddress","type":"error"},{"inputs":[],"name":"URIQueryForNonexistentToken","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"collectionSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"address","name":"addr","type":"address"}],"name":"devMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPublicSaleTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWhitelistSaleTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isPublicSaleOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"bytes32","name":"leaf","type":"bytes32"}],"name":"isValidWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isWhitelistSaleOn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxPerAddressDuringMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWhitelistMintCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"numberMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownershipOf","outputs":[{"components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"},{"internalType":"bool","name":"burned","type":"bool"},{"internalType":"uint24","name":"extraData","type":"uint24"}],"internalType":"struct IERC721A.TokenOwnership","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"quantity","type":"uint8"}],"name":"publicMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"publicPrice","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicSaleEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"publicSaleStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"name":"setBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"name":"setMaxPerAddressDuringMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"count","type":"uint256"}],"name":"setMaxWhitelistMintCount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"price_","type":"uint64"}],"name":"setPublicPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"setPublicSaleTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"root_","type":"bytes32"}],"name":"setWhitelistMerkleRoot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"price_","type":"uint64"}],"name":"setWhitelistPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"setWhitelistSaleTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"quantity","type":"uint8"},{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"}],"name":"whitelistMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelistMinted","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whitelistPrice","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whitelistRoot","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whitelistSaleEndTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"whitelistSaleStartTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawMoney","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60a06040523480156200001157600080fd5b5060405162004bc438038062004bc4833981810160405281019062000037919062000237565b6040518060400160405280600b81526020017f53617665546865576562330000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5341563300000000000000000000000000000000000000000000000000000000815250620000c3620000b76200012660201b60201c565b6200012e60201b60201c565b8160039081620000d49190620004ee565b508060049081620000e69190620004ee565b50620000f7620001f260201b60201c565b6001819055505050600160098190555081600a8190555080608081815250506005600b819055505050620005d5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600090565b600080fd5b6000819050919050565b6200021181620001fc565b81146200021d57600080fd5b50565b600081519050620002318162000206565b92915050565b60008060408385031215620002515762000250620001f7565b5b6000620002618582860162000220565b9250506020620002748582860162000220565b9150509250929050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200030057607f821691505b602082108103620003165762000315620002b8565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000341565b6200038c868362000341565b95508019841693508086168417925050509392505050565b6000819050919050565b6000620003cf620003c9620003c384620001fc565b620003a4565b620001fc565b9050919050565b6000819050919050565b620003eb83620003ae565b62000403620003fa82620003d6565b8484546200034e565b825550505050565b600090565b6200041a6200040b565b62000427818484620003e0565b505050565b5b818110156200044f576200044360008262000410565b6001810190506200042d565b5050565b601f8211156200049e5762000468816200031c565b620004738462000331565b8101602085101562000483578190505b6200049b620004928562000331565b8301826200042c565b50505b505050565b600082821c905092915050565b6000620004c360001984600802620004a3565b1980831691505092915050565b6000620004de8383620004b0565b9150826002028217905092915050565b620004f9826200027e565b67ffffffffffffffff81111562000515576200051462000289565b5b620005218254620002e7565b6200052e82828562000453565b600060209050601f83116001811462000566576000841562000551578287015190505b6200055d8582620004d0565b865550620005cd565b601f19841662000576866200031c565b60005b82811015620005a05784890151825560018201915060208501945060208101905062000579565b86831015620005c05784890151620005bc601f891682620004b0565b8355505b6001600288020188555050505b505050505050565b6080516145be6200060660003960008181611228015281816112ec015281816115940152611a4d01526145be6000f3fe6080604052600436106102885760003560e01c8063715018a61161015a578063a945bf80116100c1578063dc33e6811161007a578063dc33e681146109a2578063e119802b146109df578063e92c0f3714610a0a578063e985e9c514610a33578063f2fde38b14610a70578063fc1a1c3614610a9957610288565b8063a945bf80146108a6578063ac446002146108d1578063ac5227cf146108e8578063b88d4fde14610913578063bd32fb661461093c578063c87b56dd1461096557610288565b80638da5cb5b116101135780638da5cb5b14610798578063913f61d4146107c357806395d89b41146107ec57806398a8cffe146108175780639f63ef6714610854578063a22cb4651461087d57610288565b8063715018a6146106ba5780637aef860f146106d1578063801316dc146106fd578063858e83b514610726578063866e0124146107425780638bc35c2f1461076d57610288565b8063386bfc98116101fe57806358381669116101b757806358381669146105905780635e763d7b146105ac5780636352211e146105d8578063635d739d146106155780636bb7b1d91461065257806370a082311461067d57610288565b8063386bfc98146104945780633f5e4741146104bf57806342842e0e146104ea57806345c0f5331461051357806354645d6a1461053e57806355f804b31461056757610288565b8063140364a111610250578063140364a11461038457806318160ddd146103c15780631e4d185f146103ec578063230b43f41461041757806323b872dd146104425780632d1a12f61461046b57610288565b806301ffc9a71461028d57806306fdde03146102ca578063081812fc146102f5578063095ea7b3146103325780630c29dbae1461035b575b600080fd5b34801561029957600080fd5b506102b460048036038101906102af9190612f19565b610ac4565b6040516102c19190612f61565b60405180910390f35b3480156102d657600080fd5b506102df610b56565b6040516102ec9190613015565b60405180910390f35b34801561030157600080fd5b5061031c6004803603810190610317919061306d565b610be8565b60405161032991906130db565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190613122565b610c64565b005b34801561036757600080fd5b50610382600480360381019061037d91906131a2565b610da5565b005b34801561039057600080fd5b506103ab60048036038101906103a6919061306d565b610e4d565b6040516103b8919061326f565b60405180910390f35b3480156103cd57600080fd5b506103d6610e65565b6040516103e39190613299565b60405180910390f35b3480156103f857600080fd5b50610401610e7c565b60405161040e9190613299565b60405180910390f35b34801561042357600080fd5b5061042c610e82565b6040516104399190613299565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906132b4565b610e88565b005b34801561047757600080fd5b50610492600480360381019061048d9190613307565b6111aa565b005b3480156104a057600080fd5b506104a96112a9565b6040516104b69190613360565b60405180910390f35b3480156104cb57600080fd5b506104d46112af565b6040516104e19190612f61565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c91906132b4565b6112ca565b005b34801561051f57600080fd5b506105286112ea565b6040516105359190613299565b60405180910390f35b34801561054a57600080fd5b506105656004803603810190610560919061337b565b61130e565b005b34801561057357600080fd5b5061058e60048036038101906105899190613420565b61139c565b005b6105aa60048036038101906105a59190613610565b61142e565b005b3480156105b857600080fd5b506105c1611737565b6040516105cf92919061366c565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa919061306d565b611748565b60405161060c91906130db565b60405180910390f35b34801561062157600080fd5b5061063c60048036038101906106379190613695565b61175a565b6040516106499190612f61565b60405180910390f35b34801561065e57600080fd5b50610667611771565b6040516106749190613299565b60405180910390f35b34801561068957600080fd5b506106a4600480360381019061069f91906136f1565b611777565b6040516106b19190613299565b60405180910390f35b3480156106c657600080fd5b506106cf61182f565b005b3480156106dd57600080fd5b506106e66118b7565b6040516106f492919061366c565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f919061337b565b6118c8565b005b610740600480360381019061073b919061371e565b611956565b005b34801561074e57600080fd5b50610757611b25565b6040516107649190613299565b60405180910390f35b34801561077957600080fd5b50610782611b2b565b60405161078f9190613299565b60405180910390f35b3480156107a457600080fd5b506107ad611b31565b6040516107ba91906130db565b60405180910390f35b3480156107cf57600080fd5b506107ea60048036038101906107e591906131a2565b611b5a565b005b3480156107f857600080fd5b50610801611c02565b60405161080e9190613015565b60405180910390f35b34801561082357600080fd5b5061083e600480360381019061083991906136f1565b611c94565b60405161084b919061375a565b60405180910390f35b34801561086057600080fd5b5061087b6004803603810190610876919061306d565b611cb4565b005b34801561088957600080fd5b506108a4600480360381019061089f91906137a1565b611d3a565b005b3480156108b257600080fd5b506108bb611eb1565b6040516108c891906137f0565b60405180910390f35b3480156108dd57600080fd5b506108e6611ecb565b005b3480156108f457600080fd5b506108fd61204b565b60405161090a9190612f61565b60405180910390f35b34801561091f57600080fd5b5061093a600480360381019061093591906138c0565b612066565b005b34801561094857600080fd5b50610963600480360381019061095e9190613943565b6120d9565b005b34801561097157600080fd5b5061098c6004803603810190610987919061306d565b61215f565b6040516109999190613015565b60405180910390f35b3480156109ae57600080fd5b506109c960048036038101906109c491906136f1565b6121fd565b6040516109d69190613299565b60405180910390f35b3480156109eb57600080fd5b506109f461220f565b604051610a019190613299565b60405180910390f35b348015610a1657600080fd5b50610a316004803603810190610a2c919061306d565b612215565b005b348015610a3f57600080fd5b50610a5a6004803603810190610a559190613970565b61229b565b604051610a679190612f61565b60405180910390f35b348015610a7c57600080fd5b50610a976004803603810190610a9291906136f1565b61232f565b005b348015610aa557600080fd5b50610aae612426565b604051610abb91906137f0565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b1f57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b4f5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060038054610b65906139df565b80601f0160208091040260200160405190810160405280929190818152602001828054610b91906139df565b8015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b5050505050905090565b6000610bf382612440565b610c29576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c6f82611748565b90508073ffffffffffffffffffffffffffffffffffffffff16610c9061249f565b73ffffffffffffffffffffffffffffffffffffffff1614610cf357610cbc81610cb761249f565b61229b565b610cf2576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826007600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610dad6124a7565b73ffffffffffffffffffffffffffffffffffffffff16610dcb611b31565b73ffffffffffffffffffffffffffffffffffffffff1614610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1890613a5c565b60405180910390fd5b80600d60086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610e55612e5e565b610e5e826124af565b9050919050565b6000610e6f6124cf565b6002546001540303905090565b60115481565b600e5481565b6000610e93826124d4565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610efa576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610f06846125a0565b91509150610f1c8187610f1761249f565b6125c2565b610f6857610f3186610f2c61249f565b61229b565b610f67576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610fce576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fdb8686866001612606565b8015610fe657600082555b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506110b48561109088888761260c565b7c020000000000000000000000000000000000000000000000000000000017612634565b600560008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084160361113a5760006001850190506000600560008381526020019081526020016000205403611138576001548114611137578360056000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111a2868686600161265f565b505050505050565b6111b26124a7565b73ffffffffffffffffffffffffffffffffffffffff166111d0611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d90613a5c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000082611250610e65565b61125a9190613aab565b111561129b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129290613b4d565b60405180910390fd5b6112a58183612665565b5050565b600c5481565b600042601054111580156112c557506011544211155b905090565b6112e583838360405180602001604052806000815250612066565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6113166124a7565b73ffffffffffffffffffffffffffffffffffffffff16611334611b31565b73ffffffffffffffffffffffffffffffffffffffff161461138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190613a5c565b60405180910390fd5b81601081905550806011819055505050565b6113a46124a7565b73ffffffffffffffffffffffffffffffffffffffff166113c2611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90613a5c565b60405180910390fd5b818160129182611429929190613d24565b505050565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390613e40565b60405180910390fd5b60008260ff16600d60009054906101000a900467ffffffffffffffff166114c39190613e60565b67ffffffffffffffff169050600081141580156114e457506114e361204b565b5b611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90613eee565b60405180910390fd5b61155382336040516020016115389190613f56565b6040516020818303038152906040528051906020012061175a565b611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990613fbd565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008360ff166115bf610e65565b6115c99190613aab565b111561160a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160190613b4d565b60405180910390fd5b600b5483601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116659190613fdd565b60ff1611156116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a090614086565b60405180910390fd5b82601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900460ff166117049190613fdd565b92506101000a81548160ff021916908360ff160217905550611729338460ff16612665565b61173281612683565b505050565b600080600e54600f54915091509091565b6000611753826124d4565b9050919050565b600061176983600c5484612724565b905092915050565b60105481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117de576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6118376124a7565b73ffffffffffffffffffffffffffffffffffffffff16611855611b31565b73ffffffffffffffffffffffffffffffffffffffff16146118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a290613a5c565b60405180910390fd5b6118b5600061273b565b565b600080601054601154915091509091565b6118d06124a7565b73ffffffffffffffffffffffffffffffffffffffff166118ee611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193b90613a5c565b60405180910390fd5b81600e8190555080600f819055505050565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb90613e40565b60405180910390fd5b60008160ff16600d60089054906101000a900467ffffffffffffffff166119eb9190613e60565b67ffffffffffffffff16905060008114158015611a0c5750611a0b6112af565b5b611a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a42906140f2565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000008260ff16611a78610e65565b611a829190613aab565b1115611ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aba90613b4d565b60405180910390fd5b600a548260ff161115611b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b029061415e565b60405180910390fd5b611b18338360ff16612665565b611b2181612683565b5050565b600f5481565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611b626124a7565b73ffffffffffffffffffffffffffffffffffffffff16611b80611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90613a5c565b60405180910390fd5b80600d60006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b606060048054611c11906139df565b80601f0160208091040260200160405190810160405280929190818152602001828054611c3d906139df565b8015611c8a5780601f10611c5f57610100808354040283529160200191611c8a565b820191906000526020600020905b815481529060010190602001808311611c6d57829003601f168201915b5050505050905090565b60136020528060005260406000206000915054906101000a900460ff1681565b611cbc6124a7565b73ffffffffffffffffffffffffffffffffffffffff16611cda611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2790613a5c565b60405180910390fd5b80600b8190555050565b611d4261249f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611da6576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060086000611db361249f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611e6061249f565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ea59190612f61565b60405180910390a35050565b600d60089054906101000a900467ffffffffffffffff1681565b611ed36124a7565b73ffffffffffffffffffffffffffffffffffffffff16611ef1611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3e90613a5c565b60405180910390fd5b600260095403611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f83906141ca565b60405180910390fd5b600260098190555060003373ffffffffffffffffffffffffffffffffffffffff1647604051611fba9061421b565b60006040518083038185875af1925050503d8060008114611ff7576040519150601f19603f3d011682016040523d82523d6000602084013e611ffc565b606091505b5050905080612040576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120379061427c565b60405180910390fd5b506001600981905550565b600042600e54111580156120615750600f544211155b905090565b612071848484610e88565b60008373ffffffffffffffffffffffffffffffffffffffff163b146120d35761209c848484846127ff565b6120d2576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6120e16124a7565b73ffffffffffffffffffffffffffffffffffffffff166120ff611b31565b73ffffffffffffffffffffffffffffffffffffffff1614612155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214c90613a5c565b60405180910390fd5b80600c8190555050565b606061216a82612440565b6121a0576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006121aa61294f565b905060008151036121ca57604051806020016040528060008152506121f5565b806121d4846129e1565b6040516020016121e59291906142d8565b6040516020818303038152906040525b915050919050565b600061220882612a3b565b9050919050565b600b5481565b61221d6124a7565b73ffffffffffffffffffffffffffffffffffffffff1661223b611b31565b73ffffffffffffffffffffffffffffffffffffffff1614612291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228890613a5c565b60405180910390fd5b80600a8190555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6123376124a7565b73ffffffffffffffffffffffffffffffffffffffff16612355611b31565b73ffffffffffffffffffffffffffffffffffffffff16146123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a290613a5c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361241a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124119061436e565b60405180910390fd5b6124238161273b565b50565b600d60009054906101000a900467ffffffffffffffff1681565b60008161244b6124cf565b1115801561245a575060015482105b8015612498575060007c0100000000000000000000000000000000000000000000000000000000600560008581526020019081526020016000205416145b9050919050565b600033905090565b600033905090565b6124b7612e5e565b6124c86124c3836124d4565b612a92565b9050919050565b600090565b600080829050806124e36124cf565b11612569576001548110156125685760006005600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603612566575b6000810361255c576005600083600190039350838152602001908152602001600020549050612532565b809250505061259b565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000806000600790508360005280602052604060002092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8612623868684612b48565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b61267f828260405180602001604052806000815250612b51565b5050565b803410156126c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bd906143da565b60405180910390fd5b80341115612721573373ffffffffffffffffffffffffffffffffffffffff166108fc82346126f491906143fa565b9081150290604051600060405180830381858888f1935050505015801561271f573d6000803e3d6000fd5b505b50565b6000826127318584612bef565b1490509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261282561249f565b8786866040518563ffffffff1660e01b81526004016128479493929190614483565b6020604051808303816000875af192505050801561288357506040513d601f19601f8201168201806040525081019061288091906144e4565b60015b6128fc573d80600081146128b3576040519150601f19603f3d011682016040523d82523d6000602084013e6128b8565b606091505b5060008151036128f4576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606012805461295e906139df565b80601f016020809104026020016040519081016040528092919081815260200182805461298a906139df565b80156129d75780601f106129ac576101008083540402835291602001916129d7565b820191906000526020600020905b8154815290600101906020018083116129ba57829003601f168201915b5050505050905090565b60606080604051019050806040528082600183039250600a81066030018353600a810490505b8015612a2757600183039250600a81066030018353600a81049050612a07565b508181036020830392508083525050919050565b600067ffffffffffffffff6040600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b612a9a612e5e565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c01000000000000000000000000000000000000000000000000000000008316141581604001901515908115158152505060e882901c816060019062ffffff16908162ffffff1681525050919050565b60009392505050565b612b5b8383612c64565b60008373ffffffffffffffffffffffffffffffffffffffff163b14612bea5760006001549050600083820390505b612b9c60008683806001019450866127ff565b612bd2576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110612b89578160015414612be757600080fd5b50505b505050565b60008082905060005b8451811015612c59576000858281518110612c1657612c15614511565b5b60200260200101519050808311612c3857612c318382612e37565b9250612c45565b612c428184612e37565b92505b508080612c5190614540565b915050612bf8565b508091505092915050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612cd1576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008203612d0b576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612d186000848385612606565b600160406001901b178202600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612d8f83612d80600086600061260c565b612d8985612e4e565b17612634565b60056000838152602001908152602001600020819055506000819050600083830190505b818060010192508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808210612db357806001819055505050612e32600084838561265f565b505050565b600082600052816020526040600020905092915050565b60006001821460e11b9050919050565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600015158152602001600062ffffff1681525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612ef681612ec1565b8114612f0157600080fd5b50565b600081359050612f1381612eed565b92915050565b600060208284031215612f2f57612f2e612eb7565b5b6000612f3d84828501612f04565b91505092915050565b60008115159050919050565b612f5b81612f46565b82525050565b6000602082019050612f766000830184612f52565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fb6578082015181840152602081019050612f9b565b83811115612fc5576000848401525b50505050565b6000601f19601f8301169050919050565b6000612fe782612f7c565b612ff18185612f87565b9350613001818560208601612f98565b61300a81612fcb565b840191505092915050565b6000602082019050818103600083015261302f8184612fdc565b905092915050565b6000819050919050565b61304a81613037565b811461305557600080fd5b50565b60008135905061306781613041565b92915050565b60006020828403121561308357613082612eb7565b5b600061309184828501613058565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130c58261309a565b9050919050565b6130d5816130ba565b82525050565b60006020820190506130f060008301846130cc565b92915050565b6130ff816130ba565b811461310a57600080fd5b50565b60008135905061311c816130f6565b92915050565b6000806040838503121561313957613138612eb7565b5b60006131478582860161310d565b925050602061315885828601613058565b9150509250929050565b600067ffffffffffffffff82169050919050565b61317f81613162565b811461318a57600080fd5b50565b60008135905061319c81613176565b92915050565b6000602082840312156131b8576131b7612eb7565b5b60006131c68482850161318d565b91505092915050565b6131d8816130ba565b82525050565b6131e781613162565b82525050565b6131f681612f46565b82525050565b600062ffffff82169050919050565b613214816131fc565b82525050565b60808201600082015161323060008501826131cf565b50602082015161324360208501826131de565b50604082015161325660408501826131ed565b506060820151613269606085018261320b565b50505050565b6000608082019050613284600083018461321a565b92915050565b61329381613037565b82525050565b60006020820190506132ae600083018461328a565b92915050565b6000806000606084860312156132cd576132cc612eb7565b5b60006132db8682870161310d565b93505060206132ec8682870161310d565b92505060406132fd86828701613058565b9150509250925092565b6000806040838503121561331e5761331d612eb7565b5b600061332c85828601613058565b925050602061333d8582860161310d565b9150509250929050565b6000819050919050565b61335a81613347565b82525050565b60006020820190506133756000830184613351565b92915050565b6000806040838503121561339257613391612eb7565b5b60006133a085828601613058565b92505060206133b185828601613058565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126133e0576133df6133bb565b5b8235905067ffffffffffffffff8111156133fd576133fc6133c0565b5b602083019150836001820283011115613419576134186133c5565b5b9250929050565b6000806020838503121561343757613436612eb7565b5b600083013567ffffffffffffffff81111561345557613454612ebc565b5b613461858286016133ca565b92509250509250929050565b600060ff82169050919050565b6134838161346d565b811461348e57600080fd5b50565b6000813590506134a08161347a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6134de82612fcb565b810181811067ffffffffffffffff821117156134fd576134fc6134a6565b5b80604052505050565b6000613510612ead565b905061351c82826134d5565b919050565b600067ffffffffffffffff82111561353c5761353b6134a6565b5b602082029050602081019050919050565b61355681613347565b811461356157600080fd5b50565b6000813590506135738161354d565b92915050565b600061358c61358784613521565b613506565b905080838252602082019050602084028301858111156135af576135ae6133c5565b5b835b818110156135d857806135c48882613564565b8452602084019350506020810190506135b1565b5050509392505050565b600082601f8301126135f7576135f66133bb565b5b8135613607848260208601613579565b91505092915050565b6000806040838503121561362757613626612eb7565b5b600061363585828601613491565b925050602083013567ffffffffffffffff81111561365657613655612ebc565b5b613662858286016135e2565b9150509250929050565b6000604082019050613681600083018561328a565b61368e602083018461328a565b9392505050565b600080604083850312156136ac576136ab612eb7565b5b600083013567ffffffffffffffff8111156136ca576136c9612ebc565b5b6136d6858286016135e2565b92505060206136e785828601613564565b9150509250929050565b60006020828403121561370757613706612eb7565b5b60006137158482850161310d565b91505092915050565b60006020828403121561373457613733612eb7565b5b600061374284828501613491565b91505092915050565b6137548161346d565b82525050565b600060208201905061376f600083018461374b565b92915050565b61377e81612f46565b811461378957600080fd5b50565b60008135905061379b81613775565b92915050565b600080604083850312156137b8576137b7612eb7565b5b60006137c68582860161310d565b92505060206137d78582860161378c565b9150509250929050565b6137ea81613162565b82525050565b600060208201905061380560008301846137e1565b92915050565b600080fd5b600067ffffffffffffffff82111561382b5761382a6134a6565b5b61383482612fcb565b9050602081019050919050565b82818337600083830152505050565b600061386361385e84613810565b613506565b90508281526020810184848401111561387f5761387e61380b565b5b61388a848285613841565b509392505050565b600082601f8301126138a7576138a66133bb565b5b81356138b7848260208601613850565b91505092915050565b600080600080608085870312156138da576138d9612eb7565b5b60006138e88782880161310d565b94505060206138f98782880161310d565b935050604061390a87828801613058565b925050606085013567ffffffffffffffff81111561392b5761392a612ebc565b5b61393787828801613892565b91505092959194509250565b60006020828403121561395957613958612eb7565b5b600061396784828501613564565b91505092915050565b6000806040838503121561398757613986612eb7565b5b60006139958582860161310d565b92505060206139a68582860161310d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139f757607f821691505b602082108103613a0a57613a096139b0565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a46602083612f87565b9150613a5182613a10565b602082019050919050565b60006020820190508181036000830152613a7581613a39565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ab682613037565b9150613ac183613037565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613af657613af5613a7c565b5b828201905092915050565b7f72656163686564206d617820737570706c790000000000000000000000000000600082015250565b6000613b37601283612f87565b9150613b4282613b01565b602082019050919050565b60006020820190508181036000830152613b6681613b2a565b9050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613bda7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613b9d565b613be48683613b9d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613c21613c1c613c1784613037565b613bfc565b613037565b9050919050565b6000819050919050565b613c3b83613c06565b613c4f613c4782613c28565b848454613baa565b825550505050565b600090565b613c64613c57565b613c6f818484613c32565b505050565b5b81811015613c9357613c88600082613c5c565b600181019050613c75565b5050565b601f821115613cd857613ca981613b78565b613cb284613b8d565b81016020851015613cc1578190505b613cd5613ccd85613b8d565b830182613c74565b50505b505050565b600082821c905092915050565b6000613cfb60001984600802613cdd565b1980831691505092915050565b6000613d148383613cea565b9150826002028217905092915050565b613d2e8383613b6d565b67ffffffffffffffff811115613d4757613d466134a6565b5b613d5182546139df565b613d5c828285613c97565b6000601f831160018114613d8b5760008415613d79578287013590505b613d838582613d08565b865550613deb565b601f198416613d9986613b78565b60005b82811015613dc157848901358255600182019150602085019450602081019050613d9c565b86831015613dde5784890135613dda601f891682613cea565b8355505b6001600288020188555050505b50505050505050565b7f7468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b6000613e2a601e83612f87565b9150613e3582613df4565b602082019050919050565b60006020820190508181036000830152613e5981613e1d565b9050919050565b6000613e6b82613162565b9150613e7683613162565b92508167ffffffffffffffff0483118215151615613e9757613e96613a7c565b5b828202905092915050565b7f77686974656c6973742073616c6520686173206e6f7420626567756e20796574600082015250565b6000613ed8602083612f87565b9150613ee382613ea2565b602082019050919050565b60006020820190508181036000830152613f0781613ecb565b9050919050565b60008160601b9050919050565b6000613f2682613f0e565b9050919050565b6000613f3882613f1b565b9050919050565b613f50613f4b826130ba565b613f2d565b82525050565b6000613f628284613f3f565b60148201915081905092915050565b7f6e6f7420656c696769626c6520666f722077686974656c697374206d696e7400600082015250565b6000613fa7601f83612f87565b9150613fb282613f71565b602082019050919050565b60006020820190508181036000830152613fd681613f9a565b9050919050565b6000613fe88261346d565b9150613ff38361346d565b92508260ff0382111561400957614008613a7c565b5b828201905092915050565b7f72656163686564206d6178206d696e7420636f756e7420666f7220776869746560008201527f6c69737400000000000000000000000000000000000000000000000000000000602082015250565b6000614070602483612f87565b915061407b82614014565b604082019050919050565b6000602082019050818103600083015261409f81614063565b9050919050565b7f7075626c69632073616c6520686173206e6f7420737461727465642079657400600082015250565b60006140dc601f83612f87565b91506140e7826140a6565b602082019050919050565b6000602082019050818103600083015261410b816140cf565b9050919050565b7f63616e206e6f74206d696e742074686973206d616e7900000000000000000000600082015250565b6000614148601683612f87565b915061415382614112565b602082019050919050565b600060208201905081810360008301526141778161413b565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006141b4601f83612f87565b91506141bf8261417e565b602082019050919050565b600060208201905081810360008301526141e3816141a7565b9050919050565b600081905092915050565b50565b60006142056000836141ea565b9150614210826141f5565b600082019050919050565b6000614226826141f8565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000614266601083612f87565b915061427182614230565b602082019050919050565b6000602082019050818103600083015261429581614259565b9050919050565b600081905092915050565b60006142b282612f7c565b6142bc818561429c565b93506142cc818560208601612f98565b80840191505092915050565b60006142e482856142a7565b91506142f082846142a7565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614358602683612f87565b9150614363826142fc565b604082019050919050565b600060208201905081810360008301526143878161434b565b9050919050565b7f6e65656420746f2073656e64206d6f7265204554482e00000000000000000000600082015250565b60006143c4601683612f87565b91506143cf8261438e565b602082019050919050565b600060208201905081810360008301526143f3816143b7565b9050919050565b600061440582613037565b915061441083613037565b92508282101561442357614422613a7c565b5b828203905092915050565b600081519050919050565b600082825260208201905092915050565b60006144558261442e565b61445f8185614439565b935061446f818560208601612f98565b61447881612fcb565b840191505092915050565b600060808201905061449860008301876130cc565b6144a560208301866130cc565b6144b2604083018561328a565b81810360608301526144c4818461444a565b905095945050505050565b6000815190506144de81612eed565b92915050565b6000602082840312156144fa576144f9612eb7565b5b6000614508848285016144cf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061454b82613037565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361457d5761457c613a7c565b5b60018201905091905056fea2646970667358221220340a9b6005f91539bf3598b7f8b37540b9fe33eb03cc064641cd5911ab7510e164736f6c634300080f003300000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000001388

Deployed Bytecode

0x6080604052600436106102885760003560e01c8063715018a61161015a578063a945bf80116100c1578063dc33e6811161007a578063dc33e681146109a2578063e119802b146109df578063e92c0f3714610a0a578063e985e9c514610a33578063f2fde38b14610a70578063fc1a1c3614610a9957610288565b8063a945bf80146108a6578063ac446002146108d1578063ac5227cf146108e8578063b88d4fde14610913578063bd32fb661461093c578063c87b56dd1461096557610288565b80638da5cb5b116101135780638da5cb5b14610798578063913f61d4146107c357806395d89b41146107ec57806398a8cffe146108175780639f63ef6714610854578063a22cb4651461087d57610288565b8063715018a6146106ba5780637aef860f146106d1578063801316dc146106fd578063858e83b514610726578063866e0124146107425780638bc35c2f1461076d57610288565b8063386bfc98116101fe57806358381669116101b757806358381669146105905780635e763d7b146105ac5780636352211e146105d8578063635d739d146106155780636bb7b1d91461065257806370a082311461067d57610288565b8063386bfc98146104945780633f5e4741146104bf57806342842e0e146104ea57806345c0f5331461051357806354645d6a1461053e57806355f804b31461056757610288565b8063140364a111610250578063140364a11461038457806318160ddd146103c15780631e4d185f146103ec578063230b43f41461041757806323b872dd146104425780632d1a12f61461046b57610288565b806301ffc9a71461028d57806306fdde03146102ca578063081812fc146102f5578063095ea7b3146103325780630c29dbae1461035b575b600080fd5b34801561029957600080fd5b506102b460048036038101906102af9190612f19565b610ac4565b6040516102c19190612f61565b60405180910390f35b3480156102d657600080fd5b506102df610b56565b6040516102ec9190613015565b60405180910390f35b34801561030157600080fd5b5061031c6004803603810190610317919061306d565b610be8565b60405161032991906130db565b60405180910390f35b34801561033e57600080fd5b5061035960048036038101906103549190613122565b610c64565b005b34801561036757600080fd5b50610382600480360381019061037d91906131a2565b610da5565b005b34801561039057600080fd5b506103ab60048036038101906103a6919061306d565b610e4d565b6040516103b8919061326f565b60405180910390f35b3480156103cd57600080fd5b506103d6610e65565b6040516103e39190613299565b60405180910390f35b3480156103f857600080fd5b50610401610e7c565b60405161040e9190613299565b60405180910390f35b34801561042357600080fd5b5061042c610e82565b6040516104399190613299565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906132b4565b610e88565b005b34801561047757600080fd5b50610492600480360381019061048d9190613307565b6111aa565b005b3480156104a057600080fd5b506104a96112a9565b6040516104b69190613360565b60405180910390f35b3480156104cb57600080fd5b506104d46112af565b6040516104e19190612f61565b60405180910390f35b3480156104f657600080fd5b50610511600480360381019061050c91906132b4565b6112ca565b005b34801561051f57600080fd5b506105286112ea565b6040516105359190613299565b60405180910390f35b34801561054a57600080fd5b506105656004803603810190610560919061337b565b61130e565b005b34801561057357600080fd5b5061058e60048036038101906105899190613420565b61139c565b005b6105aa60048036038101906105a59190613610565b61142e565b005b3480156105b857600080fd5b506105c1611737565b6040516105cf92919061366c565b60405180910390f35b3480156105e457600080fd5b506105ff60048036038101906105fa919061306d565b611748565b60405161060c91906130db565b60405180910390f35b34801561062157600080fd5b5061063c60048036038101906106379190613695565b61175a565b6040516106499190612f61565b60405180910390f35b34801561065e57600080fd5b50610667611771565b6040516106749190613299565b60405180910390f35b34801561068957600080fd5b506106a4600480360381019061069f91906136f1565b611777565b6040516106b19190613299565b60405180910390f35b3480156106c657600080fd5b506106cf61182f565b005b3480156106dd57600080fd5b506106e66118b7565b6040516106f492919061366c565b60405180910390f35b34801561070957600080fd5b50610724600480360381019061071f919061337b565b6118c8565b005b610740600480360381019061073b919061371e565b611956565b005b34801561074e57600080fd5b50610757611b25565b6040516107649190613299565b60405180910390f35b34801561077957600080fd5b50610782611b2b565b60405161078f9190613299565b60405180910390f35b3480156107a457600080fd5b506107ad611b31565b6040516107ba91906130db565b60405180910390f35b3480156107cf57600080fd5b506107ea60048036038101906107e591906131a2565b611b5a565b005b3480156107f857600080fd5b50610801611c02565b60405161080e9190613015565b60405180910390f35b34801561082357600080fd5b5061083e600480360381019061083991906136f1565b611c94565b60405161084b919061375a565b60405180910390f35b34801561086057600080fd5b5061087b6004803603810190610876919061306d565b611cb4565b005b34801561088957600080fd5b506108a4600480360381019061089f91906137a1565b611d3a565b005b3480156108b257600080fd5b506108bb611eb1565b6040516108c891906137f0565b60405180910390f35b3480156108dd57600080fd5b506108e6611ecb565b005b3480156108f457600080fd5b506108fd61204b565b60405161090a9190612f61565b60405180910390f35b34801561091f57600080fd5b5061093a600480360381019061093591906138c0565b612066565b005b34801561094857600080fd5b50610963600480360381019061095e9190613943565b6120d9565b005b34801561097157600080fd5b5061098c6004803603810190610987919061306d565b61215f565b6040516109999190613015565b60405180910390f35b3480156109ae57600080fd5b506109c960048036038101906109c491906136f1565b6121fd565b6040516109d69190613299565b60405180910390f35b3480156109eb57600080fd5b506109f461220f565b604051610a019190613299565b60405180910390f35b348015610a1657600080fd5b50610a316004803603810190610a2c919061306d565b612215565b005b348015610a3f57600080fd5b50610a5a6004803603810190610a559190613970565b61229b565b604051610a679190612f61565b60405180910390f35b348015610a7c57600080fd5b50610a976004803603810190610a9291906136f1565b61232f565b005b348015610aa557600080fd5b50610aae612426565b604051610abb91906137f0565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480610b1f57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80610b4f5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060038054610b65906139df565b80601f0160208091040260200160405190810160405280929190818152602001828054610b91906139df565b8015610bde5780601f10610bb357610100808354040283529160200191610bde565b820191906000526020600020905b815481529060010190602001808311610bc157829003601f168201915b5050505050905090565b6000610bf382612440565b610c29576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610c6f82611748565b90508073ffffffffffffffffffffffffffffffffffffffff16610c9061249f565b73ffffffffffffffffffffffffffffffffffffffff1614610cf357610cbc81610cb761249f565b61229b565b610cf2576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826007600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b610dad6124a7565b73ffffffffffffffffffffffffffffffffffffffff16610dcb611b31565b73ffffffffffffffffffffffffffffffffffffffff1614610e21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1890613a5c565b60405180910390fd5b80600d60086101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b610e55612e5e565b610e5e826124af565b9050919050565b6000610e6f6124cf565b6002546001540303905090565b60115481565b600e5481565b6000610e93826124d4565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610efa576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610f06846125a0565b91509150610f1c8187610f1761249f565b6125c2565b610f6857610f3186610f2c61249f565b61229b565b610f67576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610fce576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fdb8686866001612606565b8015610fe657600082555b600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008154600101919050819055506110b48561109088888761260c565b7c020000000000000000000000000000000000000000000000000000000017612634565b600560008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084160361113a5760006001850190506000600560008381526020019081526020016000205403611138576001548114611137578360056000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46111a2868686600161265f565b505050505050565b6111b26124a7565b73ffffffffffffffffffffffffffffffffffffffff166111d0611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611226576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121d90613a5c565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000138882611250610e65565b61125a9190613aab565b111561129b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129290613b4d565b60405180910390fd5b6112a58183612665565b5050565b600c5481565b600042601054111580156112c557506011544211155b905090565b6112e583838360405180602001604052806000815250612066565b505050565b7f000000000000000000000000000000000000000000000000000000000000138881565b6113166124a7565b73ffffffffffffffffffffffffffffffffffffffff16611334611b31565b73ffffffffffffffffffffffffffffffffffffffff161461138a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138190613a5c565b60405180910390fd5b81601081905550806011819055505050565b6113a46124a7565b73ffffffffffffffffffffffffffffffffffffffff166113c2611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611418576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140f90613a5c565b60405180910390fd5b818160129182611429929190613d24565b505050565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff161461149c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161149390613e40565b60405180910390fd5b60008260ff16600d60009054906101000a900467ffffffffffffffff166114c39190613e60565b67ffffffffffffffff169050600081141580156114e457506114e361204b565b5b611523576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151a90613eee565b60405180910390fd5b61155382336040516020016115389190613f56565b6040516020818303038152906040528051906020012061175a565b611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990613fbd565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000013888360ff166115bf610e65565b6115c99190613aab565b111561160a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160190613b4d565b60405180910390fd5b600b5483601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116659190613fdd565b60ff1611156116a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a090614086565b60405180910390fd5b82601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282829054906101000a900460ff166117049190613fdd565b92506101000a81548160ff021916908360ff160217905550611729338460ff16612665565b61173281612683565b505050565b600080600e54600f54915091509091565b6000611753826124d4565b9050919050565b600061176983600c5484612724565b905092915050565b60105481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117de576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b6118376124a7565b73ffffffffffffffffffffffffffffffffffffffff16611855611b31565b73ffffffffffffffffffffffffffffffffffffffff16146118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a290613a5c565b60405180910390fd5b6118b5600061273b565b565b600080601054601154915091509091565b6118d06124a7565b73ffffffffffffffffffffffffffffffffffffffff166118ee611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611944576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193b90613a5c565b60405180910390fd5b81600e8190555080600f819055505050565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146119c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bb90613e40565b60405180910390fd5b60008160ff16600d60089054906101000a900467ffffffffffffffff166119eb9190613e60565b67ffffffffffffffff16905060008114158015611a0c5750611a0b6112af565b5b611a4b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a42906140f2565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000013888260ff16611a78610e65565b611a829190613aab565b1115611ac3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aba90613b4d565b60405180910390fd5b600a548260ff161115611b0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b029061415e565b60405180910390fd5b611b18338360ff16612665565b611b2181612683565b5050565b600f5481565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b611b626124a7565b73ffffffffffffffffffffffffffffffffffffffff16611b80611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611bd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bcd90613a5c565b60405180910390fd5b80600d60006101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555050565b606060048054611c11906139df565b80601f0160208091040260200160405190810160405280929190818152602001828054611c3d906139df565b8015611c8a5780601f10611c5f57610100808354040283529160200191611c8a565b820191906000526020600020905b815481529060010190602001808311611c6d57829003601f168201915b5050505050905090565b60136020528060005260406000206000915054906101000a900460ff1681565b611cbc6124a7565b73ffffffffffffffffffffffffffffffffffffffff16611cda611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611d30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2790613a5c565b60405180910390fd5b80600b8190555050565b611d4261249f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611da6576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060086000611db361249f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611e6061249f565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611ea59190612f61565b60405180910390a35050565b600d60089054906101000a900467ffffffffffffffff1681565b611ed36124a7565b73ffffffffffffffffffffffffffffffffffffffff16611ef1611b31565b73ffffffffffffffffffffffffffffffffffffffff1614611f47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3e90613a5c565b60405180910390fd5b600260095403611f8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f83906141ca565b60405180910390fd5b600260098190555060003373ffffffffffffffffffffffffffffffffffffffff1647604051611fba9061421b565b60006040518083038185875af1925050503d8060008114611ff7576040519150601f19603f3d011682016040523d82523d6000602084013e611ffc565b606091505b5050905080612040576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120379061427c565b60405180910390fd5b506001600981905550565b600042600e54111580156120615750600f544211155b905090565b612071848484610e88565b60008373ffffffffffffffffffffffffffffffffffffffff163b146120d35761209c848484846127ff565b6120d2576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b6120e16124a7565b73ffffffffffffffffffffffffffffffffffffffff166120ff611b31565b73ffffffffffffffffffffffffffffffffffffffff1614612155576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214c90613a5c565b60405180910390fd5b80600c8190555050565b606061216a82612440565b6121a0576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006121aa61294f565b905060008151036121ca57604051806020016040528060008152506121f5565b806121d4846129e1565b6040516020016121e59291906142d8565b6040516020818303038152906040525b915050919050565b600061220882612a3b565b9050919050565b600b5481565b61221d6124a7565b73ffffffffffffffffffffffffffffffffffffffff1661223b611b31565b73ffffffffffffffffffffffffffffffffffffffff1614612291576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228890613a5c565b60405180910390fd5b80600a8190555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6123376124a7565b73ffffffffffffffffffffffffffffffffffffffff16612355611b31565b73ffffffffffffffffffffffffffffffffffffffff16146123ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123a290613a5c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361241a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124119061436e565b60405180910390fd5b6124238161273b565b50565b600d60009054906101000a900467ffffffffffffffff1681565b60008161244b6124cf565b1115801561245a575060015482105b8015612498575060007c0100000000000000000000000000000000000000000000000000000000600560008581526020019081526020016000205416145b9050919050565b600033905090565b600033905090565b6124b7612e5e565b6124c86124c3836124d4565b612a92565b9050919050565b600090565b600080829050806124e36124cf565b11612569576001548110156125685760006005600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603612566575b6000810361255c576005600083600190039350838152602001908152602001600020549050612532565b809250505061259b565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b6000806000600790508360005280602052604060002092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8612623868684612b48565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b61267f828260405180602001604052806000815250612b51565b5050565b803410156126c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126bd906143da565b60405180910390fd5b80341115612721573373ffffffffffffffffffffffffffffffffffffffff166108fc82346126f491906143fa565b9081150290604051600060405180830381858888f1935050505015801561271f573d6000803e3d6000fd5b505b50565b6000826127318584612bef565b1490509392505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261282561249f565b8786866040518563ffffffff1660e01b81526004016128479493929190614483565b6020604051808303816000875af192505050801561288357506040513d601f19601f8201168201806040525081019061288091906144e4565b60015b6128fc573d80600081146128b3576040519150601f19603f3d011682016040523d82523d6000602084013e6128b8565b606091505b5060008151036128f4576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606012805461295e906139df565b80601f016020809104026020016040519081016040528092919081815260200182805461298a906139df565b80156129d75780601f106129ac576101008083540402835291602001916129d7565b820191906000526020600020905b8154815290600101906020018083116129ba57829003601f168201915b5050505050905090565b60606080604051019050806040528082600183039250600a81066030018353600a810490505b8015612a2757600183039250600a81066030018353600a81049050612a07565b508181036020830392508083525050919050565b600067ffffffffffffffff6040600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054901c169050919050565b612a9a612e5e565b81816000019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060a082901c816020019067ffffffffffffffff16908167ffffffffffffffff168152505060007c01000000000000000000000000000000000000000000000000000000008316141581604001901515908115158152505060e882901c816060019062ffffff16908162ffffff1681525050919050565b60009392505050565b612b5b8383612c64565b60008373ffffffffffffffffffffffffffffffffffffffff163b14612bea5760006001549050600083820390505b612b9c60008683806001019450866127ff565b612bd2576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110612b89578160015414612be757600080fd5b50505b505050565b60008082905060005b8451811015612c59576000858281518110612c1657612c15614511565b5b60200260200101519050808311612c3857612c318382612e37565b9250612c45565b612c428184612e37565b92505b508080612c5190614540565b915050612bf8565b508091505092915050565b60006001549050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612cd1576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008203612d0b576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612d186000848385612606565b600160406001901b178202600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550612d8f83612d80600086600061260c565b612d8985612e4e565b17612634565b60056000838152602001908152602001600020819055506000819050600083830190505b818060010192508573ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4808210612db357806001819055505050612e32600084838561265f565b505050565b600082600052816020526040600020905092915050565b60006001821460e11b9050919050565b6040518060800160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600067ffffffffffffffff168152602001600015158152602001600062ffffff1681525090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612ef681612ec1565b8114612f0157600080fd5b50565b600081359050612f1381612eed565b92915050565b600060208284031215612f2f57612f2e612eb7565b5b6000612f3d84828501612f04565b91505092915050565b60008115159050919050565b612f5b81612f46565b82525050565b6000602082019050612f766000830184612f52565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612fb6578082015181840152602081019050612f9b565b83811115612fc5576000848401525b50505050565b6000601f19601f8301169050919050565b6000612fe782612f7c565b612ff18185612f87565b9350613001818560208601612f98565b61300a81612fcb565b840191505092915050565b6000602082019050818103600083015261302f8184612fdc565b905092915050565b6000819050919050565b61304a81613037565b811461305557600080fd5b50565b60008135905061306781613041565b92915050565b60006020828403121561308357613082612eb7565b5b600061309184828501613058565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006130c58261309a565b9050919050565b6130d5816130ba565b82525050565b60006020820190506130f060008301846130cc565b92915050565b6130ff816130ba565b811461310a57600080fd5b50565b60008135905061311c816130f6565b92915050565b6000806040838503121561313957613138612eb7565b5b60006131478582860161310d565b925050602061315885828601613058565b9150509250929050565b600067ffffffffffffffff82169050919050565b61317f81613162565b811461318a57600080fd5b50565b60008135905061319c81613176565b92915050565b6000602082840312156131b8576131b7612eb7565b5b60006131c68482850161318d565b91505092915050565b6131d8816130ba565b82525050565b6131e781613162565b82525050565b6131f681612f46565b82525050565b600062ffffff82169050919050565b613214816131fc565b82525050565b60808201600082015161323060008501826131cf565b50602082015161324360208501826131de565b50604082015161325660408501826131ed565b506060820151613269606085018261320b565b50505050565b6000608082019050613284600083018461321a565b92915050565b61329381613037565b82525050565b60006020820190506132ae600083018461328a565b92915050565b6000806000606084860312156132cd576132cc612eb7565b5b60006132db8682870161310d565b93505060206132ec8682870161310d565b92505060406132fd86828701613058565b9150509250925092565b6000806040838503121561331e5761331d612eb7565b5b600061332c85828601613058565b925050602061333d8582860161310d565b9150509250929050565b6000819050919050565b61335a81613347565b82525050565b60006020820190506133756000830184613351565b92915050565b6000806040838503121561339257613391612eb7565b5b60006133a085828601613058565b92505060206133b185828601613058565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126133e0576133df6133bb565b5b8235905067ffffffffffffffff8111156133fd576133fc6133c0565b5b602083019150836001820283011115613419576134186133c5565b5b9250929050565b6000806020838503121561343757613436612eb7565b5b600083013567ffffffffffffffff81111561345557613454612ebc565b5b613461858286016133ca565b92509250509250929050565b600060ff82169050919050565b6134838161346d565b811461348e57600080fd5b50565b6000813590506134a08161347a565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6134de82612fcb565b810181811067ffffffffffffffff821117156134fd576134fc6134a6565b5b80604052505050565b6000613510612ead565b905061351c82826134d5565b919050565b600067ffffffffffffffff82111561353c5761353b6134a6565b5b602082029050602081019050919050565b61355681613347565b811461356157600080fd5b50565b6000813590506135738161354d565b92915050565b600061358c61358784613521565b613506565b905080838252602082019050602084028301858111156135af576135ae6133c5565b5b835b818110156135d857806135c48882613564565b8452602084019350506020810190506135b1565b5050509392505050565b600082601f8301126135f7576135f66133bb565b5b8135613607848260208601613579565b91505092915050565b6000806040838503121561362757613626612eb7565b5b600061363585828601613491565b925050602083013567ffffffffffffffff81111561365657613655612ebc565b5b613662858286016135e2565b9150509250929050565b6000604082019050613681600083018561328a565b61368e602083018461328a565b9392505050565b600080604083850312156136ac576136ab612eb7565b5b600083013567ffffffffffffffff8111156136ca576136c9612ebc565b5b6136d6858286016135e2565b92505060206136e785828601613564565b9150509250929050565b60006020828403121561370757613706612eb7565b5b60006137158482850161310d565b91505092915050565b60006020828403121561373457613733612eb7565b5b600061374284828501613491565b91505092915050565b6137548161346d565b82525050565b600060208201905061376f600083018461374b565b92915050565b61377e81612f46565b811461378957600080fd5b50565b60008135905061379b81613775565b92915050565b600080604083850312156137b8576137b7612eb7565b5b60006137c68582860161310d565b92505060206137d78582860161378c565b9150509250929050565b6137ea81613162565b82525050565b600060208201905061380560008301846137e1565b92915050565b600080fd5b600067ffffffffffffffff82111561382b5761382a6134a6565b5b61383482612fcb565b9050602081019050919050565b82818337600083830152505050565b600061386361385e84613810565b613506565b90508281526020810184848401111561387f5761387e61380b565b5b61388a848285613841565b509392505050565b600082601f8301126138a7576138a66133bb565b5b81356138b7848260208601613850565b91505092915050565b600080600080608085870312156138da576138d9612eb7565b5b60006138e88782880161310d565b94505060206138f98782880161310d565b935050604061390a87828801613058565b925050606085013567ffffffffffffffff81111561392b5761392a612ebc565b5b61393787828801613892565b91505092959194509250565b60006020828403121561395957613958612eb7565b5b600061396784828501613564565b91505092915050565b6000806040838503121561398757613986612eb7565b5b60006139958582860161310d565b92505060206139a68582860161310d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806139f757607f821691505b602082108103613a0a57613a096139b0565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613a46602083612f87565b9150613a5182613a10565b602082019050919050565b60006020820190508181036000830152613a7581613a39565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613ab682613037565b9150613ac183613037565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613af657613af5613a7c565b5b828201905092915050565b7f72656163686564206d617820737570706c790000000000000000000000000000600082015250565b6000613b37601283612f87565b9150613b4282613b01565b602082019050919050565b60006020820190508181036000830152613b6681613b2a565b9050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302613bda7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82613b9d565b613be48683613b9d565b95508019841693508086168417925050509392505050565b6000819050919050565b6000613c21613c1c613c1784613037565b613bfc565b613037565b9050919050565b6000819050919050565b613c3b83613c06565b613c4f613c4782613c28565b848454613baa565b825550505050565b600090565b613c64613c57565b613c6f818484613c32565b505050565b5b81811015613c9357613c88600082613c5c565b600181019050613c75565b5050565b601f821115613cd857613ca981613b78565b613cb284613b8d565b81016020851015613cc1578190505b613cd5613ccd85613b8d565b830182613c74565b50505b505050565b600082821c905092915050565b6000613cfb60001984600802613cdd565b1980831691505092915050565b6000613d148383613cea565b9150826002028217905092915050565b613d2e8383613b6d565b67ffffffffffffffff811115613d4757613d466134a6565b5b613d5182546139df565b613d5c828285613c97565b6000601f831160018114613d8b5760008415613d79578287013590505b613d838582613d08565b865550613deb565b601f198416613d9986613b78565b60005b82811015613dc157848901358255600182019150602085019450602081019050613d9c565b86831015613dde5784890135613dda601f891682613cea565b8355505b6001600288020188555050505b50505050505050565b7f7468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b6000613e2a601e83612f87565b9150613e3582613df4565b602082019050919050565b60006020820190508181036000830152613e5981613e1d565b9050919050565b6000613e6b82613162565b9150613e7683613162565b92508167ffffffffffffffff0483118215151615613e9757613e96613a7c565b5b828202905092915050565b7f77686974656c6973742073616c6520686173206e6f7420626567756e20796574600082015250565b6000613ed8602083612f87565b9150613ee382613ea2565b602082019050919050565b60006020820190508181036000830152613f0781613ecb565b9050919050565b60008160601b9050919050565b6000613f2682613f0e565b9050919050565b6000613f3882613f1b565b9050919050565b613f50613f4b826130ba565b613f2d565b82525050565b6000613f628284613f3f565b60148201915081905092915050565b7f6e6f7420656c696769626c6520666f722077686974656c697374206d696e7400600082015250565b6000613fa7601f83612f87565b9150613fb282613f71565b602082019050919050565b60006020820190508181036000830152613fd681613f9a565b9050919050565b6000613fe88261346d565b9150613ff38361346d565b92508260ff0382111561400957614008613a7c565b5b828201905092915050565b7f72656163686564206d6178206d696e7420636f756e7420666f7220776869746560008201527f6c69737400000000000000000000000000000000000000000000000000000000602082015250565b6000614070602483612f87565b915061407b82614014565b604082019050919050565b6000602082019050818103600083015261409f81614063565b9050919050565b7f7075626c69632073616c6520686173206e6f7420737461727465642079657400600082015250565b60006140dc601f83612f87565b91506140e7826140a6565b602082019050919050565b6000602082019050818103600083015261410b816140cf565b9050919050565b7f63616e206e6f74206d696e742074686973206d616e7900000000000000000000600082015250565b6000614148601683612f87565b915061415382614112565b602082019050919050565b600060208201905081810360008301526141778161413b565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006141b4601f83612f87565b91506141bf8261417e565b602082019050919050565b600060208201905081810360008301526141e3816141a7565b9050919050565b600081905092915050565b50565b60006142056000836141ea565b9150614210826141f5565b600082019050919050565b6000614226826141f8565b9150819050919050565b7f5472616e73666572206661696c65642e00000000000000000000000000000000600082015250565b6000614266601083612f87565b915061427182614230565b602082019050919050565b6000602082019050818103600083015261429581614259565b9050919050565b600081905092915050565b60006142b282612f7c565b6142bc818561429c565b93506142cc818560208601612f98565b80840191505092915050565b60006142e482856142a7565b91506142f082846142a7565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614358602683612f87565b9150614363826142fc565b604082019050919050565b600060208201905081810360008301526143878161434b565b9050919050565b7f6e65656420746f2073656e64206d6f7265204554482e00000000000000000000600082015250565b60006143c4601683612f87565b91506143cf8261438e565b602082019050919050565b600060208201905081810360008301526143f3816143b7565b9050919050565b600061440582613037565b915061441083613037565b92508282101561442357614422613a7c565b5b828203905092915050565b600081519050919050565b600082825260208201905092915050565b60006144558261442e565b61445f8185614439565b935061446f818560208601612f98565b61447881612fcb565b840191505092915050565b600060808201905061449860008301876130cc565b6144a560208301866130cc565b6144b2604083018561328a565b81810360608301526144c4818461444a565b905095945050505050565b6000815190506144de81612eed565b92915050565b6000602082840312156144fa576144f9612eb7565b5b6000614508848285016144cf565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061454b82613037565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361457d5761457c613a7c565b5b60018201905091905056fea2646970667358221220340a9b6005f91539bf3598b7f8b37540b9fe33eb03cc064641cd5911ab7510e164736f6c634300080f0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000001388

-----Decoded View---------------
Arg [0] : maxBatchSize_ (uint256): 5
Arg [1] : collectionSize_ (uint256): 5000

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [1] : 0000000000000000000000000000000000000000000000000000000000001388


Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.