Source Code
Overview
ETH Balance
0 ETH
Token Holdings
More Info
ContractCreator
TokenTracker
Multichain Info
N/A
Latest 10 from a total of 10 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Set Public Sale ... | 5530625 | 8 days ago | IN | 0 ETH | 0.00000196 | ||||
Mint And Purge | 5530587 | 8 days ago | IN | 0 ETH | 0.0012772 | ||||
Mint And Purge | 5530575 | 8 days ago | IN | 0 ETH | 0.00177833 | ||||
Mint And Purge | 5530486 | 8 days ago | IN | 0 ETH | 0.00178841 | ||||
Mint And Purge | 5530436 | 8 days ago | IN | 0 ETH | 0.00213272 | ||||
Mint | 5530105 | 8 days ago | IN | 0 ETH | 0.00192275 | ||||
Mint | 5530066 | 8 days ago | IN | 0 ETH | 0.00115495 | ||||
Mint | 5529950 | 8 days ago | IN | 0 ETH | 0.00084223 | ||||
Mint | 5529910 | 8 days ago | IN | 0 ETH | 0.00002021 | ||||
Set Public Sale ... | 5529682 | 8 days ago | IN | 0 ETH | 0.00000376 |
Latest 25 internal transactions (View All)
Parent Transaction Hash | Block | From | To | |||
---|---|---|---|---|---|---|
5530625 | 8 days ago | 0 ETH | ||||
5530625 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH | ||||
5530587 | 8 days ago | 0 ETH |
Loading...
Loading
This contract may be a proxy contract. Click on More Options and select Is this a proxy? to confirm and enable the "Read as Proxy" & "Write as Proxy" tabs.
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xB12623AA...c5C162f56 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
PurgeGame
Compiler Version
v0.8.24+commit.e11b9ed9
ZkSolc Version
v1.5.7
Optimization Enabled:
Yes with Mode 3
Other Settings:
paris EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.24; import "@openzeppelin/contracts/token/ERC721/ERC721.sol"; import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "@openzeppelin/contracts/utils/Strings.sol"; import "./IPurgedCoin.sol"; /// @custom:security-contact [email protected] contract PurgeGame is ERC721 { using Strings for uint256; bool private paidJackpot; bool public publicSaleStatus; bool public REVEAL; bool public gameOver; bool private purging; uint8 private dailyJackpotCounter; uint8 public constant cost = 100; uint32 private offset; uint32 private MAPtokens; uint32 public totalMinted; uint32 public gameEndTime; uint32 public dailyJackpotTime; uint32 constant private maxTokens = 1000000000; address public usdcTokenAddress; address private _owner; PurgedCoinInterface public purgedCoin; uint256 public constant million = 1000000; uint256 public startingPrizePool; uint256 public PrizePool; uint32[256] public traitRemaining; uint32[80] public dailyPurgeCount; mapping(address => bool) private trustedAddresses; mapping(uint32 => uint24) public tokenTraits; mapping(uint8 => address[]) private traitPurgeTicket; mapping(address => uint256) public claimableWinnings; string public baseTokenURI = "https://purge.games/beta/tokens/"; constructor(address purgedCoinContract, address _usdcTokenAddress) ERC721("Purge Game Beta Test", "PURGEGAMEBETA") { _owner = msg.sender; trustedAddresses[_owner] = true; purgedCoin = PurgedCoinInterface(purgedCoinContract); usdcTokenAddress = _usdcTokenAddress; } modifier onlyTrusted() { require(trustedAddresses[msg.sender], "Caller is not a trusted address"); _; } // Mint function. function mint(uint32 _number, bool coin, string calldata referralCode) external { require(publicSaleStatus == true, 'Mint inactive'); uint256 totalCost = _number * cost * million; if (coin) { coinReceive(totalCost); } else { usdcReceive(totalCost, referralCode); } uint32 _tokenId = totalMinted; for (uint32 i = 0; i < _number; i++) { _tokenId++; _mint(msg.sender, _tokenId); uint24 traits = rarity(_tokenId); tokenTraits[_tokenId] = traits; for (uint8 q = 0; q < 4; q++) { uint8 trait = uint8((traits >> (q * 6)) & 0x3f) + (q << 6); traitRemaining[trait] += 1; } emit TokenMinted(_tokenId, traits, msg.sender); } totalMinted += _number; } // Creates a payout ticket for a token without actally minting that token to save gas. function mintAndPurge(uint32 _number, bool coin, string calldata referralCode) external { require (publicSaleStatus == true, 'Mint inactive'); uint256 totalCost = _number * cost * million; if (coin) { coinReceive(totalCost * 9 / 10); } else { usdcReceive(totalCost, referralCode); purgedCoin.mintInGame(msg.sender, totalCost / 10); } uint32 mapTokenNumber = maxTokens + MAPtokens; for(uint32 i = 0; i < _number; i++){ uint32 _tokenId = mapTokenNumber + i; uint24 traits = rarity(_tokenId); purgeWrite(traits,msg.sender); emit MintAndPurge(_tokenId, traits, msg.sender); } MAPtokens += _number; } function miniPurge(bool coin, string calldata referralCode) external { require(publicSaleStatus == true, 'Mint inactive'); uint256 totalCost = cost * million * 33 / 100; if (coin) { coinReceive(totalCost); } else { usdcReceive(totalCost, referralCode); } uint16 randomHash = uint16(uint(keccak256(abi.encodePacked(PrizePool,block.number)))); uint8 trait = getTrait(randomHash) + ((uint8(randomHash >> 5) & 0x03) << 6); traitPurgeTicket[trait].push(msg.sender); emit MintAndPurge(1000000000, trait, msg.sender); } function rarity(uint32 _tokenId) private view returns(uint24) { uint256 randomHash = uint256(keccak256(abi.encodePacked(_tokenId, block.number))); // Generate traits directly from the randomHash uint8 trait1 = getTrait(uint16(randomHash & 0xFFFF)); uint8 trait2 = getTrait(uint16((randomHash >> 16) & 0xFFFF)); uint8 trait3 = getTrait(uint16((randomHash >> 32) & 0xFFFF)); uint8 trait4 = getTrait(uint16((randomHash >> 48) & 0xFFFF)); // Combine traits into the final result uint24 result = (uint24(trait1) << 0) | (uint24(trait2) << 6) | (uint24(trait3) << 12) | (uint24(trait4) << 18); return result; } function getTrait(uint16 _input) private pure returns (uint8) { _input &= 0x7ff; if (_input < 840) { return uint8(_input / 35); } else if (_input < 1352) { return uint8(24 + (_input - 840) / 32); } else if (_input < 1832) { return uint8(40 + (_input - 1352) / 30); } else { return uint8(56 + (_input - 1832) / 27); } } // Burns tokens and creates payout tickets for each trait purged, then prints $PURGED. function purge(uint32[] calldata tokenIds) external{ require(gameOver == false, "Game Over"); require(REVEAL, "No purging before reveal"); uint256 purges = tokenIds.length; require(purges > 0 && purges <= 300, "Number of purges must be between 1 and 300"); uint32 _tokenId; purging = true; for(uint32 i = 0; i < purges; i++) { if (gameOver) { break; } _tokenId = tokenIds[i]; require(ownerOf(_tokenId) == msg.sender, "You do not own that token"); _burn(_tokenId); purgeWrite(tokenTraits[realTraitsFromTokenId(_tokenId)], msg.sender); } purging = false; purgedCoin.mintInGame(msg.sender, purges * cost * million / 10); } function purgeWrite(uint24 traits, address sender) private { uint8[4] memory trait; trait[0] = uint8(traits & 0x3f); trait[1] = uint8((traits >> 6) & 0x3f) + 64; trait[2] = uint8((traits >> 12) & 0x3f) + 128; trait[3] = uint8((traits >> 18) & 0x3f) + 192; for (uint8 q = 0; q < 4; q++) { traitPurgeTicket[trait[q]].push(sender); } if (REVEAL) { dailyPurgeCount[trait[0] & 0x07] += 1; dailyPurgeCount[(trait[1] - 64) / 8 + 8] += 1; dailyPurgeCount[trait[2] - 128 + 16] += 1; for (uint8 q = 0; q < 4; q++) { removeTraitRemaining(trait[q]); } } } // Records the removal of a trait and checks to see if this transaction exterminates that trait. // If so, this ends the game and pays out the winnings to everyone who has purged a token with that trait. function removeTraitRemaining(uint8 trait) private { traitRemaining[trait] -= 1; if (traitRemaining[trait] == 0){ if (!gameOver){ endGame(); payout(trait); } } } function endGame() private { _mint(msg.sender, 4206942069); gameOver = true; gameEndTime = uint32(block.timestamp); coinJackpot(); purgedCoin.resetSeasonCoinBurn(); } // Pays the exterminator 20% of the prize pool. // Then pays each player who purged a token with the winning trait an equal amount for each token purged. function payout(uint8 trait) private { uint32 totalPurges = uint32(traitPurgeTicket[trait].length - 1); if (totalPurges == 0) totalPurges = 1; uint256 grandPrize = PrizePool / 5; uint256 normalPayout = (PrizePool - grandPrize) / totalPurges; PrizePool = 0; startingPrizePool = 0; addClaimableUSDC(msg.sender, grandPrize); for (uint32 i = 0; i < totalPurges; i++){ addClaimableUSDC(traitPurgeTicket[trait][i], normalPayout); } } function addClaimableUSDC(address player, uint256 amount) private{ claimableWinnings[player] += amount; emit CoinPaid(player, amount, false); } // Pays the MAP Jackpot to a random Mint and Purger. function payMapJackpot() external onlyTrusted { require(paidJackpot == false); require(publicSaleStatus == false); startingPrizePool = PrizePool * 85 / 100; paidJackpot = true; purgedCoin.mintInGame(_owner, PrizePool / 4); uint8[9] memory trait; uint256 random = uint256(keccak256(abi.encodePacked(block.timestamp, block.prevrandao))); // First trait is completely random trait[0] = uint8(random & 0xFF); // Next four traits fall within specific quadrants for (uint8 q = 1; q < 8; q+=2) { trait[q] = uint8((random >> (q * 6)) & 0x3F) + ((q - 1) << 6); trait[q + 1] = trait [q]; } // Define the number of winners for each trait uint8[9] memory numbers = [1, 1, 8, 1, 8, 1, 5, 1, 20]; // Define the prize for each winner - (x *.1% of prize pool / number of winners) uint8[9] memory prizes = [100, 5, 5, 4, 6, 3, 7, 10, 10]; // Distribute prizes to winners for (uint8 i = 0; i < 9; i++) { address[] memory winners = new address[](numbers[i]); winners = randTraitTicket(trait[i], numbers[i]); uint256 prize = PrizePool * prizes[i] / 1000 / numbers[i]; for (uint8 p = 0; p < numbers[i]; p++) { addClaimableUSDC(winners[p], prize); } } // Mint coins for the consolation prize uint256 numberOfTickets = traitPurgeTicket[trait[0]].length; for (uint32 c = 0; c < numberOfTickets; c++) { purgedCoin.mintInGame(traitPurgeTicket[trait[0]][c], 100 * million); } PrizePool = PrizePool * 85 / 100; } function payDailyJackpot() external onlyTrusted { require(dailyJackpotTime != 0); //removed for testing //require(block.timestamp >= dailyJackpotTime + 23 hours); require(gameOver == false); coinJackpot(); uint256 jackpot = startingPrizePool / 100; PrizePool -= startingPrizePool / 25; uint8[4] memory winningTraits = getWinningTraits(); uint8[4] memory numberOfWinners = [20, 10, 4, 1]; for (uint8 q = 0; q < 4; q++) { address[] memory winners = new address[](numberOfWinners[q]); winners = randTraitTicket(winningTraits[q], numberOfWinners[q]); uint256 prize = jackpot / numberOfWinners[q]; for (uint8 i = 0; i < numberOfWinners[q]; i++) { addClaimableUSDC(winners[i], prize); } } dailyJackpotCounter += 1; if (dailyJackpotCounter == 25) { endGame(); } else { dailyJackpotTime = uint32(block.timestamp); } for (uint8 i = 0; i < 80; i++) { dailyPurgeCount[i] = 0; } } function coinJackpot() private{ uint256 dailyCoinBurn = purgedCoin.dailyCoinBurn(); if (dailyCoinBurn < 1600 * million) dailyCoinBurn = 1600 * million; uint256 dailyCoinJackpot = dailyCoinBurn * 3 / 20; purgedCoin.resetDailyCoinBurn(); uint256 randomNum = uint256(keccak256(abi.encodePacked(block.timestamp, block.prevrandao,"1"))); uint8[] memory selectedTraits = new uint8[](12); uint8[4] memory winningTrait; //Picks 3 traits from each quadrant for (uint8 i = 0; i < 12; i++) { selectedTraits[i] = uint8(randomNum >> i * 6 & 0x3f); } // Retrieve totalCoinBurn values for the selected traits uint256[] memory burnCounts = new uint256[](12); burnCounts = purgedCoin.getSeasonCoinBurn(selectedTraits); // Picks the trait with the highest burn count from each quadrant for (uint8 q = 0; q < 4; q++) { uint256 max = 0; for (uint8 i = 0; i < 3; i++) { uint8 trait = q * 3 + i; if (burnCounts[trait] >= max) { max = burnCounts[trait]; winningTrait[q] = selectedTraits[trait] + (q << 6); } } } //Picks 5 random tickets from each winning trait, then mints the jackpot to the players with the biggest luckboxes address[] memory winners = new address[](5); for (uint8 q = 0; q < 4; q++) { winners = randTraitTicket(winningTrait[q], 5); address luckbox = payTopLuckbox(winners, dailyCoinJackpot); if (luckbox != address(0)) { emit CoinPaid(luckbox, dailyCoinJackpot, true); } } } function payTopLuckbox(address[] memory winners, uint256 dailyCoinJackpot) internal returns (address) { address topLuckbox = getTopLuckbox(winners); if (topLuckbox != address(0) && dailyCoinJackpot > 0) { purgedCoin.mintInGame(topLuckbox, dailyCoinJackpot); } else { emit LuckboxFail(winners); } return topLuckbox; } function getTopLuckbox(address[] memory players) public view returns (address) { uint256 highestLuckboxValue = 0; address topLuckbox; uint256 numberOfPlayers = players.length; for (uint8 i = 0; i < numberOfPlayers; i++) { address player = players[i]; uint256 luckboxValue = purgedCoin.getPlayerLuckbox(player); if (luckboxValue > highestLuckboxValue) { highestLuckboxValue = luckboxValue; topLuckbox = player; } } if (highestLuckboxValue == 0) { topLuckbox = address(0); } return topLuckbox; } event LuckboxFail(address[] winners); function getWinningTraits() private view returns (uint8[4] memory) { uint8[4] memory winningTraits; uint256 randomNum = uint256(keccak256(abi.encodePacked(block.timestamp, block.prevrandao, "2"))); uint8[3] memory start = [0, 8, 16]; uint8[3] memory end = [8, 16, 80]; for (uint8 q = 0; q < 3; q++) { uint32 maxCount = dailyPurgeCount[start[q]]; uint8 winner = start[q]; for (uint8 i = start[q] + 1; i < end[q]; i++) { if (dailyPurgeCount[i] > maxCount) { maxCount = dailyPurgeCount[i]; winner = i; } else if (dailyPurgeCount[i] == maxCount) { if ((randomNum >> i & 0x1) == 1) { winner = i; } } } if (q == 0) { winningTraits[0] = uint8((randomNum >> 8) & 0x7) * 8 + winner; } else if (q == 1) { winningTraits[1] = winner * 8 + uint8((randomNum >> 16) & 0x7) + 64; } else if (q == 2) { winningTraits[2] = winner + 128; } } winningTraits[3] = uint8((randomNum >> 32) & 0x3F) + 192; return winningTraits; } function randTraitTicket(uint8 trait, uint8 amount) private returns (address[] memory) { address[] memory selectedTickets = new address[](amount); uint256 randomNum = uint256(keccak256(abi.encodePacked(block.timestamp, block.prevrandao,trait))); uint256 numberOfTickets = traitPurgeTicket[trait].length; for (uint8 i = 0; i < amount; i++) { uint256 rand = randomNum << (i * 16); uint256 randomTicket = rand % numberOfTickets; selectedTickets[i] = traitPurgeTicket[trait][randomTicket]; emit RandomTicket(trait, uint32(randomTicket), selectedTickets[i]); } return selectedTickets; } function usdcReceive(uint256 amount, string calldata referralCode) private{ require(IERC20(usdcTokenAddress).balanceOf(msg.sender) >= amount, "Insufficient USDC balance"); require(IERC20(usdcTokenAddress).allowance(msg.sender, address(this)) >= amount, "USDC allowance too low"); require(IERC20(usdcTokenAddress).transferFrom(msg.sender, address(this), amount), "USDC transfer failed"); PrizePool += amount; purgedCoin.payReferrer(amount / 20, referralCode, msg.sender); } function coinReceive(uint256 amount) private{ require(purgedCoin.balanceOf(msg.sender) >= amount, "Not enough $PURGED"); purgedCoin.burnInGame(msg.sender, amount); } function claimWinnings() external { address player = msg.sender; uint256 winnings = claimableWinnings[player]; require (winnings > 0, "No winnings to claim"); claimableWinnings[player] = 0; require(IERC20(usdcTokenAddress).transfer(player, winnings), "USDC transfer failed"); } // Anti-hack funtion. The traits generated by minting will not correspond to the token minted. function setOffset(uint32 _offset) external onlyTrusted{ require(offset == 0, "Offset already set"); require(_offset > 0 && _offset < maxTokens, "Offset out of range"); offset = _offset; } function realTraitsFromTokenId(uint32 _tokenId) private view returns(uint32){ if (offset != 0){ if (_tokenId < maxTokens){ if (_tokenId + offset <= totalMinted) return(_tokenId + offset); else return(_tokenId + offset - totalMinted); } } return(_tokenId); } // Owner game-running functions. function setPublicSaleStatus(bool _status) external onlyTrusted { require(REVEAL == false); publicSaleStatus = _status; } function reveal(string calldata updatedURI) external onlyTrusted { require(REVEAL == false); require(paidJackpot == true); require(offset != 0); require(publicSaleStatus == false); REVEAL = true; baseTokenURI = updatedURI; dailyJackpotTime = uint32(block.timestamp); } function addTrustedAddress(address _address) external onlyTrusted { trustedAddresses[_address] = true; } function removeTrustedAddress(address _address) external onlyTrusted { require(_address != _owner, "Cannot remove owner"); trustedAddresses[_address] = false; } receive() external payable {} function withdrawEth() external onlyTrusted { (bool success, ) = payable(_owner).call{value: address(this).balance}(""); require(success, "Transfer failed."); } // Winnings must be claimed by 6 months after the game ends. function withdrawAbandoned() external onlyTrusted { require(gameOver == true); require(block.timestamp > gameEndTime + 180 days); IERC20(usdcTokenAddress).transfer(_owner, IERC20(usdcTokenAddress).balanceOf(address(this))); } function setTokenUri(string calldata updatedURI) external onlyTrusted{ baseTokenURI = updatedURI; } function tokenURI(uint256 tokenId) public view override returns (string memory) { return string(abi.encodePacked(baseTokenURI, tokenId.toString())); } /* function _update(address to, uint256 tokenId, address auth) internal virtual override returns (address) { if (gameOver == true) { require(block.timestamp > gameEndTime + 24 hours, "Transfers disabled for 24h after game over"); }else if (to == address(0)) { require(purging == true, "Use purge function"); } return super._update(to, tokenId, auth); } */ event MintAndPurge(uint32 tokenId, uint24 tokenTraits, address from); event TokenMinted(uint32 tokenId, uint24 tokenTraits, address from); event RandomTicket(uint8 trait, uint32 random, address player); event CoinPaid(address from, uint256 amount, bool coin); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.24; interface PurgedCoinInterface { function mintInGame(address yourAddress, uint256 _amount) external; function burnInGame(address yourAddress, uint256 _amount) external; function balanceOf(address account) external view returns (uint256); function getPlayerLuckbox(address player) external view returns(uint256); function dailyCoinBurn() external view returns(uint256); function getSeasonCoinBurn(uint8[] calldata traits) external view returns (uint256[] memory); function resetDailyCoinBurn() external; function resetSeasonCoinBurn() external; function payReferrer(uint256 amount, string calldata _referralCode, address sender) external; }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/Strings.sol) pragma solidity ^0.8.0; /** * @dev String operations. */ library Strings { bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef"; /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function toString(uint256 value) internal pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation. */ function toHexString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0x00"; } uint256 temp = value; uint256 length = 0; while (temp != 0) { length++; temp >>= 8; } return toHexString(value, length); } /** * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length. */ function toHexString(uint256 value, uint256 length) internal pure returns (string memory) { bytes memory buffer = new bytes(2 * length + 2); buffer[0] = "0"; buffer[1] = "x"; for (uint256 i = 2 * length + 1; i > 1; --i) { buffer[i] = _HEX_SYMBOLS[value & 0xf]; value >>= 4; } require(value == 0, "Strings: hex length insufficient"); return string(buffer); } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `from` to `to` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 amount ) external returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/ERC721.sol) pragma solidity ^0.8.0; import "./IERC721.sol"; import "./IERC721Receiver.sol"; import "./extensions/IERC721Metadata.sol"; import "../../utils/Address.sol"; import "../../utils/Context.sol"; import "../../utils/Strings.sol"; import "../../utils/introspection/ERC165.sol"; /** * @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including * the Metadata extension, but not including the Enumerable extension, which is available separately as * {ERC721Enumerable}. */ contract ERC721 is Context, ERC165, IERC721, IERC721Metadata { using Address for address; using Strings for uint256; // Token name string private _name; // Token symbol string private _symbol; // Mapping from token ID to owner address mapping(uint256 => address) private _owners; // Mapping owner address to token count mapping(address => uint256) private _balances; // Mapping from token ID to approved address mapping(uint256 => address) private _tokenApprovals; // Mapping from owner to operator approvals mapping(address => mapping(address => bool)) private _operatorApprovals; /** * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection. */ constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || super.supportsInterface(interfaceId); } /** * @dev See {IERC721-balanceOf}. */ function balanceOf(address owner) public view virtual override returns (uint256) { require(owner != address(0), "ERC721: balance query for the zero address"); return _balances[owner]; } /** * @dev See {IERC721-ownerOf}. */ function ownerOf(uint256 tokenId) public view virtual override returns (address) { address owner = _owners[tokenId]; require(owner != address(0), "ERC721: owner query for nonexistent token"); return owner; } /** * @dev See {IERC721Metadata-name}. */ function name() public view virtual override returns (string memory) { return _name; } /** * @dev See {IERC721Metadata-symbol}. */ function symbol() public view virtual override returns (string memory) { return _symbol; } /** * @dev See {IERC721Metadata-tokenURI}. */ function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); string memory baseURI = _baseURI(); return bytes(baseURI).length > 0 ? string(abi.encodePacked(baseURI, tokenId.toString())) : ""; } /** * @dev Base URI for computing {tokenURI}. If set, the resulting URI for each * token will be the concatenation of the `baseURI` and the `tokenId`. Empty * by default, can be overridden in child contracts. */ function _baseURI() internal view virtual returns (string memory) { return ""; } /** * @dev See {IERC721-approve}. */ function approve(address to, uint256 tokenId) public virtual override { address owner = ERC721.ownerOf(tokenId); require(to != owner, "ERC721: approval to current owner"); require( _msgSender() == owner || isApprovedForAll(owner, _msgSender()), "ERC721: approve caller is not owner nor approved for all" ); _approve(to, tokenId); } /** * @dev See {IERC721-getApproved}. */ function getApproved(uint256 tokenId) public view virtual override returns (address) { require(_exists(tokenId), "ERC721: approved query for nonexistent token"); return _tokenApprovals[tokenId]; } /** * @dev See {IERC721-setApprovalForAll}. */ function setApprovalForAll(address operator, bool approved) public virtual override { _setApprovalForAll(_msgSender(), operator, approved); } /** * @dev See {IERC721-isApprovedForAll}. */ function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { return _operatorApprovals[owner][operator]; } /** * @dev See {IERC721-transferFrom}. */ function transferFrom( address from, address to, uint256 tokenId ) public virtual override { //solhint-disable-next-line max-line-length require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _transfer(from, to, tokenId); } /** * @dev See {IERC721-safeTransferFrom}. */ function safeTransferFrom( address from, address to, uint256 tokenId ) public virtual override { safeTransferFrom(from, to, tokenId, ""); } /** * @dev See {IERC721-safeTransferFrom}. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes memory _data ) public virtual override { require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); _safeTransfer(from, to, tokenId, _data); } /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * `_data` is additional data, it has no specified format and it is sent in call to `to`. * * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g. * implement alternative mechanisms to perform token transfer, such as signature-based. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function _safeTransfer( address from, address to, uint256 tokenId, bytes memory _data ) internal virtual { _transfer(from, to, tokenId); require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); } /** * @dev Returns whether `tokenId` exists. * * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}. * * Tokens start existing when they are minted (`_mint`), * and stop existing when they are burned (`_burn`). */ function _exists(uint256 tokenId) internal view virtual returns (bool) { return _owners[tokenId] != address(0); } /** * @dev Returns whether `spender` is allowed to manage `tokenId`. * * Requirements: * * - `tokenId` must exist. */ function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { require(_exists(tokenId), "ERC721: operator query for nonexistent token"); address owner = ERC721.ownerOf(tokenId); return (spender == owner || isApprovedForAll(owner, spender) || getApproved(tokenId) == spender); } /** * @dev Safely mints `tokenId` and transfers it to `to`. * * Requirements: * * - `tokenId` must not exist. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function _safeMint(address to, uint256 tokenId) internal virtual { _safeMint(to, tokenId, ""); } /** * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is * forwarded in {IERC721Receiver-onERC721Received} to contract recipients. */ function _safeMint( address to, uint256 tokenId, bytes memory _data ) internal virtual { _mint(to, tokenId); require( _checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer" ); } /** * @dev Mints `tokenId` and transfers it to `to`. * * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible * * Requirements: * * - `tokenId` must not exist. * - `to` cannot be the zero address. * * Emits a {Transfer} event. */ function _mint(address to, uint256 tokenId) internal virtual { require(to != address(0), "ERC721: mint to the zero address"); require(!_exists(tokenId), "ERC721: token already minted"); _beforeTokenTransfer(address(0), to, tokenId); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); _afterTokenTransfer(address(0), to, tokenId); } /** * @dev Destroys `tokenId`. * The approval is cleared when the token is burned. * * Requirements: * * - `tokenId` must exist. * * Emits a {Transfer} event. */ function _burn(uint256 tokenId) internal virtual { address owner = ERC721.ownerOf(tokenId); _beforeTokenTransfer(owner, address(0), tokenId); // Clear approvals _approve(address(0), tokenId); _balances[owner] -= 1; delete _owners[tokenId]; emit Transfer(owner, address(0), tokenId); _afterTokenTransfer(owner, address(0), tokenId); } /** * @dev Transfers `tokenId` from `from` to `to`. * As opposed to {transferFrom}, this imposes no restrictions on msg.sender. * * Requirements: * * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * * Emits a {Transfer} event. */ function _transfer( address from, address to, uint256 tokenId ) internal virtual { require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer from incorrect owner"); require(to != address(0), "ERC721: transfer to the zero address"); _beforeTokenTransfer(from, to, tokenId); // Clear approvals from the previous owner _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); _afterTokenTransfer(from, to, tokenId); } /** * @dev Approve `to` to operate on `tokenId` * * Emits a {Approval} event. */ function _approve(address to, uint256 tokenId) internal virtual { _tokenApprovals[tokenId] = to; emit Approval(ERC721.ownerOf(tokenId), to, tokenId); } /** * @dev Approve `operator` to operate on all of `owner` tokens * * Emits a {ApprovalForAll} event. */ function _setApprovalForAll( address owner, address operator, bool approved ) internal virtual { require(owner != operator, "ERC721: approve to caller"); _operatorApprovals[owner][operator] = approved; emit ApprovalForAll(owner, operator, approved); } /** * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address. * The call is not executed if the target address is not a contract. * * @param from address representing the previous owner of the given token ID * @param to target address that will receive the tokens * @param tokenId uint256 ID of the token to be transferred * @param _data bytes optional data to send along with the call * @return bool whether the call correctly returned the expected magic value */ function _checkOnERC721Received( address from, address to, uint256 tokenId, bytes memory _data ) private returns (bool) { if (to.isContract()) { try IERC721Receiver(to).onERC721Received(_msgSender(), from, tokenId, _data) returns (bytes4 retval) { return retval == IERC721Receiver.onERC721Received.selector; } catch (bytes memory reason) { if (reason.length == 0) { revert("ERC721: transfer to non ERC721Receiver implementer"); } else { assembly { revert(add(32, reason), mload(reason)) } } } } else { return true; } } /** * @dev Hook that is called before any token transfer. This includes minting * and burning. * * Calling conditions: * * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be * transferred to `to`. * - When `from` is zero, `tokenId` will be minted for `to`. * - When `to` is zero, ``from``'s `tokenId` will be burned. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _beforeTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} /** * @dev Hook that is called after any transfer of tokens. This includes * minting and burning. * * Calling conditions: * * - when `from` and `to` are both non-zero. * - `from` and `to` are never both zero. * * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. */ function _afterTokenTransfer( address from, address to, uint256 tokenId ) internal virtual {} }
// 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; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.5.0) (utils/Address.sol) pragma solidity ^0.8.1; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721.sol) pragma solidity ^0.8.0; import "../../utils/introspection/IERC165.sol"; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 is IERC165 { /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool _approved) external; /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/ERC165.sol) pragma solidity ^0.8.0; import "./IERC165.sol"; /** * @dev Implementation of the {IERC165} interface. * * Contracts that want to implement ERC165 should inherit from this contract and override {supportsInterface} to check * for the additional interface id that will be supported. For example: * * ```solidity * function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { * return interfaceId == type(MyInterface).interfaceId || super.supportsInterface(interfaceId); * } * ``` * * Alternatively, {ERC165Storage} provides an easier to use but more expensive implementation. */ abstract contract ERC165 is IERC165 { /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { return interfaceId == type(IERC165).interfaceId; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721Receiver.sol) pragma solidity ^0.8.0; /** * @title ERC721 token receiver interface * @dev Interface for any contract that wants to support safeTransfers * from ERC721 asset contracts. */ interface IERC721Receiver { /** * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} * by `operator` from `from`, this function is called. * * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * * The selector can be obtained in Solidity with `IERC721Receiver.onERC721Received.selector`. */ function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (token/ERC721/extensions/IERC721Metadata.sol) pragma solidity ^0.8.0; import "../IERC721.sol"; /** * @title ERC-721 Non-Fungible Token Standard, optional metadata extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface IERC721Metadata is IERC721 { /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
{ "evmVersion": "paris", "optimizer": { "enabled": true, "mode": "3" }, "outputSelection": { "*": { "*": [ "abi", "metadata" ], "": [ "ast" ] } }, "detectMissingLibraries": false, "forceEVMLA": false, "enableEraVMExtensions": false, "libraries": {} }
[{"inputs":[{"internalType":"address","name":"purgedCoinContract","type":"address"},{"internalType":"address","name":"_usdcTokenAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"coin","type":"bool"}],"name":"CoinPaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"winners","type":"address[]"}],"name":"LuckboxFail","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"tokenId","type":"uint32"},{"indexed":false,"internalType":"uint24","name":"tokenTraits","type":"uint24"},{"indexed":false,"internalType":"address","name":"from","type":"address"}],"name":"MintAndPurge","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"trait","type":"uint8"},{"indexed":false,"internalType":"uint32","name":"random","type":"uint32"},{"indexed":false,"internalType":"address","name":"player","type":"address"}],"name":"RandomTicket","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"tokenId","type":"uint32"},{"indexed":false,"internalType":"uint24","name":"tokenTraits","type":"uint24"},{"indexed":false,"internalType":"address","name":"from","type":"address"}],"name":"TokenMinted","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":[],"name":"PrizePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REVEAL","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"addTrustedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"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":"baseTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimWinnings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"claimableWinnings","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cost","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"dailyJackpotTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dailyPurgeCount","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gameEndTime","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gameOver","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"players","type":"address[]"}],"name":"getTopLuckbox","outputs":[{"internalType":"address","name":"","type":"address"}],"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":"million","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"coin","type":"bool"},{"internalType":"string","name":"referralCode","type":"string"}],"name":"miniPurge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_number","type":"uint32"},{"internalType":"bool","name":"coin","type":"bool"},{"internalType":"string","name":"referralCode","type":"string"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_number","type":"uint32"},{"internalType":"bool","name":"coin","type":"bool"},{"internalType":"string","name":"referralCode","type":"string"}],"name":"mintAndPurge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"payDailyJackpot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"payMapJackpot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"publicSaleStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32[]","name":"tokenIds","type":"uint32[]"}],"name":"purge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"purgedCoin","outputs":[{"internalType":"contract PurgedCoinInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"}],"name":"removeTrustedAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updatedURI","type":"string"}],"name":"reveal","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":"uint32","name":"_offset","type":"uint32"}],"name":"setOffset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"setPublicSaleStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"updatedURI","type":"string"}],"name":"setTokenUri","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startingPrizePool","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":"uint32","name":"","type":"uint32"}],"name":"tokenTraits","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"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":"totalMinted","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"traitRemaining","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"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":[],"name":"usdcTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawAbandoned","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Deployed Bytecode
0x00040000000000020019000000000002000000600310027000000bad0030019d00000bad043001970003000000410355000200000001035500000001002001900000002f0000c13d0000008002000039000000400020043f000000040040008c000000770000413d000000000201043b000000e00220027000000bb90020009c0000007b0000213d00000bd80020009c000000cb0000a13d00000bd90020009c000000eb0000213d00000be10020009c0000020f0000213d00000be50020009c000006eb0000613d00000be60020009c0000080f0000613d00000be70020009c0000136d0000c13d0000000001000416000000000001004b0000136d0000c13d00000000010400192eb024cf0000040f001500000001001d001400000002001d0000000002030019001300000003001d00000000010004112eb028840000040f2eb026120000040f0000001501000029000000140200002900000013030000292eb029190000040f000000000100001900002eb10001042e0000000002000416000000000002004b0000136d0000c13d0000001f0240003900000bae022001970000008002200039000000400020043f0000001f0340018f00000baf054001980000008002500039000000400000613d0000008006000039000000000701034f000000007807043c0000000006860436000000000026004b0000003c0000c13d000000000003004b0000004d0000613d000000000151034f0000000303300210000000000502043300000000053501cf000000000535022f000000000101043b0000010003300089000000000131022f00000000013101cf000000000151019f0000000000120435000000400040008c0000136d0000413d000000800200043d00000bb00020009c0000136d0000213d000000a00100043d001500000001001d00000bb00010009c0000136d0000213d001400000002001d000000400300043d00000bb10030009c000000710000213d0000004001300039000000400010043f0000001401000039000000000213043600000bb201000041001200000002001d0000000000120435000000400100043d001300000001001d00000bb10010009c000000710000213d00000013020000290000004001200039000000400010043f0000000d01000039000000000212043600000bb301000041001000000002001d00000000001204350000000001030433001100000001001d00000bb40010009c000008ed0000a13d00000c7301000041000000000010043f0000004101000039000000040010043f00000c4b0100004100002eb200010430000000000004004b0000136d0000c13d000000000100001900002eb10001042e00000bba0020009c000000da0000a13d00000bbb0020009c000000fe0000213d00000bc30020009c0000021c0000213d00000bc70020009c000007130000613d00000bc80020009c000008430000613d00000bc90020009c0000136d0000c13d000000840040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000502043b00000bb00050009c0000136d0000213d0000002402100370000000000202043b00000bb00020009c0000136d0000213d0000006403100370000000000603043b00000bb40060009c0000136d0000213d0000002303600039000000000043004b0000136d0000813d0000000407600039000000000371034f000000000303043b00000bb40030009c000000710000213d0000001f0930003900000c82099001970000003f0990003900000c820990019700000c020090009c000000710000213d0000008009900039000000400090043f000000800030043f00000000063600190000002406600039000000000046004b0000136d0000213d0000002004700039000000000641034f00000c82073001980000001f0830018f000000a004700039000000b90000613d000000a009000039000000000a06034f00000000ab0a043c0000000009b90436000000000049004b000000b50000c13d000000000008004b000000c60000613d000000000676034f0000000307800210000000000804043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000640435000000a00330003900000000000304350000004401100370000000000301043b000008820000013d00000be80020009c0000019f0000a13d00000be90020009c000001d70000213d00000bed0020009c0000031f0000613d00000bee0020009c000004050000613d00000bef0020009c0000136d0000c13d0000000001000416000000000001004b0000136d0000c13d0000000b01000039000003770000013d00000bca0020009c000001b00000a13d00000bcb0020009c000001ee0000213d00000bcf0020009c000003460000613d00000bd00020009c000006540000613d00000bd10020009c0000136d0000c13d0000000001000416000000000001004b0000136d0000c13d0000000601000039000000000101041a0000007001100270000006e70000013d00000bda0020009c0000024c0000213d00000bde0020009c0000073b0000613d00000bdf0020009c0000084e0000613d00000be00020009c0000136d0000c13d000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000101043b000000ff0010008c0000136d0000213d2eb024e10000040f000001e70000013d00000bbc0020009c000002690000213d00000bc00020009c000007980000613d00000bc10020009c000008550000613d00000bc20020009c0000136d0000c13d0000000001000416000000000001004b0000136d0000c13d0000000001000411000000000010043f0000003601000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000ff00100190000008dc0000613d0000000601000039000000000101041a00000c01001001980000136d0000613d00000c00001001980000136d0000c13d2eb029e60000040f0000000a01000039000000000101041a0000000b02000039000000000302041a000000190410011a000000000343004b000007d40000413d000000000032041b000000400200043d00000c020020009c000000710000213d000b0064001001220000008003200039000000400030043f00000000010000310000000201100367000000000401034f000000004504043c0000000002520436000000000032004b000001320000c13d000000400200043d001500000002001d00000c020020009c000000710000213d00000015030000290000008002300039000000400020043f000000001401043c0000000003430436000000000023004b0000013d0000c13d000000400100043d001400000001001d00000c03010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b001300000001001d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d00000014040000290000002002400039000000000101043b0000000000120435000000600140003900000c060300004100000000003104350000004001400039000000130300002900000000003104350000004101000039000000000014043500000c020040009c000000710000213d00000014030000290000008001300039000000400010043f00000bad0020009c00000bad020080410000004001200210000000000203043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000400200043d00000c080020009c000000710000213d0000006003200039000000400030043f0000004003200039000000100400003900000000004304350000002003200039000000080500003900000000005304350000000000020435000000400300043d00000c080030009c000000710000213d0000006006300039000000400060043f0000004006300039000000500700003900000000007604350000002006300039000000000046043500000000005304350000001504000029001400200040003d00000040054000390000000504100270000000380640018f0000001004100270000000070740018f0000000008000019000002d00000013d00000bf00020009c000002900000a13d00000bf10020009c000003af0000613d00000bf20020009c000006c30000613d00000bf30020009c0000136d0000c13d000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000101043b2eb025bf0000040f000008ba0000013d00000bd20020009c000002c10000a13d00000bd30020009c000003fe0000613d00000bd40020009c000006e10000613d00000bd50020009c0000136d0000c13d0000000001000416000000000001004b0000136d0000c13d0000000103000039000000000203041a000000010420019000000001012002700000007f0110618f0000001f0010008c00000000050000390000000105002039000000000552013f0000000100500190000008f60000c13d000000800010043f000000000004004b000008fc0000613d000000000030043f000000000001004b0000000002000019000009010000613d00000c42030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000012004b000001cf0000413d000009010000013d00000bea0020009c000003730000613d00000beb0020009c000006730000613d00000bec0020009c0000136d0000c13d000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000101043b0000004f0010008c0000136d0000213d2eb024c10000040f0000000302200210000000000101041a000000000121022f00000bad01100197000000ff0020008c0000000001002019000008ba0000013d00000bcc0020009c0000037b0000613d00000bcd0020009c0000067a0000613d00000bce0020009c0000136d0000c13d0000000001000416000000000001004b0000136d0000c13d0000000001000411000000000010043f0000003901000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000000001004b000009860000c13d000000400100043d000000440210003900000c2f03000041000000000032043500000024021000390000001403000039000008e20000013d00000be20020009c000007b70000613d00000be30020009c000008700000613d00000be40020009c0000136d0000c13d0000000001000416000000000001004b0000136d0000c13d0000000601000039000000000101041a0000009001100270000006e70000013d00000bc40020009c000007da0000613d00000bc50020009c000008870000613d00000bc60020009c0000136d0000c13d000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000202043b000000000002004b000009480000c13d000000c001000039000000400010043f0000000102000039000000800020043f00000c1502000041000000a00020043f0000003a04000039000000000304041a000000010530019000000001073002700000007f0770618f0000001f0070008c00000000020000390000000102002039000000000223013f0000000100200190000008f60000c13d0000002002100039000000000005004b000009b60000613d000000000040043f000000000007004b000009b80000613d00000c120300004100000000040000190000000005240019000000000603041a000000000065043500000001033000390000002004400039000000000074004b000002440000413d000009b80000013d00000bdb0020009c000007e10000613d00000bdc0020009c000008b20000613d00000bdd0020009c0000136d0000c13d000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000101043b00000bb00010009c0000136d0000213d000000000001004b000009ac0000c13d00000bf901000041000000800010043f0000002001000039000000840010043f0000002a01000039000000a40010043f00000c4301000041000000c40010043f00000c4401000041000000e40010043f00000c450100004100002eb20001043000000bbd0020009c000007ea0000613d00000bbe0020009c000008c10000613d00000bbf0020009c0000136d0000c13d000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000101043b001500000001001d00000bb00010009c0000136d0000213d0000000001000411000000000010043f0000003601000039000000200010043f000000400200003900000000010000192eb02e7a0000040f000000000101041a000000ff0110018f2eb025ab0000040f0000001501000029000000000010043f0000003601000039000000200010043f000000000100001900000040020000392eb02e7a0000040f000000000301041a00000c830230019700000001022001bf000000000021041b000000000100001900002eb10001042e00000bf40020009c0000038f0000613d00000bf50020009c0000136d0000c13d000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000202043b00000bb40020009c0000136d0000213d0000002303200039000000000043004b0000136d0000813d0000000403200039000000000331034f000000000503043b00000bb40050009c000000710000213d00000005035002100000003f0630003900000c5f0660019700000c020060009c000000710000213d0000008006600039000000400060043f000000800050043f00000024022000390000000003230019000000000043004b0000136d0000213d000000000005004b000002bd0000613d0000008004000039000000000521034f000000000505043b00000bb00050009c0000136d0000213d000000200440003900000000005404350000002002200039000000000032004b000002b40000413d00000080010000392eb024ff0000040f00000bb001100197000008ba0000013d00000bd60020009c000003a30000613d00000bd70020009c0000136d0000c13d0000000001000416000000000001004b0000136d0000c13d0000000701000039000007e50000013d000000800440003900000000004504350000000104800039000000ff0840018f000000020080008c00001b5f0000213d000000050480021000000000092400190000000009090433000000ff0b90018f0000004f00b0008c0000240e0000213d00000000043400190000000004040433000000ff0a40018f000000010fb000390000000000af004b000003010000813d0000000504b00210000000e00440018f0000000309b002700000002c09900039000000000909041a000000000449022f00000bad0c40019700000000040b0019000002ea0000013d00000000040e0019000000000c0d0019000000010fb000390000000000af004b000003020000813d00000000090b00190000004e00b0008c0000240e0000213d000000000e040019000000000d0c0019000000000b0f00190000000504f00210000000e00440018f000000030cf002700000002c0cc00039000000000c0c041a00000000044c022f00000bad0c40019700000bad04d0019700000000004c004b00000000040f0019000002e70000213d000002e50000c13d000000000491022f0000000200400190000002e50000613d00000000040b0019000002e60000013d00000000040b0019000000ff09800190000003180000613d000000010090008c0000030c0000613d000000020090008c000002cc0000c13d000000ff0440018f0000007f0040008c000002ca0000a13d000007d40000013d0000000309400210000000f80490018f000007f80990018f000000000094004b000007d40000c13d000000000474019f000000bf0040008c000007d40000213d000000400440003900000014090000290000000000490435000002cc0000013d000000ff0440018f0000000004640019000000ff0040008c000007d40000213d00000015090000290000000000490435000002cc0000013d000000440040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000202043b001500000002001d00000bb00020009c0000136d0000213d0000002401100370000000000101043b001400000001001d000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a00000bb001100198000009d10000c13d000000400100043d000000640210003900000c79030000410000000000320435000000440210003900000c7a03000041000000000032043500000024021000390000002903000039000009dc0000013d0000000001000416000000000001004b0000136d0000c13d0000000001000411000000000010043f0000003601000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000ff00100190000008dc0000613d0000000801000039000000000101041a001500000001001d00000c4001000041000000000010044300000000010004100000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c70000800a020000392eb02eab0000040f0000000100200190000024420000613d000000150200002900000bb004200197000000000301043b0000000001000414000000040040008c00000a840000c13d0000000102000039000000010100003100000b580000013d0000000001000416000000000001004b0000136d0000c13d0000000a01000039000000000101041a000000800010043f00000c2c0100004100002eb10001042e000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000101043b00000bad0010009c0000136d0000213d000000000010043f0000003701000039000000200010043f000000400200003900000000010000192eb02e7a0000040f000000000101041a00000c3c01100197000000800010043f00000c2c0100004100002eb10001042e000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000201043b00000c7d002001980000136d0000c13d000000010100003900000c7e0220019700000c7f0020009c000009b30000613d00000c800020009c000009b30000613d00000c810020009c000000000100c019000000800010043f00000c2c0100004100002eb10001042e000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000101043b00000bb00010009c0000136d0000213d000000000010043f0000003901000039000009ae0000013d000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000202043b00000bb40020009c0000136d0000213d0000002303200039000000000043004b0000136d0000813d001400040020003d0000001401100360000000000101043b001500000001001d00000bb40010009c0000136d0000213d0000002402200039001300000002001d0000001501200029000000000041004b0000136d0000213d0000000001000411000000000010043f0000003601000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000ff00100190000008dc0000613d0000003a01000039000000000301041a000000010030019000000001023002700000007f0220618f0000001f0020008c00000000040000390000000104002039000000000343013f0000000100300190000008f60000c13d000000200020008c000003f40000413d000000000010043f00000015040000290000001f03400039000000050330027000000c480330009a000000200040008c00000c12030040410000001f02200039000000050220027000000c480220009a000000000023004b000003f40000813d000000000003041b0000000103300039000000000023004b000003f00000413d00000015020000290000001f0020008c000012700000a13d000000000010043f000000200200008a00000015032001800000138d0000c13d00000c12020000410000000004000019000013990000013d0000000001000416000000000001004b0000136d0000c13d0000000601000039000000000101041a00000c2d00100198000008490000013d0000000001000416000000000001004b0000136d0000c13d0000000001000411000000000010043f0000003601000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000ff00100190000008dc0000613d0000000601000039000000000101041a0000ffff001001900000136d0000c13d0000000b02000039000000000302041a00000055023000c9001500000003001d000000000003004b000004260000613d00000015032000fa000000550030008c000007d40000c13d000000640220011a0000000a03000039000000000023041b00000c830110019700000001011001bf0000000602000039000000000012041b0000000801000039000000000101041a001300000001001d0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197001400000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d00000015010000290000000201100270000000130200002900000bb002200197000000400400043d0000002403400039000000000013043500000c4e010000410000000000140435000a00000004001d0000000401400039000000000021043500000000010004140000001402000029000000040020008c000004630000613d0000000a0200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c1d011001c700000014020000292eb02ea60000040f000000600310027000010bad0030019d000300000001035500000001002001900000136f0000613d0000000a0100002900000bb40010009c000000710000213d0000000a01000029000000400010043f00000c720010009c000000710000213d0000000a030000290000012001300039000000400010043f00000000020000310000000202200367000000002402043c0000000003430436000000000013004b0000046f0000c13d000000400100043d001500000001001d00000c03010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b001400000001001d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d00000015030000290000002002300039000000000101043b00000000001204350000004001300039000000140400002900000000004104350000004001000039000000000013043500000c080030009c000000710000213d00000015030000290000006001300039000000400010043f00000bad0020009c00000bad020080410000004001200210000000000203043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000ff0210018f0000000a060000290000000000260435000000010200003900000006032000c9000000000331022f0000003f0330018f0000000604200210000000c004400039000000c00440018f000000000334019f00000005042002100000000004640019000000200540003900000000003504350000000000340435000000060020008c0000000202200039000004b20000413d000000400100043d000900000001001d00000c720010009c000000710000213d00000009040000290000012001400039000000400010043f000001000140003900000014020000390000000000210435000000c0024000390000000501000039000000000012043500000080024000390000000803000039000000000032043500000040024000390000000000320435000000e00240003900000001030000390000000000320435000000a002400039000000000032043500000060024000390000000000320435000000200240003900000000003204350000000000340435000000400200043d000800000002001d00000c720020009c000000710000213d00000008040000290000012002400039000000400020043f00000100024000390000000a030000390000000000320435000000e0024000390000000000320435000000c00240003900000007030000390000000000320435000000a002400039000000030300003900000000003204350000008002400039000000060300003900000000003204350000006002400039000000040300003900000000003204350000004002400039000000000012043500000020024000390000000000120435000000640100003900000000001404350000000001000019000b00000001001d0000000502100210000c00000002001d0000000901200029001000000001001d0000000001010433000000ff0110018f00000005021002100000003f0320003900003fe00530018f000000400300043d0000000004350019000000000054004b0000000005000039000000010500403900000bb40040009c000000710000213d0000000100500190000000710000c13d000000400040043f000000000313043600000000010000310000000201100367000000000002004b0000051b0000613d0000000004230019000000000501034f000000005605043c0000000003630436000000000043004b000005170000c13d0000001f0020019000000010020000290000000002020433000000ff0220018f000f00000002001d00000005062002100000003f0360003900003fe00430018f000000400200043d001400000002001d0000000003240019000000000043004b0000000004000039000000010400403900000bb40030009c000000710000213d0000000100400190000000710000c13d0000000c020000290000000a042000290000000002040433001300000002001d000000400030043f00000014020000290000000f030000290000000002320436001100000002001d000000000006004b0000800b020000390000053f0000613d00000011040000290000000003640019000000001501043c0000000004540436000000000034004b0000053b0000c13d0000001f00600190000000400100043d001500000001001d00000c03010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c72eb02eab0000040f0000000100200190000024420000613d000000000101043b001200000001001d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d0000001302000029000000ff0320018f00000015040000290000002002400039000000000101043b0000000000120435001300000003001d000000f801300210000000600340003900000000001304350000004001400039000000120300002900000000003104350000004101000039000000000014043500000c020040009c000000710000213d00000015030000290000008001300039000000400010043f00000bad0020009c00000bad020080410000004001200210000000000203043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000e00000001001d0000001301000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b0000000f0000006b000005e50000613d000000000101041a000d00000001001d000000000001004b000022b90000613d0000000002000019001500000002001d0000000f0020008c000007d40000213d0000001301000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000150200002900000004022002100000000e022001ef0000000d302000fa000000000101043b000000000201041a000000000032004b0000240e0000a13d001200000003001d000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000140200002900000000020204330000001504000029000000000042004b00000012050000290000240e0000a13d0000000001510019000000000101041a00000bb00110019700000005024002100000001102200029000000000012043500000014020000290000000002020433000000000042004b0000240e0000a13d000000400200043d0000004003200039000000000013043500000bad01500197000000200320003900000000001304350000001301000029000000000012043500000bad0020009c00000bad020080410000004001200210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0a040000412eb02ea60000040f00000001002001900000136d0000613d000000150200002900000001022000390000000f0020006c000005960000413d0000000c0200002900000008012000290000000001010433000000ff0210018f0000000b01000039000000000301041a00000000013200a9000000000003004b000005f10000613d00000000033100d9000000000023004b000007d40000c13d00000010020000290000000002020433000000ff02200190000022b90000613d000003e80110011a00150000002100e1000000000200001900000014010000290000000001010433000000000021004b0000240e0000a13d001200000002001d00000005012002100000001101100029000000000101043300000bb001100197001300000001001d000000000010043f0000003901000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a000000150020002a000007d40000413d00000015030000290000000002320019000000000021041b000000400100043d00000020021000390000000000320435000000130200002900000000002104350000004002100039000000000002043500000bad0010009c00000bad010080410000004001100210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0b040000412eb02ea60000040f00000001002001900000136d0000613d00000012010000290000000101100039000000ff0210018f00000010010000290000000001010433000000ff0110018f000000000012004b000005f80000413d0000000b010000290000000101100039000000ff0110018f000000090010008c000004fc0000413d0000000a010000290000000001010433000000ff0110018f000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a001200000001001d000000000001004b000023a70000c13d0000000b01000039000000000101041a2eb025f80000040f000000640110011a0000000b02000039000000000012041b000000000100001900002eb10001042e000000440040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000202043b001500000002001d00000bb00020009c0000136d0000213d0000002401100370000000000201043b000000000002004b0000000001000039000000010100c039001400000002001d000000000012004b0000136d0000c13d0000000002000411000000150020006c000009e70000c13d00000bf901000041000000800010043f0000002001000039000000840010043f0000001901000039000000a40010043f00000c3e01000041000000c40010043f00000c3f0100004100002eb2000104300000000001000416000000000001004b0000136d0000c13d0000006401000039000000800010043f00000c2c0100004100002eb10001042e000000640040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000202043b001400000002001d00000bad0020009c0000136d0000213d0000002402100370000000000202043b000000000002004b0000000003000039000000010300c039000000000032004b0000136d0000c13d0000004403100370000000000303043b00000bb40030009c0000136d0000213d0000002305300039000000000045004b0000136d0000813d001200040030003d0000001201100360000000000101043b001500000001001d00000bb40010009c0000136d0000213d00000015013000290000002401100039000000000041004b0000136d0000213d0000000601000039000000000101041a0000ff0000100190000008a80000613d000000140100002900000c300010009c000007d40000213d000000140100002900110c31001000d5000000000001004b000006af0000613d000000110100002900000bb401100197000000140300002900000064033000c900000c320330019700000000013100d900000c330010009c000007d40000c13d00000c1601000041000000800010043f000000000100041100000bb001100197001300000001001d000000840010043f000000000002004b000013d00000c13d0000000701000039000000000201041a000000000100041400000bb002200197001000000002001d000000040020008c000014850000c13d0000000103000031000000200030008c00000020040000390000000004034019000014ab0000013d0000000001000416000000000001004b0000136d0000c13d000000000200041a000000010320019000000001012002700000007f0110618f0000001f0010008c00000000040000390000000104002039000000000442013f0000000100400190000008f60000c13d000000800010043f000000000003004b000008fc0000613d000000000000043f000000000001004b0000000002000019000009010000613d00000c7b030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000012004b000006d90000413d000009010000013d0000000001000416000000000001004b0000136d0000c13d0000000601000039000000000101041a000000b00110027000000bad01100197000000800010043f00000c2c0100004100002eb10001042e000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000202043b00000bb40020009c0000136d0000213d0000002303200039000000000043004b0000136d0000813d0000000403200039000000000131034f000000000101043b000400000001001d00000bb40010009c0000136d0000213d000200240020003d000000040100002900000005011002100000000201100029000000000041004b0000136d0000213d0000000601000039000000000101041a00000c000010019800000b330000c13d00000c2d0010019800000bd20000c13d00000bf901000041000000800010043f0000002001000039000000840010043f0000001801000039000000a40010043f00000c7101000041000000c40010043f00000c3f0100004100002eb200010430000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000201043b000000000002004b0000000001000039000000010100c039001500000002001d000000000012004b0000136d0000c13d0000000001000411000000000010043f0000003601000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000ff00100190000008dc0000613d0000000601000039000000000201041a00000c2d002001980000136d0000c13d00000c8402200197000000150000006b000001000220c1bf000000000021041b000000000100001900002eb10001042e000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000202043b00000bb40020009c0000136d0000213d0000002303200039000000000043004b0000136d0000813d001400040020003d0000001401100360000000000101043b001500000001001d00000bb40010009c0000136d0000213d0000002402200039001300000002001d0000001501200029000000000041004b0000136d0000213d0000000001000411000000000010043f0000003601000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000ff00100190000008dc0000613d0000000601000039000000000101041a00000bf7001001980000136d0000613d00000c2d001001980000136d0000c13d000000ff001001900000136d0000613d0000ff00001001900000136d0000c13d00000c460110019700000c47011001c70000000602000039000000000012041b0000003a01000039000000000301041a000000010030019000000001023002700000007f0220618f0000001f0020008c00000000040000390000000104002039000000000343013f0000000100300190000008f60000c13d000000200020008c0000078e0000413d000000000010043f00000015040000290000001f03400039000000050330027000000c480330009a000000200040008c00000c12030040410000001f02200039000000050220027000000c480220009a000000000023004b0000078e0000813d000000000003041b0000000103300039000000000023004b0000078a0000413d0000001502000029000000200020008c0000145b0000413d000000000010043f000000200200008a0000001503200180000015670000c13d00000c12020000410000000004000019000015730000013d0000000001000416000000000001004b0000136d0000c13d0000003a03000039000000000203041a000000010420019000000001012002700000007f0110618f0000001f0010008c00000000050000390000000105002039000000000552013f0000000100500190000008f60000c13d000000800010043f000000000004004b000008fc0000613d000000000030043f000000000001004b0000000002000019000009010000613d00000c12030000410000000002000019000000000403041a000000a005200039000000000045043500000001033000390000002002200039000000000012004b000007af0000413d000009010000013d0000000001000416000000000001004b0000136d0000c13d0000000001000411000000000010043f0000003601000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000ff00100190000008dc0000613d0000000601000039000000000101041a00000c00001001980000136d0000613d000000900110027000000bad01100197001500000001001d00000c490010009c00000b010000a13d00000c7301000041000000000010043f0000001101000039000000040010043f00000c4b0100004100002eb2000104300000000001000416000000000001004b0000136d0000c13d0000000601000039000000000101041a00000c0000100198000008490000013d0000000001000416000000000001004b0000136d0000c13d0000000901000039000000000101041a00000bb001100197000000800010043f00000c2c0100004100002eb10001042e000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000101043b001500000001001d00000bb00010009c0000136d0000213d0000000001000411000000000010043f0000003601000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000ff00100190000008dc0000613d0000000801000039000000000101041a00000bb0011001970000001502000029000000000012004b00000b280000c13d000000400100043d000000440210003900000bff0300004100000a250000013d0000000002000416000000000002004b0000136d0000c13d000000640040008c0000136d0000413d0000000402100370000000000202043b001500000002001d00000bad0020009c0000136d0000213d0000002402100370000000000202043b000000000002004b0000000003000039000000010300c039000000000032004b0000136d0000c13d0000004403100370000000000303043b00000bb40030009c0000136d0000213d0000002305300039000000000045004b0000136d0000813d001300040030003d0000001301100360000000000101043b001400000001001d00000bb40010009c0000136d0000213d00000014013000290000002401100039000000000041004b0000136d0000213d001800150000002d001700010000003d0000000601000039000000000101041a0000ff0000100190000008a80000613d00160bad00000045000000150100002900000c300010009c000007d40000213d000000150100002900120c31001000d5000000000001004b000014690000c13d000000000002004b001100000000001d000014730000613d0000164b0000013d0000000001000416000000000001004b0000136d0000c13d0000000601000039000000000101041a0000ff00001001900000000001000039000000010100c039000000800010043f00000c2c0100004100002eb10001042e0000000001000416000000000001004b0000136d0000c13d00000c3301000041000000800010043f00000c2c0100004100002eb10001042e000000440040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000202043b00000bb00020009c0000136d0000213d0000002401100370000000000101043b001500000001001d00000bb00010009c0000136d0000213d000000000020043f0000000501000039000000200010043f000000400200003900000000010000192eb02e7a0000040f00000015020000292eb024ef0000040f000000000101041a000000ff001001900000000001000039000000010100c039000008ba0000013d000000640040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000502043b00000bb00050009c0000136d0000213d0000002402100370000000000202043b00000bb00020009c0000136d0000213d0000004401100370000000000301043b000000a001000039000000400010043f000000800000043f000000800400003900000000010500192eb026640000040f000000000100001900002eb10001042e000000440040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000402100370000000000202043b000000000002004b0000000003000039000000010300c039000000000032004b0000136d0000c13d0000002403100370000000000303043b00000bb40030009c0000136d0000213d0000002305300039000000000045004b0000136d0000813d001400040030003d0000001401100360000000000101043b001500000001001d00000bb40010009c0000136d0000213d00000015013000290000002401100039000000000041004b0000136d0000213d0000000601000039000000000101041a0000ff000010019000000be90000c13d00000bf901000041000000800010043f0000002001000039000000840010043f0000000d01000039000000a40010043f00000c6601000041000000c40010043f00000c3f0100004100002eb200010430000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000101043b2eb026290000040f000000400200043d000000000012043500000bad0020009c00000bad02008041000000400120021000000c11011001c700002eb10001042e000000240040008c0000136d0000413d0000000002000416000000000002004b0000136d0000c13d0000000401100370000000000101043b001500000001001d00000bad0010009c0000136d0000213d0000000001000411000000000010043f0000003601000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000ff0010019000000a1a0000c13d000000400100043d000000440210003900000c7c03000041000000000032043500000024021000390000001f03000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000bfa011001c700002eb200010430000000000100041a000000010210019000000001041002700000007f0440618f0000001f0040008c00000000010000390000000101002039000000000012004b000009120000613d00000c7301000041000000000010043f0000002201000039000000040010043f00000c4b0100004100002eb20001043000000c8302200197000000a00020043f000000000001004b00000020020000390000000002006039000000200220003900000080010000392eb0249a0000040f000000400100043d001500000001001d00000080020000392eb024ac0000040f0000001502000029000000000121004900000bad0010009c00000bad01008041000000600110021000000bad0020009c00000bad020080410000004002200210000000000121019f00002eb10001042e000000200040008c000009320000413d000e00000004001d000f00000003001d000000000000043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d00000011030000290000001f023000390000000502200270000000200030008c0000000002004019000000000301043b0000000e010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b0000000f03000029000009320000813d000000000002041b0000000102200039000000000012004b0000092e0000413d00000011040000290000001f0040008c000009790000a13d000f00000003001d000000000000043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000110800002900000c8202800198000000000101043b0000000f0700002900000a290000c13d0000002003000039000000130600002900000a360000013d000000000341034f000000000502001900000000010000190000000004010019000000010110003a000007d40000613d000000090050008c0000000a0550011a0000094b0000213d00000c130040009c000000710000213d00000c82044001970000005f0640003900000c820660019700000c020060009c000000710000213d0000008006600039000000400060043f000000800010043f000000200440003900000c82054001980000001f0440018f000009650000613d000000a005500039000000a006000039000000003703043c0000000006760436000000000056004b000009610000c13d000000000004004b000000000001004b000007d40000613d000000010310008a000000800400043d000000000034004b0000240e0000a13d000000090020008c0000000a4220011a000000f8044002100000009f01100039000000000501043300000c1405500197000000000454019f00000c15044001c700000000004104350000000001030019000009660000213d000000400100043d000002310000013d000000000004004b00000000010000190000097e0000613d00000012010000290000000001010433000000030240021000000c850220027f00000c8502200167000000000121016f0000000102400210000000000121019f000000130600002900000a420000013d001500000001001d000000000100041100000bb001100197001400000001001d000000000010043f0000003901000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000001041b0000000701000039000000000201041a000000400b00043d0000002401b000390000001503000029000000000031043500000c2e0100004100000000001b04350000000401b0003900000014030000290000000000310435000000000100041400000bb002200197000000040020008c00000a8b0000c13d0000000103000031000000200030008c0000002004000039000000000403401900000ab70000013d000000000010043f0000000301000039000000200010043f000000400200003900000000010000192eb02e7a0000040f000000000101041a000000800010043f00000c2c0100004100002eb10001042e00000c830330019700000000003204350000000006720019000000800200043d000000000002004b000009c40000613d00000000030000190000000004630019000000a005300039000000000505043300000000005404350000002003300039000000000023004b000009bd0000413d000000000262001900000000000204350000000002120049000000200320008a0000000000310435001500000001001d2eb0249a0000040f000000400100043d001400000001001d00000015020000292eb024ac0000040f0000001402000029000009090000013d000000150010006b00000acd0000c13d000000400100043d000000640210003900000c77030000410000000000320435000000440210003900000c7803000041000000000032043500000024021000390000002103000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000c76011001c700002eb200010430000000000020043f0000000501000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b0000001502000029000000000020043f000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a00000c83022001970000001403000029000000000232019f000000000021041b000000400100043d000000000031043500000bad0010009c00000bad010080410000004001100210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000bb5011001c70000800d02000039000000030300003900000c3d04000041000000000500041100000015060000292eb02ea60000040f0000000100200190000000790000c13d0000136d0000013d0000000601000039000000000201041a00000bf70020019800000b3d0000c13d000000150400002900000bfb0340009a00000bfc0030009c00000be20000213d000000400100043d000000440210003900000bfe03000041000000000032043500000024021000390000001303000039000008e20000013d000000010320008a0000000503300270000000000431001900000020030000390000000104400039000000130600002900000000057300190000000005050433000000000051041b00000020033000390000000101100039000000000041004b00000a2f0000c13d000000000082004b00000a400000813d0000000302800210000000f80220018f00000c850220027f00000c850220016700000000037300190000000003030433000000000223016f000000000021041b000000010180021000000001011001bf000000000010041b0000000001060433001200000001001d00000bb40010009c000000710000213d0000000104000039000000000104041a000000010010019000000001031002700000007f0330618f0000001f0030008c00000000020000390000000102002039000000000121013f0000000100100190000008f60000c13d000000200030008c00000a710000413d001100000003001d000000000040043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d00000012030000290000001f023000390000000502200270000000200030008c0000000002004019000000000301043b00000011010000290000001f01100039000000050110027000000000011300190000000002230019000000000012004b000000010400003900000a710000813d000000000002041b0000000102200039000000000012004b00000a6d0000413d00000012050000290000001f0050008c00000b440000a13d000000000040043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000200200008a0000001202200180000000000101043b000012040000c13d0000002003000039000012110000013d00000bad0010009c00000bad01008041000000c001100210000000000003004b00000b500000c13d000000000204001900000b530000013d00000bad00b0009c00000bad0300004100000000030b4019000000400330021000000bad0010009c00000bad01008041000000c001100210000000000131019f00000c1d011001c700150000000b001d2eb02ea60000040f000000150b000029000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900000aa60000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00000aa20000c13d000000000006004b00000ab30000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000000b8c0000613d0000001f01400039000000600210018f0000000001b20019000000000021004b0000000002000039000000010200403900000bb40010009c000000710000213d0000000100200190000000710000c13d000000400010043f000000200030008c0000136d0000413d00000000010b0433000000000001004b0000000002000039000000010200c039000000000021004b0000136d0000c13d2eb026500000040f000000000100001900002eb10001042e0000000002000411000000000012004b00000baa0000c13d0000001401000029000000000010043f0000000401000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a00000bb70220019700000015022001af000000000021041b0000001401000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a00000bb0051001980000033c0000613d000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c6b04000041000000150600002900000014070000292eb02ea60000040f0000000100200190000000790000c13d0000136d0000013d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000150200002900000c4a0220009a000000000101043b000000000021004b0000136d0000a13d0000000701000039000000000201041a0000000801000039000000000101041a001200000001001d000000400300043d00000c16010000410000000000130435000000000100041000000bb001100197001500000003001d00000004033000390000000000130435000000000100041400000bb002200197001400000002001d000000040020008c0000127e0000c13d0000000103000031000000200030008c00000020040000390000000004034019000012a90000013d000000000020043f0000003601000039000000200010043f000000400200003900000000010000192eb02e7a0000040f000000000201041a00000c8302200197000000000021041b000000000100001900002eb10001042e00000bf901000041000000800010043f0000002001000039000000840010043f0000000901000039000000a40010043f00000c6701000041000000c40010043f00000c3f0100004100002eb200010430000000400100043d000000440210003900000bf803000041000000000032043500000024021000390000001203000039000008e20000013d000000000005004b000000000100001900000b490000613d00000010010000290000000001010433000000030250021000000c850220027f00000c8502200167000000000121016f0000000102500210000000000121019f0000121f0000013d00000c07011001c7000080090200003900000000050000192eb02ea60000040f0003000000010355000000600110027000010bad0010019d00000bad01100197000000000001004b00000b630000c13d0000000100200190000000790000c13d000000400100043d000000440210003900000c4103000041000000000032043500000024021000390000001003000039000008e20000013d00000bb40010009c000000710000213d0000001f0410003900000c82044001970000003f0440003900000c8205400197000000400400043d0000000005540019000000000045004b0000000006000039000000010600403900000bb40050009c000000710000213d0000000100600190000000710000c13d000000400050043f000000000614043600000c82031001980000001f0410018f0000000001360019000000030500036700000b7e0000613d000000000705034f000000007807043c0000000006860436000000000016004b00000b7a0000c13d000000000004004b00000b5a0000613d000000000335034f0000000304400210000000000501043300000000054501cf000000000545022f000000000303043b0000010004400089000000000343022f00000000034301cf000000000353019f000000000031043500000b5a0000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00000b930000c13d000000000005004b00000ba40000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000bad0020009c00000bad020080410000004002200210000000000112019f00002eb200010430000000000010043f0000000501000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000200041100000bb002200197000000000020043f000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000000ff0010019000000ad00000c13d000000400100043d000000640210003900000c74030000410000000000320435000000440210003900000c7503000041000000000032043500000024021000390000003803000039000009dc0000013d00000004020000290000012d0220008a00000c860020009c00000bfd0000213d00000bf901000041000000800010043f0000002001000039000000840010043f0000002a01000039000000a40010043f00000c6f01000041000000c40010043f00000c7001000041000000e40010043f00000c450100004100002eb20001043000000bfd02200197000000300340021000000bf703300197000000000232019f000000000021041b000000000100001900002eb10001042e00000c1601000041000000800010043f000000000100041100000bb001100197001300000001001d000000840010043f000000000002004b000011f80000c13d0000000701000039000000000201041a000000000100041400000bb002200197001200000002001d000000040020008c000013020000c13d0000000103000031000000200030008c00000020040000390000000004034019000013280000013d00000c680110019700000c69011001c70000000602000039000000000012041b00000000020000190000000601000039000000000101041a00000c0000100198000023490000c13d000300000002001d000000050120021000000002011000290000000201100367000000000101043b001500000001001d00000bad0010009c0000136d0000213d0000001501000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a00000bb0011001980000033c0000613d0000000002000411000000000021004b000023580000c13d0000001501000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a00140bb00010019c0000033c0000613d0000001501000029000000000010043f0000000401000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a00000bb702200197000000000021041b0000001501000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a00000bb0051001980000033c0000613d000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c6b04000041000000000600001900000015070000292eb02ea60000040f00000001002001900000136d0000613d0000001401000029000000000010043f0000000301000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a000000000002004b000007d40000613d000000010220008a000000000021041b0000001501000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a00000bb702200197000000000021041b000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c34040000410000001405000029000000000600001900000015070000292eb02ea60000040f00000001002001900000136d0000613d000000150100002900000c6c0110019700000c6d0010009c00000ca80000213d0000000601000039000000000101041a000000300210027000000bad0220019800000ca80000613d0000001503200029001500000003001d00000bad0030009c000007d40000213d000000700110027000000bad01100197000000150110006b00000ca80000a13d00000bad0010009c001500000001001d000007d40000213d0000001501000029000000000010043f0000003701000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000400200043d000700000002001d00000c020020009c000000710000213d000000000101043b000000000101041a00000007040000290000008002400039000000400020043f00000000030000310000000203300367000000003503043c0000000004540436000000000024004b00000cc00000c13d00000012021002700000003f0220018f000000c0022001bf0000000704000029000000600340003900000000002304350000003f0210018f00000000052404360000000c021002700000003f0220018f00000080022001bf0000004003400039001200000003001d000000000023043500000006011002700000003f0110018f00000040011001bf001300000005001d0000000000150435000000000100041100060bb00010019b0000000001000019001500000001001d000000050110021000000007011000290000000001010433000000ff0110018f000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a00000bb40020009c000000710000213d001400000002001d0000000102200039000000000021041b000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b0000001401100029000000000201041a00000bb70220019700000006022001af000000000021041b0000001501000029000000020010008c000000010110003900000cda0000a13d0000000601000039000000000101041a00000c2d00100198000011e60000613d0000002c01000039000000000101041a000000070200002900000000020204330000000502200210000000e00220018f000000000321022f00000bad0330019700000bad0030009c000007d40000613d000000010330003900000000032301cf00000bad0220021f00000c8502200167000000000121016f000000000113019f0000002c02000039000000000012041b00000013010000290000000001010433000000ff0110018f000000400110008a000000ff0010008c000007d40000213d0000000202100210000000e00220018f0000000301100270000000080110003900000003011002700000002c01100039000000000301041a000000000423022f00000bad0440019700000bad0040009c000007d40000613d000000010440003900000000042401cf00000bad0220021f00000c8502200167000000000223016f000000000224019f000000000021041b00000012010000290000000001010433000000ff0110018f000000800010008c000007d40000413d000000700110008a0000004f0010008c0000240e0000213d0000000502100210000000e00220018f00000003011002700000002c01100039000000000301041a000000000423022f00000bad0440019700000bad0040009c000007d40000613d000000010440003900000000042401cf00000bad0220021f00000c8502200167000000000223016f000000000224019f000000000021041b000000000100001900000d530000013d00000005010000290000000101100039000000ff0110018f000000040010008c000011e60000813d000500000001001d0000000501100210000000070110002900000000010104330000000502100210000000e00220018f000000ff0110018f000a00000001001d00000003011002700000000c01100039000000000301041a000000000423022f00000bad04400197000000010440008a00000bad0040009c000007d40000213d00000000042401cf00000bad0220021f00000c8505200167000000000353016f000000000334019f000000000031041b000000000024017000000d4e0000c13d0000000601000039000000000101041a00000c000010019800000d4e0000c13d00000c5001000041000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a00000bb000100198000023030000c13d0000000601000029000000000010043f0000000301000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a000000010220003a000007d40000613d000000000021041b00000c5001000041000000000010043f0000000201000039000000200010043f00000c5102000041000000000102041a00000bb70110019700000006011001af000000000012041b000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c34040000410000000005000019000000000600041100000c50070000412eb02ea60000040f00000001002001900000136d0000613d0000000602000039000000000102041a00000c520110019700000c53011001c7000000000012041b00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d0000000603000039000000000203041a00000c5402200197000000000101043b000000900110021000000c5501100197000000000112019f000000000013041b0000000901000039000000000201041a000000400a00043d00000c560100004100000000001a0435000000000100041400000bb002200197000000040020008c001400000002001d00000dd00000c13d0000000103000031000000200030008c0000002004000039000000000403401900000dfb0000013d00000bad00a0009c00000bad0300004100000000030a4019000000400330021000000bad0010009c00000bad01008041000000c001100210000000000131019f00000c57011001c700150000000a001d2eb02eab0000040f000000150a000029000000600310027000000bad03300197000000200030008c00000020040000390000000004034019000000200640019000000000056a001900000dea0000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b00000de60000c13d0000001f0740019000000df70000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000023170000613d0000001f01400039000000600210018f0000000001a20019000000000021004b0000000002000039000000010200403900000bb40010009c000000710000213d0000000100200190000000710000c13d000000400010043f000000200030008c0000136d0000413d00000000010a043300000c580010009c00000c580100a04100080003001000cd00000008011000f9000000030010008c000007d40000c13d00000c1901000041000000000010044300000014010000290000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400400043d00000c59010000410000000001140436001300000001001d00000000010004140000001402000029000000040020008c001500000004001d00000e380000613d00000bad0040009c00000bad030000410000000003044019000000400330021000000bad0010009c00000bad01008041000000c001100210000000000131019f00000c57011001c72eb02ea60000040f0000001504000029000000600310027000010bad0030019d00030000000103550000000100200190000023230000613d00000bb40040009c000000710000213d0000001501000029000000400010043f00000c03010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b001400000001001d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000130200002900000000001204350000001503000029000000600130003900000c5a0200004100000000002104350000004001300039000000140200002900000000002104350000004101000039000000000013043500000c020030009c000000710000213d00000015020000290000008001200039000000400010043f000000130100002900000bad0010009c00000bad010080410000004001100210000000000202043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000201043b000000400100043d001500000001001d00000c5b0010009c000000710000213d000000080100002900090014001001220000001504000029000001a003400039000000400030043f0000000c01000039000000000514043600000000010000310000000201100367000000000401034f001400000005001d000000004604043c0000000005650436000000000035004b00000e880000c13d000000400300043d000b00000003001d00000c020030009c000000710000213d0000000b050000290000008003500039000000400030043f000000000401034f000000004604043c0000000005650436000000000035004b00000e940000c13d0000000003000019000000150600002900000014070000290000000004060433000000000034004b0000240e0000a13d0000000504300210000000000474001900000006053000c9000000000552022f0000003f0550018f00000000005404350000000a0030008c000000010330003900000e9b0000a13d000000400300043d00000c5b0030009c000000710000213d000001a002300039000000400020043f0000000c040000390000000003430436000000001401043c0000000003430436000000000023004b00000eae0000c13d0000000901000039000000000101041a000000400800043d00000c5c02000041000000000028043500000004028000390000002003000039000000000032043500000015050000290000000002050433000000240380003900000000002304350000004403800039000000000002004b00000ec90000613d000000000400001900000020055000390000000006050433000000ff0660018f00000000036304360000000104400039000000000024004b00000ec20000413d00000bb0021001970000000001000414000000040020008c00000ed00000c13d0000000301000367000000010300003100000ee60000013d000000000383004900000bad0030009c00000bad03008041000000600330021000000bad0080009c001300000008001d00000bad0400004100000000040840190000004004400210000000000343019f00000bad0010009c00000bad01008041000000c001100210000000000113019f2eb02eab0000040f000000600310027000010bad0030019d00000bad0330019700030000000103550000000100200190000023300000613d000000130800002900000c8204300198000000000248001900000eef0000613d000000000501034f0000000006080019000000005705043c0000000006760436000000000026004b00000eeb0000c13d0000001f0530019000000efc0000613d000000000141034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000001f0130003900000c82021001970000000001820019000000000021004b0000000002000039000000010200403900000bb40010009c000000710000213d0000000100200190000000710000c13d000000400010043f00000c5d0030009c0000136d0000213d000000200030008c0000136d0000413d0000000004080019000000000208043300000bb40020009c0000136d0000213d0000000005040019000000000443001900000000025200190000001f03200039000000000043004b000000000500001900000c5e0500804100000c5e0330019700000c5e06400197000000000763013f000000000063004b000000000300001900000c5e0300404100000c5e0070009c000000000305c019000000000003004b0000136d0000c13d000000003202043400000bb40020009c000000710000213d00000005052002100000003f0650003900000c5f06600197000000000616001900000bb40060009c000000710000213d000000400060043f00000000022104360000000005350019000000000045004b0000136d0000213d000000000053004b000000150c000029000000140d00002900000f380000813d0000000004010019000000200440003900000000360304340000000000640435000000000053004b00000f330000413d000000000300001900000f3e0000013d0000000103300039000000ff0330018f000000030030008c00000f610000213d00000005043002100000000b0440002900000003053000c90000000606300210000000c00660018f0000000007000019000000000800001900000f4c0000013d000000000084043500000000080900190000000107700039000000ff0770018f000000030070008c00000f3a0000813d000000000a570019000000ff00a0008c000007d40000213d00000000090104330000000000a9004b0000240e0000a13d000000050ba002100000000009b200190000000009090433000000000089004b00000f480000413d00000000080c04330000000000a8004b0000240e0000a13d0000000008db00190000000008080433000000ff0880018f0000000008680019000000ff0080008c00000f460000a13d000007d40000013d000000400200043d00000c600020009c000000710000213d000000c001200039000000400010043f0000000503000039000000000232043600000000030000310000000203300367000000003403043c0000000002420436000000000012004b00000f6a0000c13d000c00000000001d00000f760000013d0000000c010000290000000101100039000000ff0110018f000c00000001001d000000040010008c0000111a0000813d000000400100043d001200000001001d00000c600010009c000000710000213d0000000c0100002900000005011002100000000b011000290000000001010433001400ff001001930000001203000029000000c001300039000000400010043f0000000502000039000000000323043600000000020000310000000202200367001100000003001d000000002402043c0000000003430436000000000013004b00000f870000c13d000000400100043d001500000001001d00000c03010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b001300000001001d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d00000015040000290000002002400039000000000101043b00000000001204350000001401000029000000f801100210000000600340003900000000001304350000004001400039000000130300002900000000003104350000004101000039000000000014043500000c020040009c000000710000213d0000008001400039000000400010043f00000bad0020009c00000bad020080410000004001200210000000000204043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b001000000001001d0000001401000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000f00000001001d000000000001004b000022b90000613d0000000001000019001500000001001d0000001401000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000001503000029000000040330021000000010033001ef0000000f303000fa00000001002001900000136d0000613d000000000101043b000000000201041a000000000032004b0000240e0000a13d000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c70000801002000039001300000003001d2eb02eab0000040f0000001306000029000000150500002900000001002001900000136d0000613d000000000101043b00000012030000290000000002030433000000000052004b0000240e0000a13d0000000001610019000000000101041a00000bb0011001970000000502500210000000110220002900000000001204350000000002030433000000000052004b0000240e0000a13d000000400200043d0000004003200039000000000013043500000bad01600197000000200320003900000000001304350000001401000029000000000012043500000bad0020009c00000bad020080410000004001200210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0a040000412eb02ea60000040f000000150100002900000001002001900000136d0000613d000000030010008c000000010110003900000fdd0000a13d00000012030000290000000005030433000000000005004b000010d90000613d0000000901000039000000000101041a00000bb006100197000000000700001900000000080000190000000009000019000e00000005001d000d00000006001d0000000001030433000000000071004b0000240e0000a13d000000050170021000000011011000290000000001010433000000400a00043d00000c610200004100000000002a043500000bb0021001970000000401a00039001500000002001d00000000002104350000000001000414000000040060008c0000104a0000c13d0000000103000031000000200030008c000000200400003900000000040340190000107e0000013d001400000009001d000f00000008001d001000000007001d00000bad00a0009c00000bad0200004100000000020a4019000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c4b011001c7000000000206001900130000000a001d2eb02eab0000040f000000130a000029000000600310027000000bad03300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000010680000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b000010640000c13d0000001f07400190000010750000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000001409000029000017030000613d0000000e050000290000000d0600002900000010070000290000000f080000290000001f01400039000000600210018f0000000001a20019000000000021004b0000000002000039000000010200403900000bb40010009c000000710000213d0000000100200190000000710000c13d000000400010043f000000200030008c0000136d0000413d000000ff0070008c000007d40000613d00000000020a0433000000000092004b00000000040800190000001504002029000000000209a0190000000103700039000000ff0730018f000000000057004b000000000804001900000000090200190000001203000029000010350000413d000000000002004b000000000504001900000000050060190000000802000029000000140020008c000010db0000413d00000bb002500198000010db0000613d001300000002001d001500000004001d0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197001400000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400400043d00000024014000390000000902000029000000000021043500000c4e01000041000000000014043500000004014000390000001302000029000000000021043500000000010004140000001402000029000000040020008c000010d40000613d00000bad0040009c00000bad030000410000000003044019000000400330021000000bad0010009c00000bad01008041000000c001100210000000000131019f00000c1d011001c7001400000004001d2eb02ea60000040f0000001404000029000000600310027000010bad0030019d0003000000010355000000010020019000001cb90000613d00000bb40040009c000000710000213d000000400040043f0000001501000029000011010000013d000000400100043d000000000500001900000020020000390000000002210436000000000303043300000000003204350000004002100039000000000003004b001500000005001d000010ec0000613d000000000400001900000012060000290000002006600039000000000506043300000bb00550019700000000025204360000000104400039000000000034004b000010e50000413d000000000212004900000bad0020009c00000bad02008041000000600220021000000bad0010009c00000bad010080410000004001100210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000121019f00000c07011001c70000800d02000039000000010300003900000c62040000412eb02ea60000040f000000010020019000000015010000290000136d0000613d00000bb00110019800000f700000613d000000400200043d000000200320003900000009040000290000000000430435000000000012043500000040012000390000000103000039000000000031043500000bad0020009c00000bad020080410000004001200210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d0200003900000c0b040000412eb02ea60000040f000000010020019000000f700000c13d0000136d0000013d0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197001500000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400400043d00000c6301000041000000000014043500000000010004140000001502000029000000040020008c000011450000613d00000bad0040009c00000bad030000410000000003044019000000400330021000000bad0010009c00000bad01008041000000c001100210000000000131019f00000c57011001c7001500000004001d2eb02ea60000040f0000001504000029000000600310027000010bad0030019d000300000001035500000001002001900000233c0000613d00000bb40040009c000000710000213d000000400040043f0000000a01000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a001400000001001d000000000001004b000007d40000613d0000000b01000039000000000201041a001500000002001d000000000001041b0000000a01000039000000000001041b0000000601000029000000000010043f0000003901000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000001403000029000000010330008a00000bad03300197000000010030008c000000010300a039001300000003001d00000001002001900000136d0000613d00000015020000290014000500200122000000000101043b000000000201041a000000140020002a000007d40000413d00000014030000290000000002320019000000000021041b000000400100043d00000020021000390000000000320435000000060200002900000000002104350000004002100039000000000002043500000bad0010009c00000bad010080410000004001100210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0b040000412eb02ea60000040f00000001002001900000136d0000613d000000140200002900000015012000690012001300100102001500000000001d0000000a01000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a000000150020006c0000240e0000a13d000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b0000001501100029000000000101041a00000bb001100197001400000001001d000000000010043f0000003901000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a0000001203000029000000000032001a000007d40000413d0000000002320019000000000021041b000000400100043d00000020021000390000000000320435000000140200002900000000002104350000004002100039000000000002043500000bad0010009c00000bad010080410000004001100210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0b040000412eb02ea60000040f00000001002001900000136d0000613d0000001501000029000000010110003900000bad02100197001500000002001d000000130020006c000011960000413d00000d4e0000013d000000030100002900000bad0110019700000bad0010009c000007d40000613d0000000102100039000000040020006c00000c020000413d0000000602000039000000000102041a00000c6801100197000000000012041b0000000901000039000000000101041a00150bb00010019b000000040000006b001400000000001d0000234f0000c13d000023640000013d0000000901000039000000000201041a000000000100041400000bb002200197001500000002001d000000040020008c000013410000c13d0000000103000031000000200030008c00000020040000390000000004034019000013670000013d000000010320008a0000000503300270000000000431001900000020030000390000000104400039000000130600002900000000056300190000000005050433000000000051041b00000020033000390000000101100039000000000041004b0000120a0000c13d0000001205000029000000000052004b0000121c0000813d0000000302500210000000f80220018f00000c850220027f00000c850220016700000013033000290000000003030433000000000223016f000000000021041b000000010150021000000001011001bf0000000104000039000000000014041b0000003a03000039000000000103041a000000010010019000000001041002700000007f0440618f0000001f0040008c00000000020000390000000102002039000000000121013f0000000100100190000008f60000c13d001300000004001d0000001f0040008c000012450000a13d000000000030043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000201043b00000013010000290000001f01100039000000050110027000000000011200190000000102200039000000000012004b0000003a03000039000012450000813d000000000002041b0000000102200039000000000012004b000012410000413d0000004101000039000000000013041b000000000030043f000000200200003900000000010000192eb02e7a0000040f00000bb602000041000000000021041b0000000801000039000000000201041a00000bb7022001970000000003000411000000000232019f000000000021041b000000000030043f0000003601000039000000200010043f000000400200003900000000010000192eb02e7a0000040f000000000301041a00000c830230019700000001022001bf000000000021041b000000140100002900000bb0011001970000000902000039000000000302041a00000bb703300197000000000113019f000000000012041b000000150100002900000bb0011001970000000702000039000000000302041a00000bb703300197000000000113019f000000000012041b00000020010000390000010000100443000001200000044300000bb80100004100002eb10001042e000000150000006b0000000002000019000012770000613d000000140200002900000020022000390000000202200367000000000202043b0000001505000029000000030350021000000c850330027f00000c8503300167000000000332016f0000000102500210000013a80000013d000000150200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c4b011001c700000014020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000001505700029000012980000613d000000000801034f0000001509000029000000008a08043c0000000009a90436000000000059004b000012940000c13d000000000006004b000012a50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000013ac0000613d0000001f01400039000000600110018f0000001504100029000000000014004b00000000020000390000000102004039001300000004001d00000bb40040009c000000710000213d0000000100200190000000710000c13d0000001302000029000000400020043f000000200030008c0000136d0000413d000000120200002900000bb0022001970000001504000029000000000404043300000013060000290000002405600039000000000045043500000c2e0400004100000000004604350000000404600039000000000024043500000000020004140000001404000029000000040040008c000012f40000613d000000130100002900000bad0010009c00000bad01008041000000400110021000000bad0020009c00000bad02008041000000c002200210000000000112019f00000c1d011001c700000014020000292eb02ea60000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000001305700029000012e10000613d000000000801034f0000001309000029000000008a08043c0000000009a90436000000000059004b000012dd0000c13d000000000006004b000012ee0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000015b70000613d0000001f01400039000000600110018f000000130110002900000bb40010009c000000710000213d000000400010043f000000200030008c0000136d0000413d00000013010000290000000001010433000000000001004b0000000002000039000000010200c039000000000021004b000000790000613d0000136d0000013d00000bad0010009c00000bad01008041000000c00110021000000c17011001c700000012020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000013170000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000013130000c13d000000000006004b000013240000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000013b80000613d0000001f01400039000000600110018f00000080021001bf001100000002001d000000400020043f000000200030008c0000136d0000413d000000a40210003900000084031001bf000000800400043d00000c180040009c000013dc0000213d00000bf904000041000000110500002900000000004504350000002004000039000000000043043500000019030000390000000000320435000000c40110003900000c2b020000410000000000210435000000400150021000000bfa011001c700002eb20001043000000bad0010009c00000bad01008041000000c00110021000000c17011001c700000015020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000000800a000039000013560000613d000000000801034f000000008908043c000000000a9a043600000000005a004b000013520000c13d000000000006004b000013630000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000013c40000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200030008c0000137c0000813d000000000100001900002eb20001043000000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013770000c13d00000b970000013d000000800300043d00000c180030009c000013ed0000213d00000bf903000041000000000031043500000084032001bf00000020040000390000000000430435000000c40320003900000c1e040000410000000000430435000000a40220003900000012030000390000000000320435000000400110021000000bfa011001c700002eb20001043000000c12020000410000000205000367000000000400001900000013070000290000000006740019000000000665034f000000000606043b000000000062041b00000001022000390000002004400039000000000034004b000013910000413d000000150030006c000013a50000813d00000015030000290000000303300210000000f80330018f00000c850330027f00000c850330016700000013044000290000000204400367000000000404043b000000000334016f000000000032041b000000010200003900000015030000290000000103300210000000000223019f000000000021041b000000000100001900002eb10001042e0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013b30000c13d00000b970000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013bf0000c13d00000b970000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000013cb0000c13d00000b970000013d0000000901000039000000000201041a000000000100041400000bb002200197001500000002001d000000040020008c000014ba0000c13d0000000103000031000000200030008c00000020040000390000000004034019000014e00000013d00000c1f040000410000001105000029000000000045043500000013040000290000000000430435000000000300041000000bb003300197000f00000003001d000000000032043500000000020004140000001203000029000000040030008c0000152c0000c13d0000001102100029001000000002001d000000400020043f0000155c0000013d00000c1901000041000000000010044300000015010000290000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400300043d000000240130003900000c1b02000041000000000021043500000c1c010000410000000000130435001200000003001d00000004013000390000001302000029000000000021043500000000010004140000001502000029000000040020008c0000141b0000613d000000120200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c1d011001c700000015020000292eb02ea60000040f000000600310027000010bad0030019d00030000000103550000000100200190000017880000613d000000120100002900000bb40010009c000000710000213d0000001201000029000000400010043f0000000b01000039000000000101041a001500000001001d00000c27010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d00000012040000290000002002400039000000000101043b00000015030000290000000000320435000000400340003900000000001304350000004001000039000000000014043500000c080040009c000000710000213d00000012030000290000006001300039000000400010043f00000bad0020009c00000bad020080410000004001200210000000000203043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000007ff0210018f000003480320008c00001a280000413d000005480420008c00001cb60000413d000007280020008c000022bf0000413d000000280210008a000000ff0220018f0000001b0220011a0000003802200039000022c20000013d000000150000006b0000000002000019000015830000613d0000001504000029000000030240021000000c850220027f00000c8502200167000000140300002900000020033000390000000203300367000000000303043b000000000323016f0000000102400210000015820000013d000000120100002900000bb401100197000000150300002900000064033000c900000c320330019700000000033100d900000c330030009c000007d40000c13d000000000002004b000016440000c13d0000000701000039000000000201041a00000c1601000041000000800010043f000000000100041100000bb001100197000f00000001001d000000840010043f000000000100041400000bb002200197001100000002001d000000040020008c000015c30000c13d0000000103000031000000200030008c00000020040000390000000004034019000015e90000013d00000bad0010009c00000bad01008041000000c00110021000000c17011001c700000010020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf0000149a0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000014960000c13d000000000006004b000014a70000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000015f80000613d0000001f01400039000000600110018f00000080021001bf000f00000002001d000000400020043f000000200030008c0000136d0000413d000000a40210003900000084031001bf000000800400043d000000110040006c0000161c0000813d00000bf9040000410000000f05000029000013360000013d00000bad0010009c00000bad01008041000000c00110021000000c17011001c700000015020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000014cf0000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000014cb0000c13d000000000006004b000014dc0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000016040000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200030008c0000136d0000413d000000800300043d000000110030006c0000137f0000413d00000c1901000041000000000010044300000015010000290000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400200043d00000c1c01000041000000000012043500000024032000390000001101000029001000000003001d0000000000130435001100000002001d00000004022000390000001301000029000f00000002001d000000000012043500000000010004140000001502000029000000040020008c000015190000613d000000110200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c1d011001c700000015020000292eb02ea60000040f000000600310027000010bad0030019d00030000000103550000000100200190000019f60000613d000000110100002900000bb40010009c000000710000213d0000001101000029000000400010043f000000140000006b00001a030000c13d0000000601000039000000000101041a000000700110027000000bad0110019700000014020000292eb026060000040f0000000603000039000000000203041a00000c3a02200197000000700110021000000c3b01100197000015900000013d00000bad0020009c00000bad02008041000000c00120021000000011020000290000004002200210000000000121019f00000c1d011001c700000012020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000001105700029000015440000613d000000000801034f0000001109000029000000008a08043c0000000009a90436000000000059004b000015400000c13d000000000006004b000015510000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000016100000613d0000001f01400039000000600110018f0000001102100029001000000002001d000000400020043f000000200030008c0000136d0000413d00000010040000290000004402400039000000240340003900000004044001bf0000001105000029000000000505043300000c180050009c000015940000213d00000bf9010000410000001005000029000017410000013d00000c12020000410000000205000367000000000400001900000013070000290000000006740019000000000665034f000000000606043b000000000062041b00000001022000390000002004400039000000000034004b0000156b0000413d000000150030006c0000157f0000813d00000015030000290000000303300210000000f80330018f00000c850330027f00000c850330016700000013044000290000000204400367000000000404043b000000000334016f000000000032041b000000010200003900000015030000290000000103300210000000000223019f000000000021041b0000800b0100003900000004030000390000000004000415000000190440008a000000050440021000000c05020000412eb02e8f0000040f0000000603000039000000000203041a00000c1002200197000000b00110021000000c0101100197000000000112019f000000000013041b000000000100001900002eb10001042e00000c200500004100000010060000290000000000560435000000130500002900000000005404350000000f04000029000000000043043500000c1b03000041000000000032043500000000020004140000001203000029000000040030008c000016d20000c13d0000001001100029000000400010043f00000010020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b0000136d0000c13d000000000002004b000017950000c13d000000440210003900000c2903000041000000000032043500000024021000390000001403000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000013890000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015be0000c13d00000b970000013d00000bad0010009c00000bad01008041000000c00110021000000c17011001c700000011020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000015d80000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b000015d40000c13d000000000006004b000015e50000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000170f0000613d0000001f01400039000000600110018f00000080021001bf001000000002001d000000400020043f000000200030008c0000136d0000413d000000a40210003900000084031001bf000000800400043d000000120040006c000017270000813d00000bf9040000410000001005000029000013360000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000015ff0000c13d00000b970000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000160b0000c13d00000b970000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000016170000c13d00000b970000013d00000c1f040000410000000f05000029000000000045043500000013040000290000000000430435000000000300041000000bb003300197000d00000003001d000000000032043500000000020004140000001003000029000000040030008c0000174b0000c13d0000000f02100029000e00000002001d000000400020043f0000000e040000290000004402400039000000240340003900000004044001bf0000000f050000290000000005050433000000110050006c0000173f0000413d00000c20050000410000000e060000290000000000560435000000130500002900000000005404350000000d0400002900000000004304350000001103000029000000000032043500000000020004140000001003000029000000040030008c000018400000c13d0000000e01100029000000400010043f000018700000013d000000150200002900000c4c022000d1001100000002001d00000c4d0220019700000000011200d9000000090010008c000007d40000c13d0000000901000039000000000201041a00000c1601000041000000800010043f000000000100041100000bb001100197001300000001001d000000840010043f000000000100041400000bb002200197001400000002001d000000040020008c0000165d0000c13d0000000103000031000000200030008c00000020040000390000000004034019000016830000013d00000bad0010009c00000bad01008041000000c00110021000000c17011001c700000014020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000080057001bf000016720000613d0000008008000039000000000901034f000000009a09043c0000000008a80436000000000058004b0000166e0000c13d000000000006004b0000167f0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000171b0000613d0000001f01400039000000600210018f00000080012001bf000000400010043f000000200030008c0000136d0000413d000000110300002900000bb4033001970012000a00300122000000800300043d000000120030006c0000137f0000413d00000c1901000041000000000010044300000014010000290000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400200043d00000024012000390000001203000029000000000031043500000c1c010000410000000000120435001200000002001d00000004012000390000001302000029000000000021043500000000010004140000001402000029000000040020008c000016bd0000613d000000120200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c1d011001c700000014020000292eb02ea60000040f000000600310027000010bad0030019d0003000000010355000000010020019000001a2a0000613d000000120100002900000bb40010009c000000710000213d0000001201000029000000400010043f0000000601000039000000000101041a000000500310027000000bad0130019700000c4f0010009c000007d40000213d000000150000006b000000000200001900001cc60000c13d2eb026060000040f0000000603000039000000000203041a00000c6402200197000000500110021000000c6501100197000015900000013d00000bad0020009c00000bad02008041000000c0012002100000001002000029001000000002001d0000004002200210000000000112019f00000bfa011001c700000012020000292eb02ea60000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000001005700029000016eb0000613d000000000801034f0000001009000029000000008a08043c0000000009a90436000000000059004b000016e70000c13d000000000006004b000016f80000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000177c0000613d0000001f01400039000000600110018f0000001001100029000000400010043f000000200030008c000015a30000813d0000136d0000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000170a0000c13d00000b970000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017160000c13d00000b970000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017220000c13d00000b970000013d00000c1f04000041000000100500002900000000004504350000000f040000290000000000430435000000000300041000000bb003300197000d00000003001d000000000032043500000000020004140000001103000029000000040030008c000018030000c13d0000001002100029000e00000002001d000000400020043f0000000e040000290000004402400039000000240340003900000004044001bf00000010050000290000000005050433000000120050006c000018ec0000813d00000bf9010000410000000e050000290000000000150435000000200100003900000000001404350000001601000039000000000013043500000c2a010000410000000000120435000000400150021000000bfa011001c700002eb20001043000000bad0020009c00000bad02008041000000c0012002100000000f020000290000004002200210000000000121019f00000c1d011001c700000010020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000f05700029000017630000613d000000000801034f0000000f09000029000000008a08043c0000000009a90436000000000059004b0000175f0000c13d000000000006004b000017700000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000018340000613d0000001f01400039000000600110018f0000000f02100029000e00000002001d000000400020043f000000200030008c0000162c0000813d0000136d0000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017830000c13d00000b970000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017900000c13d00000b970000013d0000000b01000039000000000201041a00000c220220009c000007d40000813d000000000021041b0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197001100000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400300043d00000024013000390000006002000039000000000021043500000c23010000410000000000130435000000040130003900000c2402000041000000000021043500000064013000390000001502000029000000000021043500000c82042001980000001f0520018f001200000003001d00000084023000390000000003420019000000140600002900000020066000390000000206600367000017c80000613d000000000706034f0000000008020019000000007907043c0000000008980436000000000038004b000017c40000c13d000000000005004b000017d50000613d000000000446034f0000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f000000000043043500000015022000290000000000020435000000120200002900000044022000390000001303000029000000000032043500000000020004140000001103000029000000040030008c0000141b0000613d00000015030000290000001f0330003900000c820130019700000c250010009c00000c25010080410000006001100210000000120300002900000bad0030009c00000bad030080410000004003300210000000000131019f00000bad0020009c00000bad02008041000000c002200210000000000121019f00000c260110009a00000011020000292eb02ea60000040f000000600310027000010bad0030019d000300000001035500000001002001900000141b0000c13d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000017fe0000c13d00000b970000013d00000bad0020009c00000bad02008041000000c00120021000000010020000290000004002200210000000000121019f00000c1d011001c700000011020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000010057000290000181b0000613d000000000801034f0000001009000029000000008a08043c0000000009a90436000000000059004b000018170000c13d000000000006004b000018280000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000018fc0000613d0000001f01400039000000600110018f0000001002100029000e00000002001d000000400020043f000000200030008c0000136d0000413d000017370000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000183b0000c13d00000b970000013d00000bad0020009c00000bad02008041000000c0012002100000000e02000029000e00000002001d0000004002200210000000000112019f00000bfa011001c700000010020000292eb02ea60000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000e05700029000018590000613d000000000801034f0000000e09000029000000008a08043c0000000009a90436000000000059004b000018550000c13d000000000006004b000018660000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000019080000613d0000001f01400039000000600110018f0000000e01100029000000400010043f000000200030008c0000136d0000413d0000000e020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b0000136d0000c13d000000000002004b000015ac0000613d0000000b01000039000000000201041a000000110020002a000007d40000413d0000001102200029000000000021041b0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197000e00000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400300043d00000c2301000041000000000013043500000064013000390000001502000029000000000021043500000024043000390000006001000039001000000004001d0000000000140435000000110100002900000bb401100197000000140110011a0000000404300039000f00000004001d000000000014043500000c82042001980000001f0520018f001100000003001d00000084023000390000000003420019000000120600002900000020066000390000000206600367000018b10000613d000000000706034f0000000008020019000000007907043c0000000008980436000000000038004b000018ad0000c13d000000000005004b000018be0000613d000000000446034f0000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f000000000043043500000015022000290000000000020435000000110200002900000044022000390000001303000029000000000032043500000000020004140000000e03000029000000040030008c000015190000613d00000015030000290000001f0330003900000c820130019700000c250010009c00000c25010080410000006001100210000000110300002900000bad0030009c00000bad030080410000004003300210000000000131019f00000bad0020009c00000bad02008041000000c002200210000000000121019f00000c260110009a0000000e020000292eb02ea60000040f000000600310027000010bad0030019d00030000000103550000000100200190000015190000c13d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000018e70000c13d00000b970000013d00000c20050000410000000e0600002900000000005604350000000f0500002900000000005404350000000d0400002900000000004304350000001203000029000000000032043500000000020004140000001103000029000000040030008c000019140000c13d0000000e01100029000000400010043f000019440000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000019030000c13d00000b970000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000190f0000c13d00000b970000013d00000bad0020009c00000bad02008041000000c0012002100000000e02000029000e00000002001d0000004002200210000000000112019f00000bfa011001c700000011020000292eb02ea60000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f00000020074001900000000e057000290000192d0000613d000000000801034f0000000e09000029000000008a08043c0000000009a90436000000000059004b000019290000c13d000000000006004b0000193a0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000001a1c0000613d0000001f01400039000000600110018f0000000e01100029000000400010043f000000200030008c0000136d0000413d0000000e020000290000000002020433000000000002004b0000000003000039000000010300c039000000000032004b0000136d0000c13d000000000002004b000015ac0000613d0000000b01000039000000000201041a000000120020002a000007d40000413d0000001202200029000000000021041b0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197001100000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400300043d00000024013000390000006002000039000000000021043500000c23010000410000000000130435000000120100002900000bb401100197001000000001001d000000140110011a0000000402300039000000000012043500000064013000390000001402000029000000000021043500000c82042001980000001f0520018f001200000003001d00000084023000390000000003420019000000130600002900000020066000390000000206600367000019840000613d000000000706034f0000000008020019000000007907043c0000000008980436000000000038004b000019800000c13d000000000005004b000019910000613d000000000446034f0000000305500210000000000603043300000000065601cf000000000656022f000000000404043b0000010005500089000000000454022f00000000045401cf000000000464019f000000000043043500000014022000290000000000020435000000120200002900000044022000390000000f03000029000000000032043500000000020004140000001103000029000000040030008c000019b20000613d00000014030000290000001f0330003900000c820130019700000c250010009c00000c25010080410000006001100210000000120300002900000bad0030009c00000bad030080410000004003300210000000000131019f00000bad0020009c00000bad02008041000000c002200210000000000121019f00000c260110009a00000011020000292eb02ea60000040f000000600310027000010bad0030019d000300000001035500000001002001900000230a0000613d000000120100002900000bb40010009c000000710000213d0000001201000029000000400010043f0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197001400000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400300043d00000c4e01000041000000000013043500000004013000390000000f02000029000000000021043500000010010000290000000a0110011a001200000003001d0000002402300039000000000012043500000000010004140000001402000029000000040020008c000016bd0000613d000000120200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c1d011001c700000014020000292eb02ea60000040f000000600310027000010bad0030019d00030000000103550000000100200190000016bd0000c13d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000019f10000c13d00000b970000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000019fe0000c13d00000b970000013d0000000601000039000000000101041a000000700110027000150bad0010019b000000130000006b00001a370000c13d000000150100002900000bad0010009c000007d40000613d00000bf9010000410000001103000029000000000013043500000020010000390000000f02000029000000000012043500000010020000290000000000120435000000440130003900000c3902000041000000000021043500000bad0030009c00000bad03008041000000400130021000000bfa011001c700002eb2000104300000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001a230000c13d00000b970000013d000000230220011a000022c20000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001a320000c13d00000b970000013d000e00000000001d000000150100002900000bad0110019700000bad0010009c000007d40000613d0000000101100039001500000001001d000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a00000bb000100198000023030000c13d0000001301000029000000000010043f0000000301000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a000000010220003a000007d40000613d000000000021041b0000001501000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a00000bb7022001970000001306000029000000000262019f000000000021041b000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c3404000041000000000500001900000015070000292eb02ea60000040f00000001002001900000136d0000613d0000001501000029000000e001100210000000400200043d001200000002001d0000002002200039001100000002001d000000000012043500000c27010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b0000001203000029000000240230003900000000001204350000002401000039000000000013043500000c080030009c000000710000213d00000012020000290000006001200039000000400010043f000000110100002900000bad0010009c00000bad010080410000004001100210000000000202043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000007ff0210018f000003480320008c00001abd0000413d000005480420008c00001abf0000413d000007280020008c00001ac20000413d000000280210008a000000ff0220018f0000001b0220011a000000380220003900001ac50000013d000000230220011a00001ac50000013d0000000502300270000000180220003900001ac50000013d0000ffff0240018f0000001e0220011a0000002802200039001200000002001d0000001002100270000007ff0320018f000003480430008c00001ad30000413d000005480530008c00001ad50000413d000007280030008c00001ad80000413d000000280220008a000000ff0220018f0000001b0220011a000000380220003900001adb0000013d000000230230011a00001adb0000013d0000000502400270000000180220003900001adb0000013d0000ffff0250018f0000001e0220011a0000002802200039001100000002001d0000002002100270000007ff0320018f000003480430008c00001ae90000413d000005480530008c00001aeb0000413d000007280030008c00001aee0000413d000000280220008a000000ff0220018f0000001b0220011a000000380220003900001af10000013d000000230230011a00001af10000013d0000000502400270000000180220003900001af10000013d0000ffff0250018f0000001e0220011a0000002802200039001000000002001d0000003001100270000007ff0210018f000003480320008c00001aff0000413d000005480420008c00001b010000413d000007280020008c00001b040000413d000000280110008a000000ff0110018f0000001b0110011a000000380110003900001b070000013d000000230120011a00001b070000013d0000000501300270000000180110003900001b070000013d0000ffff0140018f0000001e0110011a0000002801100039000f00000001001d0000001501000029000000000010043f0000003701000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d0000001102000029000000060220021000003fc00220018f00000012022001af00000010030000290000000c0330021000000c3503300197000000000232019f0000000f03000029000000120330021000000c3603300197000000000232019f000000000101043b000000000301041a00000c3703300197000000000323019f000000000031041b000000000100001900000006031000c9000000000332022f0000000604100210000000c00440018f000000380530018f000000000545019f0000000503300210000000e00430018f00000003035002700000000c03300039000000000503041a000000000645022f00000bad0660019700000bad0060009c000007d40000613d000000010660003900000000064601cf00000bad0440021f00000c8504400167000000000445016f000000000446019f000000000043041b0000000101100039000000ff0110018f000000040010008c00001b270000413d000000400100043d000000400310003900000013040000290000000000430435000000200310003900000000002304350000001502000029000000000021043500000bad0010009c00000bad010080410000004001100210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c38040000412eb02ea60000040f00000001002001900000136d0000613d0000000e01000029000000010110003900000bad02100197000e00000002001d000000140020006c00001a380000413d000015200000013d0000001502000029000000600220003900000020011002700000003f0110018f000000c0011001bf0000000000120435000000400100043d000900000001001d00000c020010009c000000710000213d00000009030000290000008001300039000000400010043f00000060013000390000000102000039000000000021043500000040013000390000000402000039000000000021043500000020013000390000000a020000390000000000210435000000140100003900000000001304350000000001000019000a00000001001d00000005011002100000000902100029000f00000002001d0000000002020433000000ff0220018f00000005032002100000003f0430003900003fe00640018f000000400400043d0000000005460019000000000065004b0000000006000039000000010600403900000bb40050009c000000710000213d0000000100600190000000710000c13d000000400050043f000000000424043600000000020000310000000202200367000000000003004b00001b960000613d0000000005340019000000000602034f000000006706043c0000000004740436000000000054004b00001b920000c13d0000001f003001900000000f030000290000000003030433000000ff0330018f000e00000003001d00000005033002100000003f0430003900003fe00540018f000000400400043d001300000004001d0000000004450019000000000054004b0000000005000039000000010500403900000bb40040009c000000710000213d0000000100500190000000710000c13d00000015011000290000000001010433001200000001001d000000400040043f00000013010000290000000e040000290000000001410436001000000001001d000000000003004b00001bb80000613d00000010040000290000000001340019000000002502043c0000000004540436000000000014004b00001bb40000c13d0000001f00300190000000400100043d001400000001001d00000c03010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b001100000001001d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d0000001202000029000000ff0320018f00000014040000290000002002400039000000000101043b0000000000120435001200000003001d000000f801300210000000600340003900000000001304350000004001400039000000110300002900000000003104350000004101000039000000000014043500000c020040009c000000710000213d00000014030000290000008001300039000000400010043f00000bad0020009c00000bad020080410000004001200210000000000203043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000d00000001001d0000001201000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b0000000e0000006b00001c5f0000613d000000000101041a000c00000001001d000000000001004b000022b90000613d0000000002000019001400000002001d0000000f0020008c000007d40000213d0000001201000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000140200002900000004022002100000000d022001ef0000000c302000fa000000000101043b000000000201041a000000000032004b0000240e0000a13d001100000003001d000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000130200002900000000020204330000001404000029000000000042004b00000011050000290000240e0000a13d0000000001510019000000000101041a00000bb00110019700000005024002100000001002200029000000000012043500000013020000290000000002020433000000000042004b0000240e0000a13d000000400200043d0000004003200039000000000013043500000bad01500197000000200320003900000000001304350000001201000029000000000012043500000bad0020009c00000bad020080410000004001200210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0a040000412eb02ea60000040f00000001002001900000136d0000613d000000140200002900000001022000390000000e0020006c00001c100000413d0000000f010000290000000001010433000000ff01100190000022b90000613d0014000b00100101000000000200001900000013010000290000000001010433000000000021004b0000240e0000a13d001100000002001d00000005012002100000001001100029000000000101043300000bb001100197001200000001001d000000000010043f0000003901000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a000000140020002a000007d40000413d00000014030000290000000002320019000000000021041b000000400100043d00000020021000390000000000320435000000120200002900000000002104350000004002100039000000000002043500000bad0010009c00000bad010080410000004001100210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0b040000412eb02ea60000040f00000001002001900000136d0000613d00000011010000290000000101100039000000ff0210018f0000000f010000290000000001010433000000ff0110018f000000000012004b00001c650000413d0000000a010000290000000101100039000000ff0110018f000000030010008c00001b780000a13d0000000601000039000000000101041a0000002802100270000000ff0220018f000000ff0020008c000007d40000613d00000c0c01100197000000280220021000000c0d0220009a00000c0e02200197000000000112019f0000000603000039000000000013041b00000c0f0020009c000024210000c13d2eb02da70000040f000024340000013d00000005023002700000001802200039000022c20000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00001cc10000c13d00000b970000013d00000bfc0130009a00010bad0010019b000400000000001d000000040100002900000bad011001970000000101100029000300000001001d00000bad0010009c000007d40000213d0000000301000029000000e001100210000000400200043d001500000002001d0000002002200039001400000002001d000000000012043500000c27010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b0000001503000029000000240230003900000000001204350000002401000039000000000013043500000c080030009c000000710000213d00000015020000290000006001200039000000400010043f000000140100002900000bad0010009c00000bad010080410000004001100210000000000202043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000201043b000007ff0120018f000003480310008c00001d0c0000413d000005480410008c00001d0e0000413d000007280010008c00001d110000413d000000280120008a000000ff0110018f0000001b0110011a000000380110003900001d140000013d000000230110011a00001d140000013d0000000501300270000000180110003900001d140000013d0000ffff0140018f0000001e0110011a00000028011000390000001003200270000007ff0430018f000003480540008c00001d210000413d000005480640008c00001d230000413d000007280040008c00001d260000413d000000280330008a000000ff0330018f0000001b0330011a000000380330003900001d290000013d000000230340011a00001d290000013d0000000503500270000000180330003900001d290000013d0000ffff0360018f0000001e0330011a00000028033000390000002004200270000007ff0540018f000003480650008c00001d360000413d000005480750008c00001d380000413d000007280050008c00001d3b0000413d000000280440008a000000ff0440018f0000001b0440011a000000380440003900001d3e0000013d000000230450011a00001d3e0000013d0000000504600270000000180440003900001d3e0000013d0000ffff0470018f0000001e0440011a00000028044000390000003002200270000007ff0520018f000003480650008c00001d4b0000413d000005480750008c00001d4d0000413d000007280050008c00001d500000413d000000280220008a000000ff0220018f0000001b0220011a000000380520003900001d530000013d000000230550011a00001d530000013d0000000502600270000000180520003900001d530000013d0000ffff0270018f0000001e0220011a0000002805200039000000400200043d000600000002001d00000c020020009c000000710000213d000000060230021000003fc00220018f000000000212019f000000120350021000000c36033001970000000c0440021000000c3504400197000000000334019f00020000002301a300000006050000290000008003500039000000400030043f00000000040000310000000204400367000000004604043c0000000005650436000000000035004b00001d650000c13d00000002060000290000001203600270000000c0033001bf0000000605000029000000600450003900000000003404350000003f0110018f00000000041504360000000c016002700000003f0110018f00000080011001bf0000004003500039001200000003001d000000000013043500000006012002700000003f0110018f00000040011001bf001300000004001d0000000000140435000000000100041100050bb00010019b001500000000001d0000001501000029000000050110021000000006011000290000000001010433000000ff0110018f000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a001400000002001d00000bb40020009c000000710000213d00000014020000290000000102200039000000000021041b000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b0000001401100029000000000201041a00000bb70220019700000005022001af000000000021041b0000001501000029000000020010008c001500010010003d00001d7f0000a13d0000000601000039000000000101041a00000c2d00100198000022930000613d0000002c01000039000000000101041a000000060200002900000000020204330000000502200210000000e00220018f000000000321022f00000bad0330019700000bad0030009c000007d40000613d000000010330003900000000032301cf00000bad0220021f00000c8502200167000000000121016f000000000113019f0000002c02000039000000000012041b00000013010000290000000001010433000000ff0110018f000000400110008a000000ff0010008c000007d40000213d0000000202100210000000e00220018f0000000301100270000000080110003900000003011002700000002c01100039000000000301041a000000000423022f00000bad0440019700000bad0040009c000007d40000613d000000010440003900000000042401cf00000bad0220021f00000c8502200167000000000223016f000000000224019f000000000021041b00000012010000290000000001010433000000ff0110018f000000800010008c000007d40000413d000000700110008a0000004f0010008c0000240e0000213d0000000502100210000000e00220018f00000003011002700000002c01100039000000000301041a000000000423022f00000bad0440019700000bad0040009c000007d40000613d000000010440003900000000042401cf00000bad0220021f00000c8502200167000000000223016f000000000224019f000000000021041b000700000000001d00001dfa0000013d00000007010000290000000101100039000000ff0110018f000700000001001d000000040010008c000022930000813d00000007010000290000000501100210000000060110002900000000010104330000000502100210000000e00220018f000000ff0110018f000a00000001001d00000003011002700000000c01100039000000000301041a000000000423022f00000bad04400197000000010440008a00000bad0040009c000007d40000213d00000000042401cf00000bad0220021f00000c8505200167000000000353016f000000000334019f000000000031041b000000000024017000001df40000c13d0000000601000039000000000101041a00000c000010019800001df40000c13d0000000001000411000000000001004b0000245d0000613d00000c5001000041000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a00000bb000100198000023030000c13d0000000501000029000000000010043f0000000301000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a000000010220003a000007d40000613d000000000021041b00000c5001000041000000000010043f0000000201000039000000200010043f00000c5102000041000000000102041a00000bb70110019700000005011001af000000000012041b000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c34040000410000000005000019000000000600041100000c50070000412eb02ea60000040f00000001002001900000136d0000613d0000000602000039000000000102041a00000c520110019700000c53011001c7000000000012041b00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d0000000603000039000000000203041a00000c5402200197000000000101043b000000900110021000000c5501100197000000000112019f000000000013041b0000000901000039000000000201041a000000400300043d00000c5601000041001500000003001d0000000000130435000000000100041400000bb002200197001400000002001d000000040020008c00001e7b0000c13d0000000103000031000000200030008c0000002004000039000000000403401900001ea50000013d000000150200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c57011001c700000014020000292eb02eab0000040f000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000002006400190000000150560002900001e940000613d000000000701034f0000001508000029000000007907043c0000000008980436000000000058004b00001e900000c13d0000001f0740019000001ea10000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f00030000000103550000000100200190000024680000613d0000001f01400039000000600210018f0000001501200029000000000021004b0000000002000039000000010200403900000bb40010009c000000710000213d0000000100200190000000710000c13d000000400010043f000000200030008c0000136d0000413d0000001501000029000000000101043300000c580010009c00000c580100a04100080003001000cd00000008011000f9000000030010008c000007d40000c13d00000c1901000041000000000010044300000014010000290000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400200043d00000c5901000041001500000002001d0000000001120436001300000001001d00000000010004140000001402000029000000040020008c00001ee30000613d000000150200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c57011001c700000014020000292eb02ea60000040f000000600310027000010bad0030019d00030000000103550000000100200190000024740000613d000000150100002900000bb40010009c000000710000213d0000001501000029000000400010043f00000c03010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b001400000001001d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000130200002900000000001204350000001503000029000000600130003900000c5a0200004100000000002104350000004001300039000000140200002900000000002104350000004101000039000000000013043500000c020030009c000000710000213d00000015020000290000008001200039000000400010043f000000130100002900000bad0010009c00000bad010080410000004001100210000000000202043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000201043b000000400100043d001500000001001d00000c5b0010009c000000710000213d000000080100002900090014001001220000001504000029000001a003400039000000400030043f0000000c01000039000000000514043600000000010000310000000201100367000000000401034f001400000005001d000000004604043c0000000005650436000000000035004b00001f340000c13d000000400300043d000b00000003001d00000c020030009c000000710000213d0000000b050000290000008003500039000000400030043f000000000401034f000000004604043c0000000005650436000000000035004b00001f400000c13d000000000300001900000015040000290000000004040433000000000034004b0000240e0000a13d0000000504300210000000140440002900000006053000c9000000000552022f0000003f0550018f00000000005404350000000a0030008c000000010330003900001f450000a13d000000400300043d00000c5b0030009c000000710000213d000001a002300039000000400020043f0000000c040000390000000003430436000000001401043c0000000003430436000000000023004b00001f590000c13d0000000901000039000000000101041a000000400400043d00000c5c0200004100000000002404350000000402400039000000200300003900000000003204350000001502000029000000000202043300000024034000390000000000230435001300000004001d0000004403400039000000000002004b00001f760000613d0000000004000019000000150500002900000020055000390000000006050433000000ff0660018f00000000036304360000000104400039000000000024004b00001f6f0000413d00000bb0021001970000000001000414000000040020008c00001f7d0000c13d0000000301000367000000010300003100001f910000013d0000001304000029000000000343004900000bad0030009c00000bad03008041000000600330021000000bad0040009c00000bad040080410000004004400210000000000343019f00000bad0010009c00000bad01008041000000c001100210000000000113019f2eb02eab0000040f000000600310027000010bad0030019d00000bad0330019700030000000103550000000100200190000024810000613d00000c8204300198000000130240002900001f9a0000613d000000000501034f0000001306000029000000005705043c0000000006760436000000000026004b00001f960000c13d0000001f0530019000001fa70000613d000000000141034f0000000304500210000000000502043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001204350000001f0130003900000c82021001970000001301200029000000000021004b0000000002000039000000010200403900000bb40010009c000000710000213d0000000100200190000000710000c13d000000400010043f00000c5d0030009c0000136d0000213d000000200030008c0000136d0000413d0000001302000029000000000202043300000bb40020009c0000136d0000213d000000130430002900000013022000290000001f03200039000000000043004b000000000500001900000c5e0500804100000c5e0330019700000c5e06400197000000000763013f000000000063004b000000000300001900000c5e0300404100000c5e0070009c000000000305c019000000000003004b0000136d0000c13d000000003202043400000bb40020009c000000710000213d00000005052002100000003f0650003900000c5f06600197000000000616001900000bb40060009c000000710000213d000000400060043f00000000022104360000000005350019000000000045004b0000136d0000213d000000000053004b00001fe00000813d0000000004010019000000200440003900000000360304340000000000640435000000000053004b00001fdb0000413d000000000300001900001fe60000013d0000000103300039000000ff0330018f000000030030008c0000200a0000213d00000005043002100000000b0440002900000003053000c90000000606300210000000c00660018f0000000007000019000000000800001900001ff40000013d000000000084043500000000080900190000000107700039000000ff0770018f000000030070008c00001fe20000813d000000000a570019000000ff00a0008c000007d40000213d00000000090104330000000000a9004b0000240e0000a13d000000050ba002100000000009b200190000000009090433000000000089004b00001ff00000413d000000150800002900000000080804330000000000a8004b0000240e0000a13d0000001408b000290000000008080433000000ff0880018f0000000008680019000000ff0080008c00001fee0000a13d000007d40000013d000000400200043d00000c600020009c000000710000213d000000c001200039000000400010043f0000000503000039000000000232043600000000030000310000000203300367000000003403043c0000000002420436000000000012004b000020130000c13d000c00000000001d0000201f0000013d0000000c010000290000000101100039000000ff0110018f000c00000001001d000000040010008c000021c50000813d000000400100043d001200000001001d00000c600010009c000000710000213d0000000c0100002900000005011002100000000b011000290000000001010433001400ff001001930000001203000029000000c001300039000000400010043f0000000502000039000000000323043600000000020000310000000202200367001100000003001d000000002402043c0000000003430436000000000013004b000020300000c13d000000400100043d001500000001001d00000c03010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b001300000001001d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d00000015040000290000002002400039000000000101043b00000000001204350000001401000029000000f801100210000000600340003900000000001304350000004001400039000000130300002900000000003104350000004101000039000000000014043500000c020040009c000000710000213d00000015030000290000008001300039000000400010043f00000bad0020009c00000bad020080410000004001200210000000000203043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b001000000001001d0000001401000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a000f00000001001d000000000001004b000022b90000613d001500000000001d0000001401000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d0000001502000029000000040220021000000010022001ef0000000f302000fa000000000101043b000000000201041a000000000032004b0000240e0000a13d001300000003001d000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b00000012030000290000000002030433000000150020006c00000013060000290000240e0000a13d0000000001610019000000000101041a00000bb00110019700000015050000290000000502500210000000110220002900000000001204350000000002030433000000000052004b0000240e0000a13d000000400200043d0000004003200039000000000013043500000bad01600197000000200320003900000000001304350000001401000029000000000012043500000bad0020009c00000bad020080410000004001200210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0a040000412eb02ea60000040f00000001002001900000136d0000613d0000001501000029000000030010008c001500010010003d000020870000a13d00000012010000290000000001010433000f00000001001d000000000001004b000021840000613d0000000901000039000000000101041a00000bb003100197000000000500001900000000060000190000000007000019000e00000003001d00000012010000290000000001010433000000000051004b0000240e0000a13d000000050150021000000011011000290000000001010433000000400a00043d00000c610200004100000000002a043500000bb0021001970000000401a00039001400000002001d00000000002104350000000001000414000000040030008c001500000005001d001300000006001d001000000007001d000020f70000c13d0000000103000031000000200030008c00000020040000390000000004034019000021230000013d00000bad00a0009c00000bad0200004100000000020a4019000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c4b011001c70000000002030019000d0000000a001d2eb02eab0000040f0000000d0a000029000000600310027000000bad03300197000000200030008c00000020040000390000000004034019000000200640019000000000056a0019000021120000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000058004b0000210e0000c13d0000001f074001900000211f0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000239b0000613d0000001f01400039000000600210018f0000000001a20019000000000021004b0000000002000039000000010200403900000bb40010009c000000710000213d0000000100200190000000710000c13d000000400010043f000000200030008c0000136d0000413d0000001502000029000000ff0020008c000007d40000613d00000000020a0433000000100020006c000000130300002900000000040300190000001404002029000000100200a02900000015030000290000000103300039000000ff0530018f0000000f0050006c000000000604001900000000070200190000000e03000029000020de0000413d000000000002004b001400000004001d00000000020400190000000002006019001500000002001d0000000802000029000000140020008c000021860000413d000000150200002900130bb00020019c000021860000613d0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197001200000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400300043d00000024013000390000000902000029000000000021043500000c4e010000410000000000130435001500000003001d00000004013000390000001302000029000000000021043500000000010004140000001202000029000000040020008c0000217d0000613d000000150200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c1d011001c700000012020000292eb02ea60000040f000000600310027000010bad0030019d00030000000103550000000100200190000024500000613d000000150100002900000bb40010009c000000710000213d0000001501000029000000400010043f001500140000002d000021ab0000013d000000400100043d001500000000001d000000200200003900000000022104360000001203000029000000000303043300000000003204350000004002100039000000000003004b000021970000613d000000000400001900000012060000290000002006600039000000000506043300000bb00550019700000000025204360000000104400039000000000034004b000021900000413d000000000212004900000bad0020009c00000bad02008041000000600220021000000bad0010009c00000bad010080410000004001100210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000121019f00000c07011001c70000800d02000039000000010300003900000c62040000412eb02ea60000040f00000001002001900000136d0000613d000000150100002900000bb001100198000020190000613d000000400200043d000000200320003900000009040000290000000000430435000000000012043500000040012000390000000103000039000000000031043500000bad0020009c00000bad020080410000004001200210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d0200003900000c0b040000412eb02ea60000040f0000000100200190000020190000c13d0000136d0000013d0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197001400000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000400200043d00000c6301000041001500000002001d000000000012043500000000010004140000001402000029000000040020008c000021f00000613d000000150200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c57011001c700000014020000292eb02ea60000040f000000600310027000010bad0030019d000300000001035500000001002001900000248d0000613d000000150100002900000bb40010009c000000710000213d0000001501000029000000400010043f0000000a01000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000101041a001400000001001d000000000001004b000007d40000613d0000000b01000039000000000201041a001500000002001d000000000001041b0000000a01000039000000000001041b0000000501000029000000000010043f0000003901000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000001403000029000000010330008a00000bad03300197000000010030008c000000010300a039001200000003001d00000001002001900000136d0000613d00000015020000290014000500200122000000000101043b000000000201041a000000140020002a000007d40000413d00000014030000290000000002320019000000000021041b000000400100043d00000020021000390000000000320435000000050200002900000000002104350000004002100039000000000002043500000bad0010009c00000bad010080410000004001100210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0b040000412eb02ea60000040f00000001002001900000136d0000613d000000140200002900000015012000690014001200100102001500000000001d0000000a01000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a000000150020006c0000240e0000a13d000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b0000001501100029000000000101041a00000bb001100197001300000001001d000000000010043f0000003901000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a000000140020002a000007d40000413d00000014030000290000000002320019000000000021041b000000400100043d00000020021000390000000000320435000000130200002900000000002104350000004002100039000000000002043500000bad0010009c00000bad010080410000004001100210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0b040000412eb02ea60000040f00000001002001900000136d0000613d0000001501000029000000010110003900000bad02100197001500000002001d000000120020006c000022430000413d00001df40000013d000000400100043d000000400210003900000005030000290000000000320435000000020200002900000c3c0220019700000020031000390000000000230435000000030200002900000bad02200197000000000021043500000bad0010009c00000bad010080410000004001100210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c28040000412eb02ea60000040f00000001002001900000136d0000613d0000000401000029000000170110002900040016001001830000001802000029000000160120017f000000040010006b00001cc90000413d0000000601000039000000000101041a000000500110027000000bad01100197000016cb0000013d00000c7301000041000000000010043f0000001201000039000000040010043f00000c4b0100004100002eb2000104300000ffff0240018f0000001e0220011a00000028022000390000000101100210000000c00110018f0000000001120019001500000001001d000000ff0010008c000007d40000213d0000001501000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a001400000002001d00000bb40020009c000000710000213d00000014020000290000000102200039000000000021041b000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b0000001401100029000000000201041a00000bb7022001970000001303000029000000000232019f000000000021041b000000400100043d0000004002100039000000000032043500000020021000390000001503000029000000000032043500000bfb02000041000000000021043500000bad0010009c00000bad010080410000004001100210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c280400004100000a160000013d000000400100043d000000440210003900000c6e03000041000000000032043500000024021000390000001c03000039000008e20000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023120000c13d00000b970000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000231e0000c13d00000b970000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000232b0000c13d00000b970000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023370000c13d00000b970000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023440000c13d00000b970000013d00000c68011001970000000602000039000000000012041b0000000901000039000000000101041a00150bb00010019b000000040200002900000064012000c900000000022100d9000000640020008c000007d40000c13d000000000001004b0000235f0000c13d001400000000001d000023640000013d000000400100043d000000440210003900000c6a03000041000000000032043500000024021000390000001903000039000008e20000013d000000040200002900140c31002000d500000014011000f900000c330010009c000007d40000c13d00000c1901000041000000000010044300000015010000290000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d00000014010000290000000a0110011a000000400300043d0000002402300039000000000012043500000c4e010000410000000000130435000000000100041100000bb001100197001400000003001d0000000402300039000000000012043500000000010004140000001502000029000000040020008c000023940000613d000000140200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c1d011001c700000015020000292eb02ea60000040f000000600310027000010bad0030019d00030000000103550000000100200190000024140000613d000000140100002900000bb40010009c000000710000213d0000001401000029000000400010043f000000000100001900002eb10001042e0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000023a20000c13d00000b970000013d001400000000001d001500000000001d0000000901000039000000000101041a001300000001001d0000000a010000290000000001010433000000ff0110018f000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000000101043b000000000201041a000000150020006c0000240e0000a13d000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c700008010020000392eb02eab0000040f00000001002001900000136d0000613d000000130200002900000bb003200197000000000101043b0000001501100029000000000101041a001500000001001d00000c19010000410000000000100443001300000003001d0000000400300443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000024420000613d000000000101043b000000000001004b0000136d0000613d000000150100002900000bb001100197000000400400043d000000240240003900000c3103000041000000000032043500000c4e020000410000000000240435001500000004001d0000000402400039000000000012043500000000010004140000001302000029000000040020008c000023fe0000613d000000150200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c1d011001c700000013020000292eb02ea60000040f000000600310027000010bad0030019d00030000000103550000000100200190000024430000613d000000150100002900000bb40010009c000000710000213d0000001501000029000000400010043f000000140100002900000bad0010009c000007d40000613d00000014010000290000000101100039001500000001001d00000bad02100197001400000002001d000000120020006c000023a90000413d0000064c0000013d00000c7301000041000000000010043f0000003201000039000000040010043f00000c4b0100004100002eb20001043000000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000241c0000c13d00000b970000013d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f0000000100200190000024420000613d0000000603000039000000000203041a00000c1002200197000000000101043b000000b00110021000000c0101100197000000000112019f000000000013041b00000000020000190000000503200210000000e00330018f00000bad0330021f00000c850330016700000003042002700000002c04400039000000000504041a000000000335016f000000000034041b0000004f0020008c0000000102200039000024350000413d000000790000013d000000000001042f00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000244b0000c13d00000b970000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000024580000c13d00000b970000013d000000400100043d000000440210003900000c3903000041000000000032043500000bf90200004100000000002104350000002402100039000000200300003900000000003204350000000402100039000008e70000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000246f0000c13d00000b970000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b0000247c0000c13d00000b970000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000024880000c13d00000b970000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900000b970000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000024950000c13d00000b970000013d0000001f0220003900000c82022001970000000001120019000000000021004b0000000002000039000000010200403900000bb40010009c000024a60000213d0000000100200190000024a60000c13d000000400010043f000000000001042d00000c7301000041000000000010043f0000004101000039000000040010043f00000c4b0100004100002eb20001043000000020030000390000000004310436000000003202043400000000002404350000004001100039000000000002004b000024bb0000613d000000000400001900000000051400190000000006430019000000000606043300000000006504350000002004400039000000000024004b000024b40000413d000000000312001900000000000304350000001f0220003900000c82022001970000000001120019000000000001042d000000500010008c000024c90000813d00000003021002700000002c0320003900000002011002100000001c0210018f0000000001030019000000000001042d00000c7301000041000000000010043f0000003201000039000000040010043f00000c4b0100004100002eb20001043000000c5d0010009c000024df0000213d000000630010008c000024df0000a13d00000002030003670000000401300370000000000101043b00000bb00010009c000024df0000213d0000002402300370000000000202043b00000bb00020009c000024df0000213d0000004403300370000000000303043b000000000001042d000000000100001900002eb200010430000001000010008c000024e90000813d00000003021002700000000c0320003900000002011002100000001c0210018f0000000001030019000000000001042d00000c7301000041000000000010043f0000003201000039000000040010043f00000c4b0100004100002eb20001043000000bb002200197000000000020043f000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000024fd0000613d000000000101043b000000000001042d000000000100001900002eb20001043000090000000000020000000076010434000000000006004b000025770000613d00000000050100190000000901000039000000000101041a00000bb00210019700000c61080000410000000009000019000000000a000019000000000b000019000400000005001d000300000006001d000200000007001d000100000002001d0000000001050433000000000091004b000025790000a13d000000050190021000000000011700190000000001010433000000400d00043d00000000008d043500000bb00c1001970000000401d000390000000000c104350000000001000414000000040020008c000025220000c13d0000000103000031000000200030008c000000200400003900000000040340190000255a0000013d00060000000c001d00070000000b001d00080000000a001d000900000009001d00000bad00d0009c00000bad0300004100000000030d4019000000400330021000000bad0010009c00000bad01008041000000c001100210000000000131019f00000c4b011001c700050000000d001d2eb02eab0000040f000000050d000029000000600310027000000bad03300197000000200030008c00000020040000390000000004034019000000200640019000000000056d0019000025400000613d000000000701034f00000000080d0019000000007907043c0000000008980436000000000058004b0000253c0000c13d0000001f074001900000254d0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000000909000029000000080a000029000000070b000029000000060c0000290000258d0000613d000000040500002900000003060000290000000207000029000000010200002900000c61080000410000001f01400039000000600410018f0000000001d40019000000000041004b0000000004000039000000010400403900000bb40010009c0000257f0000213d00000001004001900000257f0000c13d000000400010043f0000001f0030008c000025850000a13d000000ff0090008c000025870000613d00000000010d04330000000000b1004b000000000c0aa01900000000010ba0190000000103900039000000ff0930018f000000000069004b000000000a0c0019000000000b0100190000250f0000413d000000000001004b000000000c00601900000000010c0019000000000001042d0000000001000019000000000001042d00000c7301000041000000000010043f0000003201000039000000040010043f00000c4b0100004100002eb20001043000000c7301000041000000000010043f0000004101000039000000040010043f00000c4b0100004100002eb200010430000000000100001900002eb20001043000000c7301000041000000000010043f0000001101000039000000040010043f00000c4b0100004100002eb2000104300000001f0530018f00000baf06300198000000400200043d0000000004620019000025980000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b000025940000c13d000000000005004b000025a50000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000bad0020009c00000bad020080410000004002200210000000000112019f00002eb200010430000000000001004b000025ae0000613d000000000001042d000000400100043d000000440210003900000c7c03000041000000000032043500000024021000390000001f03000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000bfa011001c700002eb2000104300001000000000002000100000001001d000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000025e20000613d000000000101043b000000000101041a00000bb000100198000025e40000613d0000000101000029000000000010043f0000000401000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000025e20000613d000000000101043b000000000101041a00000bb001100197000000000001042d000000000100001900002eb200010430000000400100043d000000640210003900000c87030000410000000000320435000000440210003900000c8803000041000000000032043500000024021000390000002c03000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000c76011001c700002eb200010430000000000201001900000055011000c9000000000002004b000025ff0000613d00000000022100d9000000550020008c000026000000c13d000000000001042d00000c7301000041000000000010043f0000001101000039000000040010043f00000c4b0100004100002eb20001043000000bad0110019700000bad02200197000000000112001900000c690010009c0000260c0000813d000000000001042d00000c7301000041000000000010043f0000001101000039000000040010043f00000c4b0100004100002eb200010430000000000001004b000026150000613d000000000001042d000000400100043d000000640210003900000c89030000410000000000320435000000440210003900000c8a03000041000000000032043500000024021000390000003103000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000c76011001c700002eb200010430000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f00000001002001900000263a0000613d000000000101043b000000000101041a00000bb0011001980000263c0000613d000000000001042d000000000100001900002eb200010430000000400100043d000000640210003900000c79030000410000000000320435000000440210003900000c7a03000041000000000032043500000024021000390000002903000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000c76011001c700002eb200010430000000000001004b000026530000613d000000000001042d000000400100043d000000440210003900000c2903000041000000000032043500000024021000390000001403000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000bfa011001c700002eb2000104300009000000000002000100000004001d000400000002001d000500000001001d000700000003001d000000000030043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000101041a00000bb000100198000027fd0000613d0000000701000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000101041a00000bb001100198000027ed0000613d000000000200041100030bb00020019b000000030010006b000026ce0000613d000000000010043f0000000501000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b0000000302000029000000000020043f000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000101041a000000ff00100190000026ce0000c13d0000000701000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000101041a00000bb0001001980000282a0000613d0000000701000029000000000010043f0000000401000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000101041a00000bb001100197000000030010006c000028310000c13d0000000701000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000101041a00060bb00010019c000027ed0000613d000000050100002900000bb001100197000000060010006b000028070000c13d000000040100002900050bb00010019c000028110000613d0000000701000029000000000010043f0000000401000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000201041a00000bb702200197000000000021041b0000000701000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000101041a00000bb005100198000027ed0000613d000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c6b04000041000000000600001900000007070000292eb02ea60000040f0000000100200190000027eb0000613d0000000601000029000000000010043f0000000301000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000201041a000000000002004b000027f70000613d000000010220008a000000000021041b0000000501000029000000000010043f0000000301000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000201041a000000010220003a000027f70000613d000000000021041b0000000701000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000027eb0000613d000000000101043b000000000201041a00000bb7022001970000000506000029000000000262019f000000000021041b000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c3404000041000000060500002900000007070000292eb02ea60000040f0000000100200190000027eb0000613d0000000001000415000200000001001d00000c1901000041000000000010044300000004010000290000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f0000000100200190000028250000613d000000000101043b000000000001004b000027980000613d000000400b00043d0000006401b00039000000800700003900000000007104350000004401b00039000000070200002900000000002104350000002401b000390000000602000029000000000021043500000c8d0100004100000000001b04350000000401b00039000000030200002900000000002104350000008403b00039000000010100002900000000210104340000000000130435000000a403b00039000000000001004b0000278a0000613d000000000400001900000000053400190000000006420019000000000606043300000000006504350000002004400039000000000014004b000027830000413d0000000002310019000000000002043500000000040004140000000502000029000000040020008c0000279c0000c13d0000000005000415000000090550008a00000005055002100000000103000031000000200030008c00000020040000390000000004034019000027d20000013d000000000100041500000002011000690000000001000002000000000001042d000600000007001d0000001f0110003900000c8201100197000000a40110003900000bad0010009c00000bad01008041000000600110021000000bad00b0009c00000bad0300004100000000030b40190000004003300210000000000131019f00000bad0040009c00000bad04008041000000c003400210000000000113019f00070000000b001d2eb02ea60000040f000000070b000029000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b0019000027be0000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b000027ba0000c13d000000000006004b000027cb0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f00030000000103550000000005000415000000080550008a00000005055002100000000100200190000028260000613d0000001f01400039000000600210018f0000000001b20019000000000021004b0000000002000039000000010200403900000bb40010009c000028750000213d0000000100200190000028750000c13d000000400010043f000000200030008c000027eb0000413d00000000010b043300000c7d00100198000027eb0000c13d0000000502500270000000000201001f00000000020004150000000202200069000000000200000200000c7e0110019700000c8d0010009c000028650000c13d000000000001042d000000000100001900002eb200010430000000400100043d000000640210003900000c79030000410000000000320435000000440210003900000c7a030000410000000000320435000000240210003900000029030000390000281a0000013d00000c7301000041000000000010043f0000001101000039000000040010043f00000c4b0100004100002eb200010430000000400100043d000000640210003900000c87030000410000000000320435000000440210003900000c9103000041000000000032043500000024021000390000002c030000390000281a0000013d000000400100043d000000640210003900000c8b030000410000000000320435000000440210003900000c8c030000410000000000320435000000240210003900000025030000390000281a0000013d000000400100043d000000640210003900000c8f030000410000000000320435000000440210003900000c9003000041000000000032043500000024021000390000002403000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000c76011001c700002eb200010430000000000001042f000000000003004b0000283b0000c13d0000006002000039000028620000013d000000400100043d000000640210003900000c87030000410000000000320435000000440210003900000c8803000041000028030000013d000000400100043d000000640210003900000c89030000410000000000320435000000440210003900000c8a030000410000000000320435000000240210003900000031030000390000281a0000013d0000001f0230003900000bae022001970000003f0220003900000c8e04200197000000400200043d0000000004420019000000000024004b0000000005000039000000010500403900000bb40040009c000028750000213d0000000100500190000028750000c13d000000400040043f0000001f0430018f000000000632043600000baf05300198000600000006001d0000000003560019000028550000613d000000000601034f0000000607000029000000006806043c0000000007870436000000000037004b000028510000c13d000000000004004b000028620000613d000000000151034f0000000304400210000000000503043300000000054501cf000000000545022f000000000101043b0000010004400089000000000141022f00000000014101cf000000000151019f00000000001304350000000001020433000000000001004b0000287b0000c13d000000400200043d000700000002001d00000bf901000041000000000012043500000004012000392eb029d90000040f0000000702000029000000000121004900000bad0010009c00000bad01008041000000600110021000000bad0020009c00000bad020080410000004002200210000000000121019f00002eb20001043000000c7301000041000000000010043f0000004101000039000000040010043f00000c4b0100004100002eb200010430000000060200002900000bad0020009c00000bad02008041000000400220021000000bad0010009c00000bad010080410000006001100210000000000121019f00002eb2000104300002000000000002000100000001001d000200000002001d000000000020043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000028f20000613d000000000101043b000000000101041a00000bb000100198000028f40000613d0000000201000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000028f20000613d000000000101043b000000000101041a00000bb001100198000028fe0000613d000000010200002900000bb002200197000000000012004b000028ae0000c13d0000000101000039000000000001042d000100000002001d000000000010043f0000000501000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000028f20000613d000000000101043b0000000102000029000000000020043f000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000028f20000613d000000000101043b000000000101041a000000ff01100190000028cd0000613d000000000001042d0000000201000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000028f20000613d000000000101043b000000000101041a00000bb000100198000029120000613d0000000201000029000000000010043f0000000401000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000028f20000613d000000000101043b000000000101041a00000bb001100197000000010010006c00000000010000390000000101006039000000000001042d000000000100001900002eb200010430000000400100043d000000640210003900000c87030000410000000000320435000000440210003900000c9103000041000000000032043500000024021000390000002c03000039000029070000013d000000400100043d000000640210003900000c79030000410000000000320435000000440210003900000c7a03000041000000000032043500000024021000390000002903000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000c76011001c700002eb200010430000000400100043d000000640210003900000c87030000410000000000320435000000440210003900000c8803000041000028fa0000013d0004000000000002000100000002001d000200000001001d000400000003001d000000000030043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000029a90000613d000000000101043b000000000101041a00030bb00010019c000029ab0000613d000000020100002900000bb001100197000000030010006b000029bb0000c13d000000010100002900020bb00010019c000029c50000613d0000000401000029000000000010043f0000000401000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000029a90000613d000000000101043b000000000201041a00000bb702200197000000000021041b0000000401000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000029a90000613d000000000101043b000000000101041a00000bb005100198000029ab0000613d000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c6b04000041000000000600001900000004070000292eb02ea60000040f0000000100200190000029a90000613d0000000301000029000000000010043f0000000301000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000029a90000613d000000000101043b000000000201041a000000000002004b000029b50000613d000000010220008a000000000021041b0000000201000029000000000010043f0000000301000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000029a90000613d000000000101043b000000000201041a000000010220003a000029b50000613d000000000021041b0000000401000029000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000100200190000029a90000613d000000000101043b000000000201041a00000bb7022001970000000206000029000000000262019f000000000021041b000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c3404000041000000030500002900000004070000292eb02ea60000040f0000000100200190000029a90000613d000000000001042d000000000100001900002eb200010430000000400100043d000000640210003900000c79030000410000000000320435000000440210003900000c7a03000041000000000032043500000024021000390000002903000039000029ce0000013d00000c7301000041000000000010043f0000001101000039000000040010043f00000c4b0100004100002eb200010430000000400100043d000000640210003900000c8b030000410000000000320435000000440210003900000c8c03000041000000000032043500000024021000390000002503000039000029ce0000013d000000400100043d000000640210003900000c8f030000410000000000320435000000440210003900000c9003000041000000000032043500000024021000390000002403000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000c76011001c700002eb200010430000000600210003900000c92030000410000000000320435000000400210003900000c93030000410000000000320435000000200210003900000032030000390000000000320435000000200200003900000000002104350000008001100039000000000001042d000d0000000000020000000901000039000000000201041a000000400b00043d00000c560100004100000000001b0435000000000100041400000bb002200197000000040020008c000c00000002001d000029f60000c13d0000000103000031000000200030008c0000002004000039000000000403401900002a230000013d00000bad00b0009c00000bad0300004100000000030b4019000000400330021000000bad0010009c00000bad01008041000000c001100210000000000131019f00000c57011001c7000d0000000b001d2eb02eab0000040f0000000d0b000029000000600310027000000bad03300197000000200030008c000000200400003900000000040340190000001f0640018f000000200740019000000000057b001900002a110000613d000000000801034f00000000090b0019000000008a08043c0000000009a90436000000000059004b00002a0d0000c13d000000000006004b00002a1e0000613d000000000771034f0000000306600210000000000805043300000000086801cf000000000868022f000000000707043b0000010006600089000000000767022f00000000066701cf000000000686019f0000000000650435000100000003001f0003000000010355000000010020019000002d820000613d0000000c020000290000001f01400039000000600410018f0000000001b40019000000000041004b0000000004000039000000010400403900000bb40010009c00002d4a0000213d000000010040019000002d4a0000c13d000000400010043f0000001f0030008c00002d410000a13d00000000010b043300000c580010009c00000c580100a04100010003001000cd00000001011000f9000000030010008c00002b820000c13d00000c190100004100000000001004430000000400200443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f000000010020019000002d6e0000613d000000000101043b000000000001004b0000000c0200002900002d410000613d000000400400043d00000c59010000410000000001140436000d00000001001d0000000001000414000000040020008c000b00000004001d00002a5f0000613d00000bad0040009c00000bad030000410000000003044019000000400330021000000bad0010009c00000bad01008041000000c001100210000000000131019f00000c57011001c72eb02ea60000040f0000000b04000029000000600310027000010bad0030019d0003000000010355000000010020019000002d8e0000613d00000bb40040009c00002d4a0000213d000000400040043f00000c03010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f000000010020019000002d6e0000613d000000000101043b000c00000001001d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f000000010020019000002d6e0000613d000000000101043b0000000d0200002900000000001204350000000b03000029000000600130003900000c5a02000041000000000021043500000040013000390000000c0200002900000000002104350000004101000039000000000013043500000c020030009c00002d4a0000213d0000008001300039000000400010043f0000000d0100002900000bad0010009c00000bad010080410000004001100210000000000203043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f000000010020019000002d410000613d000000000201043b000000400b00043d00000c5b00b0009c00002d4a0000213d00000001010000290002001400100122000001a004b00039000000400040043f0000000c03000039000000000c3b043600000000010000310000000201100367000000000501034f00000000060c0019000000005705043c0000000006760436000000000046004b00002aab0000c13d000000400400043d000300000004001d00000c020040009c00002d4a0000213d00000003060000290000008004600039000000400040043f000000000501034f000000005705043c0000000006760436000000000046004b00002ab70000c13d000000000400001900000000050b0433000000000045004b00002d440000a13d00000005054002100000000005c5001900000006064000c9000000000662022f0000003f0660018f00000000006504350000000a0040008c000000010440003900002abc0000a13d000000400400043d00000c5b0040009c00002d4a0000213d000001a002400039000000400020043f0000000003340436000000001401043c0000000003430436000000000023004b00002ace0000c13d0000000901000039000000000201041a000000400a00043d00000c5c0100004100000000001a04350000000401a000390000002003000039000000000031043500000000030b04330000002401a0003900000000003104350000004401a0003900000bb002200197000000000003004b00002aea0000613d000000000400001900000000050b001900000020055000390000000006050433000000ff0660018f00000000016104360000000104400039000000000034004b00002ae30000413d0000000003000414000000040020008c00002af00000c13d0000000301000367000000010300003100002b0a0000013d000c0000000c001d000d0000000b001d0000000001a1004900000bad0010009c00000bad01008041000000600110021000000bad00a0009c000b0000000a001d00000bad0400004100000000040a40190000004004400210000000000141019f00000bad0030009c00000bad03008041000000c003300210000000000131019f2eb02eab0000040f000000600310027000010bad0030019d00000bad033001970003000000010355000000010020019000002d9b0000613d0000000d0b0000290000000c0c0000290000000b0a00002900000c82053001980000001f0630018f00000000045a001900002b140000613d000000000701034f00000000080a0019000000007907043c0000000008980436000000000048004b00002b100000c13d000000000006004b00002b210000613d000000000151034f0000000305600210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f00000000001404350000001f0130003900000c82021001970000000001a20019000000000021004b0000000002000039000000010200403900000bb40010009c00002d4a0000213d000000010020019000002d4a0000c13d000000400010043f00000c5d0030009c00002d410000213d000000200030008c00002d410000413d00000000020a043300000bb40020009c00002d410000213d0000000003a300190000000002a200190000001f04200039000000000034004b000000000500001900000c5e0500804100000c5e0440019700000c5e06300197000000000764013f000000000064004b000000000400001900000c5e0400404100000c5e0070009c000000000405c019000000000004004b00002d410000c13d000000002402043400000bb40040009c00002d4a0000213d00000005054002100000003f0650003900000c5f06600197000000000616001900000bb40060009c00002d4a0000213d000000400060043f00000000004104350000000004250019000000000034004b00002d410000213d000000000042004b00002b590000813d0000000003010019000000200330003900000000250204340000000000530435000000000042004b00002b540000413d000000000200001900002b5f0000013d0000000102200039000000ff0220018f000000030020008c00002b880000213d0000000503200210000000030330002900000003042000c90000000605200210000000c00550018f0000000006000019000000000700001900002b6d0000013d000000000073043500000000070900190000000106600039000000ff0660018f000000030060008c00002b5b0000813d0000000008460019000000ff0080008c00002b820000213d0000000009010433000000000089004b00002d440000a13d000000050a80021000000000091a001900000020099000390000000009090433000000000079004b00002b690000413d00000000070b0433000000000087004b00002d440000a13d0000000007ca00190000000007070433000000ff0770018f0000000007570019000000ff0070008c00002b670000a13d00000c7301000041000000000010043f0000001101000039000000040010043f00000c4b0100004100002eb200010430000000400200043d00000c600020009c00002d4a0000213d000000c001200039000000400010043f0000000503000039000000000232043600000000030000310000000203300367000000003403043c0000000002420436000000000012004b00002b910000c13d000400000000001d00002b9d0000013d00000004010000290000000101100039000000ff0110018f000400000001001d000000030010008c00002d430000213d000000400100043d000a00000001001d00000c600010009c00002d4a0000213d0000000401000029000000050110021000000003011000290000000001010433000c00ff001001930000000a03000029000000c001300039000000400010043f0000000502000039000000000323043600000000020000310000000202200367000900000003001d000000002402043c0000000003430436000000000013004b00002bae0000c13d000000400100043d000d00000001001d00000c03010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f000000010020019000002d6e0000613d000000000101043b000b00000001001d00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f000000010020019000002d6e0000613d0000000d040000290000002002400039000000000101043b00000000001204350000000c01000029000000f8011002100000006003400039000000000013043500000040014000390000000b0300002900000000003104350000004101000039000000000014043500000c020040009c00002d4a0000213d0000008001400039000000400010043f00000bad0020009c00000bad020080410000004001200210000000000204043300000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f000000010020019000002d410000613d000000000101043b000800000001001d0000000c01000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f000000010020019000002d410000613d000000000101043b000000000101041a000700000001001d000000000001004b00002d6f0000613d0000000001000019000d00000001001d0000000c01000029000000000010043f0000003801000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f0000000d03000029000000040330021000000008033001ef00000007303000fa000000010020019000002d410000613d000000000101043b000000000201041a000000000032004b00002d440000a13d000000000010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bb5011001c70000801002000039000b00000003001d2eb02eab0000040f0000000b060000290000000d05000029000000010020019000002d410000613d000000000101043b0000000a030000290000000002030433000000000052004b00002d440000a13d0000000001610019000000000101041a00000bb0011001970000000502500210000000090220002900000000001204350000000002030433000000000052004b00002d440000a13d000000400200043d0000004003200039000000000013043500000bad01600197000000200320003900000000001304350000000c01000029000000000012043500000bad0020009c00000bad020080410000004001200210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d02000039000000010300003900000c0a040000412eb02ea60000040f0000000d01000029000000010020019000002d410000613d000000030010008c000000010110003900002c040000a13d0000000a030000290000000006030433000000000006004b00002d010000613d0000000901000039000000000101041a00000bb00710019700000000080000190000000009000019000000000a000019000600000006001d000500000007001d0000000001030433000000000081004b00002d440000a13d000000050180021000000009011000290000000001010433000000400b00043d00000c610200004100000000002b043500000bb0051001970000000401b0003900000000005104350000000001000414000000040070008c00002c700000c13d0000000103000031000000200030008c0000002004000039000000000403401900002ca60000013d000b0000000a001d000c00000009001d000700000008001d000d00000005001d00000bad00b0009c00000bad0200004100000000020b4019000000400220021000000bad0010009c00000bad01008041000000c001100210000000000121019f00000c4b011001c7000000000207001900080000000b001d2eb02eab0000040f000000080b000029000000600310027000000bad03300197000000200030008c00000020040000390000000004034019000000200640019000000000056b001900002c8f0000613d000000000701034f00000000080b0019000000007907043c0000000008980436000000000058004b00002c8b0000c13d0000001f0740019000002c9c0000613d000000000661034f0000000307700210000000000805043300000000087801cf000000000878022f000000000606043b0000010007700089000000000676022f00000000067601cf000000000686019f0000000000650435000100000003001f000300000001035500000001002001900000000c090000290000000b0a00002900002d500000613d0000000d050000290000000606000029000000050700002900000007080000290000001f01400039000000600210018f0000000001b20019000000000021004b0000000002000039000000010200403900000bb40010009c00002d4a0000213d000000010020019000002d4a0000c13d000000400010043f000000200030008c00002d410000413d000000ff0080008c00002b820000613d00000000020b04330000000000a2004b000000000509a01900000000020aa0190000000103800039000000ff0830018f000000000068004b0000000009050019000000000a0200190000000a0300002900002c5c0000413d000000000002004b0000000004050019000000000400601900000bb00640019800002d030000613d0000000102000029000000130020008c00002d030000a13d000c00000006001d000d00000005001d0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197000b00000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f000000010020019000002d6e0000613d000000000101043b000000000001004b0000000d040000290000000c0300002900002d410000613d000000400500043d00000024015000390000000202000029000000000021043500000c4e0100004100000000001504350000000401500039000000000031043500000000010004140000000b02000029000000040020008c00002cfd0000613d00000bad0050009c00000bad030000410000000003054019000000400330021000000bad0010009c00000bad01008041000000c001100210000000000131019f00000c1d011001c7000c00000005001d2eb02ea60000040f0000000c050000290000000d04000029000000600310027000010bad0030019d0003000000010355000000010020019000002d750000613d00000bb40050009c00002d4a0000213d000000400050043f00002d290000013d000000400100043d000000000400001900000020020000390000000002210436000000000303043300000000003204350000004002100039000000000003004b000d00000004001d00002d140000613d00000000040000190000000a060000290000002006600039000000000506043300000bb00550019700000000025204360000000104400039000000000034004b00002d0d0000413d000000000212004900000bad0020009c00000bad02008041000000600220021000000bad0010009c00000bad010080410000004001100210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000121019f00000c07011001c70000800d02000039000000010300003900000c62040000412eb02ea60000040f00000001002001900000000d0400002900002d410000613d00000bb00140019800002b970000613d000000400200043d000000200320003900000002040000290000000000430435000000000012043500000040012000390000000103000039000000000031043500000bad0020009c00000bad020080410000004001200210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c09011001c70000800d0200003900000c0b040000412eb02ea60000040f000000010020019000002b970000c13d000000000100001900002eb200010430000000000001042d00000c7301000041000000000010043f0000003201000039000000040010043f00000c4b0100004100002eb20001043000000c7301000041000000000010043f0000004101000039000000040010043f00000c4b0100004100002eb2000104300000001f0530018f00000baf06300198000000400200043d000000000462001900002d5b0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00002d570000c13d000000000005004b00002d680000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000bad0020009c00000bad020080410000004002200210000000000112019f00002eb200010430000000000001042f00000c7301000041000000000010043f0000001201000039000000040010043f00000c4b0100004100002eb20001043000000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900002d5b0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00002d7d0000c13d00002d5b0000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900002d5b0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00002d890000c13d00002d5b0000013d00000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900002d5b0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00002d960000c13d00002d5b0000013d0000001f0530018f00000baf06300198000000400200043d000000000462001900002d5b0000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00002da20000c13d00002d5b0000013d00010000000000020000000001000411000000000001004b00002e320000613d00000c5001000041000000000010043f0000000201000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f000000010020019000002e2f0000613d000000000101043b000000000101041a00000bb00010019800002e3d0000c13d000000000100041100000bb001100197000100000001001d000000000010043f0000000301000039000000200010043f000000000100041400000bad0010009c00000bad01008041000000c00110021000000bf6011001c700008010020000392eb02eab0000040f000000010020019000002e2f0000613d000000000101043b000000000201041a000000010220003a00002e4e0000613d000000000021041b00000c5001000041000000000010043f0000000201000039000000200010043f00000c5101000041000000000201041a00000bb70220019700000001022001af000000000021041b000000000100041400000bad0010009c00000bad01008041000000c00110021000000c07011001c70000800d02000039000000040300003900000c34040000410000000005000019000000000600041100000c50070000412eb02ea60000040f000000010020019000002e2f0000613d0000000602000039000000000102041a00000c520110019700000c53011001c7000000000012041b00000c05010000410000000000100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c04011001c70000800b020000392eb02eab0000040f000000010020019000002e310000613d0000000603000039000000000203041a00000c5402200197000000000101043b000000900110021000000c5501100197000000000112019f000000000013041b2eb029e60000040f0000000901000039000000000101041a00000c1902000041000000000020044300000bb001100197000100000001001d0000000400100443000000000100041400000bad0010009c00000bad01008041000000c00110021000000c1a011001c700008002020000392eb02eab0000040f000000010020019000002e310000613d000000000101043b000000000001004b00002e2f0000613d000000400400043d00000c6301000041000000000014043500000000010004140000000102000029000000040020008c00002e2b0000613d00000bad0040009c00000bad030000410000000003044019000000400330021000000bad0010009c00000bad01008041000000c001100210000000000131019f00000c57011001c7000100000004001d2eb02ea60000040f0000000104000029000000600310027000010bad0030019d0003000000010355000000010020019000002e5a0000613d00000c940040009c00002e540000813d000000400040043f000000000001042d000000000100001900002eb200010430000000000001042f000000400100043d000000440210003900000c3903000041000000000032043500000bf9020000410000000000210435000000240210003900000020030000390000000000320435000000040210003900002e480000013d000000400100043d000000440210003900000c6e03000041000000000032043500000024021000390000001c03000039000000000032043500000bf902000041000000000021043500000004021000390000002003000039000000000032043500000bad0010009c00000bad01008041000000400110021000000bfa011001c700002eb20001043000000c7301000041000000000010043f0000001101000039000000040010043f00000c4b0100004100002eb20001043000000c7301000041000000000010043f0000004101000039000000040010043f00000c4b0100004100002eb20001043000000bad033001970000001f0530018f00000baf06300198000000400200043d000000000462001900002e660000613d000000000701034f0000000008020019000000007907043c0000000008980436000000000048004b00002e620000c13d000000000005004b00002e730000613d000000000161034f0000000305500210000000000604043300000000065601cf000000000656022f000000000101043b0000010005500089000000000151022f00000000015101cf000000000161019f0000000000140435000000600130021000000bad0020009c00000bad020080410000004002200210000000000112019f00002eb200010430000000000001042f00000bad0010009c00000bad01008041000000400110021000000bad0020009c00000bad020080410000006002200210000000000112019f000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c07011001c700008010020000392eb02eab0000040f000000010020019000002e8d0000613d000000000101043b000000000001042d000000000100001900002eb20001043000000000050100190000000000200443000000040030008c00002e960000a13d00000005014002700000000001010031000000040010044300000bad0030009c00000bad030080410000006001300210000000000200041400000bad0020009c00000bad02008041000000c002200210000000000112019f00000c95011001c700000000020500192eb02eab0000040f000000010020019000002ea50000613d000000000101043b000000000001042d000000000001042f00002ea9002104210000000102000039000000000001042d0000000002000019000000000001042d00002eae002104230000000102000039000000000001042d0000000002000019000000000001042d00002eb00000043200002eb10001042e00002eb200010430000000000000000000000000000000000000000000000000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000001ffffffe000000000000000000000000000000000000000000000000000000000ffffffe0000000000000000000000000ffffffffffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffffffffffffbf50757267652047616d6520426574612054657374000000000000000000000000505552474547414d454245544100000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffff020000000000000000000000000000000000002000000000000000000000000068747470733a2f2f70757267652e67616d65732f626574612f746f6b656e732fffffffffffffffffffffffff000000000000000000000000000000000000000000000002000000000000000000000000000000400000010000000000000000000000000000000000000000000000000000000000000000000000000076dd463c00000000000000000000000000000000000000000000000000000000b423fe6600000000000000000000000000000000000000000000000000000000d547cfb600000000000000000000000000000000000000000000000000000000f9f494ec00000000000000000000000000000000000000000000000000000000f9f494ed00000000000000000000000000000000000000000000000000000000fac6da4100000000000000000000000000000000000000000000000000000000fe62150500000000000000000000000000000000000000000000000000000000d547cfb700000000000000000000000000000000000000000000000000000000e985e9c500000000000000000000000000000000000000000000000000000000f7b341eb00000000000000000000000000000000000000000000000000000000bdb337d000000000000000000000000000000000000000000000000000000000bdb337d100000000000000000000000000000000000000000000000000000000c1d02e6f00000000000000000000000000000000000000000000000000000000c87b56dd00000000000000000000000000000000000000000000000000000000b423fe6700000000000000000000000000000000000000000000000000000000b6c693e500000000000000000000000000000000000000000000000000000000b88d4fde00000000000000000000000000000000000000000000000000000000a0ef91de00000000000000000000000000000000000000000000000000000000a6737f0f00000000000000000000000000000000000000000000000000000000a6737f1000000000000000000000000000000000000000000000000000000000b3fe49a900000000000000000000000000000000000000000000000000000000b401faf100000000000000000000000000000000000000000000000000000000a0ef91df00000000000000000000000000000000000000000000000000000000a22cb46500000000000000000000000000000000000000000000000000000000a2309ff80000000000000000000000000000000000000000000000000000000082651bcf0000000000000000000000000000000000000000000000000000000082651bd000000000000000000000000000000000000000000000000000000000838086640000000000000000000000000000000000000000000000000000000095d89b410000000000000000000000000000000000000000000000000000000076dd463d0000000000000000000000000000000000000000000000000000000077b53ece000000000000000000000000000000000000000000000000000000001ac2a061000000000000000000000000000000000000000000000000000000004c2612460000000000000000000000000000000000000000000000000000000052a9b59c0000000000000000000000000000000000000000000000000000000052a9b59d000000000000000000000000000000000000000000000000000000006352211e0000000000000000000000000000000000000000000000000000000070a08231000000000000000000000000000000000000000000000000000000004c261247000000000000000000000000000000000000000000000000000000004e9c6b1f0000000000000000000000000000000000000000000000000000000052a2f05c0000000000000000000000000000000000000000000000000000000029cd589d0000000000000000000000000000000000000000000000000000000029cd589e0000000000000000000000000000000000000000000000000000000042842e0e0000000000000000000000000000000000000000000000000000000044d9bc5f000000000000000000000000000000000000000000000000000000001ac2a0620000000000000000000000000000000000000000000000000000000021602ae60000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000095ea7b2000000000000000000000000000000000000000000000000000000001013c904000000000000000000000000000000000000000000000000000000001013c9050000000000000000000000000000000000000000000000000000000013faede60000000000000000000000000000000000000000000000000000000017741cce00000000000000000000000000000000000000000000000000000000095ea7b3000000000000000000000000000000000000000000000000000000000d75097c000000000000000000000000000000000000000000000000000000000d7cffb0000000000000000000000000000000000000000000000000000000000675b7c5000000000000000000000000000000000000000000000000000000000675b7c60000000000000000000000000000000000000000000000000000000006fdde0300000000000000000000000000000000000000000000000000000000081812fc0000000000000000000000000000000000000000000000000000000001ffc9a7000000000000000000000000000000000000000000000000000000000269a89e020000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000ffffffff0000000000004f666673657420616c726561647920736574000000000000000000000000000008c379a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064000000000000000000000000000000000000000000000000000000000000000000000000000000003b9aca00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc4653600ffffffffffffffffffffffffffffffffffffffffffff00000000ffffffffffff4f6666736574206f7574206f662072616e67650000000000000000000000000043616e6e6f742072656d6f7665206f776e65720000000000000000000000000000000000000000000000000000000000000000000000000000000000ff000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff7f19cae4629a2dd7890036d0d1f6a82742845b778b7184e38d5bebfd4cce3b181e0200000200000000000000000000000000000004000000000000000000000000796b89b91644bc98cd93958e4c9038275d622183e25ac5af08cc6b5d9553913232000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffff9f02000000000000000000000000000000000000600000000000000000000000005ce62d5c9c78bbfe0b195205b476fa1b18b12cc0960d6d59e4a6404729265c48c683baf044c613bbd060078b32cfd1f4f8789f54d4f1821b55e7d54a6699beb2ffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000000000ff00000000000000000000000000000000000000000000000000000000000000190000000000ffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000020000000000000000000000000a2999d817b6757290b50e8ecf3fa939673403dd35c97de392fdb343b4015ce9e000000000000000000000000000000000000000000000000fffffffffffffffe00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff300000000000000000000000000000000000000000000000000000000000000070a082310000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000240000008000000000000000000000000000000000000000000000000000000000000000000000000001f78a3f1806aa1896bbf26568e884a7374b41e002500962caba6a15023a8d90e8508b8302000002000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000001f78a40d3fd21710000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000440000000000000000000000004e6f7420656e6f75676820245055524745440000000000000000000000000000dd62ed3e0000000000000000000000000000000000000000000000000000000023b872dd00000000000000000000000000000000000000000000000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0875bffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0875c09c8550ec000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000192d5000000000000000000000000000000000000000000000000000000000ffffff7bffffffffffffffffffffffffffffffffffffff7c00000000000000000000000042cbb15ccdc3cad6266b0e7a08c0454b23bf29dc2df74b6f3c209e9336465bd17aabbcd54b018034a4451601dafdf970439800f136bef10bfa3562a08d74d57d55534443207472616e73666572206661696c65640000000000000000000000005553444320616c6c6f77616e636520746f6f206c6f7700000000000000000000496e73756666696369656e7420555344432062616c616e63650000000000000000000000000000000000000000000000000000200000008000000000000000000000000000000000000000000000000000000000000000000000000000ff0000a9059cbb000000000000000000000000000000000000000000000000000000004e6f2077696e6e696e677320746f20636c61696d00000000000000000000000000000000000000000000000000000000000000000000000000000000028f5c280000000000000000000000000000000000000000000000000000000005f5e100000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000f4240ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef00000000000000000000000000000000000000000000000000000000000ff0000000000000000000000000000000000000000000000000000000000000fc0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000515412d560fbfda6bf9ec1474ed5bd6a7951f6b28aa6f165e374064f5adba8724552433732313a206d696e7420746f20746865207a65726f2061646472657373ffffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffff0000000000000000000000000000ffffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c314552433732313a20617070726f766520746f2063616c6c65720000000000000000000000000000000000000000000000000000640000008000000000000000009cc7f708afc65944829bd487b90b72536b1951864fbfc14e125fc972a6507f395472616e73666572206661696c65642e00000000000000000000000000000000b10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf64552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373000000000000000000000000000000000000000000000000000000000000000000000000000000000084000000800000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff00000000000000000000000000000000000000000000000000000000000100005d66627e8498a8d6f4af17130c056c698cbfc22ca36821c6d024cbc4bfea316200000000000000000000000000000000000000000000000000000000ff12b1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff12b20000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000000000000000000000035a4e900000000000000000000000000000000000000000000000000ffffffffffffff0029224e360000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c46535ff00000000000000000000000000000000000000000000000000000000fac0d7751dab23dea9e47b4e3d6126fffa370df7868fd8e389984539b2adbfa8fbe82421ffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff0000000000000000000000000000000000000000000000000000000001000000ffffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffff00000000000000000000ffffffff000000000000000000000000000000000000048c14f1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000005f5e100059384b33000000000000000000000000000000000000000000000000000000003100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffffffffe5f37b92eb3000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000ffffffffffffff3fff3a10ab0000000000000000000000000000000000000000000000000000000007f62407d22076a96cc17dc752f9613439b6b91b0574a5f6a045e5c9ec91cd049b800dd700000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffff00000000ffffffffffffffffffff000000000000000000000000000000000000ffffffff000000000000000000004d696e7420696e6163746976650000000000000000000000000000000000000047616d65204f7665720000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff0000000000000000000000000000000000000000000000000000000100000000596f7520646f206e6f74206f776e207468617420746f6b656e000000000000008c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92500000000000000000000000000000000000000000000000000000000fffffe00000000000000000000000000000000000000000000000000000000003b9ac9ff4552433732313a20746f6b656e20616c7265616479206d696e746564000000004e756d626572206f6620707572676573206d757374206265206265747765656e203120616e6420333030000000000000000000000000000000000000000000004e6f2070757267696e67206265666f72652072657665616c0000000000000000000000000000000000000000000000000000000000000000fffffffffffffedf4e487b71000000000000000000000000000000000000000000000000000000006e6572206e6f7220617070726f76656420666f7220616c6c00000000000000004552433732313a20617070726f76652063616c6c6572206973206e6f74206f77000000000000000000000000000000000000008400000000000000000000000072000000000000000000000000000000000000000000000000000000000000004552433732313a20617070726f76616c20746f2063757272656e74206f776e65656e7420746f6b656e00000000000000000000000000000000000000000000004552433732313a206f776e657220717565727920666f72206e6f6e6578697374290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e56343616c6c6572206973206e6f742061207472757374656420616464726573730000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000000001ffc9a7000000000000000000000000000000000000000000000000000000005b5e139f0000000000000000000000000000000000000000000000000000000080ac58cd00000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed3697374656e7420746f6b656e00000000000000000000000000000000000000004552433732313a20617070726f76656420717565727920666f72206e6f6e6578776e6572206e6f7220617070726f7665640000000000000000000000000000004552433732313a207472616e736665722063616c6c6572206973206e6f74206f6f776e65720000000000000000000000000000000000000000000000000000004552433732313a207472616e736665722066726f6d20696e636f727265637420150b7a020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003ffffffe072657373000000000000000000000000000000000000000000000000000000004552433732313a207472616e7366657220746f20746865207a65726f206164644552433732313a206f70657261746f7220717565727920666f72206e6f6e657863656976657220696d706c656d656e74657200000000000000000000000000004552433732313a207472616e7366657220746f206e6f6e204552433732315265000000000000000000000000000000000000000000000001000000000000000002000002000000000000000000000000000000000000000000000000000000008cd4a6130cdadc98fe50efd9829924357bc925d4593125ed028ccd8a8c433dbf
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.